可以在同一端口(單個套接字)上與服務器通信的併發客戶端(使用不同端口號)的最大數量是多少?什麼因素可能影響這個數字?我正在Linux環境中尋找這個信息w.r.t telnet。服務器的單個端口(套接字)上的併發連接的最大數量
回答
這部分取決於您的操作系統。
然而對特定端口沒有限制。然而,併發連接數量有限制,通常受內核支持的文件描述符數量(例如2048)的限制。
需要記住的是,TCP連接是唯一的,並且連接是一對端點(本地和遠程IP地址和端口),因此如果1000個連接連接到服務器上的同一端口,則無關緊要因爲連接都是獨一無二的,因爲另一端是不同的。
另一個需要注意的限制是機器只能製造大約64K的出站連接或連接的內核限制,以較低者爲準。這是因爲端口是一個無符號的16位數字(0-65535),每個出站連接使用其中一個端口。
您可以通過給機器額外的IP地址來擴展此項。每個IP地址是另一個64K地址的地址空間。
比你關心的還要多。更確切地說。
- 超過你的代碼可以實際處理(由於其他原因)
- 超過你的客戶實際上將使
- 比你更可以處理在單箱由於性能原因
- 比你更需要在一個盒子裏,因爲你的負載均衡器會將它們分配到幾個之中因爲可用性原因無論如何
我可以保證它比所有這些都多。有大量套接字的可擴展性限制,可以解決(谷歌的C10K問題)。在實踐中,在Linux下一個進程有可能使用超過10,000個套接字。如果每臺服務器有多個進程,則可以再次增加進程。
沒有必要使用單個端口,因爲如果需要,您的專用負載均衡器將能夠循環多個端口。
如果您爲1000多個客戶端進程中的10多個服務運行服務,則它可能保持正常工作可能相當重要,因此您需要幾臺服務器來進行冗餘。因此,您將不會遇到部署更多服務器的問題。
有趣的是,知道負載平衡器會在多個端口上循環播放! –
人們可以在單個系統(Linux)上輕鬆使用數十萬(如果可用)套接字。絕對是所有可用的。你正在做出錯誤的假設。 – lucian303
我在Windows上做了一個測試,在一個套接字上做了多個環回連接。 Windows在16372標記之後拒絕分配任何東西。
迴環連接有其自身的侷限性。首先,客戶端的操作系統通常只使用一定範圍內的臨時端口(因此只能創建給定數量的端口)。另一方面,127.0.0.1(環回地址)的連接通常使用相同的源地址(即127.0.0.1)。您必須將本地端綁定到不同的地址才能解決這些限制。 – cHao
- 1. 連接到兩個不同端口上的服務器的TCP套接字
- 2. 可通過端口套接字發送的最大數據量
- 3. 使用單個端口號的多套接字服務器
- 4. 併發連接的最大數量jBoss
- 5. 連接多個客戶端的異步套接字服務器
- 6. 限制服務器端的併發連接數量?
- 7. 發送到APNS套接字服務器的最大設備數
- 8. 套接字:無法連接到服務器或特定端口
- 9. 使用多個端口的套接字客戶端/服務器
- 10. 服務器上打開的套接字的最大數量應該是多少?
- 11. j2me中的套接字連接中可以打開的最大端口數
- 12. Java套接字 - 關閉到服務器套接字的telnet客戶端連接
- 13. java套接字服務器和套接字客戶端之間的連接
- 14. 客戶端 - 服務器Unix套接字和端口轉發
- 15. 網絡套接字連接服務器端的管理
- 16. 環回接口上的客戶端服務器連接
- 17. 同一端口套接字上的多個連接C++
- 18. 套接字最大發送數量?
- 19. TCP服務器所需的套接字端口的最小數目是多少?
- 20. 套接字 - IPEndpoint端口(最大值)
- 21. Apple通知服務的最大併發連接數是多少
- 22. 多端的Netty套接字服務器
- 23. 最大套接字連接與epoll的
- 24. 沒有端口轉發的Java客戶端 - 服務器連接?
- 25. 連接到服務器後客戶端TCP套接字端口更改
- 26. 從單個客戶端套接字連接到多個服務器C
- 27. DHCP服務器套接字接口
- 28. 服務器斷開並重新連接後,客戶端端口/套接字會發生什麼變化?
- 29. whois的TCP套接字連接失敗的一個服務器
- 30. IOexception發送一個對象到服務器(套接字連接)
另一件要提到的是客戶端的臨時端口範圍。 –
繼續我的搜索,我登陸了BSD的下面的鏈接,它提供了有關kern.maxfiles的一些好處,因爲每個打開的文件,套接字或fifo使用一個文件描述符,而大規模生產服務器可能很容易需要數千文件描述符,取決於同時運行的服務的種類和數量 - http://www.freebsd.org/doc/handbook/configtuning-kernel-limits.html 快速鏈接不起作用嗎?我認爲,這在這裏也起着重要的作用。 –
因此,似乎文件描述符是確定Linux中服務器上特定端口上併發連接數的主要因素之一。 下面的鏈接似乎表達了增加Linux中文件描述符的最大數量的方法 - http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/ http://www.cs.uwaterloo.ca/~brecht/servers/openfiles.html –