Closed chenxiaba closed 8 years ago
设置SYN包重试次数
sysctl -w net.ipv4.tcp_syn_retries = 2
默认5次(大约180s)
SYN_RECEIVED
服务端状态,一般15个左右。如果非常大,怀疑遭受到syn_flood
攻击
设置SYN_RECEIVED
状态等待队列个数,默认1024
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
打开syncookie
,在syn backlog
队列不足时,提供一种机制临时将syn
链接换出
sysctl -w net.ipv4.tcp_syncookies=1
设置服务端回ACK的重试次数,默认5次(180s)
sysctl -w net.ipv4.tcp_synack_retries = 2
设置keep-alive
sysctl -w net.ipv4.tcp_keepalive_time = 1200
相关的其它设置:
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200
FIN_WATI1
: 主动关闭的一方,发出FIN
后的状态
CLOSE_WAIT
:被动关闭的一方,收到客户端的FIN
后的状态
FIN_WAIT2
: 主动关闭的一方,收到被动关闭一方的ACK后的状态
sysctl -w net.ipv4.tcp_fin_timeout=30, 可以设定被动关闭方返回FIN后的超时时间,有效回收链接,避免syn-flood.
LAST_ACK
: 被动关闭的一方,在发送ACK
一段时间后(确保客户端收到),再发起一个FIN
TIME_WATI
: 主动关闭的一方,在收到被动关闭的FIN
包后,发送ACK
sysctl -w net.ipv4.tcp_tw_recycle = 1
快速回收TIME_WAIT
,使用NET
的时候,要注意这个参数不推荐;sysctl -w net.ipv4.tcp_tw_reuse =1
net.ipv4.tcp_max_tw_buckets:
处于time_wait状态的最多链接数,默认为180000.
设置TCP接收发送缓冲区
net.ipv4.tcp_rmem 参数 默认值: min=4096 default=87380 max=4194304
net.ipv4.tcp_wmem 参数 默认值: min=4096 default=16384 max=4194304
记录TCP相关知识点