美文网首页
tcp四次挥手相关选项

tcp四次挥手相关选项

作者: 欧阳_z | 来源:发表于2020-09-12 22:36 被阅读0次

1、tcp_orphan_retries
主动方发送 FIN 后处于 FIN_WAIT1 状态,收到 ACK 后转为 FIN_WAIT2。如果收不到对方返回的 ACK,内核会定时重发 FIN 报文,其中重发次数由 tcp_orphan_retries 参数控制,默认值是 0 表示 8 次:

$ cat /proc/sys/net/ipv4/tcp_orphan_retries
0

2、TCP 报文有序发送,当发送缓冲区还有数据没发送时,FIN 报文也不能提前发送。
因为TCP 有流控功能,当接收方将接收窗口设为 0 时,发送方就不能再发送数据。
所以,当攻击者下载大文件时,就可以通过将接收窗口设为 0,导致 FIN 报文无法发送,进而导致连接一直处于 FIN_WAIT1 状态。
解决方案是调整 tcp_max_orphans 参数:

$ cat /proc/sys/net/ipv4/tcp_max_orphans 
4096

如果孤儿连接数量大于它,新增的孤儿连接将不再走四次挥手,而是直接发送 RST 复位报文强制关闭。

3、FIN_WAIT_2
TCP 进入FIN_WAIT_2 状态后,如果迟迟收不到对端的 FIN 包,就会一直消耗系统资源。 为了防止这种开销,linux 设置了这个状态的超时时间 tcp_fin_timeout,默认为 60s,超过这个时间就会自动销毁该连接,可以工具实际情况调小。

$ cat /proc/sys/net/ipv4/tcp_fin_timeout
60

4、TIME-WAIT 超时时间

如果没有 TIME-WAIT,而最后一个ACK刚好丢包或延迟了,等我们复用该端口时,假设刚才延迟的ACK报文到达了,新连接就可能被旧的 FIN 报文错误的关闭了。
MSL 全称是 Maximum Segment Lifetime(报文段最大生存时间)。
Linux下 MSL 的值为 30 秒,TIME-WAIT2MSL ,所以 TIME-WAIT60秒。
定义在:
https://elixir.bootlin.com/linux/v5.0/source/include/net/tcp.h#L121

#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT
                  * state, about 60 seconds */

为什么是 2 倍的 MSL,这样可以允许报文丢失一次,如果 ACK丢了,对方重发的 FIN 会在第 2MSL 内到达。

5、TIME_WAIT 数量
当 TIME_WAIT 数量超过tcp_max_tw_buckets参数时,新关闭的连接就不再经历 TIME_WAIT 而直接关闭,当服务器的并发连接增多时可以适当调大该参数:

$ cat /proc/sys/net/ipv4/tcp_max_tw_buckets
4096

6、复用 TIME_WAIT 的连接
可以考虑设置为 1 来打开复用:

$ cat /proc/sys/net/ipv4/tcp_tw_reuse 
0

相关文章

  • tcp四次挥手相关选项

    1、tcp_orphan_retries主动方发送 FIN 后处于 FIN_WAIT1 状态,收到 ACK 后转为...

  • 理解TCP

    目录 1.TCP相关机制 2.TCP首部格式 1.TCP三次握手 1.TCP四次挥手 一.TCP相关机制 TCP通...

  • 网络资料总结3

    传输层相关 一 TCP 1.1 TCP状态 TCP连接的建立和终止 理解TCP的三次握手,四次挥手TCP 为什么是...

  • TCP的三次握手和四次挥手

    参考资料:[1].【TCP】详解TCP 三次握手和四次挥手[2]. iOS:为什么TCP连接要三次握手,四次挥手[...

  • TCP 三次握手 四次挥手

    一. TCP 三次握手 一. TCP 四次挥手 断开一个tcp连接则需要“四次挥手”: 客户端-发送一个FIN,用...

  • 二十(8)、TCP协议的四次挥手 ------ 2020-04-

    1、TCP连接的四次挥手 2、TCP连接的长连接

  • netstat

    常见参数 -a (all)显示所有选项,默认不显示LISTEN相关 -t (tcp)仅显示tcp相关选项 -u (...

  • 传输层

    ICMP UDP TCP TCP的三次握手 TCP四次挥手 TCP状态机Tcp_status_map.jpg

  • tcp/ip

    TCP/IP--理解TCP三次握手和四次挥手 - 简书

  • network basis 01

    1.TCP和UDP 2.TCP三次握手和四次挥手 TCP链接拆除需发送四个包,故称为 四次挥手, 客户端或服务器...

网友评论

      本文标题:tcp四次挥手相关选项

      本文链接:https://www.haomeiwen.com/subject/bjugektx.html