TCP客户端与服务端的爱恨情仇——三次握手四次挥手 对比 背景 进展 离别 思考 拓展 总结 资料

TCP客户端与服务端的爱恨情仇——三次握手四次挥手
对比
背景
进展
离别
思考
拓展
总结
资料

TCP客户端与服务端的爱恨情仇——三次握手四次挥手
对比
背景
进展
离别
思考
拓展
总结
资料
图片搬运自——TCP三次握手和四次挥手全过程及为什么要三次握手解答

TCP客户端与服务端的爱恨情仇——三次握手四次挥手
对比
背景
进展
离别
思考
拓展
总结
资料
TCP客户端与服务端的爱恨情仇——三次握手四次挥手
对比
背景
进展
离别
思考
拓展
总结
资料

  通过对“三次握手”和“四次挥手”的中间过程进行对比,可以发现“三次握手”和“四次挥手”的过程其实是差不多的,只不过“挥手”时把中间的过程拆分成两个过程。

背景

  这一切都要从那时候说起......
  那一天阳光正好,Client 小姐与 Server 先生在公园邂逅了,Client 小姐望着 Server 先生清秀的脸庞,心中小鹿在乱踹,她想认识这位风度翩翩的秀儿,只是羞于表达,不知从何说起......

进展

  最终,Client 小姐其中一个人格战胜了其它六百六十六个人格,她终于行动了。
  Client 小姐悄悄地走到 Server 先生身旁,用暗号试探道“SYN seq=5354?”;Server 先生心中窃喜,也想试探一番,并同时回复 Client 小姐,于是 Server 先生开口了,说道“SYN seq=28251ACK=5355”。
  Client 小姐微微一笑,回“ACK=28252”。
  就此,俩人有一搭没一搭的聊着天。

离别

  在聊天过程中,Client 小姐发现 Server 先生是个海王,Server 先生也发现 Client 小姐是渣女;
  Client 小姐对 Server 先生说:“FIN=147258 (我不跟你聊了,再见)”;
  Server 先生说“ACK=147259 (哦)”;
  Server 先生继续补充“我觉得我配不上你”;
  Server 先生说“FIN=258369 (我不跟你聊了,再见)”;
  Client 小姐:“ACK=258370 (哦)”;

思考

  四次挥手的二、三过程分开是因为要立刻给 “FIN的发送方” 回复(ACK),而 “FIN接收方” 自己的FIN 是要在自己数据传输完了才发送,如果此时还有很多数据需要传输,等到数据传输完,才一并发送 FIN 和 ACK,这个时间段就会过长,这期间 “主动断开方” 未收到回复,会多次发送 FIN 造成信道的浪费。

拓展

报文说明

SYN = Synchronize(“同步”)
ACK = Acknowledge(“承认”)

报文格式

TCP客户端与服务端的爱恨情仇——三次握手四次挥手
对比
背景
进展
离别
思考
拓展
总结
资料
TCP报文格式

特殊情况

在接收到“FIN”信号时,如果接收方没有数据要传输了,会把“ACK”和“FIN”合在一起发送,此时“四次挥手”也就变成了“三次挥手”——TCP协议三次握手和四次挥手抓包分析

总结

握手

A: 我想跟你聊天;
B: 好啊,我想跟你聊天;
A: 好啊。

挥手

A: 我不跟你聊了;
B: 好;
A: 等我再说完这几句话,blah blah blah;
B: 我不跟你聊了;
A: 好;

资料

TCP-三次握手和四次挥手简单理解
为什么是四次挥手不是三次挥手