單機單網卡最大tcp長連接數真的是65535嗎?

很早微博上一直討論比較多的問題,這裏轉載個知乎的答案:單機單網卡最大tcp長連接數真的是65535嗎?

TCP四元組(quadruple)的概念,就算培訓班出來的也聽說過吧?不做解釋了。(源IP,源port,目標IP,目標port),最大能有多少連接數,全看這4個參數。從服務端accept客戶端的角度,IPv4爲例源IP可以有幾十億個,不同客戶端都可以connect過來源port理論上65535個,因爲local port range緣故,一般只有一半左右目標IP,單網卡也可以多IP,上限多少看操作系統限制目標port理論上65535個,由於port range,一般也只有一半左右四個因子相乘,可以有超過萬億級的連接數,當然只是理論上的一般我們對外的服務,會引入更多的限制,例如HTTP,目標端口是固定的,目標IP通過DNS負載均衡可以有多個,但是一般單機不會這麼做。儘管多了限制,上限還是很高啊,僅源IP和源端口相乘就比65535高不知道多少個數量級。除此之外,操作系統層面還有更多限制,比如進程fd上限,32位系統還有內存限制,64位系統單機物理內存也是有限的,現在最大的配置,內存也就T級,還沒有到P級。現實一點,一般的服務器,比如阿里雲上能買得到的配置,能承受多少連接數呢?100萬級是很容易做到的,再往高裏去就不是hello world這麼容易了。就算傻傻的開多線程,一個線程一個連接,也遠遠不止65535個啊。

  • 陳碩大神的一個相關文章:

關於 TCP 併發連接的幾個思考題與試驗

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章