1.TCP之2MSL
1.1 MSL
MSL:Maximum Segment Lifetime报文段最大生存时间,它是任何报文段被丢弃前在网络内的最长时间
- 为什么存在MSL
TCP报文段以IP数据报在网络内传输,而IP数据报则有限制其生存时间的TTL字段,并且TTL的限制是基于跳数
- MSL大小定义
RFC文档中规定为2分钟,但是实际实现过程中,MSL一般为:30秒、1分钟、2分钟
1.2 何为2MSL状态
在TCP调用connect建立socket的连接后,主动关闭socket连接的过程中有一个状态为Time_Wait(也就是2MSL等待机制,需要停留2MSL的时间),具体见下面的图:
- 什么时候有2MSL状态
只有主动关闭socket连接的时候才有此状态,并且在2MSL等待期间,定义这个连接的Socket Pair(客户的IP地址和端口号,服务器的IP地址和端口号)不能再被使用
1.3 2MSL机制作用
保证了最后一个ACK发送给被动关闭端,确保连接双方关闭完成,如果没有该机制,最后一个ACK丢失后会出现半连接的状态