《一個(gè)IP能建立的最大連接數(shù)是多少?》要點(diǎn):
本文介紹了一個(gè)IP能建立的最大連接數(shù)是多少?,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
在探討這個(gè)問題前,我們先假設(shè)一種經(jīng)典的連接模型:
Client -> Load Balancer-> RealServer Pool
并且我們假設(shè)這里使用NAT模式的負(fù)載均衡,在這種模式下:
1.負(fù)載均衡器只留給客戶端一個(gè)公網(wǎng)IP地址(VIP);
2.客戶端發(fā)來的請(qǐng)求都被負(fù)載均衡器端截,然后通過調(diào)度算法轉(zhuǎn)發(fā)到RealServer Pool里面的某臺(tái)服務(wù)器;
3.這些RealServer都在一個(gè)私有網(wǎng)絡(luò)里面,對(duì)外不可見;
4.負(fù)載均衡器轉(zhuǎn)發(fā)請(qǐng)求到真實(shí)服務(wù)器(RealServer)的時(shí)候同時(shí)做了NAT,真實(shí)服務(wù)器看到的連接都是來自負(fù)載均衡器的(和真實(shí)服務(wù)器在一個(gè)私有網(wǎng)絡(luò)的IP).
首先,我們從Client Side(Client->Load Balancer)來分析:
這端的連接都由SourceIP:SoucePort->DesIP:DesPort唯一標(biāo)識(shí),所以對(duì)我們來說,能支持的連接數(shù)僅僅受限于負(fù)載均衡器的內(nèi)存數(shù)(連接數(shù)可以是65000+),因?yàn)镈esIP和DesPort都是已知的唯一的(比如IP:80).
然后再從Server Side(Load Balancer->RealServer)來分析:
這端的連接數(shù)剛好相反,每個(gè)連接都由負(fù)載均衡器的IP(這里稱MIP:Mapped IP)和隨機(jī)的端口進(jìn)行標(biāo)識(shí).即: MIP:RandomPort -> RealServerIP:80
這樣,因?yàn)樨?fù)載均衡器的端口也受限于TCP/IP的最大端口數(shù)64k(65536)限制,因此最多只能建立64k的服務(wù)器連接(server connnections).
由于瓶頸很可能就出現(xiàn)在服務(wù)器端連接上,針對(duì)這種情況,各負(fù)載均衡器廠家是怎么解決的呢?
1. NetScaler
我們首先來看NetScaler的解決辦法,NetScaler的解決辦法很簡單,增加MIP的個(gè)數(shù),這樣最大的服務(wù)器連接數(shù)將變成:
MaxServerConnections = 65536 * MIP數(shù)
2. F5
F5其實(shí)也使用了一樣的辦法,但是F5首先建立一個(gè)Source-NAT pool,然后在SNAT Pool里面加入多個(gè)IP地址.這樣得到的最大連接數(shù)和NetScaler完全一樣:
SA:SP -> DA:DP
10.1.1.1:1024 -> 10.1.1.100:80
10.1.1.2:1024 -> 10.1.1.100:80
PS: 這里10.1.1.1和10.1.1.2都在一個(gè)SNAT pool里面.
上述情況都是理論計(jì)算值,真實(shí)環(huán)境下的最大連接數(shù)還受限于各種因素:
1. 每個(gè)連接都要耗費(fèi)一定的資源,比如CPU、MEM,所以,真實(shí)值往往很難達(dá)到理論值;
2. 根據(jù)協(xié)議的不同,能達(dá)到的最大連接數(shù)也不一樣,比如HTTP/1.0連接的創(chuàng)建和關(guān)閉都非常快,而且瀏覽器對(duì)并發(fā)連接數(shù)有限制,所以,很難達(dá)到最大的理論值.HTTP/1.1支持流線技術(shù),多個(gè)請(qǐng)求可以復(fù)用一個(gè)連接,這樣就大大減少了并發(fā)連接數(shù).FTP或者telnet連接都是長連接,很容易達(dá)到最大值;
3. 很多設(shè)備(比如NetScaler)在服務(wù)器端都支持連接池(連接復(fù)用),里面的連接都是長連接,一樣實(shí)現(xiàn)了HTTP/1.1里面的流線技術(shù),一個(gè)連接就可以處理多個(gè)客戶端連接.這樣除了減少連接資源,同時(shí)還減少了負(fù)載均衡器的其他資源開銷,同時(shí)減低了內(nèi)網(wǎng)的帶寬;
4. 一些設(shè)備(比如NetScaler的TCP-OFFLOAD)支持TCP卸載,僅僅把已經(jīng)建立的連接發(fā)到服務(wù)器端,而TCP的三次握手完全有負(fù)載均衡器接管,這樣,服務(wù)器端的連接就成倍的減少.
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4606.html