【网络编程】TIME_WAIT和2MSL

当客户端接收到服务端发送的FIN后,即进入TIME_WAIT状态。

客户端在TIME_WAIT状态需要维持2个MSL时间。MSL 是max segment lifetime缩写,值IP 数据包在英特网中最大的存活时间。 

TIME_WAIT有以下两个原因:

1、服务器可能无法收到客服发送的最终ACK,导致服务器无法关闭连接。由于服务器没有收到ACK,将会再次发送FIN,当客户处于TIME_WAIT状态时,再次收到服务器的FIN,将再次发送ACK,以保证服务端的正常关闭。

2、首先假设服务器端的ip地址为IP_1,端口为p_1,客户端的ip地址IP_2,端口为p_2。IP_1:p_1  与IP_2:p_2已经建立连接。

现在双方第一次通信结束。第二个服务又在IP_1:p_1  与IP_2:p_2之间建立了tcp连接。

由于网络的复杂性,第一次连接的分组(IP数据报)还可能存在在网络中,那么这个分组就会影响这次的连接,影响通信。

所以存在TIME_WAIT状态,并且维持2个MSL时间,保证旧的分组在网络中逝去,不会影响新的连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值