- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
阿里巴巴HTTP2实践及无
线通信协议的演进之路
更快、更省流量的标准通信
HTTP2
HTTP/2概况
POST /upload HTTP/1.1
Host:
Content-Type:application/json
Content-Length:16
{“msg”,”taobao”}
HEADERS Frame
DATA Frame
TLS
Application(HTTP/2)
Binary Framing
SlightSSL
TCP
IP
QUIC
UDP
?
协议协商
?
ALPN(TLS)或protocol upgrade(明文)
?
连接序言
?
会话协商
?
Settings Frame
?
头部压缩
?
HPACK
?
二进制协议
?
流控
?
会话级别 &连接级别
?
双工通信多路复用
?
主动下行
?
多个请求并发
帧格式
用途
headers
存放头部数据,用以打开一个stream
continuation
延续之前未发送完毕的包头信息
data
存放应用数据
rst_stream
异常关闭一个stream
settings
参数协商
ping
心跳包,用以刺探连接是否存活
goaway
发送端优雅关闭
window_update
流控,分为stream和connection两个级别
协商参数
含义
SETTINGS_HEADER_TABLE_SIZE
用于解压的头部动态压缩表最大大小,默认4096
SETTINGS_ENABLE_PUSH
用于禁止或启用服务端推送
SETTINGS_MAX_CONCURRENT_STREAM
S
最大并发流数,默认无限制
SETTINGS_INITIAL_WINDOW_SIZE
会话级别的流控的初始窗口大小,默认为65535
SETTINGS_MAX_FRAME_SIZE
帧的payload大小限制,默认为16384
SETTINGS_MAX_HEADER_LIST_SIZE
http/2的
压缩前头部列表的最大大小,默认无限制
SETTINGS帧的各参数的含义
Bit
0-7
8-15
16-23
24-31
0
Length
Type
32
Flags
40
R
StreamIdentifier
…
FramePayload
http/2的帧格式
HTTP/2 Frames
http/2的公共头部
HTTP/2 Workflow
PRI * HTTP/2\r\n\r\nSM\r\n\r\n
init window size
header table size
window increment size
init window size
header table size
SYN
SYN ACK
ACK
连接序言会话协商
会话协商
数据交互
FIN
数据交互
会话关闭
Client
Server
FIN ACK
Settings
Window_update
window increment size
:method: get
:path:/index.html
Headers
Data
Goaway
:status:200
:content-length= 1024
!DOCTYPE html…
…
last stream id = 9
Headers
Data
Settings
Window_update
HTTP/2 HPACK
http2 HPACK
映射表
经常出现或重复出现的Header用映射表的Index表示
静态Huffman编码
未命中映射表的Header用Huffman编码
安全
DEFLATE压缩算法存在攻击风险
压缩率
通过新的算法得到进一步提升
HTTP/2的效果
0
1400
1050
700
350
请求包头
应答包头
http/2
spdy
单位:字节
1750
http/2请求和应答包头的流量下降
http/2请求整体提速
0
2250
1500
750
单位:毫秒
3000
2G
3G
4G
WIFI
http/2
spdy
HTTP/2的优化过程
http2头部压缩分阶段优化
50
25
0
75
1100
550
0
1650
spdy
下行huffman
52.4%
48.5%
35.3%
31.5%
动态表可协商
100%
字节数
2750
2200
百分比
125
100
HTTP/2的实现
Nginx Patch
无线下的调优
?
原生
?
上下行均支持静态表
?
?
上行支持动态表和Huffman编码
采用默认的动态表大小,无协商
?
扩展
?
?
下行动态表和Huffman编码
上下行动态表大小协商
?
文档评论(0)