Net3

http2 simple analysis

This project is maintained by wangfakang

http2的简单解析:

http2相对于http1.1的性能上提升了不少,http2使用了链路复用技术.减少了tcp握手的时间消耗.其和spdy的思路差不多, 但是其http的head的压缩算法HPACK和spdy是不相同的.

http2抓包测试说明:

数据1-1是在服务器端(h2o)抓取了客户端(okhttp)发了两次http2的请求报文,从报 文中看出两个请求而只进行一次三次 握手[即只有两个 SYN报文],充分说明了http2的链路复用的特性.

http1抓包测试说明:

数据1-2是在服务器端(h2o)抓取了客户端(okhttp)发了两次http1的请求报文,从报 文中看出两个请求进行了二次三次握 手[即有四个SYN 报文],即一个请求一个连接.

http2测试抓包数据:

                                                           抓包数据[1-1]
12:16:15.731512 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [S], seq 913852984, win 29200, options [mss 1460,sackOK,TS val 2825940 ecr 0,nop,wscale 7], length 0
12:16:15.731557 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [S.], seq 3728669520, ack 913852985, win 14480, options [mss 1460,sackOK,TS val 838041805 ecr 2825940,nop,wscale 6], length 0
12:16:15.773710 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [.], ack 1, win 229, options [nop,nop,TS val 2825945 ecr 838041805], length 0
12:16:15.775232 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [P.], seq 1:518, ack 1, win 229, options [nop,nop,TS val 2825946 ecr 838041805], length 517
12:16:15.775258 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [.], ack 518, win 243, options [nop,nop,TS val 838041849 ecr 2825946], length 0
12:16:15.775532 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [P.], seq 1:147, ack 518, win 243, options [nop,nop,TS val 838041849 ecr 2825946], length 146
12:16:15.791152 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [.], ack 147, win 237, options [nop,nop,TS val 2825958 ecr 838041849], length 0
12:16:15.791161 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [P.], seq 518:569, ack 147, win 237, options [nop,nop,TS val 2825958 ecr 838041849], length 51
12:16:15.831030 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [.], ack 569, win 243, options [nop,nop,TS val 838041905 ecr 2825958], length 0
12:16:15.850694 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [P.], seq 569:815, ack 147, win 237, options [nop,nop,TS val 2825976 ecr 838041905], length 246
12:16:15.850707 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [.], ack 815, win 260, options [nop,nop,TS val 838041924 ecr 2825976], length 0
12:16:15.850828 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [P.], seq 147:324, ack 815, win 260, options [nop,nop,TS val 838041924 ecr 2825976], length 177
12:16:15.867947 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [P.], seq 815:922, ack 324, win 245, options [nop,nop,TS val 2825982 ecr 838041924], length 107
12:16:15.868051 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [P.], seq 324:388, ack 922, win 260, options [nop,nop,TS val 838041941 ecr 2825982], length 64
12:16:15.876508 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [P.], seq 922:960, ack 388, win 245, options [nop,nop,TS val 2825985 ecr 838041941], length 38
12:16:15.916033 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [.], ack 960, win 260, options [nop,nop,TS val 838041990 ecr 2825985], length 0
12:16:25.886618 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [P.], seq 388:446, ack 960, win 260, options [nop,nop,TS val 838051960 ecr 2825985], length 58
12:16:25.886650 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [P.], seq 446:477, ack 960, win 260, options [nop,nop,TS val 838051960 ecr 2825985], length 31
12:16:25.886693 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [F.], seq 477, ack 960, win 260, options [nop,nop,TS val 838051960 ecr 2825985], length 0
12:16:25.991904 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [.], ack 478, win 245, options [nop,nop,TS val 2829018 ecr 838051960], length 0
12:16:26.628299 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [P.], seq 960:991, ack 478, win 245, options [nop,nop,TS val 2829018 ecr 838051960], length 31
12:16:26.628341 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [R], seq 3728669998, win 0, length 0
12:16:26.628350 IP 61.135.152.203.43354 > 123.57.90.40.tproxy: Flags [F.], seq 991, ack 478, win 245, options [nop,nop,TS val 2829208 ecr 838051960], length 0
12:16:26.628359 IP 123.57.90.40.tproxy > 61.135.152.203.43354: Flags [R], seq 3728669998, win 0, length 0

http1测试抓包数据:

                                                           抓包数据[1-2]
13:24:18.082143 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [S], seq 2008190896, win 29200, options [mss 1460,sackOK,TS val 4050680 ecr 0,nop,wscale 7], length 0
13:24:18.082192 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [S.], seq 3345253698, ack 2008190897, win 14480, options [mss 1460,sackOK,TS val 842124156 ecr 4050680,nop,wscale 6], length 0
13:24:18.093528 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 1, win 229, options [nop,nop,TS val 4050684 ecr 842124156], length 0
13:24:18.095213 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [P.], seq 1:167, ack 1, win 229, options [nop,nop,TS val 4050685 ecr 842124156], length 166
13:24:18.095247 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [.], ack 167, win 243, options [nop,nop,TS val 842124169 ecr 4050685], length 0
13:24:18.097252 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [.], seq 1:2897, ack 167, win 243, options [nop,nop,TS val 842124171 ecr 4050685], length 2896
13:24:18.097265 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [.], seq 2897:5793, ack 167, win 243, options [nop,nop,TS val 842124171 ecr 4050685], length 2896
13:24:18.097273 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [P.], seq 5793:5835, ack 167, win 243, options [nop,nop,TS val 842124171 ecr 4050685], length 42
13:24:18.108192 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 1449, win 251, options [nop,nop,TS val 4050688 ecr 842124171], length 0
13:24:18.108560 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 2897, win 274, options [nop,nop,TS val 4050689 ecr 842124171], length 0
13:24:18.109881 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 4345, win 296, options [nop,nop,TS val 4050689 ecr 842124171], length 0
13:24:18.112670 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 5793, win 319, options [nop,nop,TS val 4050689 ecr 842124171], length 0
13:24:18.112674 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 5835, win 319, options [nop,nop,TS val 4050689 ecr 842124171], length 0
13:24:18.124620 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [P.], seq 167:293, ack 5835, win 319, options [nop,nop,TS val 4050693 ecr 842124171], length 126
13:24:18.125386 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [P.], seq 5835:6077, ack 293, win 243, options [nop,nop,TS val 842124199 ecr 4050693], length 242
13:24:18.146846 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [P.], seq 293:451, ack 6077, win 342, options [nop,nop,TS val 4050699 ecr 842124199], length 158
13:24:18.147103 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [P.], seq 6077:6351, ack 451, win 260, options [nop,nop,TS val 842124221 ecr 4050699], length 274
13:24:18.165567 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [S], seq 219946969, win 29200, options [mss 1460,sackOK,TS val 4050705 ecr 0,nop,wscale 7], length 0
13:24:18.165602 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [S.], seq 486067254, ack 219946970, win 14480, options [mss 1460,sackOK,TS val 842124239 ecr 4050705,nop,wscale 6], length 0
13:24:18.179555 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [.], ack 1, win 229, options [nop,nop,TS val 4050710 ecr 842124239], length 0
13:24:18.183886 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [P.], seq 1:518, ack 1, win 229, options [nop,nop,TS val 4050710 ecr 842124239], length 517
13:24:18.183919 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [.], ack 518, win 243, options [nop,nop,TS val 842124257 ecr 4050710], length 0
13:24:18.184234 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [P.], seq 1:153, ack 518, win 243, options [nop,nop,TS val 842124258 ecr 4050710], length 152
13:24:18.197782 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [.], ack 153, win 237, options [nop,nop,TS val 4050715 ecr 842124258], length 0
13:24:18.199941 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 6351, win 364, options [nop,nop,TS val 4050716 ecr 842124221], length 0
13:24:18.200099 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [P.], seq 518:569, ack 153, win 237, options [nop,nop,TS val 4050716 ecr 842124258], length 51
13:24:18.240041 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [.], ack 569, win 243, options [nop,nop,TS val 842124314 ecr 4050716], length 0
13:24:18.249641 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [P.], seq 569:727, ack 153, win 237, options [nop,nop,TS val 4050731 ecr 842124314], length 158
13:24:18.249662 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [.], ack 727, win 260, options [nop,nop,TS val 842124323 ecr 4050731], length 0
13:24:18.249833 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [P.], seq 153:427, ack 727, win 260, options [nop,nop,TS val 842124323 ecr 4050731], length 274
13:24:18.296431 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [.], ack 427, win 245, options [nop,nop,TS val 4050745 ecr 842124323], length 0
13:24:28.152336 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [P.], seq 6351:6382, ack 451, win 260, options [nop,nop,TS val 842134226 ecr 4050716], length 31
13:24:28.152394 IP 123.57.90.40.tproxy > 61.135.152.203.39538: Flags [F.], seq 6382, ack 451, win 260, options [nop,nop,TS val 842134226 ecr 4050716], length 0
13:24:28.169623 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 6382, win 364, options [nop,nop,TS val 4053706 ecr 842134226], length 0
13:24:28.208922 IP 61.135.152.203.39538 > 123.57.90.40.tproxy: Flags [.], ack 6383, win 364, options [nop,nop,TS val 4053719 ecr 842134226], length 0
13:24:28.249534 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [P.], seq 427:458, ack 727, win 260, options [nop,nop,TS val 842134323 ecr 4050745], length 31
13:24:28.249599 IP 123.57.90.40.tproxy > 61.135.152.203.39540: Flags [F.], seq 458, ack 727, win 260, options [nop,nop,TS val 842134323 ecr 4050745], length 0
13:24:28.271136 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [.], ack 458, win 245, options [nop,nop,TS val 4053736 ecr 842134323], length 0
13:24:28.309786 IP 61.135.152.203.39540 > 123.57.90.40.tproxy: Flags [.], ack 459, win 245, options [nop,nop,TS val 4053749 ecr 842134323], length 0

欢迎一起交流学习

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

Thx

Author