亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于漏桶算法的動(dòng)態(tài)負(fù)載均衡機(jī)制的制作方法

文檔序號(hào):7750702閱讀:365來(lái)源:國(guó)知局
專利名稱:一種基于漏桶算法的動(dòng)態(tài)負(fù)載均衡機(jī)制的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于通信技術(shù)領(lǐng)域,涉及一種基于漏桶算法的動(dòng)態(tài)負(fù)載均衡機(jī)制。具體地說(shuō),利用網(wǎng)絡(luò)處理器實(shí)現(xiàn)對(duì)于高層協(xié)議分析處理器的負(fù)載均衡功能,從而可以動(dòng)態(tài)地反饋 負(fù)載信息,實(shí)現(xiàn)發(fā)送到高層協(xié)議分析處理器上的數(shù)據(jù)流負(fù)載均衡。
背景技術(shù)
隨著互聯(lián)網(wǎng)業(yè)務(wù)數(shù)量和種類的不斷發(fā)展,千兆高速網(wǎng)絡(luò)的數(shù)據(jù)流量對(duì)網(wǎng)絡(luò)監(jiān)控系 統(tǒng)的處理能力與計(jì)算強(qiáng)度提出了更高的要求,使得以往單一的設(shè)備無(wú)法完成大流量的信息 分析任務(wù)。采用網(wǎng)絡(luò)處理器進(jìn)行協(xié)議處理,可以滿足高速率網(wǎng)絡(luò)協(xié)議分析的需要,成為目前 發(fā)展的一個(gè)方向。網(wǎng)絡(luò)處理器是面向網(wǎng)絡(luò)應(yīng)用領(lǐng)域的特定應(yīng)用指令處理器,是面向數(shù)據(jù)分 組處理的、具有體系結(jié)構(gòu)特征和特定電路的、軟件可編程器件。它是一種專用于網(wǎng)絡(luò)通信設(shè) 備的通用芯片,其靈活的軟件體系提供硬件級(jí)的處理性能是網(wǎng)絡(luò)處理器的關(guān)鍵特性。在此 軟件結(jié)構(gòu)上運(yùn)行的主要有兩種代碼,微引擎代碼(ME)和核代碼(Core)。ME主要進(jìn)行數(shù)據(jù) 平面的快通道數(shù)據(jù)處理,實(shí)現(xiàn)高速數(shù)據(jù)包轉(zhuǎn)發(fā)。Core主要完成與控制處理器相連,實(shí)現(xiàn)慢通 道的異常數(shù)據(jù)包處理以及微引擎的管理與配置。目前一個(gè)高容量的數(shù)據(jù)包過(guò)濾系統(tǒng)基于網(wǎng)絡(luò)處理器的協(xié)議處理單元,以單板機(jī)作 為高層協(xié)議分析處理器,利用先進(jìn)電信運(yùn)算架構(gòu)的高性能,高集成度,在同一個(gè)機(jī)框中插入 交換板,網(wǎng)絡(luò)處理器板和服務(wù)器刀片從而實(shí)現(xiàn)數(shù)據(jù)包過(guò)濾功能?;诰W(wǎng)絡(luò)處理器的協(xié)議處 理單元是該系統(tǒng)的一個(gè)子系統(tǒng),在協(xié)議處理單元系統(tǒng)中,網(wǎng)絡(luò)處理器負(fù)責(zé)所有數(shù)據(jù)的接收 和發(fā)送,并進(jìn)行底層協(xié)議的規(guī)則匹配過(guò)濾。對(duì)于需要進(jìn)行高層協(xié)議分析、鑒權(quán)認(rèn)證等的數(shù)據(jù) 包需要交由單板機(jī)進(jìn)行處理。系統(tǒng)中有多個(gè)單板機(jī)網(wǎng)元,為了能夠均衡各個(gè)單板機(jī)的計(jì)算 任務(wù),充分利用系統(tǒng)計(jì)算和存儲(chǔ)資源,減小任務(wù)執(zhí)行時(shí)間,需要在單板機(jī)間進(jìn)行有效的負(fù)載 均衡。負(fù)載均衡(Traffic Balancing)是指在一個(gè)集群系統(tǒng)中,通過(guò)一定的算法和邏輯, 使得系統(tǒng)中的多個(gè)服務(wù)器或處理器能夠獲得與其處理能力相當(dāng)?shù)娜蝿?wù)量,提高系統(tǒng)綜合利 用率,降低整體任務(wù)處理時(shí)間。負(fù)載均衡分為靜態(tài)負(fù)載均衡和動(dòng)態(tài)負(fù)載均衡兩種。靜態(tài)負(fù) 載均衡是指提前知道任務(wù)和環(huán)境的各種數(shù)據(jù),預(yù)先靜態(tài)將任務(wù)量分配給相應(yīng)的處理器,該 方法實(shí)現(xiàn)簡(jiǎn)單,但不能跟蹤系統(tǒng)狀態(tài)變化,缺乏控制突發(fā)事件能力。動(dòng)態(tài)負(fù)載均衡是指實(shí)時(shí) 分析系統(tǒng)負(fù)載信息和處理器計(jì)算、存儲(chǔ)等資源情況,動(dòng)態(tài)地調(diào)度不同處理器間的任務(wù)量,實(shí) 時(shí)輕載或重載,該方法能動(dòng)態(tài)跟蹤系統(tǒng)負(fù)載狀態(tài)變化,實(shí)時(shí)調(diào)整,靈活有效利用系統(tǒng)資源。基于狀態(tài)檢測(cè)的網(wǎng)絡(luò)設(shè)備,一般只需要判斷建立TCP連接的第一數(shù)據(jù)包。如果這 個(gè)包是滿足某種規(guī)則允許通過(guò)的,就為其分配一個(gè)高層協(xié)議分析的服務(wù)器轉(zhuǎn)發(fā),并將其所 屬的連接的所有數(shù)據(jù)包都發(fā)往上述指定的服務(wù)器而不進(jìn)行規(guī)則匹配操作。這樣如果能夠使 得高層的服務(wù)器在任意時(shí)刻所負(fù)擔(dān)的連接數(shù)目與該服務(wù)器的處理能力成正比,那么整個(gè)系 統(tǒng)的工作效率就可以處在一種很高的狀態(tài),處理數(shù)據(jù)包的速率也會(huì)達(dá)到最快。這樣的過(guò)程就是基于連接的負(fù)載均衡過(guò)程。圖1表示了利用網(wǎng)絡(luò)處理器實(shí)現(xiàn)的數(shù)據(jù)包過(guò)濾系統(tǒng)中負(fù)載均衡模塊的位置和與 各個(gè)模塊的相互關(guān)系。負(fù)載均衡模塊有兩部分功能,即對(duì)于會(huì)話建立的SYN(同步字符, Synchronous character)包,分MS一個(gè)負(fù)載最輕白勺 SBC (單板機(jī),single board compute), 以及對(duì)于所有的SBC,動(dòng)態(tài)地監(jiān)控目前的負(fù)載,是否過(guò)載以及負(fù)載的實(shí)時(shí)變化情況。

發(fā)明內(nèi)容
本發(fā)明的目的是利用網(wǎng)絡(luò)處理器實(shí)現(xiàn)的對(duì)于SBC的負(fù)載均衡。利用一種 令牌桶算 法來(lái)實(shí)現(xiàn)基于數(shù)據(jù)流的動(dòng)態(tài)負(fù)載均衡過(guò)程,動(dòng)態(tài)地反饋負(fù)載信息,實(shí)現(xiàn)發(fā)送到SBC上的數(shù) 據(jù)流負(fù)載均衡。為了實(shí)現(xiàn)上述目的,本發(fā)明的具體步驟如下第一步驟初始化令牌桶。由控制平面根據(jù)SBC下發(fā)的信息初始化令牌桶,即共有幾個(gè)令牌桶,各個(gè)令牌桶 包含多少令牌等信息。本發(fā)明采用了動(dòng)態(tài)負(fù)載均衡機(jī)制,網(wǎng)絡(luò)處理器接收由SBC傳來(lái)的消息,包括SBC是 否過(guò)載,是否關(guān)閉,以及定期溝通心跳信息(即即時(shí)狀態(tài)信息)。如果接收到SBC的過(guò)載信息,就向數(shù)據(jù)平面的負(fù)載均衡模塊發(fā)送過(guò)載的信息。數(shù) 據(jù)平面收到過(guò)載信息,就將相應(yīng)的令牌桶設(shè)置為過(guò)載狀態(tài),這時(shí)不能從該令牌桶中提取令 牌,也不能查找它的令牌數(shù)的大小,但是可以回收令牌。如果接收到SBC的關(guān)閉信息,就向數(shù)據(jù)平面的負(fù)載均衡模塊發(fā)送關(guān)閉的信息。數(shù) 據(jù)平面收到過(guò)載信息,就將相應(yīng)的令牌桶設(shè)置為關(guān)閉狀態(tài),對(duì)應(yīng)的令牌桶不可用。如果接收到SBC的開(kāi)啟信息,就向數(shù)據(jù)平面的負(fù)載均衡模塊發(fā)送開(kāi)啟的信息。數(shù) 據(jù)平面收到開(kāi)啟信息,就將相應(yīng)的令牌桶設(shè)置為正常狀態(tài),對(duì)應(yīng)的令牌桶中填入下發(fā)的令 牌值。同時(shí),設(shè)計(jì)SBC和網(wǎng)絡(luò)處理器定期溝通心跳信息,如果沒(méi)有收到心跳,認(rèn)為該SBC 已經(jīng)關(guān)閉。進(jìn)行與收到關(guān)閉信息相同的操作,關(guān)閉令牌桶。第二步驟根據(jù)任務(wù)的不同類型確定該任務(wù)所需要的令牌數(shù)。實(shí)質(zhì)上,這里所說(shuō)的令牌數(shù)代表著該任務(wù)所需的資源,包括計(jì)算資源和存儲(chǔ)資源, 對(duì)于不同的處理任務(wù)和數(shù)據(jù),所消耗的系統(tǒng)資源是不同的。第三步驟經(jīng)過(guò)規(guī)則匹配,判斷令牌桶組中是否有足夠的令牌。在此為不同的任務(wù)進(jìn)行加權(quán),分配不同的資源。數(shù)據(jù)平面每到來(lái)一個(gè)SYN包,先經(jīng) 過(guò)規(guī)則匹配,如果是需要計(jì)費(fèi)的連接,則讀取各個(gè)令牌桶的令牌數(shù),找到令牌最多的那個(gè)。 令牌的多寡決定了 SBC處理能力的優(yōu)劣。找到令牌最多的令牌桶,也就找到了目前處理能 力最強(qiáng)的SBC。為查找最大令牌數(shù),算法設(shè)計(jì)為設(shè)定某一固定次數(shù)n,每η次使用后遍歷一次所 有令牌桶,找到令牌數(shù)最大的一個(gè)。此后每次到來(lái)的匹配規(guī)則的SYN包都從這個(gè)令牌桶中 分配令牌值。使用η次以后,重新查找一次最大令牌數(shù)的令牌桶,記錄其id(身份標(biāo)識(shí)號(hào), Identity),重復(fù)上面的使用。實(shí)現(xiàn)設(shè)計(jì)采用一個(gè)全局寄存器來(lái)計(jì)算次數(shù),每次更新最大值 就將它清0。每次從該令牌桶中取出一個(gè)令牌時(shí),就將計(jì)數(shù)器值減1,直至減到0,重新查找最大令牌值的令牌桶。第四步驟令牌回收。記錄令牌最多的SBC對(duì)應(yīng)的sbc_id(單板機(jī)身份標(biāo)識(shí)號(hào),single boardcompute_ Identity),進(jìn)行后續(xù)處理,同時(shí),將該令牌桶中的令牌數(shù)減1。如果沒(méi)有令牌可以使用,直接 送至路由模塊進(jìn)行轉(zhuǎn)發(fā)。如果接收到了某個(gè)流的fin包,即標(biāo)志著會(huì)話即將結(jié)束,應(yīng)該回收相應(yīng)的令牌桶中的令牌值。當(dāng)數(shù)據(jù)平面的會(huì)話連接表匹配模塊如果發(fā)現(xiàn)某個(gè)連接的狀態(tài)轉(zhuǎn)移到了 closed 狀態(tài),就向負(fù)載均衡模塊發(fā)出回收令牌的請(qǐng)求。負(fù)載均衡模塊受到如上的請(qǐng)求,則在相應(yīng)的 令牌桶中將令牌值加1。還有一種情況,就是某個(gè)數(shù)據(jù)流發(fā)生了超時(shí)的現(xiàn)象。即某個(gè)連接的狀態(tài)在指定時(shí) 間內(nèi)沒(méi)有發(fā)生轉(zhuǎn)移,這種情況會(huì)被兩個(gè)平面的會(huì)話表匹配模塊中的超時(shí)機(jī)制發(fā)現(xiàn)。如果發(fā) 生這種情況,也就相當(dāng)于某個(gè)連接已經(jīng)關(guān)閉,發(fā)現(xiàn)超時(shí)的模塊會(huì)給負(fù)載均衡模塊發(fā)出如上 的回收令牌請(qǐng)求,負(fù)載均衡模塊回收相應(yīng)的令牌。


圖1為包過(guò)濾系統(tǒng)中負(fù)載均衡功能的實(shí)現(xiàn)模塊示意圖。圖2為具體步驟示意圖。圖3為漏桶負(fù)載均衡算法圖。圖4為令牌獲得與回收過(guò)程圖。
具體實(shí)施例方式下面結(jié)合算法的實(shí)施過(guò)程對(duì)本發(fā)明作進(jìn)一步的描述,但該實(shí)施過(guò)程不應(yīng)理解為對(duì) 本發(fā)明的限制。本發(fā)明中負(fù)載均衡模塊有兩部分功能,即對(duì)于會(huì)話建立的SYN包,分配一個(gè)負(fù)載 最輕的SBC,以及對(duì)于所有的SBC,動(dòng)態(tài)地監(jiān)控目前的負(fù)載,是否過(guò)載以及負(fù)載的實(shí)時(shí)變化 情況。根據(jù)網(wǎng)絡(luò)處理器中微引擎的特性,一個(gè)微引擎(ME)有8個(gè)獨(dú)立的線程,將兩部分 功能分到不同的線程中實(shí)現(xiàn),充分利用網(wǎng)絡(luò)處理器的并行處理能力,提高系統(tǒng)效率。同時(shí), 根據(jù)實(shí)際需要的不同,對(duì)于會(huì)話建立的SYN包,分配一個(gè)負(fù)載最輕的SBC的操作次數(shù),要遠(yuǎn) 多于對(duì)于所有的SBC,動(dòng)態(tài)地監(jiān)控目前負(fù)載的操作。因此,設(shè)計(jì)分配6個(gè)線程實(shí)現(xiàn)第一種功 能,2個(gè)線程實(shí)現(xiàn)第二種功能。利用網(wǎng)絡(luò)處理器自帶的scratch存儲(chǔ)器環(huán)來(lái)完成各個(gè)模塊之 間的通信工作。每個(gè)令牌桶設(shè)置3個(gè)狀態(tài)N0RMAL,OFF, OVERLOAD。NORMAL表明該SBC目前正常, 可以被使用;OFF表明該SBC目前已經(jīng)關(guān)閉,如果有新來(lái)開(kāi)啟的SBC,創(chuàng)建令牌桶時(shí)可以占用 該條目;OVERLOAD表明該SBC目前處于過(guò)載狀態(tài),不可以使用,但是可以回收令牌。前六個(gè)線程,循環(huán)讀取從規(guī)則匹配到負(fù)載均衡的通信環(huán),如果該環(huán)不為空,則利用 其中存儲(chǔ)的數(shù)據(jù)找到對(duì)應(yīng)數(shù)據(jù)流起始包。查看計(jì)數(shù)器是否已經(jīng)歸零。如果沒(méi)有,則將上一 次使用的SBC信息直接應(yīng)用到本數(shù)據(jù)流,同時(shí),將對(duì)應(yīng)的令牌桶中的令牌值減一。如果已經(jīng) 歸零,則線性查找所有令牌桶,找到目前令牌數(shù)最大的令牌桶。將它對(duì)應(yīng)的SBC信息,應(yīng)用到該數(shù)據(jù)流,將對(duì)應(yīng)的令牌數(shù)減一。如果每個(gè)令牌桶的令牌值都為零,說(shuō)明已經(jīng)沒(méi)有可用的SBC 了,系統(tǒng)阻塞到查找的位置循環(huán)查找,直到找到可用的SBC。后兩個(gè)線程,循環(huán)讀取從其他模塊載均衡的通信環(huán)。該環(huán)負(fù)責(zé)傳送所有其他模塊 對(duì)于令牌桶的修改指令。包括PUT,GET, START, RESUME, OVERLOAD, CONFIG。PUT表示要向 指定的令牌桶中回收一個(gè)令牌;GET表明要從指定的令牌桶中獲取一個(gè)令牌;START表示有 個(gè)新的SBC已經(jīng)開(kāi)啟;OVERLOAD表示某個(gè)SBC目前過(guò)載;RESUME表示某過(guò)載的SBC恢復(fù)正 常;CONFIG用于系統(tǒng)剛剛啟動(dòng)時(shí)初始化各個(gè)令牌桶。讀出指令后,按照相應(yīng)的信息進(jìn)行相 應(yīng)的處理。本說(shuō)明書(shū)中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。以上所述僅為本發(fā)明的較佳實(shí)施而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神 和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
本發(fā)明提供了一種基于漏桶算法的動(dòng)態(tài)負(fù)載均衡機(jī)制,用于實(shí)現(xiàn)發(fā)送到高層協(xié)議分析處理器上的數(shù)據(jù)流負(fù)載均衡。該機(jī)制包括以下步驟A)初始化令牌桶;B)根據(jù)任務(wù)的不同類型確定該任務(wù)所需要的令牌數(shù);C)經(jīng)過(guò)規(guī)則匹配,判斷令牌桶組中是否有足夠的令牌;D)令牌回收。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A)進(jìn)一步包括由控制平面根據(jù) SBC(單板機(jī),single board compute)下發(fā)的信息初始化令牌桶,即共有幾個(gè)令牌桶,各個(gè) 令牌桶包含多少令牌等信息;網(wǎng)絡(luò)處理器接收由SBC傳來(lái)的消息,包括SBC是否過(guò)載,是否 關(guān)閉,以及定期溝通心跳信息(即即時(shí)狀態(tài)信息)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟B)進(jìn)一步包括對(duì)于不同類型的任 務(wù)確定所要需要的令牌數(shù)代表著該任務(wù)所需的資源,包括計(jì)算資源和存儲(chǔ)資源。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟C)進(jìn)一步包括不同的任務(wù)進(jìn)行加 權(quán),分配不同的資源;數(shù)據(jù)平面每到來(lái)一個(gè)SYN(同步字符,Synchronous character)包,先 經(jīng)過(guò)規(guī)則匹配,找到目前處理能力最強(qiáng)的SBC。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟D)進(jìn)一步包括記錄令牌最多的SBC 對(duì)應(yīng)的sbc_id(單板機(jī)身份標(biāo)識(shí)號(hào),single board compute_Identity),進(jìn)行后續(xù)處理,同 時(shí),將該令牌桶中的令牌數(shù)減1 ;如果沒(méi)有令牌可以使用,直接送至路由模塊進(jìn)行轉(zhuǎn)發(fā)。
全文摘要
本發(fā)明提出了一種基于漏桶算法的動(dòng)態(tài)負(fù)載均衡機(jī)制。該機(jī)制簡(jiǎn)單,易于實(shí)現(xiàn),效率較高,利用網(wǎng)絡(luò)處理器動(dòng)態(tài)地反饋負(fù)載信息,實(shí)現(xiàn)發(fā)送到單板機(jī)上的數(shù)據(jù)流負(fù)載均衡。
文檔編號(hào)H04L12/56GK101860486SQ201010192498
公開(kāi)日2010年10月13日 申請(qǐng)日期2010年6月7日 優(yōu)先權(quán)日2010年6月7日
發(fā)明者宿景芳, 徐春秀, 武穆清, 王矗, 甄巖, 申京, 苗建松, 鄭鳳 申請(qǐng)人:北京郵電大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1