TCP详解

控制位RST

TCP连接正常断开称为有序释放,置FIN,走四步分手。

连接异常时,置RST,连接复位。

场景还原:

1.无论Server和Client,对已建立连接的socket调用setsockopt(SO_LINGER),任何时候只要close(s),即刻发送RST,连接被重置,跳过四步分手,直接强关。


连接建立过程


连接过程中端口状态变化,如上图所示。

大量Client调用connect连接Server时,若某一时刻Client连接请求数大于Server处理速度,则发起connect的Client端口为SYN_SENT状态。



四步分手过程

简介

发送FIN,即要求关闭连接。进入FIN_WAIT_2,等待对方关闭连接。对方进入CLOSE_WAIT,继续工作。

对方发送FIN后,连接正式关闭。分别进入TIME_WAIT和CLOSE。

此为正常情况下连接的有序释放,走四步分手。


问题

1.率先关闭方需等待对方同意后方可释放连接

2.即便对方同意后,率先关闭方最终会导致端口进入TIME_WAIT,不可立即再用。(一段时间后TIME_WAIT进入CLOSE后,方可使用)


解决方式


连接建立后,对己方socket调用上述函数。

那么任何时候,只要己方关闭连接,则即刻发送RST,重置连接,跳过四步分手,暴力强关,两方端口都是CLOSE。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值