本發(fā)明涉及通信領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法和裝置。
背景技術(shù):
:等價(jià)多路徑(EqualCostMulti-Path,ECMP)是改進(jìn)IP網(wǎng)絡(luò)中基于最短路徑的內(nèi)部網(wǎng)關(guān)路由協(xié)議不足的一種技術(shù)。在傳統(tǒng)最短路徑算法中,如果兩條或多條最短路徑同時(shí)存在,算法會(huì)選擇最優(yōu)的一條。而ECMP對(duì)其作了改進(jìn),采用流量在多條等價(jià)路徑中分配,分配的原則可以是逐包或者逐流分擔(dān)?,F(xiàn)有的ECMP算法中,每個(gè)ECMP均分配對(duì)應(yīng)的Counter,而且通過(guò)該Counter的計(jì)數(shù)將取低7bit值遍歷模運(yùn)算表中已經(jīng)散列好的128個(gè)出口條目。另外,由于測(cè)試用例要求ECMP的出口鏈路數(shù)最多為8個(gè),因此當(dāng)出口鏈路數(shù)為3、5、6、7時(shí),某些鏈路分擔(dān)會(huì)有1/128左右的流量偏差。如圖1所示,方框部分為不能被均分部分。因此,在逐包分擔(dān)的分配過(guò)程中,現(xiàn)有的ECMP分擔(dān)方法存在偏差,無(wú)法達(dá)到均勻分擔(dān)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的在于提供一種網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法和裝置,旨在提高網(wǎng)絡(luò)負(fù)荷的分擔(dān)精度。為了達(dá)到上述目的,本發(fā)明提供了一種網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法,包括:當(dāng)有數(shù)據(jù)包進(jìn)入配置有ECMP的路由設(shè)備時(shí),對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),獲得計(jì)數(shù)值;根據(jù)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值以及該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù),從預(yù)設(shè)的模運(yùn)算表中獲得偏移值,以根據(jù)該偏移值確定該ECMP對(duì)應(yīng)的出口信息,將接收到的數(shù)據(jù)包由確定的出口進(jìn)行轉(zhuǎn)發(fā);當(dāng)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值達(dá)到最大計(jì)數(shù)值時(shí),根據(jù)預(yù)先設(shè)置的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量,對(duì)下一數(shù)據(jù)包的計(jì)數(shù)值進(jìn)行修正,獲得修正后的計(jì)數(shù)值。優(yōu)選地,所述ECMP對(duì)應(yīng)的Counter的低位計(jì)數(shù)值的最大計(jì)數(shù)值為7。優(yōu)選地,所述根據(jù)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值以及該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù),從預(yù)設(shè)的模運(yùn)算表中獲得偏移值之后還包括:根據(jù)分擔(dān)鏈路數(shù)表中的分擔(dān)策略表基址加上所述偏移值,獲得分擔(dān)策略表索引,并查詢預(yù)設(shè)的分擔(dān)策略表中與分擔(dān)策略表索引對(duì)應(yīng)的出口封裝表偏移值;根據(jù)出口封裝表基址加上出口封裝偏移值,獲得出口封裝表索引,并查詢預(yù)設(shè)的出口封裝表中與出口封裝表索引對(duì)應(yīng)的出口封裝信息,以將接收到的數(shù)據(jù)包由該出口封裝信息封裝后進(jìn)行轉(zhuǎn)發(fā)。優(yōu)選地,所述當(dāng)有數(shù)據(jù)包進(jìn)入配置有ECMP的路由設(shè)備時(shí),對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),獲得計(jì)數(shù)值之前還包括:當(dāng)有數(shù)據(jù)包進(jìn)入配置有ECMP的路由設(shè)備時(shí),該路由設(shè)備對(duì)該數(shù)據(jù)包進(jìn)行解析,獲得解析數(shù)據(jù);根據(jù)解析數(shù)據(jù),查詢預(yù)先配置的私網(wǎng)路由表,獲得公私網(wǎng)分離表索引;進(jìn)而根據(jù)該公私網(wǎng)分離表索引查詢預(yù)先配置的公私網(wǎng)分離表,獲得ECMP索引。此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置,包括:計(jì)數(shù)模塊,用于當(dāng)有數(shù)據(jù)包進(jìn)入配置有ECMP的路由設(shè)備時(shí),對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),獲得計(jì)數(shù)值;偏移值確定模塊,用于根據(jù)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值以及該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù),從預(yù)設(shè)的模運(yùn)算表中獲得偏移值,以根據(jù)該偏移值確定該ECMP對(duì)應(yīng)的出口信息,將接收到的數(shù)據(jù)包由確定的出口進(jìn)行轉(zhuǎn)發(fā);計(jì)數(shù)修正模塊,用于當(dāng)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值達(dá)到最大計(jì)數(shù)值時(shí),根據(jù)預(yù)先設(shè)置的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量,對(duì)下一數(shù)據(jù)包的計(jì)數(shù)值進(jìn)行修正,獲得修正后的計(jì)數(shù)值。優(yōu)選地,所述計(jì)數(shù)模塊中,所述計(jì)數(shù)值的低位計(jì)數(shù)值的最大值為7。優(yōu)選地,所述網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置還包括:出口封裝獲取模塊,用于根據(jù)分擔(dān)鏈路數(shù)表中的分擔(dān)策略表基址加上所 述偏移值,獲得分擔(dān)策略表索引,并查詢預(yù)設(shè)的分擔(dān)策略表中與分擔(dān)策略表索引對(duì)應(yīng)的出口封裝表偏移值;根據(jù)出口封裝表基址加上出口封裝偏移值,獲得出口封裝表索引,并查詢預(yù)設(shè)的出口封裝表中與出口封裝表索引對(duì)應(yīng)的出口封裝信息,以將接收到的數(shù)據(jù)包由該出口封裝信息封裝后進(jìn)行轉(zhuǎn)發(fā)。優(yōu)選地,所述網(wǎng)路負(fù)荷的分擔(dān)裝置還包括:數(shù)據(jù)包解析模塊,用于當(dāng)有數(shù)據(jù)包進(jìn)入配置有ECMP的路由設(shè)備時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解析,獲得解析數(shù)據(jù);根據(jù)解析數(shù)據(jù),查詢預(yù)先設(shè)置的私網(wǎng)路由表,獲得公私網(wǎng)分離表索引;進(jìn)而根據(jù)該公私網(wǎng)分離表索引查詢預(yù)先設(shè)置的公私網(wǎng)分離表,獲得ECMP索引。本發(fā)明實(shí)施例通過(guò)預(yù)設(shè)分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值,在ECMP對(duì)應(yīng)的Counter計(jì)數(shù)器進(jìn)行計(jì)數(shù)的低位計(jì)數(shù)值為最大值時(shí),根據(jù)分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值,對(duì)計(jì)數(shù)值進(jìn)行修正,從而可以實(shí)現(xiàn)每條鏈路的網(wǎng)絡(luò)負(fù)荷均勻分配,提高了網(wǎng)絡(luò)負(fù)荷的分擔(dān)精度。附圖說(shuō)明圖1為本發(fā)明微碼進(jìn)行數(shù)據(jù)包的路由轉(zhuǎn)發(fā)的結(jié)構(gòu)示意圖;圖2為本發(fā)明網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法第一實(shí)施例的流程示意圖;圖3為本發(fā)明網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法中數(shù)據(jù)包的低7bit計(jì)數(shù)值對(duì)應(yīng)分擔(dān)鏈路的模運(yùn)算表的示例圖;圖4為本發(fā)明網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法中數(shù)據(jù)包的低3bit計(jì)數(shù)值對(duì)應(yīng)分擔(dān)鏈路的模運(yùn)算表的示例圖;圖5為本發(fā)明網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置第一實(shí)施例的功能模塊示意圖;圖6為本發(fā)明網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置第二實(shí)施例的功能模塊示意圖;圖7為本發(fā)明網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置第三實(shí)施例的功能模塊示意圖。為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進(jìn)一步詳述。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限 定本發(fā)明。如圖1所示,該路由設(shè)備中配置有多個(gè)ECMP,每個(gè)EMCP均設(shè)有8個(gè)出口鏈路,用于分擔(dān)數(shù)據(jù)包的轉(zhuǎn)發(fā)。該路由設(shè)備收到上一級(jí)設(shè)備發(fā)送過(guò)來(lái)的數(shù)據(jù)包后,對(duì)該數(shù)據(jù)包進(jìn)行解析,獲得數(shù)據(jù)包的解析數(shù)據(jù)。該解析數(shù)據(jù)可包括目的MAC、源MAC、VLAN、目的IP、源IP、標(biāo)簽等信息。根據(jù)該解析數(shù)據(jù),可以查詢預(yù)先配置的私網(wǎng)路由表,獲得公私網(wǎng)分離表索引;進(jìn)而根據(jù)該公私網(wǎng)分離表索引查詢預(yù)先配置的公私網(wǎng)分離表,獲得ECMP索引,即ECMP。然后,路由設(shè)備基于本發(fā)明提出的ECMP分擔(dān)方案,確定該ECMP對(duì)應(yīng)的出口地址,并將數(shù)據(jù)包由所確定的ECMP出口轉(zhuǎn)發(fā)至下一級(jí)設(shè)備。如圖2所示,基于上述路由設(shè)備,提出一種網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法,供路由設(shè)備確定數(shù)據(jù)包的ECMP出口地址。該網(wǎng)絡(luò)負(fù)荷的分擔(dān)方法具體包括以下步驟:步驟S110、當(dāng)有數(shù)據(jù)包進(jìn)入路由設(shè)備時(shí),對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),獲得計(jì)數(shù)值;路由設(shè)備中,每個(gè)ECMP均分配有一個(gè)Counter計(jì)數(shù)器,該計(jì)數(shù)器對(duì)進(jìn)入路由設(shè)備的數(shù)據(jù)包進(jìn)行計(jì)數(shù)。當(dāng)路由設(shè)備收到數(shù)據(jù)包后,對(duì)其進(jìn)行解析,獲得解析數(shù)據(jù),并根據(jù)解析數(shù)據(jù)確定該數(shù)據(jù)包對(duì)應(yīng)的ECMP索引,然后根據(jù)該ECMP索引,由ECMP索引的ECMP對(duì)應(yīng)的Counter計(jì)數(shù)器對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),即該計(jì)數(shù)器進(jìn)行加1,獲得計(jì)數(shù)值。步驟S120、獲取預(yù)設(shè)的分擔(dān)鏈路數(shù)表中與該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù);本實(shí)施例中,預(yù)先設(shè)置分擔(dān)鏈路數(shù)表,該分擔(dān)鏈路數(shù)表中記錄ECMP索引與分擔(dān)鏈路數(shù)的映射關(guān)系?;谠摲謸?dān)鏈路數(shù)表,可以獲得與ECMP索引對(duì)應(yīng)的分擔(dān)鏈路數(shù),例如2路、4路、8路等等。另外,該分擔(dān)鏈路數(shù)表中還記錄分擔(dān)鏈路數(shù)與分擔(dān)策略表基址的映射關(guān)系。步驟S130、根據(jù)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值以及分擔(dān)鏈路數(shù),從預(yù)設(shè)的模運(yùn)算表中獲得偏移值;當(dāng)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值達(dá)到最大計(jì)數(shù)值時(shí),根據(jù)預(yù)先設(shè)置的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量,對(duì)下一數(shù)據(jù)包的計(jì)數(shù)值進(jìn)行修正,獲得修正后的計(jì)數(shù)值;本實(shí)施例中,預(yù)先設(shè)置模運(yùn)算表。該模運(yùn)算表中記錄ECMP索引、分擔(dān)鏈路數(shù)與偏移值的映射關(guān)系。如圖3所示,當(dāng)前Counter計(jì)數(shù)器的計(jì)數(shù)最大值 為127,每個(gè)分擔(dān)鏈路數(shù)對(duì)應(yīng)的偏移表中設(shè)置128個(gè)偏移值條目,且偏移值根據(jù)分擔(dān)鏈路數(shù)進(jìn)行循環(huán)設(shè)置。例如,分擔(dān)鏈路數(shù)為3時(shí),偏移值表中存在128個(gè)偏移值條目,且偏移值依次按0、1、2循環(huán)設(shè)置。另外,本實(shí)施例中,預(yù)先設(shè)置分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量。以計(jì)數(shù)器的計(jì)數(shù)最大值為127為例,具體的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量如下表1所示:表1.分擔(dān)鏈路數(shù)與計(jì)數(shù)增量值的映射關(guān)系分擔(dān)鏈路數(shù)Counter遇127時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值21334154637381步驟S140、根據(jù)分擔(dān)鏈路數(shù)表中的分擔(dān)策略表基址加上所述偏移值,獲得分擔(dān)策略表索引,并查詢預(yù)設(shè)的分擔(dān)策略表中與分擔(dān)策略表索引對(duì)應(yīng)的出口封裝表偏移值;本發(fā)明實(shí)施例中,將預(yù)先配置分擔(dān)鏈路數(shù)表,該分擔(dān)鏈路數(shù)表記錄ECMP索引與分擔(dān)鏈路數(shù)、分擔(dān)策略表基址的映射關(guān)系。路由設(shè)備通過(guò)解析數(shù)據(jù)包的目的IP,查路由表可以獲得ECMP索引。然后通過(guò)ECMP索引查詢分擔(dān)鏈路數(shù)表,就可以得到該ECMP的分擔(dān)鏈路數(shù)和分擔(dān)策略表基址。分擔(dān)策略表是一組出口表的集合,有多少個(gè)出口鏈路,記錄分擔(dān)策略表索引與出口封裝表偏移值的映射關(guān)系。根據(jù)該分擔(dān)策略表基址加上步驟S130獲得的偏移值,可以獲得分擔(dān)策略表索引,進(jìn)而獲得該分擔(dān)策略表索引對(duì)應(yīng)的出口封裝表偏移值。步驟S150、根據(jù)出口封裝表基址加上出口封裝偏移值,獲得出口封裝表索引,并查詢預(yù)設(shè)的出口封裝表中與出口封裝表索引對(duì)應(yīng)的出口封裝信息,以將接收到的數(shù)據(jù)包由該出口封裝信息封裝后進(jìn)行轉(zhuǎn)發(fā)。假設(shè)ECMP有3個(gè)出口,則每個(gè)出口信息都可以轉(zhuǎn)化成出口封裝信息并寫入硬件表中,而且該硬件表都具有自己的索引。因此,將這些索引分別寫 到出口封裝表基址,例如、基址+1和基址+2中,就可以實(shí)現(xiàn)出口封裝表基址加上出口封裝偏移值獲取到出口封裝表的所有信息,進(jìn)而將接收到的數(shù)據(jù)包由該出口封裝信息封裝后進(jìn)行轉(zhuǎn)發(fā)。假設(shè)分擔(dān)鏈路數(shù)為3,Counter對(duì)進(jìn)入該ECMP的數(shù)據(jù)包進(jìn)行計(jì)數(shù)時(shí),從0-127都是按加1來(lái)計(jì)數(shù),但是若計(jì)數(shù)值為127,Counter根據(jù)上表1中確定分擔(dān)鏈路數(shù)為3時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值,以在下一數(shù)據(jù)包進(jìn)入時(shí),根據(jù)該確定的計(jì)數(shù)增量值進(jìn)行計(jì)數(shù)修正,獲得修正后的計(jì)數(shù)值。然后根據(jù)該計(jì)數(shù)值以及分擔(dān)鏈路數(shù),執(zhí)行上述步驟S130-步驟S150確定該ECMP對(duì)應(yīng)的出口封裝信息。當(dāng)計(jì)數(shù)值為127時(shí),根據(jù)上表1確定對(duì)應(yīng)的計(jì)數(shù)增量值為3,則在下一數(shù)據(jù)包進(jìn)入時(shí),確定模運(yùn)算表中對(duì)應(yīng)的偏移條目為偏移+2的條目,從而達(dá)到了每條鏈路均勻分擔(dān)的目的。因此,本發(fā)明實(shí)施例通過(guò)預(yù)設(shè)分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值,在ECMP對(duì)應(yīng)的Counter計(jì)數(shù)器進(jìn)行計(jì)數(shù)的低位計(jì)數(shù)值為最大值時(shí),根據(jù)分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值,對(duì)計(jì)數(shù)值進(jìn)行修正,從而可以實(shí)現(xiàn)每條鏈路的網(wǎng)絡(luò)負(fù)荷均勻分配。進(jìn)一步地,上述Counter計(jì)數(shù)器進(jìn)行計(jì)數(shù)的低位計(jì)數(shù)值的最大值為7。對(duì)應(yīng)地,該預(yù)先設(shè)置的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值如下表2所示:表2.分擔(dān)鏈路數(shù)與計(jì)數(shù)增量值的映射關(guān)系分擔(dān)鏈路數(shù)Counter遇7時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值21334154637281假設(shè)該ECMP具有5個(gè)出口鏈路數(shù),即該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù)為5。如圖4所示,該分擔(dān)鏈路數(shù)對(duì)應(yīng)的模運(yùn)算表中,偏移+0對(duì)應(yīng)出口鏈路1,偏移+1對(duì)應(yīng)出口鏈路2,偏移+2對(duì)應(yīng)出口鏈路3,偏移+3對(duì)應(yīng)出口鏈路4,偏 移+4對(duì)應(yīng)出口鏈路5。若當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值為7時(shí),根據(jù)上表2可知分擔(dān)鏈路數(shù)為5時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值為4,因此下一數(shù)據(jù)包進(jìn)入該ECMP時(shí),Counter計(jì)數(shù)器的計(jì)數(shù)值為上一次計(jì)數(shù)值加4,即確定該數(shù)據(jù)包對(duì)應(yīng)的偏移值為“偏移值+3”,該數(shù)據(jù)包將從出口鏈路4輸出。由此可知,通過(guò)上述出口鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值設(shè)置,在Counter計(jì)數(shù)器的低位計(jì)數(shù)值為最大值時(shí),根據(jù)出口鏈路數(shù)對(duì)應(yīng)計(jì)數(shù)增量值對(duì)下一數(shù)據(jù)包的計(jì)數(shù)進(jìn)行修正,從而實(shí)現(xiàn)了出口分擔(dān)鏈路對(duì)網(wǎng)絡(luò)負(fù)荷的均勻分擔(dān)。另外,本發(fā)明實(shí)施例中Counter計(jì)數(shù)器最大計(jì)數(shù)值為7,因此根據(jù)Counter計(jì)數(shù)器的低3bit的值與分擔(dān)鏈路數(shù)查詢模運(yùn)算表獲得偏移值時(shí),該模運(yùn)算表只需存儲(chǔ)8個(gè)偏移值條目,從而降低了模表占用資源。對(duì)應(yīng)地,本發(fā)明還提供了一種網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置。如圖5所示,該實(shí)施例的網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置包括:計(jì)數(shù)模塊110,用于當(dāng)有數(shù)據(jù)包進(jìn)入配置有ECMP的路由設(shè)備時(shí),對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),獲得計(jì)數(shù)值;偏移值確定模塊120,用于根據(jù)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值以及該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù),從預(yù)設(shè)的模運(yùn)算表中獲得偏移值,以根據(jù)該偏移值確定該ECMP對(duì)應(yīng)的出口信息,將接收到的數(shù)據(jù)包由確定的出口進(jìn)行轉(zhuǎn)發(fā);計(jì)數(shù)修正模塊130,用于當(dāng)所獲取到的當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值達(dá)到最大計(jì)數(shù)值時(shí),根據(jù)預(yù)先設(shè)置的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量,對(duì)下一數(shù)據(jù)包的計(jì)數(shù)值進(jìn)行修正,獲得修正后的計(jì)數(shù)值。路由設(shè)備中,每個(gè)ECMP均分配有一個(gè)Counter計(jì)數(shù)器,且計(jì)數(shù)器索引和ECMP索引一致。該計(jì)數(shù)器用于對(duì)進(jìn)入路由設(shè)備的數(shù)據(jù)包進(jìn)行計(jì)數(shù)。當(dāng)路由設(shè)備收到數(shù)據(jù)包后,對(duì)其進(jìn)行解析,獲得解析數(shù)據(jù),并根據(jù)解析數(shù)據(jù)確定該數(shù)據(jù)包對(duì)應(yīng)的ECMP索引,然后根據(jù)該ECMP索引,由ECMP索引的ECMP對(duì)應(yīng)的Counter計(jì)數(shù)器對(duì)當(dāng)前數(shù)據(jù)包進(jìn)行計(jì)數(shù),即該計(jì)數(shù)器進(jìn)行加1,獲得計(jì)數(shù)值。本實(shí)施例中,預(yù)先設(shè)置分擔(dān)鏈路數(shù)表,該分擔(dān)鏈路數(shù)表中記錄ECMP索引與分擔(dān)鏈路數(shù)的映射關(guān)系?;谠摲謸?dān)鏈路數(shù)表,可以獲得與ECMP索引對(duì)應(yīng)的分擔(dān)鏈路數(shù),例如2路、4路、8路等等。另外,該分擔(dān)鏈路數(shù)表中 還記錄分擔(dān)鏈路數(shù)與分擔(dān)策略表基址的映射關(guān)系。本實(shí)施例中,預(yù)先設(shè)置模運(yùn)算表。該模運(yùn)算表中記錄ECMP索引、分擔(dān)鏈路數(shù)與偏移值的映射關(guān)系。如圖3所示,當(dāng)前Counter計(jì)數(shù)器的計(jì)數(shù)最大值為127,每個(gè)分擔(dān)鏈路數(shù)對(duì)應(yīng)的偏移表中設(shè)置128個(gè)偏移值條目,且偏移值根據(jù)分擔(dān)鏈路數(shù)進(jìn)行循環(huán)設(shè)置。例如,分擔(dān)鏈路數(shù)為3時(shí),偏移值表中存在128個(gè)偏移值條目,且偏移值依次按0、1、2循環(huán)設(shè)置。另外,本實(shí)施例中,預(yù)先設(shè)置分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量。以計(jì)數(shù)器的計(jì)數(shù)最大值為127為例,具體的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量如下表1所示:表1.分擔(dān)鏈路數(shù)與計(jì)數(shù)增量值的映射關(guān)系分擔(dān)鏈路數(shù)Counter遇127時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值21334154637381假設(shè)分擔(dān)鏈路數(shù)為3,Counter對(duì)進(jìn)入該ECMP的數(shù)據(jù)包進(jìn)行計(jì)數(shù)時(shí),從0-127都是按加1來(lái)計(jì)數(shù),但是若計(jì)數(shù)值為127,Counter根據(jù)上表1中確定分擔(dān)鏈路數(shù)為3時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值,以在下一數(shù)據(jù)包進(jìn)入時(shí),根據(jù)該確定的計(jì)數(shù)增量值進(jìn)行計(jì)數(shù)修正,獲得修正后的計(jì)數(shù)值。當(dāng)計(jì)數(shù)值為127時(shí),根據(jù)上表1確定對(duì)應(yīng)的計(jì)數(shù)增量值為3,則在下一數(shù)據(jù)包進(jìn)入時(shí),確定模運(yùn)算表中對(duì)應(yīng)的偏移條目為偏移+2的條目,從而達(dá)到了每條鏈路均勻分擔(dān)的目的。因此,本發(fā)明實(shí)施例通過(guò)預(yù)設(shè)分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值,在ECMP對(duì)應(yīng)的Counter計(jì)數(shù)器進(jìn)行計(jì)數(shù)的低位計(jì)數(shù)值為最大值時(shí),根據(jù)分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值,對(duì)計(jì)數(shù)值進(jìn)行修正,從而可以實(shí)現(xiàn)每條鏈路的網(wǎng)絡(luò)負(fù)荷均勻分配。進(jìn)一步地,如圖6所示,上述實(shí)施例的網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置還包括:出口封裝獲取模塊140,用于根據(jù)分擔(dān)鏈路數(shù)表中的分擔(dān)策略表基址加上 所述偏移值,獲得分擔(dān)策略表索引,并查詢預(yù)設(shè)的分擔(dān)策略表中與分擔(dān)策略表索引對(duì)應(yīng)的出口封裝表偏移值;根據(jù)出口封裝表基址加上出口封裝偏移值,獲得出口封裝表索引,并查詢預(yù)設(shè)的出口封裝表中與出口封裝表索引對(duì)應(yīng)的出口封裝信息,以將接收到的數(shù)據(jù)包由該出口封裝信息封裝后進(jìn)行轉(zhuǎn)發(fā)。進(jìn)一步地,如圖7所示,上述實(shí)施例的網(wǎng)絡(luò)負(fù)荷的分擔(dān)裝置還包括:數(shù)據(jù)包解析模塊150,用于所述微碼接收到數(shù)據(jù)包時(shí),對(duì)該數(shù)據(jù)包進(jìn)行解析,獲得解析數(shù)據(jù);根據(jù)解析數(shù)據(jù),查詢私網(wǎng)路由表,獲得公私網(wǎng)分離表索引;進(jìn)而根據(jù)該公私網(wǎng)分離表索引查詢公私網(wǎng)分離表,獲得ECMP索引。如圖1所示,該路由設(shè)備中配置有多個(gè)ECMP,每個(gè)EMCP均設(shè)有8個(gè)出口鏈路,用于分擔(dān)數(shù)據(jù)包的轉(zhuǎn)發(fā)。該路由設(shè)備收到上一級(jí)設(shè)備發(fā)送過(guò)來(lái)的數(shù)據(jù)包后,對(duì)該數(shù)據(jù)包進(jìn)行解析,獲得數(shù)據(jù)包的解析數(shù)據(jù)。該解析數(shù)據(jù)可包括目的MAC、源MAC、VLAN、目的IP、源IP、標(biāo)簽等信息。根據(jù)該解析數(shù)據(jù),可以查詢預(yù)先配置的私網(wǎng)路由表,獲得公私網(wǎng)分離表索引;進(jìn)而根據(jù)該公私網(wǎng)分離表索引查詢預(yù)先配置的公私網(wǎng)分離表,獲得ECMP索引,即ECMP。進(jìn)一步地,所述計(jì)數(shù)模塊中,所述ECMP對(duì)應(yīng)的Counter的低位計(jì)數(shù)值的最大計(jì)數(shù)值為7。對(duì)應(yīng)地,該預(yù)先設(shè)置的分擔(dān)鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值如下表2所示:表2.分擔(dān)鏈路數(shù)與計(jì)數(shù)增量值的映射關(guān)系分擔(dān)鏈路數(shù)Counter遇7時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值21334154637281假設(shè)該ECMP具有5個(gè)出口鏈路數(shù),即該ECMP對(duì)應(yīng)的分擔(dān)鏈路數(shù)為5。 如圖4所示,該分擔(dān)鏈路數(shù)對(duì)應(yīng)的模運(yùn)算表中,偏移+0對(duì)應(yīng)出口鏈路1,偏移+1對(duì)應(yīng)出口鏈路2,偏移+2對(duì)應(yīng)出口鏈路3,偏移+3對(duì)應(yīng)出口鏈路4,偏移+4對(duì)應(yīng)出口鏈路5。若當(dāng)前數(shù)據(jù)包的低位計(jì)數(shù)值為7時(shí),根據(jù)上表2可知分擔(dān)鏈路數(shù)為5時(shí)對(duì)應(yīng)的計(jì)數(shù)增量值為4,因此下一數(shù)據(jù)包進(jìn)入該ECMP時(shí),Counter計(jì)數(shù)器的計(jì)數(shù)值為上一次計(jì)數(shù)值加4,即確定該數(shù)據(jù)包對(duì)應(yīng)的偏移值為“偏移值+3”,該數(shù)據(jù)包將從出口鏈路4輸出。由此可知,通過(guò)上述出口鏈路數(shù)對(duì)應(yīng)的計(jì)數(shù)增量值設(shè)置,在Counter計(jì)數(shù)器的低位計(jì)數(shù)值為最大值時(shí),根據(jù)出口鏈路數(shù)對(duì)應(yīng)計(jì)數(shù)增量值對(duì)下一數(shù)據(jù)包的計(jì)數(shù)進(jìn)行修正,從而實(shí)現(xiàn)了出口分擔(dān)鏈路對(duì)網(wǎng)絡(luò)負(fù)荷的均勻分擔(dān)。另外,本發(fā)明實(shí)施例中Counter計(jì)數(shù)器最大計(jì)數(shù)值為7,因此根據(jù)Counter計(jì)數(shù)器的低3bit的值與分擔(dān)鏈路數(shù)查詢模運(yùn)算表獲得偏移值時(shí),該模運(yùn)算表只需存儲(chǔ)8個(gè)偏移值條目,從而降低了模表占用資源。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或流程變換,或直接或間接運(yùn)用在其它相關(guān)的
技術(shù)領(lǐng)域:
,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。當(dāng)前第1頁(yè)1 2 3