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