单机单网卡最大tcp长连接数真的是65535吗?
很早微博上一直討論比較多的問題,這里轉(zhuǎn)載個(gè)知乎的答案:單機(jī)單網(wǎng)卡最大tcp長(zhǎng)連接數(shù)真的是65535嗎?
- 作者:許懷遠(yuǎn)
鏈接:https://www.zhihu.com/question/66553828/answer/244313925
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
TCP四元組(quadruple)的概念,就算培訓(xùn)班出來的也聽說過吧?不做解釋了。(源IP,源port,目標(biāo)IP,目標(biāo)port),最大能有多少連接數(shù),全看這4個(gè)參數(shù)。從服務(wù)端accept客戶端的角度,IPv4為例源IP可以有幾十億個(gè),不同客戶端都可以connect過來源port理論上65535個(gè),因?yàn)閘ocal port range緣故,一般只有一半左右目標(biāo)IP,單網(wǎng)卡也可以多IP,上限多少看操作系統(tǒng)限制目標(biāo)port理論上65535個(gè),由于port range,一般也只有一半左右四個(gè)因子相乘,可以有超過萬億級(jí)的連接數(shù),當(dāng)然只是理論上的一般我們對(duì)外的服務(wù),會(huì)引入更多的限制,例如HTTP,目標(biāo)端口是固定的,目標(biāo)IP通過DNS負(fù)載均衡可以有多個(gè),但是一般單機(jī)不會(huì)這么做。盡管多了限制,上限還是很高啊,僅源IP和源端口相乘就比65535高不知道多少個(gè)數(shù)量級(jí)。除此之外,操作系統(tǒng)層面還有更多限制,比如進(jìn)程fd上限,32位系統(tǒng)還有內(nèi)存限制,64位系統(tǒng)單機(jī)物理內(nèi)存也是有限的,現(xiàn)在最大的配置,內(nèi)存也就T級(jí),還沒有到P級(jí)。現(xiàn)實(shí)一點(diǎn),一般的服務(wù)器,比如阿里云上能買得到的配置,能承受多少連接數(shù)呢?100萬級(jí)是很容易做到的,再往高里去就不是hello world這么容易了。就算傻傻的開多線程,一個(gè)線程一個(gè)連接,也遠(yuǎn)遠(yuǎn)不止65535個(gè)啊。
- 陳碩大神的一個(gè)相關(guān)文章:
關(guān)于 TCP 并發(fā)連接的幾個(gè)思考題與試驗(yàn)
總結(jié)
以上是生活随笔為你收集整理的单机单网卡最大tcp长连接数真的是65535吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是字符集
- 下一篇: solr基本查询和高级查询