3.为什么要等待 2MSL
MSL:报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间
原因如下:
保证TCP协议的全双工连接能够可靠关闭
保证这次连接的重复数据从网络中消息
第一点: 如果主机1直接 关闭,由于IP协议的不可靠性或者其他网络原因,导致主机2没有收到主机1最后回复的 ACK 。那么主机2就会在超时之后继续发送 FIN,此时由于主机1已经关闭,就找不到与重发的 FIN 对应的连接 。所以,主机1 不是直接进入 关闭,而是TIME_WAIT 状态 。当再次收到 FIN 的时候,能够保证对方收到 ACK,最后正确关闭连接 。
第二点:如果主机1直接 关闭,然后又再向主机 2 发起一个新连接,我们不能保证这个新连接与刚才关闭的连接端口是不同的 。也就是说有可能新连接和老连接的端口号是相同的 。一般来说不会发生什么问题,但还是有特殊情况出现;假设新连接和已经关闭的老连接端口号是一样的,如果前一次连接的某些数据仍然滞留在网络中( Lost Duplicate ),那些延迟数据在建立新连接之后才到达主机2,由于新连接和老连接的端口号是一样的,TCP 协议就认为哪个延迟的数据时属于新连接的,这样就和真正的新连接的数据包发生混淆了 。所以TCP连接要在 TIME_WAIT 状态等待两倍 MSL,保证本次连接的所有数据都从网络中消失 。
【tcpip是什么 tcpip协议通俗易懂】注:需要C/C++ Linux服务器开发学习资料私信“资料”(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等),免费分享
推荐阅读
- 写分过程非竖式计算是什么意思
- 满满的回忆杀是什么意思 满满的回忆杀是什么梗
- 淘冶情操是什么意思
- 电视重影是什么原因怎么办 电视机出现重影的解决方法
- witmind是什么牌子
- otg是什么 手机中的otg连接有何用处
- 毛森骨立是什么生肖
- 2与9的和一定是什么数
- 新年吃汤圆寓意是什么
- 贴吧lb是什么意思