您的位置:首页 > 理论基础 > 计算机网络

Tcp为什么要三次握手四次挥手

2016-06-06 14:47 543 查看


client:黄河,server:长江

三次握手

第一次:长江长江,我是黄河,听到请回答?

第二次:黄河黄河,我是长江,我听到你了,你能听到我吗?

第三次:长江长江,俺是黄河,我也能听到你,我要开始吐了。

其实第二次时黄河已经知道双方能互通,但是长江还不知道自己的声音黄河能否收到,所以需要有第三次黄河向长江的回应

四次挥手:

俗话说好聚好散,连接时礼数周全,闹掰了也不能失了礼数,所以原则上分手也分三步走

第一次:长江长江,咱们分手吧,听到请回答?

第二次:黄河黄河,我听到了,咱们分吧,听到请回答?

第三次:长江长江,我听到了,bye

理论上分手这三次就够了,但实际上在第二次的时候,长江可能有些数据还没对黄河吐完,所以,第二次应该拆分成两步,即“我听到了”和数据吐完后的“咱们分吧,听到请回答”,于是:

第一次:长江长江,咱们分手吧,听到请回答?

第二次:黄河黄河,我听到了(这是我最后一次回应你了,等我给你发完数据)

第三次:黄河黄河,发完了,咱们分吧,你能听到吗?

第四次:长江长江,我听到了,bye

(黄河在第四次挥手后会默默等待2MSL,若此期间没有收到长江传来的任何消息,则知道长江已经收到自己的ACK了,黄河就关闭链接,长江也关闭链接了,之所以黄河要等,是因为若是第四次挥手长江没有收到,长江会重复发第三次挥手,若长江没有重发,表示长江收到了)
参考:http://blog.chinaunix.net/uid-20726927-id-2455485.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: