亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

負載均衡方法和負載均衡器的制作方法

文檔序號:7749857閱讀:115來源:國知局
專利名稱:負載均衡方法和負載均衡器的制作方法
技術領域
本發(fā)明總體上涉及計算機網(wǎng)絡,尤其涉及一種負載均衡方法和負載均衡器。
背景技術
隨著計算機等技術的發(fā)展,網(wǎng)絡已遍及人們生活的各個角落。目前現(xiàn)有網(wǎng)絡的各個核心部分隨著業(yè)務量的提高,訪問量和數(shù)據(jù)流量也得以快速增長,對其處理能力和計算能力的需求也相應地增大,這使得單個服務器根本無法承擔。為了解決該問題,一種方法是扔掉現(xiàn)有設備而進行大量的硬件升級。這樣,一方面會造成現(xiàn)有資源的浪費,另一方面如果再一次面臨業(yè)務量提升時又將難以處理,我們知道即使性能再卓越的設備也不能滿足無限增長的業(yè)務需求,所以當業(yè)務量再提升時就又需要進行大量的硬件升級的高額成本投入,因此,該方法成本很高,而且隨著業(yè)務量提升,成本投入也不斷加大。另一種方法是使用多臺服務器來共同分擔業(yè)務量,即,多個服務器。可以將后端的多個物理服務器進行分組,每組服務器支持某種應用,并為該組服務器設置一個虛IP/端口(v_ip:v_p0rt)來對外提供服務,而且在域名服務器(DNQ中存儲的每個應用服務器地址就是該虛IP/端口,而不是真實的服務器地址。當客戶端要訪問服務器時,可以以v_ip v_port為目的IP/端口來發(fā)送數(shù)據(jù)包,根據(jù)該數(shù)據(jù)包中的目的IP/端口,在地址為 v_ip v_port的該組服務器中選擇一個實服務器,然后將連接請求發(fā)給該實服務器。在多個服務器中選擇一個實服務器,也即在各服務器間進行負載均衡,其目的是擴展現(xiàn)有網(wǎng)絡和服務器的帶寬、增加吞吐量、加強網(wǎng)絡數(shù)據(jù)處理能力、提高網(wǎng)絡的靈活性和可用性。當前,在服務器間對網(wǎng)絡數(shù)據(jù)流進行負載均衡的方法,比較常用的是4層負載均衡方法和7層負載均衡方法。下面介紹在NAT (Network Address ^Translate,網(wǎng)絡地址轉(zhuǎn)換)模式下4層負載均衡方法,如圖1所示,其包括步驟1)以從客戶端接收到的數(shù)據(jù)包的源IP/端口(c_ip:c_p0rt)和目的IP/端口(V_ip:V_port)為索引查找會話表(Session),其中,所述kssion指用于記錄客戶端連接信息的數(shù)據(jù)結(jié)構(gòu),v_ip:v_port指虛IP/端口,c_ip:c_p0rt指客戶端IP/端口 ;如果找到,轉(zhuǎn)到步驟4);如果未找到,進行步驟2)選擇一臺實服務器作為目標服務器;步驟 3)在 kssion 中建立一條條目(v_ip:v_port/c_ip:c_port/r_ip:r_port), 其中,r_ip:r_port指實服務器IP/端口 ;步驟4)根據(jù)kssion中與v_ip v_port/c_ip c_port對應的實服務器的IP和服務器端口(r_ip:r_p0rt),把所述數(shù)據(jù)包的目的IP/端口修改為實服務器IP和服務器端 Π ;步驟幻計算該數(shù)據(jù)包的校驗和;步驟6)將數(shù)據(jù)包發(fā)給所述實服務器。上述是對進入數(shù)據(jù)流,即,從客戶端到服務器的數(shù)據(jù)流的處理方法。
如圖2所示,對于外出數(shù)據(jù)流,S卩,從服務器到客戶端的數(shù)據(jù)流的處理,按如下步驟1’)以從實服務器發(fā)出的數(shù)據(jù)包的源IP/端口(r_ip:r_p0rt)和目的IP/端口(c_ip:c_port)為索弓I查找 Session ;如果未找到,丟棄該數(shù)據(jù)包,否則步驟2’ )根據(jù)義^化!!中相應的條目,把該數(shù)據(jù)包的源IP/端口修改為虛IP和端口(v_ip:v_p0rt);步驟3’)計算該數(shù)據(jù)包的校驗和;步驟4’)將所述數(shù)據(jù)包發(fā)送給客戶端。從上述可知,由于外出數(shù)據(jù)流的目的IP是客戶端IP,所以無法在客戶端配置主機或者網(wǎng)段路由(這是因為客戶端IP地址包含了互聯(lián)網(wǎng)各網(wǎng)段的IP地址,設定主機或者網(wǎng)段路由需要指定特定的IP地址或者網(wǎng)段匹配源IP地址,無法用少數(shù)幾條路由涵蓋所有客戶端IP),而只能用默認路由處理(這是因為默認路由不需要指定特定的IP地址或者網(wǎng)段匹配源IP地址,可以用一條默認路由涵蓋所有客戶端),所以實服務器的默認路由必須指向負載均衡器。由于通過默認路由,服務器IP地址和負載均衡器后端IP地址需要設置為相同的網(wǎng)段,路由信息只能根據(jù)2層MAC地址獲得,從而必須與負載均衡器2層互通。2層互通也即在OSI網(wǎng)絡模型中的數(shù)據(jù)鏈路層連通,這將導致所有的實服務器都在一個廣播域中,如果所有的實服務器并非都在一個廣播域中,例如在不同交換機的 VLAN(Virtual LAN,虛擬局域網(wǎng))中,那么需要打VLAN Trunk(VLAN Trunk是讓連接在不同交換機上的相同VLAN中的主機2層互通的技術),并且還要在后端實服務器的同一塊網(wǎng)卡上綁定多個IP地址通過策略路由實現(xiàn)和負載均衡器的3層互通。這將使機房的網(wǎng)絡拓撲結(jié)構(gòu)和RS配置的復雜化,從而導致維護困難。目前解決上述問題的方法是采用7層負載均衡技術。但是此方法修改了客戶端的 IP地址,即將客戶端IP地址修改為7層負載均衡器的后端IP地址,使得后端RS只能看到 7層負載均衡器的后端IP地址,由于常常需要對客戶的行為進行分析,而對客戶的行為進行分析是基于日志進行的,可是采用此方法,RS根本看不到客戶端IP地址,也就是說,在日志中不存在客戶端IP地址的影子,因此導致對客戶行為的分析難以進行。其他7層負載均衡針對該問題的解決方案是將客戶端IP地址放入HTTP頭部X-Forwarded-For選項中,需要后端RS上的應用程序解析HTTP頭,因此需要修改應用程序而導致復雜性增大。

發(fā)明內(nèi)容
本發(fā)明要解決的主要技術問題是提供一種能夠?qū)崿F(xiàn)跨網(wǎng)段互聯(lián)的負載均衡方法和負載均衡器。為了解決上述問題,本發(fā)明負載均衡方法的技術方案為其使用會話表來存儲客戶端IP/端口和虛IP/端口,并在所述會話表中增加了存儲后端IP/端口的項,對于進入數(shù)據(jù)流處理步驟包括步驟(10),在該步驟(10)中以從客戶端接收到的進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/ 端口和進入數(shù)據(jù)流目的IP/端口為索引查找所述會話表;如果未找到,執(zhí)行步驟(20),在該步驟00)中選擇一臺實服務器作為目標服務器;否則執(zhí)行步驟(50);在步驟00)之后執(zhí)行步驟(30),在該步驟(30)中選擇后端IP和后端端口 ;
步驟(40),在該步驟00)中根據(jù)所選擇的目標服務器、后端IP和后端端口在會話表中建立一條條目,所述條目包括虛IP/端口、客戶端IP/端口、實服務器IP/端口和后端 IP/端口 ;步驟(50),在該步驟(50)中根據(jù)會話表中的相應條目,把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流目的IP/端口修改為實服務器IP/端口,以及把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/ 端口修改為后端IP/端口 ;步驟(60),在該步驟(60)中計算所述進入數(shù)據(jù)包的校驗和;步驟(70),在該步驟(70)中將計算過校驗和的進入數(shù)據(jù)包發(fā)給所述實服務器。對于外出數(shù)據(jù)流處理步驟包括步驟(10’),在該步驟(10’ )中以從所述實服務器接收的外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口和外出數(shù)據(jù)流目的IP/端口為索引查找所述會話表;如果未找到,丟棄所述外出數(shù)據(jù)包;否則執(zhí)行步驟00’),在該步驟00’ )中根據(jù)所述會話表中的相應條目,把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口修改為虛IP/端口并把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流目的IP/端口修改為客戶端IP/端口 ;步驟(30’),在該步驟(30’ )中計算所述外出數(shù)據(jù)包的校驗和;步驟00’),在該步驟00’)中將計算過校驗和的外出數(shù)據(jù)包發(fā)送給所述客戶端。其中,所述步驟O0)進一步包括步驟O01),在該步驟O01)中將所有實服務器的IP地址和端口以及當前負載通過列表組織起來;步驟002),在該步驟Q02)中將采用輪詢算法在所述列表中順次選擇所述實服務器IP地址和端口。此外,所述步驟(30)進一步包括步驟(301),在步驟(301)中采用輪詢算法選擇一個后端IP ;步驟(302),在步驟(302)中采用輪詢算法選擇一個后端端口 ;步驟(303),在步驟(30 中在所述會話表中查找所選擇的后端IP/端口,若找到, 則轉(zhuǎn)到步驟(302)。優(yōu)選地,在所述步驟(50)后還包括步驟(51),在步驟(51)中將所述相應條目中的客戶端IP/端口作為新的TCP選項條目添加在數(shù)據(jù)報TCP頭中。所述校驗和包括IP頭部校驗和以及TCP頭部校驗和。所述會話表還包括流量統(tǒng)計、自旋鎖和標志位。相應地,本發(fā)明負載均衡器的技術方案包括存儲客戶端IP/端口和虛IP/端口的會話表,所述會話表還包括存儲后端IP/端口的項,所述負載均衡器還包括如下用于處理進入數(shù)據(jù)流的單元進入數(shù)據(jù)流查找單元,以從客戶端接收到的進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/端口和進入數(shù)據(jù)流目的IP/端口為索引查找所述會話表;選擇實服務器單元,用于選擇一臺實服務器作為目標服務器;選擇后端IP和后端端口單元,用于選擇后端IP和后端端口 ;建立條目單元,用于根據(jù)所選擇的目標服務器、后端IP和后端端口在會話表中建
6立一條條目,所述條目包括虛IP/端口、客戶端IP/端口、實服務器IP/端口和后端IP/端
π ;進入數(shù)據(jù)流修改單元,用于根據(jù)會話表中的相應條目,把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流目的IP/端口修改為實服務器IP/端口,以及把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/ 端口修改為后端IP/端口 ;進入數(shù)據(jù)流校驗單元,用于計算所述進入數(shù)據(jù)包的校驗和;進入數(shù)據(jù)流發(fā)送單元,用于將計算過校驗和的進入數(shù)據(jù)包發(fā)給所述實服務器;其中,如果所述進入數(shù)據(jù)流查找單元的結(jié)果為否,則觸發(fā)所述選擇實服務器單元,否則觸發(fā)所述進入數(shù)據(jù)流修改單元;所述選擇實服務器單元連接所述選擇后端IP和后端端口單元,其進而連接所述建立條目單元;所述建立條目單元連接所述進入數(shù)據(jù)流修改單元,其進而連接所述進入數(shù)據(jù)流校驗單元后連接所述進入數(shù)據(jù)流發(fā)送單元。此外,本發(fā)明負載均衡器還包括下列處理外出數(shù)據(jù)流的單元外出數(shù)據(jù)流查找單元,用于以從所述實服務器接收的外出數(shù)據(jù)包的外出數(shù)據(jù)流源 IP/端口和外出數(shù)據(jù)流目的IP/端口為索引查找所述會話表;外出數(shù)據(jù)流修改單元,用于根據(jù)所述會話表中的相應條目,把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口修改為虛IP/端口并把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流目的IP/端口修改為客戶端IP/端口 ;外出數(shù)據(jù)流校驗單元,用于計算所述外出數(shù)據(jù)包校驗和;外出數(shù)據(jù)流發(fā)送單元,用于將所述外出數(shù)據(jù)包發(fā)送給客戶端;其中,如果所述外出數(shù)據(jù)流查找單元的結(jié)果為否,則丟棄所述數(shù)據(jù)包,否則觸發(fā)所述外出數(shù)據(jù)流修改單元;所述外出數(shù)據(jù)流修改單元連接所述外出數(shù)據(jù)流校驗單元,其進而連接所述外出數(shù)據(jù)流發(fā)送單元。另外,本發(fā)明負載均衡器還包括TCP選項添加單元,用于將所述相應條目中的客戶端IP/端口作為新的TCP選項條目添加在數(shù)據(jù)報TCP頭中。與現(xiàn)有技術相比,本發(fā)明負載均衡方法和負載均衡器的有益效果為首先,由于本發(fā)明采用了兩次NAT轉(zhuǎn)換,即SNAT和DNAT,實現(xiàn)了跨網(wǎng)段互聯(lián),從而不需要采用昂貴的7層負載均衡設備,扔掉現(xiàn)有設備進行大量硬件升級,也不需要設計復雜的網(wǎng)絡拓撲就能夠提高網(wǎng)絡數(shù)據(jù)流處理能力。其次,由于本發(fā)明把客戶端IP/端口作為新的TCP選項條目添加在數(shù)據(jù)報TCP頭, 所以應用程序不需要修改就可以獲得客戶端IP地址,便于大規(guī)模的應用程序遷移。


下面參考結(jié)合附圖所進行的下列描述以便更透徹地理解本公開內(nèi)容,在附圖中圖1是現(xiàn)有技術負載均衡方法對進入數(shù)據(jù)流的處理的流程圖;圖2是現(xiàn)有技術負載均衡方法對外出數(shù)據(jù)流的處理的流程圖3是本發(fā)明負載均衡方法對進入數(shù)據(jù)流的處理的流程圖;圖4是本發(fā)明負載均衡方法對外出數(shù)據(jù)流的處理的流程圖;圖5是本發(fā)明負載均衡器對進入數(shù)據(jù)流進行處理的結(jié)構(gòu)示意圖;圖6是本發(fā)明負載均衡器對外出數(shù)據(jù)流進行處理的結(jié)構(gòu)示意圖; 圖7是包括兩臺負載均衡器的示例的示意圖。
具體實施例方式下面將詳細描述本發(fā)明的具體實施例,但本發(fā)明并不限于下述具體實施例。如圖3所示,本發(fā)明負載均衡方法,使用會話表來存儲客戶端IP/端口和虛IP/端口,在所述會話表中增加存儲后端IP/端口的項,例如下表1所示
權利要求
1.一種負載均衡方法,使用會話表來存儲客戶端IP/端口和虛IP/端口,其特征在于, 在所述會話表中增加存儲后端IP/端口的項,對于進入數(shù)據(jù)流處理步驟包括步驟(10),在該步驟(10)中以從客戶端接收到的進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/端口和進入數(shù)據(jù)流目的IP/端口為索引查找所述會話表;如果未找到,執(zhí)行步驟(20),在該步驟00)中選擇一臺實服務器作為目標服務器;否則執(zhí)行步驟(50);在步驟00)之后執(zhí)行步驟(30),在該步驟(30)中選擇后端IP和后端端口 ; 步驟(40),在該步驟00)中根據(jù)所選擇的目標服務器、后端IP和后端端口在會話表中建立一條條目,所述條目包括虛IP/端口、客戶端IP/端口、實服務器IP/端口和后端IP/ 端□;步驟(50),在該步驟(50)中根據(jù)會話表中的相應條目,把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流目的IP/端口修改為實服務器IP/端口,以及把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/端口修改為后端IP/端口 ;步驟(60),在該步驟(60)中計算所述進入數(shù)據(jù)包的校驗和;步驟(70),在該步驟(70)中將計算過校驗和的進入數(shù)據(jù)包發(fā)給所述實服務器。
2.如權利要求1所述的負載均衡方法,其特征在于,對于外出數(shù)據(jù)流處理步驟包括 步驟(10’),在該步驟(10’ )中以從所述實服務器接收的外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口和外出數(shù)據(jù)流目的IP/端口為索弓I查找所述會話表;如果未找到,丟棄所述外出數(shù)據(jù)包;否則執(zhí)行步驟00’),在該步驟00’ )中根據(jù)所述會話表中的相應條目,把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口修改為虛IP/端口并把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流目的IP/端口修改為客戶端IP/端口 ; 步驟(30’),在該步驟(30’ )中計算所述外出數(shù)據(jù)包的校驗和; 步驟00’),在該步驟00’ )中將計算過校驗和的外出數(shù)據(jù)包發(fā)送給所述客戶端。
3.如權利要求2所述的負載均衡方法,其特征在于,所述步驟O0)進一步包括 步驟001),在該步驟O01)中將所有實服務器的IP地址和端口以及當前負載通過列表組織起來;步驟002),在該步驟Q02)中將采用輪詢算法在所述列表中順次選擇所述實服務器 IP地址和端口。
4.如權利要求3所述的負載均衡方法,其特征在于,所述步驟(30)進一步包括 步驟(301),在步驟(301)中采用輪詢算法選擇一個后端IP ;步驟(302),在步驟(302)中采用輪詢算法選擇一個后端端口 ; 步驟(303),在步驟(30 中在所述會話表中查找所選擇的后端IP/端口,若找到,則轉(zhuǎn)到步驟(302)。
5.如權利要求1至3任一項所述的負載均衡方法,其特征在于,在所述步驟(50)后還包括步驟(51),在步驟(51)中將所述相應條目中的客戶端IP/端口作為新的TCP選項條目添加在數(shù)據(jù)報TCP頭中。
6.如權利要求5所述的負載均衡方法,其特征在于,所述校驗和包括IP頭部校驗和以及TCP頭部校驗和。
7.如權利要求6所述的負載均衡方法,其特征在于,所述會話表還包括流量統(tǒng)計、自旋鎖和標志位。
8.一種負載均衡器,包括存儲客戶端IP/端口和虛IP/端口的會話表,其特征在于,所述會話表還包括存儲后端IP/端口的項,所述負載均衡器還包括如下用于處理進入數(shù)據(jù)流的單元進入數(shù)據(jù)流查找單元,以從客戶端接收到的進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/端口和進入數(shù)據(jù)流目的IP/端口為索引查找所述會話表;選擇實服務器單元,用于選擇一臺實服務器作為目標服務器; 選擇后端IP和后端端口單元,用于選擇后端IP和后端端口 ; 建立條目單元,用于根據(jù)所選擇的目標服務器、后端IP和后端端口在會話表中建立一條條目,所述條目包括虛IP/端口、客戶端IP/端口、實服務器IP/端口和后端IP/端口;進入數(shù)據(jù)流修改單元,用于根據(jù)會話表中的相應條目,把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流目的IP/端口修改為實服務器IP/端口,以及把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/端口修改為后端IP/端口 ;進入數(shù)據(jù)流校驗單元,用于計算所述進入數(shù)據(jù)包的校驗和; 進入數(shù)據(jù)流發(fā)送單元,用于將計算過校驗和的進入數(shù)據(jù)包發(fā)給所述實服務器;其中, 如果所述進入數(shù)據(jù)流查找單元的結(jié)果為否,則觸發(fā)所述選擇實服務器單元,否則觸發(fā)所述進入數(shù)據(jù)流修改單元;所述選擇實服務器單元連接所述選擇后端IP和后端端口單元,其進而連接所述建立條目單元;所述建立條目單元連接所述進入數(shù)據(jù)流修改單元,其進而連接所述進入數(shù)據(jù)流校驗單元后連接所述進入數(shù)據(jù)流發(fā)送單元。
9.如權利要求8所述的負載均衡器,其特征在于,還包括下列處理外出數(shù)據(jù)流的單元 外出數(shù)據(jù)流查找單元,用于以從所述實服務器接收的外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口和外出數(shù)據(jù)流目的IP/端口為索引查找所述會話表;外出數(shù)據(jù)流修改單元,用于根據(jù)所述會話表中的相應條目,把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流源IP/端口修改為虛IP/端口并把所述外出數(shù)據(jù)包的外出數(shù)據(jù)流目的IP/端口修改為客戶端IP/端口 ;外出數(shù)據(jù)流校驗單元,用于計算所述外出數(shù)據(jù)包校驗和; 外出數(shù)據(jù)流發(fā)送單元,用于將計算過校驗和的外出數(shù)據(jù)包發(fā)送給客戶端;其中, 如果所述外出數(shù)據(jù)流查找單元的結(jié)果為否,則丟棄所述數(shù)據(jù)包,否則觸發(fā)所述外出數(shù)據(jù)流修改單元;所述外出數(shù)據(jù)流修改單元連接所述外出數(shù)據(jù)流校驗單元,其進而連接所述外出數(shù)據(jù)流發(fā)送單元。
10.如權利要求9所述的負載均衡器,其特征在于,還包括TCP選項添加單元,用于將所述相應條目中的客戶端IP/端口作為新的TCP選項條目添加在數(shù)據(jù)報TCP頭中。
全文摘要
本發(fā)明公開了一種負載均衡方法和負載均衡器。本發(fā)明負載均衡方法使用會話表來存儲客戶端IP/端口和虛IP/端口,在所述會話表中增加存儲后端IP/端口的項,對于進入數(shù)據(jù)流,若在所述會話表中找不到以進入數(shù)據(jù)流源IP/端口和進入數(shù)據(jù)流目的IP/端口為索引的條目,則選擇實服務器、后端IP和后端端口,并在會話表中建立一條條目,該條目包括虛IP/端口、客戶端IP/端口、實服務器IP/端口和后端IP/端口,然后根據(jù)會話表中的相應條目,把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流目的IP/端口修改為實服務器IP/端口,以及把所述進入數(shù)據(jù)包的進入數(shù)據(jù)流源IP/端口修改為后端IP/端口,即進行兩次NAT轉(zhuǎn)換;對于外出數(shù)據(jù)流也同樣進行兩次NAT轉(zhuǎn)換。因此,采用本發(fā)明的技術方案能夠?qū)崿F(xiàn)跨網(wǎng)段互聯(lián)。
文檔編號H04L29/08GK102255932SQ201010184118
公開日2011年11月23日 申請日期2010年5月20日 優(yōu)先權日2010年5月20日
發(fā)明者吳佳明, 孫垚光, 李聞, 田燕, 陳建 申請人:百度在線網(wǎng)絡技術(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1