狀態:描述
CLOSED:無連接是活動的或正在進行
LISTEN:服務器在等待進入呼叫
SYN_RECV:一個連接請求已經到達,等待確認
SYN_SENT:應用已經開始,打開一個連接
ESTABLISHED:正常數據傳輸狀態
FIN_WAIT1:應用說它已經完成
FIN_WAIT2:另一邊已同意釋放
ITMED_WAIT:等待所有分組死掉
CLOSING:兩邊同時嘗試關閉
TIME_WAIT:另一邊已初始化一個釋放
LAST_ACK:等待所有分組死掉
想要讓服務器獲得更高的性能,需要對一些內核參數做出調整。
完整參數信息:man 7 tcp
修改 /etc/sysctl.conf,添加如下參數設置。
# 當 SYN 等待隊列溢出時,啟用 cookie。
net.ipv4.tcp_syncookies = 1
# 允許 TIME_WAIT socket 重用。
net.ipv4.tcp_tw_reuse= 1
# 快速回收 TIME_WAIT socket。
net.ipv4.tcp_tw_recycle= 1
# FIN_WAIT 超時時間。
net.ipv4.tcp_fin_timeout = 30
# 啟用 keepalive 時,發送消息的頻率。(默認: 7200 秒)
net.ipv4.tcp_keepalive_time = 1800
# 用於外連的端口范圍。(默認: 32768 到 61000)
net.ipv4.ip_local_port_range= 10000 65000
# SYN 隊列長度。(默認: 1024)
net.ipv4.tcp_max_syn_backlog = 8192
修改完成后執行如下命令生效。
$ sudo sysctl -p
也可以用一下命令:
cd /proc/sys/net/ipv4
echo 1 > tcp_tw_recycle