2014-01-07 24 views

回答

1

這是平臺依賴。在Unix中,如果積壓隊列已滿,則傳入的SYN將被刪除。在其他平臺中,這種情況會導致RST。

0

如果系統內存不足,可能會在系統內丟棄收到的SYN數據包。另一種情況是,如果服務器處理積壓隊列的速度很慢,那麼它可能會達到高水位,並且任何新的recv SYN都將被丟棄。 backlog隊列深度是通過linux中listen()調用的第二個參數設置的。 Linux套接字上的backlog參數的行爲隨Linux 2.2而改變。現在它指定了等待被接受的完全建立的套接字的隊列長度,而不是不完整的連接請求的數量。不完整套接字隊列的最大長度可以使用/ proc/sys/net/ipv4/tcp_max_syn_backlog來設置。 Linux上的默認值是128。較低的值可能會降低負載下的服務器響應時間。

+1

這幾天默認值更像500。 Windows在這種情況下不會丟棄SYN,它會發出RST。 – EJP

+0

是的,我編輯它 –

相關問題