文章插图
文章插图
最后留给大家一个作业,模拟 A 与 B 建立一个 TCP 连接 。
第一题:A 给 B 发送 "aaa" ,然后 B 给 A 回复一个简单的字符串 "success",并将此过程抓包 。
第二题:A 给 B 发送 "aaaaaa ... a" 超过最大报文段大小,然后 B 给 A 回复一个简单的字符串 "success",并将此过程抓包 。
下面是我抓的包(第二题)
三次握手阶段
A -> B [SYN] Seq=0 Win=64240 Len=0
MSS=1460 WS=256
B - >A [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0
MSS=1424 WS=512
A -> B [ACK] Seq=1 Ack=1 Win=132352 Len=0
数据发送阶段
A -> B [ACK] Seq=1 Ack=1 Win=132352 Len=1424
A -> B [ACK] Seq=1425 Ack=1 Win=132352 Len=1424
A -> B [PSH, ACK] Seq=2849 Ack=1 Win=132352 Len=1247
B -> A [ACK] Seq=1 Ack=1425 Win=32256 Len=0
B -> A [ACK] Seq=1 Ack=2849 Win=35328 Len=0
B -> A [ACK] Seq=1 Ack=4096 Win=37888 Len=0
B -> A [PSH, ACK] Seq=1 Ack=4096 Win=37888 Len=7
四次挥手阶段
B -> A [FIN, ACK] Seq=8 Ack=4096 Win=37888 Len=0
A -> B [ACK] Seq=4096 Ack=9 Win=132352 Len=0
A -> B [FIN, ACK] Seq=4096 Ack=9 Win=132352 Len=0(下面少复制了一行ACK,抱歉)
详细的抓包数据与分析整理,就不在文章里展示了,可以在公众号低并发编程后台回复TCP获取 。
后记一提到 TCP,可能很多人都想起被三次握手和四次挥手所支配的恐惧 。但其实你跟着文中的思路你就会发现,三次握手与四次挥手只占 TCP 所解决的核心问题中很小的一部分,只是因为它在面试中很适合作为知识点进行考察,所以在很多人的印象中就好像 TCP 的核心就是握手和挥手似的 。
本文希望你能从问题出发,真正理解 TCP 所想要解决的问题,你会发现很多原理就好像生活常识一样顺其自然,并不复杂,希望你有收获~
【图解干货 终于讲明白了TCP】
推荐阅读
- 鸡蛋羹的家常做法,详细步骤图解
- 怎样做葱油花卷,葱油花卷的家常做法图解-
- 家常做法,简单 家常疙瘩汤的做法图解,疙瘩汤的做法
- 小乐言|分手后小乐言与女友再续前缘,被忽略也没放弃,终于让他追回来了
- 汤唯|看了汤唯的无修生图,才终于明白了“不整容”的重要性
- 西线无战事|终于盼来一部恢宏大气的电影佳作,刚上线就被观众打出了9分!
- 思维导图解读昆虫记
- 马頔|《披荆斩棘的哥哥2》:听了潘玮柏的分析,终于明白马頔为何一战打出身价
- 美国恐怖故事|时隔一年,这部重口味美剧终于回归,可以看了
- 曲家瑞|她的人设终于崩了!