一種基于網(wǎng)絡(luò)芯片的動態(tài)ecmp的實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,屬于以太網(wǎng)路由技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]以太網(wǎng)傳統(tǒng)的路由方法是使用路由表,根據(jù)目的IP地址進(jìn)行報文的轉(zhuǎn)發(fā)。網(wǎng)絡(luò)環(huán)境中存在多條不同鏈路到達(dá)同一目的地址的情況,如果使用傳統(tǒng)的路由技術(shù),發(fā)往該目的地址的數(shù)據(jù)包只能利用其中的一條鏈路,其它鏈路處于備份狀態(tài)或無效狀態(tài),并且在動態(tài)路由環(huán)境下相互的切換需要一定時間,而等價多路徑路由ECMP可以在該網(wǎng)絡(luò)環(huán)境下同時使用多條鏈路,不僅增加了傳輸帶寬,并且可以無時延無丟包地備份失效鏈路的數(shù)據(jù)傳輸。
[0003]目前ECMP的技術(shù)一般是網(wǎng)絡(luò)處理器通過報文頭中特定字段如源IP地址、目的IP地址等計算Hash值,標(biāo)識一種流,然后根據(jù)該Hash值對ECMP組的成員個數(shù)取模,選取等價路徑中的一條路徑進(jìn)行轉(zhuǎn)發(fā)。
[0004]上述ECMP方法可以達(dá)到負(fù)載分擔(dān)的效果,將流量分配到多條鏈路,但是始終是靜態(tài)的選路,報文選擇ECMP成員鏈路完全根據(jù)報文特征字段的Hash值來決定。報文特征字段相同的同一種流計算的Hash值是固定的,其選擇的出口鏈路也是固定的。這種技術(shù)沒有考慮鏈路的實際負(fù)載情況,會造成鏈路負(fù)載不均勻,這樣就會出現(xiàn)ECMP組中,有些ECMP成員鏈路可能已經(jīng)出現(xiàn)擁堵,甚至出現(xiàn)丟包,而有些鏈路的負(fù)載卻一直很輕甚至沒有流量。
【發(fā)明內(nèi)容】
[0005]針對現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,該方法根據(jù)數(shù)據(jù)流的狀態(tài)以及ECMP鏈路的負(fù)載適時觸發(fā)芯片自動進(jìn)行選路,并且每次選擇ECMP成員中負(fù)載最輕的鏈路,避免了現(xiàn)有靜態(tài)Hash實現(xiàn)方案中出現(xiàn)的某條鏈路因負(fù)載過重造成延遲甚至丟包以及鏈路負(fù)載不均造成浪費帶寬的情況。
[0006]為實現(xiàn)前述發(fā)明目的,本發(fā)明采用的技術(shù)方案包括:
一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,包括:
1)根據(jù)報文的目的IP查找路由表,獲取下一跳出口信息為一個ECMP組;
2)判斷ECMP組中獲取的是否為動態(tài)ECMP信息;
若ECMP組中沒有使能動態(tài)ECMP信息,則使用報文Hash值決定的一條靜態(tài)ECMP鏈路轉(zhuǎn)發(fā)報文,
若ECMP組中使能了動態(tài)ECMP信息,則查找動態(tài)ECMP流表,根據(jù)動態(tài)ECMP流表中的信息及ECMP鏈路的負(fù)載觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文。
[0007]進(jìn)一步的,所述觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文,具體包括:
若需要重新選擇鏈路,則比較ECMP成員鏈路的負(fù)載情況,選擇負(fù)載最輕的鏈路發(fā)送報文,并且將負(fù)載最輕的鏈路信息記錄到動態(tài)ECMP流表中;
若不需要重新選擇鏈路,則使用動態(tài)ECMP流表中記錄的鏈路將報文發(fā)送。
[0008]更進(jìn)一步的,所述觸發(fā)重新選擇鏈路的模式包括:
只對新流做鏈路選擇;
每隔一定的報文數(shù)做一次鏈路選擇;
每隔一定時間做鏈路選擇。
[0009]進(jìn)一步的,所述動態(tài)ECMP流表中的信息包括流的報文個數(shù)、最近一個報文的時間和當(dāng)前流的帶寬,但不局限于這些信息。
[0010]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點包括:網(wǎng)絡(luò)交換機(jī)可以根據(jù)數(shù)據(jù)流的狀態(tài)以及ECMP鏈路的負(fù)載適時觸發(fā)芯片自動進(jìn)行選路,并且每次選擇ECMP成員中負(fù)載最輕的鏈路,達(dá)到鏈路負(fù)載均衡的效果。避免了某條鏈路因負(fù)載過重造成延遲甚至丟包以及鏈路負(fù)載不均造成浪費帶寬的情況,實現(xiàn)簡單,系統(tǒng)成本低,可以大大提高網(wǎng)絡(luò)帶寬利用率。
【附圖說明】
[0011]圖1是本發(fā)明一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法的流程圖。
【具體實施方式】
[0012]鑒于現(xiàn)有技術(shù)中的不足,本案發(fā)明人經(jīng)長期研宄和大量實踐,得以提出本發(fā)明的技術(shù)方案。如下將對該技術(shù)方案、其實施過程及原理等作進(jìn)一步的解釋說明。
[0013]一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,所述方法包括:
1)根據(jù)報文的目的IP查找路由表,獲取下一跳出口信息為一個ECMP組;
2)判斷ECMP組中獲取的是否為動態(tài)ECMP信息;若ECMP組中沒有使能動態(tài)ECMP信息,則使用報文Hash值決定的一條靜態(tài)ECMP鏈路轉(zhuǎn)發(fā)報文,若ECMP組中使能了動態(tài)ECMP信息,則查找動態(tài)ECMP流表,根據(jù)動態(tài)ECMP流表中的信息及ECMP鏈路的負(fù)載觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文。
[0014]其中,觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文,具體包括:
若需要重新選擇鏈路,則比較ECMP成員鏈路的負(fù)載情況,選擇負(fù)載最輕的鏈路發(fā)送報文,并且將負(fù)載最輕的鏈路信息記錄到動態(tài)ECMP流表中;若不需要重新選擇鏈路,則使用動態(tài)ECMP流表中記錄的鏈路將報文發(fā)送。
[0015]觸發(fā)重新選擇鏈路的模式包括:只對新流做鏈路選擇;每隔一定的報文數(shù)做一次鏈路選擇;每隔一定時間做鏈路選擇。
[0016]其中,動態(tài)ECMP流表中的信息包括流的報文個數(shù)、最近一個報文的時間和當(dāng)前流的帶寬。
[0017]本實施例采用的網(wǎng)絡(luò)芯片為于ASIC芯片或FPGA或NP,但不局限于這些芯片。
[0018]應(yīng)當(dāng)理解,上述實施例僅為說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的在于讓熟悉此項技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項】
1.一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,其特征在于包括: 1)根據(jù)報文的目的IP查找路由表,獲取下一跳出口信息為一個ECMP組; 2)判斷ECMP組中獲取的是否為動態(tài)ECMP信息; 若ECMP組中沒有使能動態(tài)ECMP信息,則使用報文Hash值決定的一條靜態(tài)ECMP鏈路轉(zhuǎn)發(fā)報文, 若ECMP組中使能了動態(tài)ECMP信息,則查找動態(tài)ECMP流表,根據(jù)動態(tài)ECMP流表中的信息及ECMP鏈路的負(fù)載觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文。
2.根據(jù)權(quán)利要求1所述基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,其特征在于所述觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文,具體包括: 若需要重新選擇鏈路,則比較ECMP成員鏈路的負(fù)載情況,選擇負(fù)載最輕的鏈路發(fā)送報文,并且將負(fù)載最輕的鏈路信息記錄到動態(tài)ECMP流表中; 若不需要重新選擇鏈路,則使用動態(tài)ECMP流表中記錄的鏈路將報文發(fā)送。
3.根據(jù)權(quán)利要求2所述基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,其特征在于所述觸發(fā)重新選擇鏈路的模式包括: 只對新流做鏈路選擇; 每隔一定的報文數(shù)做一次鏈路選擇; 每隔一定時間做鏈路選擇。
4.根據(jù)權(quán)利要求1所述基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,其特征在于所述動態(tài)ECMP流表中的信息包括流的報文個數(shù)、最近一個報文的時間和當(dāng)前流的帶寬。
【專利摘要】本發(fā)明公開了一種基于網(wǎng)絡(luò)芯片的動態(tài)ECMP的實現(xiàn)方法,包括:1)根據(jù)報文的目的IP查找路由表,獲取下一跳出口信息為一個ECMP組;2)判斷ECMP組中獲取的是否為動態(tài)ECMP信息;若ECMP組中沒有使能動態(tài)ECMP信息,則使用報文Hash值決定的一條靜態(tài)ECMP鏈路轉(zhuǎn)發(fā)報文,若ECMP組中使能了動態(tài)ECMP信息,則查找動態(tài)ECMP流表,根據(jù)動態(tài)ECMP流表中的信息及ECMP鏈路的負(fù)載觸發(fā)芯片自動進(jìn)行選路轉(zhuǎn)發(fā)報文。本發(fā)明中的網(wǎng)絡(luò)交換機(jī)可以根據(jù)數(shù)據(jù)流的狀態(tài)以及ECMP鏈路的負(fù)載適時觸發(fā)芯片自動進(jìn)行選路,并且每次選擇ECMP成員中負(fù)載最輕的鏈路,達(dá)到鏈路負(fù)載均衡的效果,避免某條鏈路因負(fù)載過重造成延遲甚至丟包以及鏈路負(fù)載不均造成浪費帶寬的情況,實現(xiàn)簡單,系統(tǒng)成本低,可以大大提高網(wǎng)絡(luò)帶寬利用率。
【IPC分類】H04L12-803
【公開號】CN104539552
【申請?zhí)枴緾N201510012098
【發(fā)明人】鄭曉陽, 周偉, 蔣華
【申請人】盛科網(wǎng)絡(luò)(蘇州)有限公司
【公開日】2015年4月22日
【申請日】2015年1月12日