标签:img 可靠 丢失 服务 序列 二次 链接 ack 状态
避免第二次握手报文丢失
=问为什么要在close-wait后再发出一次报文。因为某一方收到fin报文后这一方不再发出报文但是有可能收到报文,colse-wait这段时间为了保证主动关闭的那方发送的报文都被正确接收。
确保第四次报文被正确接收,被动关闭那一方没收到最后的ack报文会重传fin报文,fin报文+ack报文最长耗时2msl,能同步通信双方的状态。
若服务器是关闭连接的那一方,2MSL非常浪费资源。避免方法:不等2msl直接关连接。
对方发来一个fin 这一方回一个ack 然后不等2msl直接关,如果对方收到了ack 就也关闭了 如果对方没有收到ack 会再发一个fin过来 这个时候根据tcp的四元数据找不到对应的链接了,所以返回一个没有连接的错 说明连接已经关了。
标签:img 可靠 丢失 服务 序列 二次 链接 ack 状态
原文地址:https://www.cnblogs.com/rikarika/p/13583761.html