具體的client-server通信模型以及最為常用的通信模式


 實現虛擬網絡服務的主要技術,指出IP負載均衡技術是在負載調度器的實現技術中效率最高的。

在已有的IP負載均衡技術中:

1)有通過網絡地址轉換(Network Address Translation)將一組服務器構成一個高性能的、高可用的虛擬服務器,我們稱之為VS/NAT技術(Virtual Server via Network Address Translation)。

2)在分析VS/NAT的缺點和網絡服務的非對稱性的基礎上,我們提出了通過IP隧道實現虛擬服務器的方法VS/TUN (Virtual Server via IP Tunneling)

3)通過直接路由實現虛擬服務器的方法VS/DR(Virtual Server via Direct Routing)。

  它們可以極大地提高系統的伸縮性。VS/NAT、VS/TUN和VS/DR技術是LVS集群中實現的三種IP負載均衡技術

第一種模式

VS/NAT技術(Virtual Server via Network Address Translation)

下面的這種nat模式的數據包傳輸模式不是很常用,因為存在兩個弊端:
1、數據包大小傳輸有限制
2、網絡服務的非對稱性,具體的是用戶的下載文件的速度的傳輸速度和上傳的速度相差很大
3、數據包無論是從哪到哪都會走負載均衡服務器,導致了無用資源的浪費

 

 

 

 

 第二個模式:

VS/DR(Virtual Server via Direct Routing)

這個client-server-client數據包的傳輸模型才是用的最多的模型(弊端:由負載均衡服務器和realserver必須是在同一網段)
 

 

 

注意這個最為常用的通信的方式:其中的三個vip都是一樣的,
 
在全中國的應用的實例:全國在杭州、北京等地有很多個數據中心(可以理解為我們所說的負載均衡服務器,)之后這個負載均衡服務器,他們的后面連接着很多的realserver(真實的服務器),具體的數據包的過程:見第二個圖
圖一:
 

 

 

圖二:

 

 

 
 
a、b。。。代表的是數據中心(均衡服務器),里面的點代表的是客戶端,周圍的客戶端都是向他們發出請求的,之后負載均衡服務器的做法是:見圖三
 
 
 
圖三:
其中右側的那個長方形就是具體的負載均衡服務器,里面的橫線代表的是一個個的realserver
具體realserver中的做法:見圖四以及上面的解釋

 

 

 圖四

client向負載均衡服務器發送一個CIP_VIP形式的數據包,之后發到一個負載均衡服務器,被負載均衡服務器查看自己的VIP和發過來的封裝成的數據包CIP_VIP去判斷是否接收,。之后被具體的負載均衡服務器接收之后,就會均衡服務器中的DIP中記錄的realserver中的所有的mac地址(具體的這些mac地址是之前負載均衡服務器和realserver相互交互的時候記錄保存下來的mac地址)之后均衡服務器會將CIP_VIP這個從客戶端收到的數據包包裝一個含有realserver的mac地址的層,之后就會將這個再次的包裝一層的數據包發給相應的mac地址的realserver服務器,之后的過程,之后realserver端直接根據收到的CIP_VIP   在內存中建立一個realserver里面存在的socket(這個可以在linux中使用netstat -natp)去查看現階段的這台服務器建立的所有的scoket連接,其中由於從客戶端收到了CIP_VIP 的請求,所以會建立一個CIP:PORT     VIP:PORT的socket連接,之后這個服務器端包裝好想要返回給客戶端的數據包之后,就會直接的去根據以前建立的CIP:PORT     VIP:PORT的socket連接,直接走自己身上有的PIP(public ip)直接的發送數據包到之前發送請求給這個realserver的客戶端,這樣的話就會避免了比如客戶端下載東西對應的服務器上傳東西,上傳的速度就會大大的提升

具體的圖中三個VIP是完全的一樣的,只是realserver中的vip是不會暴露在公共下的,只是自己知道,用於到時候realserver收到的包裝有mac層的數據包拆開之后,見到里面的CIP_VIP中的vip是自己內部的vip,這時這個realserver才會真正的一次收到客戶端發過來的CIP_VIP數據包,----------終於完成了一次數據包的client---->server的傳輸,之后

返回的數據包一般直接是之前建立的CIP:PORT     VIP:PORT的socket連接,直接走自己身上有的PIP(public ip)直接的發送數據包到之前發送請求給這個realserver的客戶端,這樣的話數據包中的很多的IO限制就會解除掉了。

realserver要建立一個對外隱藏的vip,這樣的話,整個網絡中對外暴露的只有負載均衡服務器上的VIP,而 RealServer上的存在的VIP只有自己知道,不會去暴露給外界,這樣的話,realserver端也就有VIP了。之后等待客戶端發數據包給負載均衡服務器的時候,直接不用D_NAT轉換了,直接可以發給相應的Realserver(真實服務器),
 
 
 

第三模式:

VS/TUN (Virtual Server via IP Tunneling)

又稱隧道模式

 

也就是由負載均衡服務器到realserver之間的傳輸變成了:

    負載均衡服務器將CIP_VIP這個包在外包一層DIP_RIP(這個是由負載均衡服務器到realserver的一個數據包)用這個去包裝之前的那個CIP_VIP,直接走隧道到realserver

    之后realserver返回客戶端可以走隧道返回或者走pip---->一個運營商----->client

 

具體的負載均衡的實現見下節----LVS

原創文章:轉載請注明作者及出處!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM