本發(fā)明涉及通信領(lǐng)域,尤其涉及一種負(fù)載均衡方法和流量轉(zhuǎn)發(fā)設(shè)備。
背景技術(shù):
:數(shù)據(jù)中心作為業(yè)務(wù)網(wǎng)絡(luò)的核心,面臨著眾多的挑戰(zhàn),擴(kuò)展性、靈活性、高性能、可靠性和安全性,無一不是對數(shù)據(jù)中心的要求。尤其重要的一點(diǎn)是:在訪問請求急劇增加的時候,服務(wù)器仍要保證快速、穩(wěn)定的傳送應(yīng)用到客戶端,而其中最重要的一個技術(shù)保障就是負(fù)載均衡技術(shù)。負(fù)載均衡(LoadBalancing)又稱負(fù)載分擔(dān)(LoadBalance),一般用于提高網(wǎng)絡(luò)的整體處理能力,能夠在不改變現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)情況下,擴(kuò)展網(wǎng)絡(luò)的帶寬、增加網(wǎng)絡(luò)的吞吐量、加強(qiáng)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的可用性。現(xiàn)有負(fù)載均衡通常采用下述均衡方法:從數(shù)據(jù)報(bào)文中提取整合的比特序列得到負(fù)載均衡參數(shù),然后采用固化的哈希(Hash)算法(如:循環(huán)冗余碼校驗(yàn)(CyclicRedundancyCheck,CRC)算法)計(jì)算報(bào)文的Hash數(shù)值,然后根據(jù)出端口數(shù)目對得到的Hash值進(jìn)行取模運(yùn)算獲得Hash模值,將報(bào)文通過與該Hash模值對應(yīng)的物理端口轉(zhuǎn)發(fā)出去。由于,現(xiàn)有技術(shù)中采用固定的哈希算法的進(jìn)行負(fù)載均衡計(jì)算方法,算法固定且單一,導(dǎo)致非均勻分布的流量按照算法負(fù)載后更加不均,同一負(fù)載均衡的不同出接口的流量可以達(dá)到很大差異,難以徹底解決負(fù)載均衡不均的問題。技術(shù)實(shí)現(xiàn)要素:為解決上述問題,本發(fā)明提供一種負(fù)載均衡方法和流量轉(zhuǎn)發(fā)設(shè)備,以解決現(xiàn)有采用固定且單一的哈希算法進(jìn)行負(fù)載均衡,導(dǎo)致的負(fù)載均衡不均的問題。本發(fā)明的實(shí)施例采用如下技術(shù)方案:第一方面,本發(fā)明實(shí)施例提供一種負(fù)載均衡方法,包括:當(dāng)接收到數(shù)據(jù)報(bào)文時,先獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù);然后,采用第一種哈希Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值;對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值;最后,根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。如此,將多種哈希算法組合在一起進(jìn)行負(fù)載均衡計(jì)算,針對于單個數(shù)據(jù)報(bào)文來說,其根據(jù)Hash最終值選擇出的物理端口是比較理想的,從而導(dǎo)致非均勻分布的多條流量按照該算法負(fù)載后分布比較均勻,同一負(fù)載均衡的不同出接口的流量之間差異不大,解決了負(fù)載均衡不均的問題。需要說明的是,經(jīng)過上述過程之后只計(jì)算出一個數(shù)據(jù)報(bào)文的物理端口,此時,當(dāng)流量轉(zhuǎn)發(fā)設(shè)備接收到多個數(shù)據(jù)報(bào)文時,對每個數(shù)據(jù)報(bào)文均可以采用上述方法進(jìn)行處理,使得報(bào)文可以均衡地在多條鏈路上進(jìn)行轉(zhuǎn)發(fā)。其中,當(dāng)對多條數(shù)據(jù)報(bào)文采用上述方法進(jìn)行處理時,需要注意的是,組成每條數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù)的特征信息可以相同,也可以不完全相同;對每條數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù)采用的Hash算法的組合可以相同,也可以不完全相同。第二方面,本發(fā)明實(shí)施例提供一種流量轉(zhuǎn)發(fā)設(shè)備,包括:獲取單元,用于獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù);計(jì)算單元,用于采用第一種哈希Hash算法對所述獲取單元獲取到的負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述獲取單元獲取到的負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值;并對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值;轉(zhuǎn)發(fā)單元,用于根據(jù)所述計(jì)算單元計(jì)算出的第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。由上可知,本發(fā)明的實(shí)施例提供一種負(fù)載均衡方法及流量轉(zhuǎn)發(fā)設(shè)備,獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù),采用第一種哈希Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值;對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值;根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。如此,將多種哈希算法組合在一起進(jìn)行負(fù)載均衡計(jì)算,針對于單個數(shù)據(jù)報(bào)文來說,其根據(jù)Hash最終值選擇出的物理端口是比較理想的,從而導(dǎo)致非均勻分布的多條流量按照該算法負(fù)載后分布比較均勻,同一負(fù)載均衡的不同出接口的流量之間差異不大,解決了負(fù)載均衡不均的問題。附圖說明為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1示出了可以應(yīng)用于本發(fā)明的網(wǎng)絡(luò)架構(gòu)的示意圖;圖2示出了本發(fā)明實(shí)施例提供的流量轉(zhuǎn)發(fā)設(shè)備20的結(jié)構(gòu)圖;圖3示出了本發(fā)明實(shí)施例提供的一種負(fù)載均衡方法的流程圖;圖4示出了本發(fā)明實(shí)施例提供的另一流量轉(zhuǎn)發(fā)設(shè)備10的結(jié)構(gòu)圖;圖5為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)報(bào)文的示意圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。需要說明的是,在本發(fā)明的描述中,術(shù)語“第一”、“第二”、“另一”等指示的系統(tǒng)或元件為基于實(shí)施例描述的具備一定功能的系統(tǒng)或元件,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的系統(tǒng)或元件必須有此命名,因此不能理解為對本發(fā)明的限制。本發(fā)明的基本原理是:當(dāng)流量轉(zhuǎn)發(fā)設(shè)備接收到大量的數(shù)據(jù)報(bào)文后,分別根據(jù)兩種或兩種以上的哈希算法(如CRC生成多項(xiàng)式)對每個數(shù)據(jù)報(bào)文進(jìn)行哈希計(jì)算,獲得數(shù)據(jù)報(bào)文的兩個或兩個以上的Hash值,并將兩個或兩個以上的Hash值進(jìn)行邏輯運(yùn)算,獲得一個新的Hash值,根據(jù)該Hash值選擇相應(yīng)的物理端口進(jìn)行報(bào)文轉(zhuǎn)發(fā)。如此,將多種哈希算法組合在一起進(jìn)行負(fù)載均衡計(jì)算,針對于單個數(shù)據(jù)報(bào)文來說,其根據(jù)Hash最終值選擇出的物理端口是比較理想的,從而導(dǎo)致非均勻分布的多條流量按照該算法負(fù)載后分布比較均勻,同一負(fù)載均衡的不同出接口的流量之間差異不大,解決了負(fù)載均衡不均的問題。例如,圖1示出了其中應(yīng)用本發(fā)明的網(wǎng)絡(luò)架構(gòu)的簡化圖,所述網(wǎng)絡(luò)結(jié)構(gòu)包括:流量轉(zhuǎn)發(fā)設(shè)備20、以及與流量轉(zhuǎn)發(fā)設(shè)備連接的服務(wù)器10;在圖1中,流量轉(zhuǎn)發(fā)設(shè)備20包括m個物理端口,可通過本發(fā)明提供的負(fù)載均衡方法將接收到的數(shù)據(jù)報(bào)文進(jìn)行處理后,均衡地通過m個鏈路轉(zhuǎn)發(fā)至服務(wù)器10。具體的,圖1所述的流量轉(zhuǎn)發(fā)設(shè)備20可以為集存儲器、通信接口(接收器、發(fā)送器)、處理器為一體的,以轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文為主的轉(zhuǎn)發(fā)設(shè)備,如可以為路由器。例如,圖2為本發(fā)明實(shí)施例提供的流量轉(zhuǎn)發(fā)設(shè)備20的結(jié)構(gòu)圖,如圖2所示,所述流量轉(zhuǎn)發(fā)設(shè)備20可以包括:處理器201、存儲器202、接收器203、發(fā)送器204以及至少一個通信總線205,用于實(shí)現(xiàn)這些裝置之間的連接和相互通信;其中,處理器201可能是一個中央處理器(centralprocessingunit,簡稱為CPU),也可以是特定集成電路(ApplicationSpecificIntegratedCircuit,ASIC),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個或多個集成電路,例如:一個或多個微處理器(digitalsingnalprocessor,DSP),或,一個或者多個現(xiàn)場可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA);用于根據(jù)存儲器202配置文件中預(yù)先配置的兩種或兩種以上的哈希算法(如CRC生成多項(xiàng)式)對接收器203接收到每個數(shù)據(jù)報(bào)文進(jìn)行哈希計(jì)算,獲得數(shù)據(jù)報(bào)文的兩個或兩個以上的Hash值,并將兩個或兩個以上的Hash值進(jìn)行邏輯運(yùn)算,獲得一個新的Hash值,根據(jù)該Hash值選擇發(fā)送器204中相應(yīng)的出接口進(jìn)行報(bào)文轉(zhuǎn)發(fā)。存儲器202,可以是易失性存儲器(volatilememory),例如隨機(jī)存取存儲器(random-accessmemory,RAM);或者非易失性存儲器(non-volatilememory),例如只讀存儲器(read-onlymemory,ROM),快閃存儲器(flashmemory),硬盤(harddiskdrive,HDD)或固態(tài)硬盤(solid-statedrive,SSD);或者上述種類的存儲器的組合,用于存儲可實(shí)現(xiàn)本發(fā)明負(fù)載均衡方法的相關(guān)應(yīng)用程序、以及配置文件。接收器203和發(fā)送器204,可用于與外部網(wǎng)元之間進(jìn)行數(shù)據(jù)通信;所述接收器203,具有用于接收外部網(wǎng)元發(fā)送的數(shù)據(jù)報(bào)文;所述發(fā)送器204包括多個出接口,具體用于將數(shù)據(jù)報(bào)文均衡地通過不同的出接口轉(zhuǎn)發(fā)出去。通信總線205可以分為地址總線、數(shù)據(jù)總線、控制總線等,可以是工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(IndustryStandardArchitecture,ISA)總線、外部設(shè)備互連(PeripheralComponent,PCI)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ExtendedIndustryStandardArchitecture,EISA)總線等。為便于表示,圖2中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。為了便于描述,以下實(shí)施例一以步驟的形式示出并描述了本發(fā)明中流量轉(zhuǎn)發(fā)設(shè)備20執(zhí)行的負(fù)載均衡方法,其中,示出的步驟也可以在除流量轉(zhuǎn)發(fā)設(shè)備20之外的諸如一組可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。雖然在圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。實(shí)施例一圖3為本發(fā)明實(shí)施例提供的一種負(fù)載均衡方法的流程圖,如圖3所示,所述方法可以包括:步驟101:獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù)。其中,所述負(fù)載均衡參數(shù)可以由數(shù)據(jù)報(bào)文中表征所述數(shù)據(jù)報(bào)文的特征信息的比特序列排列而成;所述特征信息可以包括:源MAC地址、目的MAC地址、源互聯(lián)網(wǎng)協(xié)議(SourceInternetProtocol,源IP)、目的IP(DestinationIP)、源端口(SourcePort)、目的端口(DestinationPort)中的一個或多個信息。優(yōu)選的,流量轉(zhuǎn)發(fā)設(shè)備可以根據(jù)配置命令,從所述數(shù)據(jù)報(bào)文的報(bào)文頭中獲取符合配置命令的特征信息的比特序列,將獲取到的比特序列組合在一起作為所述數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù);其中,配置命令用于指示形成負(fù)載均衡參數(shù)的特征信息為哪些信息。例如,若配置命令為:port-channelload-balance{src-ip|dst-ip|src-port|dst-port},則表示由源IP、目的IP、源端口以及目的端口的比特序列組成負(fù)載均衡參數(shù),此時,可以提取數(shù)據(jù)報(bào)文的報(bào)文頭中的這四個特征信息(如圖5所示,源IP用31bit表示,目的IP用32bit表示,源端口用16bit表示,目的端口用16bit表示),并將源IP、目的IP、源端口和目的端口的比特序列組成一個96比特的比特序列用作負(fù)載均衡參數(shù)。步驟102:采用第一種哈希Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值。其中,所述Hash算法可以為循環(huán)冗余碼校驗(yàn)(CyclicRedundancyCheck,CRC)生成多項(xiàng)式,還可以為其他的可用于Hash計(jì)算的方法,如:MD5,SHA等;在本發(fā)明實(shí)施例中,第一種Hash算法和第二種Hash算法可以相同,也可以不相同。優(yōu)選的,流量轉(zhuǎn)發(fā)設(shè)備可以根據(jù)配置命令,按照配置命令中預(yù)先配置的第一種Hash算法和第二種Hash算法分別對負(fù)載均衡參數(shù)進(jìn)行計(jì)算,獲得第一Hash值和第二Hash值。需要說明的是,第一種Hash算法和第二種Hash算法可以根據(jù)需要從業(yè)界常用的Hash算法中選擇合適的Hash進(jìn)行配置,通常情況下,本領(lǐng)域技術(shù)人員可以經(jīng)過多次試驗(yàn),將組合后負(fù)載均衡效果比較好的兩種哈希Hash算法用于步驟102的計(jì)算。例如:若在一特定的流量模型下,本領(lǐng)域技術(shù)人員經(jīng)過多次試驗(yàn)發(fā)現(xiàn)用多項(xiàng)式:x^8+x^7+x^4+x^3+x+1和x^17+x^4+1進(jìn)行負(fù)載均衡后,負(fù)載均衡效果優(yōu)于單一使用x^17+x^4+1,或x^8+x^7+x^4+x^3+x+1進(jìn)行負(fù)載均衡時的效果,則可以在該流量模型下,將多項(xiàng)式:x^8+x^7+x^4+x^3+x+1和x^17+x^4+1作為第一種Hash算法和第二Hash算法,來實(shí)現(xiàn)本案提供的負(fù)載均衡方法。雖然,本案步驟102只提到了利用兩種Hash算法的組合進(jìn)行負(fù)載均衡,但是,可以理解的是,本案這種將Hash算法組合進(jìn)行負(fù)載均衡的思想,已給出了可以將兩種以上的Hash算法進(jìn)行組合進(jìn)行負(fù)載均衡的啟示,即用兩種以上的Hash算法分別對負(fù)載均衡參數(shù)進(jìn)行計(jì)算,獲得兩種以上的Hash值進(jìn)行后續(xù)計(jì)算的方案,也包含在本發(fā)明所要保護(hù)的范圍之內(nèi)。步驟103:對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值。示例性的,對所述第一Hash值和所述第二Hash值進(jìn)行異或操作、或者與操作,得到所述數(shù)據(jù)報(bào)文的第三Hash值具體可以包括:將所述數(shù)據(jù)報(bào)文的N個HASH值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值具體可以包括:對所述第一Hash值和所述第二Hash值進(jìn)行異或操作、或者與操作,得到所述數(shù)據(jù)報(bào)文的第三Hash值。需要說明的,本發(fā)明所述的邏輯計(jì)算包括但不限于上述兩種操作,還可以為其他形式的計(jì)算方式,本發(fā)明對此不進(jìn)行限定。例如:若用x^8+x^7+x^4+x^3+x+1對負(fù)載均衡參數(shù)計(jì)算后的Hash值為110,用和x^17+x^4+1對負(fù)載均衡參數(shù)計(jì)算后的Hash值為010,則將110和010這兩個Hash經(jīng)過與操作后,可以得到第三Hash值010。步驟104:根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。示例性的,所述根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文具體可以包括:用當(dāng)前工作的物理端口的數(shù)量對所述第三Hash值進(jìn)行取模操作,獲得所述數(shù)據(jù)報(bào)文的Hash模值;查詢預(yù)設(shè)的物理端口列表中與所述第三Hash模值對應(yīng)的物理端口,其中,所述物理端口列表包含:物理端口與Hash模值的對應(yīng)關(guān)系;通過所述物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。例如,流量轉(zhuǎn)發(fā)設(shè)備有5個物理接口(A~E),且物理端口列表如下表1所示,此時,若根據(jù)第三Hash計(jì)算出報(bào)文的Hash模值為7,則確根據(jù)表1可以確定該報(bào)文通過物理端口B轉(zhuǎn)發(fā)出去。表1物理端口Hash模值A(chǔ)1、6B2、7C3、8D4E5需要說明的是,經(jīng)過上述過程之后只計(jì)算出一個數(shù)據(jù)報(bào)文的物理端口,此時,當(dāng)流量轉(zhuǎn)發(fā)設(shè)備接收到多個數(shù)據(jù)報(bào)文時,對每個數(shù)據(jù)報(bào)文均可以采用上述方法進(jìn)行處理,使得報(bào)文可以均衡地在多條鏈路上進(jìn)行轉(zhuǎn)發(fā)。其中,當(dāng)對多條數(shù)據(jù)報(bào)文采用上述方法進(jìn)行處理時,需要注意的是,組成每條數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù)的特征信息可以相同,也可以不完全相同;對每條數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù)采用的多種Hash算法的可以相同,也可以不完全相同;例如,若有兩條待轉(zhuǎn)發(fā)的數(shù)據(jù)報(bào)文:報(bào)文1、報(bào)文2,可以根據(jù)源IP、目的IP的比特序列組成報(bào)文1的負(fù)載均衡參數(shù),根據(jù)源IP、目的IP、源端口以及目的端口的比特序列組成報(bào)文2的負(fù)載均衡參數(shù);可以對報(bào)文1的負(fù)載均衡參數(shù)采用2種Hash算法進(jìn)行計(jì)算,獲得兩個Hash值后進(jìn)行邏輯計(jì)算得到報(bào)文1的第三Hash值,對報(bào)文2的負(fù)載均衡參數(shù)采用4種Hash算法進(jìn)行計(jì)算,獲得四個Hash值后進(jìn)行邏輯計(jì)算得到報(bào)文2的第三Hash值。由上可知,本發(fā)明的實(shí)施例提供一種負(fù)載均衡方法,獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù),采用第一種哈希Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值;對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值;根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。如此,將多種哈希算法組合在一起進(jìn)行負(fù)載均衡計(jì)算,針對于單個數(shù)據(jù)報(bào)文來說,其根據(jù)Hash最終值選擇出的物理端口是比較理想的,從而導(dǎo)致非均勻分布的多條流量按照該算法負(fù)載后分布比較均勻,同一負(fù)載均衡的不同出接口的流量之間差異不大,解決了負(fù)載均衡不均的問題。根據(jù)本發(fā)明實(shí)施例,本發(fā)明下述實(shí)施例還提供了一種流量轉(zhuǎn)發(fā)設(shè)備,優(yōu)選地用于實(shí)現(xiàn)上述方法實(shí)施例中的方法。實(shí)施例二圖4為本發(fā)明實(shí)施例提供的一種流量轉(zhuǎn)發(fā)設(shè)備10的結(jié)構(gòu)圖,所述流量轉(zhuǎn)發(fā)設(shè)備10可以是路由器,如圖4所示,所述流量轉(zhuǎn)發(fā)設(shè)備可以包括:獲取單元101,用于獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù)。其中,所述負(fù)載均衡參數(shù)可以由數(shù)據(jù)報(bào)文中表征所述數(shù)據(jù)報(bào)文的特征信息的比特序列排列而成;所述特征信息可以包括:源MAC地址、目的MAC地址、源互聯(lián)網(wǎng)協(xié)議(SourceInternetProtocol,源IP)、目的IP(DestinationIP)、源端口(SourcePort)、目的端口(DestinationPort)中的一個或多個信息。計(jì)算單元102,用于采用第一種哈希Hash算法對所述獲取單元101獲取到的負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述獲取單元101獲取到的負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值;并對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值。轉(zhuǎn)發(fā)單元103,用于根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。優(yōu)選的,所述獲取單元101,具體用于可以根據(jù)配置命令,從所述數(shù)據(jù)報(bào)文的報(bào)文頭中獲取符合配置命令的特征信息的比特序列,將獲取到的比特序列組合在一起作為所述數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù);其中,配置命令用于指示形成負(fù)載均衡參數(shù)的特征信息為哪些信息。示例性的,所述計(jì)算單元102對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值具體為,所述計(jì)算單元102,用于:對所述第一Hash值和所述第二Hash值進(jìn)行異或操作、或者與操作,得到所述數(shù)據(jù)報(bào)文的第三Hash值。需要說明的,本發(fā)明所述的邏輯計(jì)算包括但不限于上述兩種操作,還可以為其他形式的計(jì)算方式,本發(fā)明對此不進(jìn)行限定。示例性的,所述轉(zhuǎn)發(fā)單元103根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文具體為,所述轉(zhuǎn)發(fā)單元103,用于:用當(dāng)前工作的物理端口的數(shù)量對所述第三Hash值進(jìn)行取模操作,獲得所述數(shù)據(jù)報(bào)文的Hash模值;查詢預(yù)設(shè)的物理端口列表中與所述第三Hash模值對應(yīng)的物理端口,其中,所述物理端口列表包含:物理端口與Hash模值的對應(yīng)關(guān)系;通過所述物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。由上可知,本發(fā)明的實(shí)施例提供一種流量轉(zhuǎn)發(fā)設(shè)備,獲取數(shù)據(jù)報(bào)文的負(fù)載均衡參數(shù),采用第一種哈希Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第一Hash值,采用第二種Hash算法對所述負(fù)載均衡參數(shù)進(jìn)行計(jì)算,得到所述數(shù)據(jù)報(bào)文的第二Hash值;對所述第一Hash值和所述第二Hash值進(jìn)行邏輯計(jì)算,得到所述數(shù)據(jù)報(bào)文的第三Hash值;根據(jù)所述第三Hash值選擇物理端口轉(zhuǎn)發(fā)所述數(shù)據(jù)報(bào)文。如此,將多種哈希算法組合在一起進(jìn)行負(fù)載均衡計(jì)算,針對于單個數(shù)據(jù)報(bào)文來說,其根據(jù)Hash最終值選擇出的物理端口是比較理想的,從而導(dǎo)致非均勻分布的多條流量按照該算法負(fù)載后分布比較均勻,同一負(fù)載均衡的不同出接口的流量之間差異不大,解決了負(fù)載均衡不均的問題。在本發(fā)明各個實(shí)施例中的流量轉(zhuǎn)發(fā)設(shè)備的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理包括,也可以兩個或兩個以上單元集成在一個單元中。且上述的各單元既可以采用硬件形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-OnlyMemory,簡稱ROM)、隨機(jī)存取存儲器(RandomAccessMemory,簡稱RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3