一種網(wǎng)絡(luò)負(fù)載均衡的混合算法【專利摘要】網(wǎng)絡(luò)負(fù)載均衡在計(jì)算機(jī)網(wǎng)絡(luò)中具有很重要的作用,負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性?,F(xiàn)有的負(fù)載均衡算法有round-robin,基于流的Hash調(diào)度,和基于流分片的FS調(diào)度。本發(fā)明提出了一種混合的負(fù)載均衡調(diào)度算法,這里混合的對(duì)象是Hash算法和FS算法。核心思想是,在FS算法的基礎(chǔ)上,引入一個(gè)大小可配置的flow-slice表(FS?table),用以存儲(chǔ)已經(jīng)出現(xiàn)過(guò)的flow的5元組及上一條數(shù)據(jù)包的時(shí)間。【專利說(shuō)明】一種網(wǎng)絡(luò)負(fù)載均衡的混合算法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),具體為負(fù)載均衡算法?!?br>背景技術(shù):
】[0002]網(wǎng)絡(luò)負(fù)載均衡在計(jì)算機(jī)網(wǎng)絡(luò)中具有很重要的作用,負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。負(fù)載均衡包括調(diào)度和轉(zhuǎn)發(fā)兩部分,如圖1所示。調(diào)度是負(fù)載均衡的關(guān)鍵,轉(zhuǎn)發(fā)引擎負(fù)責(zé)根據(jù)目的IP將數(shù)據(jù)包發(fā)送至下一級(jí)設(shè)備。[0003]最初的調(diào)度算法是簡(jiǎn)單的Round-robin,按數(shù)據(jù)包的順序,依次發(fā)給不同編號(hào)的轉(zhuǎn)發(fā)引擎。因?yàn)镽ound-robin工作在數(shù)據(jù)包的層面,導(dǎo)致數(shù)據(jù)包到達(dá)目的設(shè)備時(shí),會(huì)出現(xiàn)亂序現(xiàn)象,同時(shí)也破壞了網(wǎng)絡(luò)流的局部性。之后,一種基于flow(數(shù)據(jù)流)層面的Hash算法成為主流。Flow指擁有相同5元組的數(shù)據(jù)包,而5元組指的是源IP,目的IP,源端口,目的端口和協(xié)議類(lèi)型。將5元組作為Hash函數(shù)的key,得到的結(jié)果就是要發(fā)送的轉(zhuǎn)發(fā)引擎。這種方法的弊端是,當(dāng)一個(gè)flow中的數(shù)據(jù)包數(shù)量非常大時(shí),就會(huì)造成某個(gè)轉(zhuǎn)發(fā)引擎負(fù)載過(guò)重。清華大學(xué)的時(shí)磊(音譯),劉斌(音譯)等人通過(guò)研究發(fā)現(xiàn),網(wǎng)絡(luò)數(shù)據(jù)包中,即便是同一個(gè)flow中的數(shù)據(jù)包,也不是連續(xù)不斷的發(fā)送的。如果一個(gè)flow中的兩個(gè)數(shù)據(jù)包之間的時(shí)間間隔超過(guò)了一定的臨界值,就認(rèn)為它們屬于不同的flowslice,這時(shí)就應(yīng)該將它們分配到不同的轉(zhuǎn)發(fā)引擎上,這就是基于flow-slice(FS)的負(fù)載均衡算法,如圖2所示。【
發(fā)明內(nèi)容】[0004]本發(fā)明提出了一種混合的負(fù)載均衡調(diào)度算法,這里混合的對(duì)象是Hash算法和flow-slice算法。核心思想是,在flow-slice算法的基礎(chǔ)上,引入一個(gè)大小可配置的flow-slice表(FStable),用以存儲(chǔ)已經(jīng)出現(xiàn)過(guò)的flow的5元組及上一條數(shù)據(jù)包的時(shí)間。[0005]本發(fā)明與FS的不同之處在于:[0006]1.FS調(diào)度中,用hash表存儲(chǔ)相應(yīng)的flow信息,為保證盡可能多的保存數(shù)據(jù),這個(gè)表很大。本發(fā)明中的FStable是一個(gè)大小可調(diào)節(jié)的表,大小一般為500-1000。[0007]2.FS調(diào)度中,新的flow-slice轉(zhuǎn)發(fā)引擎ID的確定是用全局的round-robin,本發(fā)明中使用hash算法。[0008]3.FS調(diào)度中,同一flow的不同flowslice的轉(zhuǎn)發(fā)引擎ID的確定使用全局round-robin,本發(fā)明對(duì)每個(gè)flow使用round-robin。[0009]本發(fā)明的具體流程如圖3所示?!緦@綀D】【附圖說(shuō)明】[0010]圖1負(fù)責(zé)均衡調(diào)度模型;[0011]圖2FS調(diào)度算法流程;[0012]圖3混合調(diào)度算法流程?!揪唧w實(shí)施方式】[0013]第一步,獲取5元組和時(shí)間[0014]從網(wǎng)絡(luò)數(shù)據(jù)包網(wǎng)絡(luò)層的IP報(bào)頭讀取源IP和目的IP,然后讀取傳輸層協(xié)議類(lèi)型,根據(jù)傳輸層協(xié)議(tcp或者udp)類(lèi)型讀取源端口和目的端口。這樣就得到一個(gè)完整的5元組。記錄數(shù)據(jù)包的到達(dá)時(shí)間。[0015]第二步,確定數(shù)據(jù)包發(fā)往的轉(zhuǎn)發(fā)引擎[0016]這個(gè)過(guò)程可描述為:[0017]2.1判斷5元組是否在FStable中,如果是,轉(zhuǎn)2.2步,否則轉(zhuǎn)2.5步。[0018]2.2計(jì)算當(dāng)前數(shù)據(jù)包與FStable中記錄的時(shí)間之差,是否超過(guò)約定的時(shí)間間隔,若果是,轉(zhuǎn)2.3,否則轉(zhuǎn)2.4。[0019]2.3按round-robin決定新的轉(zhuǎn)發(fā)引擎,修改轉(zhuǎn)發(fā)引擎和時(shí)間。[0020]2.4向FStable中記錄的轉(zhuǎn)發(fā)引擎發(fā)數(shù)據(jù)包。[0021]2.5判斷FStable是否已滿,如果沒(méi)有,轉(zhuǎn)2.6步,否則轉(zhuǎn)2.7步。[0022]2.6對(duì)5元組使用Hash,確定其初始發(fā)往的轉(zhuǎn)發(fā)引擎。將5元組,時(shí)間和轉(zhuǎn)發(fā)引擎插入FStable中。[0023]2.7找出最久沒(méi)有使用的數(shù)據(jù)項(xiàng)a,計(jì)算當(dāng)前數(shù)據(jù)包與a的時(shí)間之差,如果超過(guò)約定時(shí)間間隔,轉(zhuǎn)2.8,否則轉(zhuǎn)2.9[0024]2.8對(duì)5元組使用Hash,確定其初始發(fā)往的轉(zhuǎn)發(fā)引擎。用5元組,時(shí)間和轉(zhuǎn)發(fā)引擎插替換a數(shù)據(jù)項(xiàng)。[0025]2.9對(duì)5元組使用Hash,確定其發(fā)往的轉(zhuǎn)發(fā)引擎?!緳?quán)利要求】1.一種網(wǎng)絡(luò)負(fù)載均衡的混合算法,其特征在于,結(jié)合現(xiàn)有Hash調(diào)度和FS調(diào)度。具體為,在flow-slice算法的基礎(chǔ)上,引入一個(gè)大小可配置的flow-slice表(FStable),用以存儲(chǔ)已經(jīng)出現(xiàn)過(guò)的flow的5元組及上一條數(shù)據(jù)包的時(shí)間。2.根據(jù)權(quán)利要求1所述的一種網(wǎng)絡(luò)負(fù)載均衡的混合算法,其特征在于,F(xiàn)Stable是一個(gè)大小可調(diào)節(jié)的表,大小一般為500-1000。3.根據(jù)權(quán)利要求1所述的一種網(wǎng)絡(luò)負(fù)載均衡的混合算法,其特征在于,新的flow-slice轉(zhuǎn)發(fā)引擎ID的確定是使用hash算法。4.根據(jù)權(quán)利要求1所述的一種網(wǎng)絡(luò)負(fù)載均衡的混合算法,其特征在于,同一flow的不同flowslice的轉(zhuǎn)發(fā)引擎ID的確定每個(gè)flow使用round-robin?!疚臋n編號(hào)】H04L12/803GK103491019SQ201310429836【公開(kāi)日】2014年1月1日申請(qǐng)日期:2013年9月18日優(yōu)先權(quán)日:2013年9月18日【發(fā)明者】王雷,趙玉龍,王宇申請(qǐng)人:北京航空航天大學(xué)