在一个非套接字上尝试了一个操作_网络编程实战(二:提高篇_上)

一,TIME_WAIT

1,来源:TCP三次握手建立连接,四次挥手断开连接,在四次挥手的过程中,发起断开请求的一方会有一段时间进入TIME_WAIT,具体时机,详见下图:

0ce5bc34bf2ac72d7d3ca7e4fa54e650.png

2,时长:客户端在TIME_WAIT的停留时间是固定的,被指定为2MSL,MSL是规范定义的网络报文的最大生存时间,即,如果网络中的一个报文段在MSL时间内,未被接收,就会被直接丢弃。Linux在实现中,指定MSL=30秒,因此,TIME_WAIT的时间就规定为60秒。

3,危害:客户端是发起连接的一方,通常也是主动断开连接的一方,如果客户端对TIME_WAIT处理不当,会导致其所在的服务器在高并发的情况下,TIME_WAIT状态的连接过多,将本地端口耗尽,在一段时间内,无法发起新的连接,直到TIME_WAIT被系统自动回收关闭。

4,作用:在TCP的容错设计,协议假设报文会出错,导致重传的前提下:

4.1,保证客户端正常关闭:如果服务端没有收到客户端第一次发出的ACK(n+1),会在一来一回

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值