{eval=Array;=+count(Array);}
答案:不一定!
有以下幾種情況:
1. 如果是服務(wù)端,如nginx,監(jiān)聽(tīng)在某個(gè)端口如80端口,那么理論上只受最大文件打開(kāi)數(shù)的限制(可以改的很大),可以很輕松超過(guò)65535個(gè)tcp連接,百萬(wàn)?千萬(wàn)?
2. 如果是客戶端,那不好意思,除了受最大文件打開(kāi)數(shù)限制,還受本地端口限制,理論上最多是65535個(gè)tcp連接
對(duì)網(wǎng)絡(luò)庫(kù)NewLife.Net進(jìn)行單機(jī)百萬(wàn)級(jí)長(zhǎng)連接測(cè)試,并持續(xù)收發(fā)數(shù)據(jù),檢測(cè)網(wǎng)絡(luò)庫(kù)穩(wěn)定性。
壓測(cè)結(jié)果,8月2日下午達(dá)到404萬(wàn)。
共使用6臺(tái)12C96G高配服務(wù)器,1臺(tái)作為服務(wù)端,5臺(tái)作為測(cè)試端,各測(cè)試端綁定20個(gè)IP發(fā)起100萬(wàn)連接,每個(gè)連接60秒請(qǐng)求一次服務(wù)端并接收響應(yīng)。
[NewLife.Net]單機(jī)400萬(wàn)長(zhǎng)連接壓力測(cè)試
https://www.yuque.com/smartstone/blood/net_100w
有65535個(gè)端口,但每個(gè)端口可以有很多tcp連接
舉個(gè)例子,一個(gè)80端口的http服務(wù)器,有100個(gè)人同時(shí)訪問(wèn),那80端口就有100個(gè)tcp連接
linux默認(rèn)連接數(shù)為1024,用ulimit修改文件打開(kāi)數(shù)量,每個(gè)TCP長(zhǎng)連接需要建立一個(gè)句柄,也就是打開(kāi)一個(gè)文件。linux中一切皆文件。
很多人動(dòng)不動(dòng)就號(hào)稱幾百萬(wàn)并發(fā),那是他根本就不懂linux的socket是如何運(yùn)作的。
linux的連接數(shù)受到socket隊(duì)列長(zhǎng)度和最大文件句柄數(shù)限制,可以用內(nèi)核微調(diào)來(lái)優(yōu)化,一般最高不超過(guò)65536。
見(jiàn)本人技術(shù)博客https://www.iteye.com/blog/wanshi-1256282。簡(jiǎn)單來(lái)說(shuō)看這臺(tái)主機(jī)的角色,如果這臺(tái)機(jī)器純做TCP客戶端,每個(gè)客戶端要占一個(gè)本地端口,那最多只有65535個(gè)TCP鏈接(除去0端口)。如果是做TCP Server,在IPv4地址條件下,一個(gè)端口理論上(內(nèi)存等資源足夠大情況下)最大能接受2^48個(gè)客戶端鏈接,如果這臺(tái)主機(jī)用所有的65535個(gè)端口做各種tcp server,那最大鏈接數(shù)還要乘以65535。如果它既做TCP客戶端又做服務(wù)端(它消費(fèi)其他server的服務(wù),又提供其他服務(wù)),那就綜合計(jì)算。
一塊網(wǎng)卡最大65535,一臺(tái)服務(wù)器可以配置多塊物理網(wǎng)卡。
當(dāng)然Linux下也可以一個(gè)網(wǎng)卡創(chuàng)建多個(gè)虛擬IP。
那么有多少個(gè)IP就有多少個(gè)65535。
五元組確定一個(gè),你確定一個(gè)tcp,確定一個(gè)主機(jī)ip,還有65535個(gè)你的端口還有65535對(duì)方的端口,還有二的32次方的ip,有些端口和ip不能用,所以取決你的內(nèi)存
tcp服務(wù)器能處理的連接數(shù)實(shí)際是由五元組來(lái)確定的,更準(zhǔn)確的說(shuō)是由客戶端的ip+port來(lái)決定連接數(shù)的,對(duì)于ipv4地址2^32,port是2^16,所以理論的連接數(shù)最多是2^48。但實(shí)際情況中這個(gè)和設(shè)備的內(nèi)存,一條tcp連接占用的內(nèi)存有關(guān),所以,要切記,65535并不是單機(jī)服務(wù)器處理的連接數(shù)上限。65535硬要說(shuō)是上限,那就是單機(jī)開(kāi)放不同客戶端的連接數(shù)。實(shí)際這也是不確切的,單機(jī)情況下,可以通過(guò)設(shè)置虛擬ip來(lái)突破單機(jī)65535這個(gè)上限。
以上是網(wǎng)上找的資料,來(lái)自csdn帶著眼鏡看不清的論點(diǎn),感覺(jué)有些道理,希望對(duì)你有幫助。
65535是16進(jìn)制的FFFF,這個(gè)和連接數(shù)沒(méi)有關(guān)系,它的意思是一臺(tái)電腦對(duì)外開(kāi)放的端口可以有65535個(gè)端口號(hào),一個(gè)端口可以連接的客戶端取決于服務(wù)器的性能,也許是10個(gè),也可能100萬(wàn)個(gè)連接
0
回答0
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答0
回答