Web-Server

高流量站點如何為超過 65535 個 TCP 連接提供服務?

  • April 16, 2021

如果一台機器可以擁有的埠數有限制,並且套接字只能綁定到未使用的埠號,那麼遇到大量請求(超過最大埠號)的伺服器如何處理這個問題?它只是通過使系統分佈式來完成的,即許多機器上的許多伺服器嗎?

您誤解了埠號:伺服器僅偵聽一個埠,並且可以從連接到該埠的客戶端獲得大量打開的套接字。

在 TCP 級別上,每個同時連接的元組(源 ip、源埠、目標 ip、目標埠)必須是唯一的。這意味著單個客戶端不能同時打開超過 65535 個與單個伺服器的連接。但是伺服器可以(理論上)為每個客戶端提供 65535 個同時連接。

因此,在實踐中,伺服器僅受它必須服務請求的 CPU 功率、記憶體等限制,而不是與伺服器的 TCP 連接數。

引用自:https://serverfault.com/questions/533611