No buffer space available tcp协议无法释放问题

No buffer space available

今天碰到一个登录接口异常的问题,远程服务器发现日志报错No buffer space available,今天来分析下问题原因
理解这个问题原因我们必须知道tcp协议4次挥手的原理
在这里插入图片描述

tcp协议4次挥手的步骤

释放一个TCP连接,需要客户端和服务器总共发送4个包。客户端和服务器端均可主动发起挥手动作。在socket编程中,任何一方执行close()操作即可产生挥手操作。 这里以服务端首次挥手举例

  1. 第一次挥手
    服务端发送FIN=1和seq(序号)=x到客户端告诉客户端我要断开链接了,自己没有数据发送了,但是仍然可以接受数据
    进入FIN-WAIT-1状态
  2. 第二次挥手(ACK=1,ack=x+1,seq=v)
    客户端确定了服务端的FIN包,发送一个确认包,表明自己接受到了服务端关闭链接的请求,但还没有准备好关闭连接
    发送完毕后进入CLOSE_WAIT状态,服务端受到这个确定包之后进入FIN_WAIT_2状态,等待服务端关闭连接
  3. 第三次挥手(FIN=1 seq=y)
    客户端准备好关闭连接时,向服务端发送结束连接请求,FIN置为1
    发送完毕后,客户端进入LAST_ACK状态,服务端接受到这个确认包之后进入FIN_WAIT状态,等待服务端关闭连接
  4. 第四次挥手(ACK=1,ack&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值