單機最大tcp串連數

來源:互聯網
上載者:User

單機最大tcp串連數

網路編程

在tcp應用中,server事先在某個固定連接埠監聽,client主動發起串連,經過三路握手後建立tcp串連。那麼對單機,其最大並發tcp串連數是多少?

如何標識一個TCP串連

在確定最大串連數之前,先來看看系統如何標識一個tcp串連。系統用一個4四元組來唯一標識一個TCP串連:{local ip, local port,remote ip,remote port}。

client最大tcp串連數

client每次發起tcp串連請求時,除非綁定連接埠,通常會讓系統選取一個閒置本地連接埠(local port),該連接埠是獨佔的,不能和其他tcp串連共用。tcp連接埠的資料類型是unsigned short,因此本地連接埠個數最大隻有65536,連接埠0有特殊含義,不能使用,這樣可用連接埠最多隻有65535,所以在全部作為client端的情況下,最大tcp串連數為65535,這些串連可以連到不同的server ip。

server最大tcp串連數

server通常固定在某個本地連接埠上監聽,等待client的串連請求。不考慮地址重用(unix的SO_REUSEADDR選項)的情況下,即使server端有多個ip,本地監聽連接埠也是獨佔的,因此server端tcp串連4元組中只有remote ip(也就是client ip)和remote port(用戶端port)是可變的,因此最大tcp串連為用戶端ip數×用戶端port數,對IPV4,不考慮ip地址分類等因素,最大tcp串連數約為2的32次方(ip數)×2的16次方(port數),也就是server端單機最大tcp串連數約為2的48次方。

實際的tcp串連數

上面給出的是理論上的單機最大串連數,在實際環境中,受到機器資源、作業系統等的限制,特別是sever端,其最大並發tcp串連數遠不能達到理論上限。在unix/linux下限制串連數的主要因素是記憶體和允許的檔案描述符個數(每個tcp串連都要佔用一定記憶體,每個socket就是一個檔案描述符),另外1024以下的連接埠通常為保留連接埠。在預設2.6核心配置下,經過實驗,每個socket佔用記憶體在15~20k之間。

影響一個socket佔用記憶體的參數包括:

rmem_max

wmem_max

tcp_rmem

tcp_wmem

tcp_mem

grep skbuff /proc/slabinfo

對server端,通過增加記憶體、修改最大檔案描述符個數等參數,單機最大並發TCP串連數超過10萬 是沒問題的,國外 Urban Airship 公司在產品環境中已做到 50 萬並發 。在實際應用中,對大規模網路應用,還需要考慮C10K 問題。

原文:

http://wanshi.iteye.com/blog/1256282

http://www.cnblogs.com/Solstice/archive/2011/07/01/2095411.html

http://unix.stackexchange.com/questions/30509/what-is-the-formula-to-determine-how-much-memory-a-socket-consumes-under-linux

http://serverfault.com/questions/10852/what-limits-the-maximum-number-of-connections-on-a-linux-server

http://soft.chinabyte.com/os/285/12349285.shtml

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.