渡一教育 TCP四次挥手

  TCP的三次握手和四次挥手通常同时被谈起,上篇文章我们说到了TCP的三次握手,那么四次挥手又是什么呢? 

  今天我们就聊聊什么是四次挥手。在说什么是四次挥手之前,我们还是要提出几个问题。

  1.为什么要挥手那么多次?一次挥手不行吗?

  2.为什么握手需要三次,挥手却需要四次?

  相信大家对“邓哥”这种生物的习性应该已经熟悉了,主要的四大习性就是:“抽烟、喝酒、烫头、浪~”。我们今天依然用邓哥的例子来让大家记住四次挥手~我们今天就用邓哥和某位邓嫂互相喂饭的例子来让大家了解四次挥手的真正过程~

  在讲故事之前我们依然以一句话来说明四次挥手的根本目的,四次挥手核心就在于四个时间节点,分别是:发完了,知道发完了,收完了,知道收完了。

  有一天邓哥和某位邓嫂在一家餐厅吃饭,两个人点了一份咖喱土豆,只见邓哥一勺一勺的喂邓嫂。

  邓哥喂邓嫂吃饭的过程,就相当于是两台机器之间互相通信的过程。每喂一勺饭,都相当于是一次数据传递。

  当邓哥喂完最后一勺的时候,邓哥对邓嫂说:“喂完了~木有了~”

  这时候相当于A向B传输数据,数据传递完了,但是数据传递完了之后,不能直接断开,因为B并不知道数据传递完了,所以A(邓哥)告诉B(邓嫂)数据传递完了(喂完了)。这就是第一次挥手:A告诉B数据发送完了。

  邓哥说喂完了的时候,邓嫂因为嘴里还有很多饭没有咽下,所以没法和邓哥说话~所以只能点点头表示知道了~

  这时候,因为B(邓嫂)还没有接受完数据(没有咽下),所以虽然知道A(邓哥)把数据传完了(喂完了),所以只能先回复A(邓哥)知道你传完了(喂完了)。这就是第二次挥手:B知道A发完了

  邓哥眼睁睁的看着邓嫂一口一口的吃完了所有的饭~眼里流下了饥饿的泪花。待邓嫂咽下了最后一口饭的时候,开心的笑着说:“吃完了~好饱呀~”

  这时,虽然A(邓哥)已经发送完了数据,但是还不确定B(邓嫂)接收完数据,所以A还要等着,因为一旦B没有接收成功,A还要继续发送。所以A要等着B反馈已经接收完了,才能真正断开连接。所以这时候当B接收完数据的时候,B要告诉A接收完了。这就是第三次挥手:B告诉A接收完了。

  邓哥虽然还饿着~但是依然含着泪点头~说道:“咱们走吧~”

  这时A(邓哥)知道了B(邓嫂)接收完数据了,就可以放心的断开连接了。这就是第四次挥手:A知道B接收完了。

  我们用一张图表示四次挥手:

  A(邓哥) B(邓嫂)

  发 第一次挥手 发完了 第二次挥手 知道发完了

  收 第四次挥手 知道收完了

  第三次挥手 收完了

  那么为什么握手只需要三次而挥手却需要四次呢?

  就是因为当A告诉B发完了的时候,B还有可能没接收完消息,所以只能先回复一部分,告诉A已经收到发完了的消息了。当消息完全接收完毕之后,才会告诉A已经接收完了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本篇结构: 前言 TCP报文首部格式 三次握手 四次挥手 wireshark抓包三次握手 wireshark抓包四...
    w1992wishes阅读 8,430评论 0 57
  • 你是否经常听别人提起TCP的三次握手和四次挥手呢?你是否看过很多次关于三次握手和四次挥手的文章都没用看懂或是没有记...
    渡一web前端阅读 213评论 0 0
  • 1.所有房地产生意,其本质都是一场资金成本的游戏,谁能从政府手中拿到更便宜的地,谁能从金融机构拿到长期而廉价的资金...
    我思故我在R阅读 763评论 0 0
  • 这几天学拼音,学声调,发音可以,声调加的不准确,在家练习,加拼音,加声调。总是加的有不对的,我训她,她就哭了,哎,...
    陈艺萱妈妈阅读 246评论 0 1
  • 牡丹国 远心 天不落雪,泪水浇灌休眠的玉兰 小寒又长出些毛发,西天的月亮 穿在早晨,轻轻地拍着,拍着 紧紧地抱着,...
    远心笃行阅读 300评论 0 0

友情链接更多精彩内容