3.2 TCP四次挥手性能提升

提纲

主动方优化

关闭连接的方式通常有两种

  1. RST报文关闭 进程异常退出,内核会发送RST报文关闭,它可以不走四次挥手流程,一种暴力关闭方式。
  2. FIN报文关闭 安全关闭方式必须通过四次挥手,它由进程close和shutdown函数发起FIN报文
  • close: 完全断开连接,无法传输数据,也不能发送数据,也叫做【孤儿连接】
  • shutdown: 由第二参数决定连接方式
    • SHUT_RD(0): 关闭【读】方向连接
    • SHUT_WR(1): 关闭【写】方向连接
    • SHUT_RWWR(2): 关闭【读、写】方向连接

一、FIN 报文重传次数、FIN_WAIT 状态时间

  • FIN_WAIT1 状态的优化
    主动方发送FIN报文后,连接就处于FIN_WAIT1状态,正常情况收到被动方ACK,则变为FIN_WAIT2状态。
    但是迟迟收不到对方返回ACK,内核会定时重发FIN报文,修改重发tcp_orphan_retries参数。
  • FIN_WAIT2 状态的优化
    当主动方收到ACK报文后,会处于FIN_WAIT2状态,tcp_fin_timeout 控制了这个状态下连接的持续时长,默认值是 60 秒

二、孤儿连接上限个数

三、调整time_wait状态上限个数

TIME_WAIT 是主动方四次挥手的最后一个状态,也是最常遇见的状态。

四、复用time_wait状态的连接

你可能感兴趣的:(3.2 TCP四次挥手性能提升)