白话解释 tcp连接三次握手为什么需要三次握手

  忽然顿悟了不管三次握手,还是四次握手这是保证信息来回两个链路可达(也就是信息能从A到B,也能从B到A)的最低要求--晚上九点

  举个打电话的例子:

  A : 伱好我是A,你听得到我在说话吗

  B : 听到了我是B,你听到我在说话吗

  A : 嗯听到了

  建立连接,开始聊天!

为什么TCP协议终止链接要㈣次

1、当主机A确认发送完数据且知道B已经接受完了,想要关闭发送数据口(当然确认信号还是可以发)就会发FIN给主机B。

2、主机B收到A发送的FIN表示收到了,就会发送ACK回复

3、但这是B可能还在发送数据,没有想要关闭数据口的意思所以FIN与ACK不是同时发送的,而是等到B数据发送完了才会发送FIN给主机A。

4、A收到B发来的FIN知道B的数据也发送完了,回复ACK A等待2MSL以后,没有收到B传来的任何消息知道B已经收到自己的ACK了,A就关闭链接B也关闭链接了。

 在Client发送出最后的ACK回复但该ACK可能丢失。Server如果没有收到ACK将不断重复发送FIN片段。所以Client不能立即关闭它必须確认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态Client会设置一个计时器,等待2MSL的时间如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL所謂的2MSL是两倍的MSL(Maximum Segment Lifetime)。MSL指一个片段在网络中最大的存活时间2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSLClient都没有再次收到FIN,那么Client推断ACK巳经被成功接收则结束tcp连接三次握手。

这个网上转载的例子不错:

}

我要回帖

更多关于 tcp连接三次握手 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信