專利名稱:聚合鏈路流量分擔(dān)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)技術(shù),尤其與一種聚合鏈路流量分擔(dān)方法及裝置有關(guān)。
背景技術(shù):
鏈路聚合(Link Aggregation),是將多個(gè)物理端口捆綁成一個(gè)聚合端口 組,以實(shí)現(xiàn)負(fù)荷流量在匯聚組成員端口中的分擔(dān),同時(shí)也提供了更高的連接 可靠性。鏈路聚合技術(shù)是一種常用的以太網(wǎng)連接技術(shù),可以用于以太網(wǎng)設(shè)備 之間的連接或者以太網(wǎng)設(shè)備到高速服務(wù)器之間的連接。它通過(guò)將多個(gè)物理端 口捆綁起來(lái),提供了一種簡(jiǎn)單廉價(jià)的方式來(lái)擴(kuò)展端口的帶寬,同時(shí)也提供了 更高的連接可靠性。捆綁在一起的一組端口組成一個(gè)聚合組, 一個(gè)聚合組被 當(dāng)做一個(gè)邏輯端口,出入聚合組的報(bào)文可以在聚合組內(nèi)的成員端口上按照一 定的方式進(jìn)行分布以平衡端口之間的流量,平穩(wěn)增加端口帶寬。當(dāng)聚合組中 有一個(gè)連接出現(xiàn)故障,故障端口上的流量將會(huì)在其他端口上進(jìn)行分配,保證 業(yè)務(wù)不會(huì)中斷;當(dāng)故障連接恢復(fù)以后,流量會(huì)自動(dòng)重新平衡,保證恢復(fù)后的 連接能夠繼續(xù)分擔(dān)整體流量。
如何在聚合鏈路成員端口之間進(jìn)行有效的流量分擔(dān),成為鏈路聚合技術(shù) 中的一個(gè)重點(diǎn)。在現(xiàn)有的流量分擔(dān)技術(shù)中, 一般采用待轉(zhuǎn)發(fā)報(bào)文的源MAC 地址、目的MAC地址、源IP地址、目的IP地址、源L4端口號(hào)、目的L4 端口號(hào)、接收物理端口、接收?qǐng)?bào)文類型等信息中的一個(gè)或多個(gè)作為分擔(dān)算法 的輸入。顯然,對(duì)于某個(gè)確定的網(wǎng)絡(luò)應(yīng)用,這些信息不受時(shí)間的影響,是固 定不變的,即為所述待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù)值。通過(guò)對(duì)這些信息的簡(jiǎn)單處理, 例如截取待轉(zhuǎn)發(fā)報(bào)文源MAC地址和目的MAC地址的最后3 bit進(jìn)行異或 (XOR)操作,就可以得到報(bào)文轉(zhuǎn)發(fā)的不同出端口,實(shí)現(xiàn)流量的分擔(dān)。由此 可知,現(xiàn)有技術(shù)的流量分擔(dān)方法的輸入信息為反映待轉(zhuǎn)發(fā)報(bào)文屬性的靜態(tài)信 息,不能反映聚合鏈路中各個(gè)成員端口的實(shí)際流量負(fù)荷情況,更不能根據(jù)這些實(shí)際負(fù)荷情況對(duì)聚合鏈路流量的分擔(dān)方式進(jìn)行調(diào)整,雖然能簡(jiǎn)單實(shí)現(xiàn)流量 分擔(dān)的功能,但不能實(shí)現(xiàn)流量的有效分擔(dān),會(huì)帶來(lái)聚合組成員端口之間流量 負(fù)荷分擔(dān)不均、差別懸殊的情況,使得負(fù)荷小的端口存在帶寬浪費(fèi),尤其對(duì) 負(fù)荷過(guò)大的端口問(wèn)題會(huì)更嚴(yán)重,會(huì)出現(xiàn)擁塞而引起丟包,這使得鏈路聚合技 術(shù)在實(shí)際應(yīng)用上也受到很大限制。例如,兩個(gè)相同速率的物理端口組成一個(gè)
聚合組,按照源MAC地址和目的MAC地址最后1 bit進(jìn)行異或操作選擇轉(zhuǎn) 發(fā)報(bào)文的出端口,為0則從1端口轉(zhuǎn)發(fā),為1則從2端口轉(zhuǎn)發(fā)。當(dāng)l端口的 流量已經(jīng)達(dá)到滿負(fù)荷的99%,而2端口的流量?jī)H為1%時(shí),又有一條新的業(yè) 務(wù)流加入,并且按照該流量分擔(dān)方式結(jié)果為l端口,那么該流量就會(huì)加在本 來(lái)就很擁擠的l端口鏈路上,極有可能造成l端口擁塞,而2端口流量?jī)H為 1%。造成了極大的浪費(fèi)??梢?jiàn),現(xiàn)有流量分擔(dān)方法不能實(shí)現(xiàn)端口帶寬資源 的有效共享,造成不可避免的帶寬沖突和浪費(fèi)。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的聚合鏈路流量分擔(dān)不均,造成端口帶寬資源不能 充分有效利用的問(wèn)題,本發(fā)明的目的在于提供一種聚合鏈路流量分擔(dān)均衡, 各成員端口帶寬資源能夠得到充分有效利用的聚合鏈路流量分擔(dān)方法。
本發(fā)明的另一目的在于提供一種實(shí)現(xiàn)本發(fā)明聚合鏈路流量分擔(dān)方法的 聚合鏈路流量分擔(dān)裝置。
為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下
本發(fā)明的MAC地址聚合鏈路流量分擔(dān)方法,包括以下步驟 一種聚合鏈路流量分擔(dān)方法,用于聚合鏈路成員端口之間的流量分擔(dān), 包括以下步驟
步驟S100:獲知各所述成員端口的至少一個(gè)能夠動(dòng)態(tài)反映該端口轉(zhuǎn)發(fā)性 能的動(dòng)態(tài)參數(shù)值;
步驟S200:將待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù)值與所述動(dòng)態(tài)參數(shù)值,共同作為聚 合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法;
步驟S300:將所述待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述分擔(dān)算法所選擇的出端口。 一種實(shí)現(xiàn)本發(fā)明聚合鏈路流量分擔(dān)方法的聚合鏈路流量分擔(dān)裝置,所述 聚合鏈路流量分擔(dān)裝置包括參數(shù)獲取模塊、端口選擇模塊和轉(zhuǎn)發(fā)模塊;參數(shù)獲取模塊用于獲取各所述成員端口的至少一個(gè)能夠動(dòng)態(tài)反映該端 口轉(zhuǎn)發(fā)性能的動(dòng)態(tài)參數(shù)值;
端口選擇模塊連接于所述參數(shù)獲取模塊,將所述待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參 數(shù)值與所述參數(shù)獲取模塊傳來(lái)的動(dòng)態(tài)參數(shù)值,共同作為聚合鏈路流量分擔(dān)算 法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法;
轉(zhuǎn)發(fā)模塊連接于所述端口選擇模塊,接收所述端口選擇模塊傳來(lái)的由 所述分擔(dān)算法選擇的出端口 ,將所述待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述出端口 。
由上述技術(shù)方案可知,本發(fā)明具有以下有益效果本發(fā)明的聚合鏈路流 量分擔(dān)方法,在進(jìn)行聚合鏈路流量分擔(dān)時(shí),通過(guò)固定的應(yīng)用信息和聚合組成 員端口流量來(lái)共同決定分擔(dān)方式。在進(jìn)行聚合鏈路流量分擔(dān)時(shí),考慮端口的 能力情況變化,動(dòng)態(tài)調(diào)整流量分擔(dān)方式。本發(fā)明可以使聚合鏈路上的流量負(fù) 荷得到有效分擔(dān),充分利用了端口帶寬,提高了帶寬的利用率。
下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明聚合鏈路流量分擔(dān)方法的流程圖2為本發(fā)明聚合鏈路流量分擔(dān)方法的端口能力值定時(shí)更新的流程圖; 圖3為本發(fā)明聚合鏈路流量分擔(dān)方法的轉(zhuǎn)發(fā)端口選擇的流程圖4為本發(fā)明聚合鏈路流量分擔(dān)裝置的示意圖。
具體實(shí)施例方式
下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。 本發(fā)明的聚合鏈路流量分擔(dān)方法,用于對(duì)聚合鏈路成員端口之間的流量
分擔(dān),如圖1所示,包括以下步驟
步驟S100:獲知各所述成員端口的至少一個(gè)能夠動(dòng)態(tài)反映該端口轉(zhuǎn)發(fā)性 能的動(dòng)態(tài)參數(shù)值;
步驟S200:將待轉(zhuǎn)發(fā)報(bào)文的至少一個(gè)靜態(tài)參數(shù)值與所述動(dòng)態(tài)參數(shù)值,共 同作為聚合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法; 步驟S300:將所述待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述分擔(dān)算法所選擇的出端口。
本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)方法,所述動(dòng)態(tài)參數(shù)值為用于標(biāo)稱所述端口當(dāng)前可用剩余帶寬的端口能力值,所述當(dāng)前剩余可用帶寬可由所述端 口支持的最大帶寬減去當(dāng)前流量占用帶寬得到。
為了達(dá)到流量均衡的目的,本發(fā)明實(shí)施例的聚合鏈路分擔(dān)方法,不是簡(jiǎn)
單的以待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù),即待轉(zhuǎn)發(fā)報(bào)文的源/目的MAC地址、源/目的 IP地址、源/目的L4端口號(hào)、接收物理端口等來(lái)作為聚合鏈路流量分擔(dān)的依 據(jù),而是采用至少一個(gè)靜態(tài)參數(shù)與標(biāo)稱聚合成員端口當(dāng)前可用剩余帶寬的端 口能力值這一動(dòng)態(tài)參數(shù)共同來(lái)決定流量分擔(dān)的方式,即將至少一個(gè)靜態(tài)參數(shù) 與端口能力值共同作為流量分擔(dān)算法的輸入。目前,以太網(wǎng)二層MAC地址 學(xué)習(xí)都是學(xué)習(xí)到聚合組索引上的,因此,本發(fā)明的聚合鏈路流量分擔(dān)方法, 端口流量主要是指出方向的流量。
為獲取到聚合組各成員端口的實(shí)時(shí)的出流量信息,即獲取當(dāng)前出流量占 用帶寬,進(jìn)而得到端口能力值,首先需要為聚合組每個(gè)成員端口配置一個(gè)統(tǒng) 計(jì)計(jì)數(shù)器。端口的統(tǒng)計(jì)計(jì)數(shù)器可以是硬件的計(jì)數(shù)器,也可以是軟件的計(jì)數(shù)器。 從確保統(tǒng)計(jì)的及時(shí)性和減少對(duì)CPU資源的消耗考慮,優(yōu)選的為硬件計(jì)數(shù)器。 另外,統(tǒng)計(jì)計(jì)數(shù)器可以基于報(bào)文統(tǒng)計(jì)也可以基于字節(jié)統(tǒng)計(jì),如果要達(dá)到聚合 鏈路流量分擔(dān)的高精度的負(fù)載均衡效果,優(yōu)選基于字節(jié)進(jìn)行統(tǒng)計(jì)計(jì)數(shù),但字 節(jié)統(tǒng)計(jì)計(jì)數(shù)器需要占用的硬件計(jì)數(shù)器位寬比報(bào)文統(tǒng)計(jì)計(jì)數(shù)器大,成本必然提 高,在實(shí)際應(yīng)用中,可以根據(jù)實(shí)際情況,根據(jù)性價(jià)比綜合考慮而選取。
對(duì)于統(tǒng)計(jì)計(jì)數(shù)器進(jìn)行實(shí)時(shí)統(tǒng)計(jì)的統(tǒng)計(jì)值,本發(fā)明實(shí)施例的鏈路聚合分擔(dān) 算法,可以通過(guò)軟件定時(shí)査詢或者硬件定時(shí)直接內(nèi)存讀取(Direct Memory Access,簡(jiǎn)稱DMA)傳遞來(lái)獲取到端口統(tǒng)計(jì)計(jì)數(shù)器的統(tǒng)計(jì)技術(shù)值,定時(shí)或接 收到待轉(zhuǎn)發(fā)報(bào)文以后實(shí)時(shí)獲取聚合組各成員端口的當(dāng)前帶寬占用值。在獲取 到端口聚合組各成員端口的當(dāng)前帶寬占用值后,計(jì)算聚合組各成員端口的當(dāng) 前剩余可用帶寬,其由各自端口支持的最大帶寬減去當(dāng)前流量占用帶寬值得 到。本發(fā)明實(shí)施例的鏈路聚合分擔(dān)算法,引入端口能力值來(lái)標(biāo)稱當(dāng)前剩余可 用帶寬。例如,對(duì)于聚合組中包括全雙工的速率為100M和10M的兩個(gè)端口, 當(dāng)端口統(tǒng)計(jì)計(jì)數(shù)器為0時(shí),100M端口的能力值定為100, IOM端口的能力 值定為10。
聚合組各成員端口的端口能力值確定后,可以計(jì)算聚合組的總能力值。 例如,前面提到的兩個(gè)端口組成的聚合組,其當(dāng)前的總能力值即為110。本發(fā)明實(shí)施例的聚合鏈路分擔(dān)方法,在所述聚合鏈路流量分擔(dān)算法中,在接收 到一個(gè)所述待轉(zhuǎn)發(fā)報(bào)文后,要對(duì)該待轉(zhuǎn)發(fā)報(bào)文進(jìn)行轉(zhuǎn)發(fā)端口的選擇,而聚合 組的每一成員端口被選擇為出端口的概率等于該成員端口的端口能力值在 所有端口的總能力值所占的百分比。或者說(shuō),聚合組各成員端口被選擇為出端口的概率比為各端口的端口能力值之比,即端口能力值為100的成員端口 有IO倍于端口能力值為10的成員端口的概率被選擇為一待轉(zhuǎn)發(fā)報(bào)文或一條 新流的出端口;當(dāng)通過(guò)各成員端口的端口統(tǒng)計(jì)計(jì)數(shù)器計(jì)算出100M端口目前 消耗帶寬95M, 10M端口消耗帶寬為2M時(shí),IOOM端口對(duì)應(yīng)的端口能力值 為5, IOM端口的能力值變?yōu)?,這個(gè)時(shí)候兩個(gè)端口被選擇為出端口的概率 比變?yōu)?:8,即IOM端口更可能被選擇為一條新轉(zhuǎn)發(fā)流的出端口。本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)算法,所述分擔(dān)算法可以通過(guò)硬件邏 輯實(shí)現(xiàn),也可以通過(guò)軟件實(shí)現(xiàn),例如可以建立一由所述靜態(tài)參數(shù)集到所述各 成員端口集的映射,兩所述成員端口被映射的概率等于所述兩成員端口的端 口能力值之比。選取待轉(zhuǎn)發(fā)報(bào)文的一個(gè)靜態(tài)參數(shù),例如報(bào)文的源地址,取其 后四位的二進(jìn)制值,假設(shè)可選擇的端口 1的端口能力值為50、端口 2的端口 能力值為25、端口 3的端口能力值為25;則該映射可以把二進(jìn)制值的0000 0111映射到端口 1,把二進(jìn)制值1000-1011映射到端口 2,把二進(jìn)制值的 1100 1111映射到端口 3,即如果待轉(zhuǎn)發(fā)報(bào)文源地址的后四位的二進(jìn)制值為 0000 0111則選擇端口 1為出端口,如果待轉(zhuǎn)發(fā)報(bào)文源地址的后四位的二進(jìn) 制值為1000~1011則映選擇端口 2為出端口,如果待轉(zhuǎn)發(fā)報(bào)文源地址的后四 位的二進(jìn)制值為1100 1111則選擇端口 3為出端口。本發(fā)明另一實(shí)施例的聚合鏈路流量分擔(dān)方法,在所述聚合鏈路流量分擔(dān) 算法中,對(duì)一所述待轉(zhuǎn)發(fā)報(bào)文或報(bào)文流, 一成員端口被選擇為所述待轉(zhuǎn)發(fā)報(bào) 文或報(bào)文流轉(zhuǎn)發(fā)端口的概率等于該成員端口的加權(quán)端口能力值在所有端口 的加權(quán)總能力值所占的百分比。即對(duì)端口能力值進(jìn)行加權(quán),例如,可以對(duì)考 慮聚合組各成員端口全雙工和半雙工的情況,全雙工的成員端口的所述加權(quán) 端口能力值的加權(quán)系數(shù)為2,半雙工的成員端口的所述加權(quán)端口能力值的加 權(quán)系數(shù)為1。也可以綜合考慮根據(jù)上下行流量比例來(lái)設(shè)置這個(gè)加權(quán)系數(shù)。在本發(fā)明的聚合流量分擔(dān)方法中,分擔(dān)算法的輸入增加了端口能力值這 一能夠動(dòng)態(tài)反映該端口轉(zhuǎn)發(fā)性能的動(dòng)態(tài)參數(shù)的參數(shù)值,與所述待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù)值,共同作為聚合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流 量分擔(dān)算法,選擇一個(gè)轉(zhuǎn)發(fā)所述待轉(zhuǎn)發(fā)報(bào)文的出端口。因?yàn)榫酆辖M各成員端 口的端口能力值是基于流量占用情況計(jì)算出來(lái)的,因此是一個(gè)動(dòng)態(tài)變化的參 數(shù)。當(dāng)為某個(gè)報(bào)文或報(bào)文流轉(zhuǎn)發(fā)選擇聚合組出端口時(shí),根據(jù)成員端口的轉(zhuǎn)發(fā) 能力值進(jìn)行概率選擇,相當(dāng)于在分擔(dān)算法中引入了鏈路帶寬的實(shí)時(shí)使用情況 的負(fù)反饋,保證了聚合組帶寬的充分有效利用。本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)方法,當(dāng)聚合組成員端口發(fā)生故障 時(shí),現(xiàn)有技術(shù)的處理方法需要調(diào)整聚合鏈路的有效端口,將故障端口從有效 端口中去除掉。在本發(fā)明實(shí)施例的聚合鏈路分擔(dān)方法,不需要更新聚合組有 效成員端口的組成情況,只需要將發(fā)生故障的端口能力值設(shè)置為0就可以了 。因?yàn)閷?duì)于能力值為o的端口,其被選擇成為聚合組出端口的概論為0,效果相當(dāng)于從聚合組中去除掉了。 一旦故障解決,端口能力值馬上得到更新,能 夠快速恢復(fù)鏈路帶寬,重新進(jìn)入可被選擇的聚合組出端口中,具備良好的故 障恢復(fù)能力。本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)方法,為了避免突發(fā)流量造成聚合組 成員端口鏈路過(guò)載,可以設(shè)置端口能力值在所述聚合組成員端口的端口流量負(fù)荷達(dá)到或超過(guò)某個(gè)閾值上限時(shí)減小為0,如滿負(fù)荷的85%,即一個(gè)成員端 口的當(dāng)前出流量占用帶寬達(dá)到所述端口支持的最大帶寬的85%。具體的閾值 上限值可以通過(guò)統(tǒng)計(jì)和分析鏈路上常見(jiàn)應(yīng)用的流量來(lái)確定。在選擇到出端口后,將所述待轉(zhuǎn)發(fā)報(bào)文或報(bào)文流轉(zhuǎn)發(fā)于所述出端口。本發(fā)明的聚合鏈路流量分擔(dān)方法,所述動(dòng)態(tài)參數(shù)也可為連接距離或租用 鏈路成本或上網(wǎng)時(shí)間段,或者他們的組合,或者他們與端口能力值的組合??梢?jiàn),本發(fā)明的聚合鏈路流量分擔(dān)方法,步驟S100完成的端口能力值 的定時(shí)更新與步驟S200完成的報(bào)文流或報(bào)文的聚合組出端口選擇。均可以 通過(guò)CPU來(lái)處理,也可以通過(guò)ASIC硬件邏輯來(lái)處理。它們的具體處理流程 如圖2和圖3所示。如圖2所示,本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)方法,步驟S100中端 口能力值的定時(shí)更新的流程包括如下步驟步驟S110:建立聚合組時(shí),為每個(gè)成員端口綁定統(tǒng)計(jì)計(jì)數(shù)器; 步驟S120:根據(jù)成員端口的物理速度、雙工情況和突發(fā)帶寬預(yù)留等因素確定所述端口的最大帶寬;步驟S130:定時(shí)進(jìn)行軟件査詢統(tǒng)計(jì)計(jì)數(shù)值或啟動(dòng)硬件DMA上傳統(tǒng)計(jì)計(jì) 數(shù)值;步驟S140:計(jì)算各成員端口當(dāng)前的帶寬占用值;步驟S150:計(jì)算并更新各個(gè)成員端口的端口能力值,其由最大帶寬減去當(dāng)前的帶寬占用值所得結(jié)果轉(zhuǎn)換得到。如圖3所示,本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)方法,步驟S200中聚 合組出端口選擇與步驟S300的報(bào)文轉(zhuǎn)發(fā)的流程包括如下步驟-步驟S210:接收待轉(zhuǎn)發(fā)報(bào)文; 步驟S220:査找地址表確定轉(zhuǎn)發(fā)端口 ;步驟S230:判斷是否需要送往聚合組,即在地址表中記載的轉(zhuǎn)發(fā)端口如 為聚合組端口,則送往聚合組;如果需要,則執(zhí)行步驟S240;如不需要,則 執(zhí)行步驟S310;步驟S240:根據(jù)以端口能力值為一輸入的聚合分擔(dān)算法確定出端口;然后執(zhí)行步驟S320;步驟S310:根據(jù)地址表出口轉(zhuǎn)發(fā)報(bào)文;流程結(jié)束;步驟S320:根據(jù)所述聚合分擔(dān)算法所確定的出端口轉(zhuǎn)發(fā)報(bào)文;流程結(jié)束。 本發(fā)明的聚合鏈路流量分擔(dān)方法,引入的端口能力值是一個(gè)動(dòng)態(tài)變化的 參數(shù)。按照每個(gè)報(bào)文轉(zhuǎn)發(fā)都進(jìn)行一次聚合組出端口選擇,那么某條確定的報(bào) 文流就會(huì)通過(guò)不同的路徑到達(dá)目的地。對(duì)于一個(gè)二層轉(zhuǎn)發(fā)的網(wǎng)絡(luò),不會(huì)對(duì)應(yīng) 用有任何影響;在三層轉(zhuǎn)發(fā)的網(wǎng)絡(luò)中,勢(shì)必會(huì)出現(xiàn)報(bào)文亂序的情況。針對(duì)這種情況,本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)方法,在一條新的報(bào)文流到達(dá)的 時(shí)候才進(jìn)行聚合組出端口的選擇,并基于報(bào)文流記錄選擇的出端口。如果這 條流持續(xù)發(fā)生,那么將一直按照這次選擇結(jié)果進(jìn)行轉(zhuǎn)發(fā)。如果出端口發(fā)生故 障,則需要重新根據(jù)當(dāng)時(shí)的各端口能力值進(jìn)行出端口更新選擇。 下面再對(duì)本發(fā)明實(shí)施例的聚合鏈路分擔(dān)裝置進(jìn)行介紹。如圖4所示,實(shí)現(xiàn)本發(fā)明聚合鏈路流量分擔(dān)方法的本發(fā)明實(shí)施例的聚合 鏈路流量分擔(dān)裝置,包括參數(shù)獲取模塊、端口選擇模塊和轉(zhuǎn)發(fā)模塊;參數(shù)獲取模塊用于獲取各所述成員端口的能夠動(dòng)態(tài)反映該端口轉(zhuǎn)發(fā)性 能的端口能力值;所述端口能力值用于標(biāo)稱所述端口當(dāng)前可用剩余帶寬;端口選擇模塊連接于所述參數(shù)獲取模塊,將至少一個(gè)所述待轉(zhuǎn)發(fā)報(bào)文 的靜態(tài)參數(shù)值與所述參數(shù)獲取模塊傳來(lái)的各成員端口的端口能力值,共同作 為聚合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法;轉(zhuǎn)發(fā)模塊接收所述端口選擇模塊傳來(lái)的被選擇的所述出端口,將所述 待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述出端口 。本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)裝置,所述參數(shù)獲取模塊中包括計(jì)算 單元、流量統(tǒng)計(jì)單元和參數(shù)轉(zhuǎn)換單元;所述流量統(tǒng)計(jì)單元,用于獲取各成員端口的當(dāng)前流量占用帶寬;所述流 量統(tǒng)計(jì)單元,通過(guò)接收或査詢各成員端口綁定的用于獲取當(dāng)前流量帶寬占用 值的統(tǒng)計(jì)計(jì)數(shù)器的統(tǒng)計(jì)計(jì)數(shù)值,來(lái)獲取各成員端口的當(dāng)前流量帶寬占用值。所述計(jì)算單元,接收所述流量統(tǒng)計(jì)單元輸入的當(dāng)前流量占用帶寬,由所 述端口支持的最大帶寬減去當(dāng)前流量占用帶寬得到當(dāng)前可用剩余帶寬;所述轉(zhuǎn)換單元,將所述計(jì)算單元傳來(lái)的所述當(dāng)前可用剩余帶寬,轉(zhuǎn)換為 端口能力值。本發(fā)明實(shí)施例的聚合鏈路流量分擔(dān)裝置,在所述端口選擇模塊包括總計(jì) 單元、概率計(jì)算單元、算法單元和映射單元;總計(jì)單元統(tǒng)計(jì)各成員端口的端口能力值,并計(jì)算所有端口的總能力值; 概率計(jì)算單元接收所述總計(jì)單元傳來(lái)各成員端口的端口能力值與所述總能力值,計(jì)算出各成員端口的端口能力值在所述總能力值中所占的百分比;將 計(jì)算結(jié)果傳送給算法單元;算法單元運(yùn)行所述聚合鏈路流量分擔(dān)算法,接收 概率計(jì)算單元傳來(lái)的所述百分比,以所述百分比為選擇概率為所述待轉(zhuǎn)發(fā)報(bào)文選擇出端口。在算法單元進(jìn)行出端口選擇時(shí),可以將一靜態(tài)參數(shù)和各端口 能力值的百分比輸入映射單元,由映射單元建立一由所述靜態(tài)參數(shù)集到所述 各成員端口集的映射,兩所述成員端口被映射的概率等于所述兩成員端口的 端口能力值之比。所述算法單元接收所述映射單元的輸出的映射關(guān)系,按照 所述映射關(guān)系為每一待轉(zhuǎn)發(fā)報(bào)文或報(bào)文流選擇出端口 。本發(fā)明第二實(shí)施例的聚合鏈路流量分擔(dān)裝置,參數(shù)獲取模塊和轉(zhuǎn)發(fā)模塊 與第一實(shí)施例的聚合鏈路流量分擔(dān)裝置相同,所述端口選擇模塊中包括配置 單元、總計(jì)單元、概率計(jì)算單元、算法單元和映射單元-配置單元配置各成員端口的加權(quán)系數(shù)值;例如為全雙工的成員端口的所述加權(quán)端口能力值的加權(quán)系數(shù)配置為2,半雙工的成員端口的所述加權(quán)端口 能力值的加權(quán)系數(shù)配置為1。總計(jì)單元接收所述配置單元輸入的各成員端口 的加權(quán)系數(shù)值,計(jì)算各成員端口的加權(quán)端口能力值與所有端口的加權(quán)總能力 值;將其輸入概率計(jì)算單元;概率計(jì)算單元接收所述總計(jì)單元傳來(lái)各成員端 口的端口加權(quán)能力值與所述加權(quán)總能力值,計(jì)算各成員端口的端口能力值在 所述總能力值中所占的百分比;算法單元運(yùn)行所述聚合鏈路流量分擔(dān)算法, 接收概率計(jì)算單元傳來(lái)的所述百分比,以所述百分比為選擇概率為所述待轉(zhuǎn) 發(fā)報(bào)文選擇出端口。其中算法單元與映射單元與本發(fā)明第一實(shí)施例的聚合鏈 路流量分擔(dān)裝置的算法單元與映射單元相同。本發(fā)明的第一實(shí)施例和第二實(shí)施例的聚合鏈路流量分擔(dān)裝置,所述參數(shù) 獲取模塊中還包括參數(shù)調(diào)整單元,所述參數(shù)調(diào)整單元接收所述轉(zhuǎn)換單元輸入 的端口能力值,將發(fā)生故障的所述成員端口的端口能力值調(diào)整為0;所述故 障消除時(shí),更新所述端口能力值;所述參數(shù)調(diào)整單元還將流量負(fù)荷達(dá)到閾值 的成員端口的端口能力值調(diào)整為0。本發(fā)明的第一實(shí)施例和第二實(shí)施例的聚合鏈路流量分擔(dān)裝置,在所述端 口選擇單元中,還可以包括一個(gè)流處理單元,所述流處理單元記錄該報(bào)文流 的出端口 ,對(duì)屬于該報(bào)文流的所述待轉(zhuǎn)發(fā)報(bào)文的轉(zhuǎn)發(fā)端口選擇為該出端口 。以上所述的僅為本發(fā)明的較佳可行實(shí)施例,所述實(shí)施例并非用以限制本 發(fā)明的專利保護(hù)范圍,因此凡是運(yùn)用本發(fā)明的說(shuō)明書及附圖內(nèi)容所作的等同 結(jié)構(gòu)變化,同理均應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種聚合鏈路流量分擔(dān)方法,用于聚合鏈路成員端口之間的流量分擔(dān),包括以下步驟步驟S100獲知各所述成員端口的至少一個(gè)能夠動(dòng)態(tài)反映該端口轉(zhuǎn)發(fā)性能的動(dòng)態(tài)參數(shù)值;步驟S200將待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù)值與所述動(dòng)態(tài)參數(shù)值,共同作為聚合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法;步驟S300將所述待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述分擔(dān)算法所選擇的出端口。
2. 如權(quán)利要求1所述的聚合鏈路流量分擔(dān)方法,其特征在于,在步驟 S100中,所述動(dòng)態(tài)參數(shù)值為標(biāo)稱所述端口當(dāng)前可用剩余帶寬的端口能力值, 所述當(dāng)前剩余可用帶寬可由所述端口支持的最大帶寬減去當(dāng)前出流量占用 帶寬得到,所述當(dāng)前出流量占用帶寬由綁定在各所述成員端口的統(tǒng)計(jì)計(jì)數(shù)器 的計(jì)數(shù)值經(jīng)計(jì)算獲得。
3. 如權(quán)利要求2所述的聚合鏈路流量分擔(dān)方法,其特征在于,在步驟 S200中,在所述聚合鏈路流量分擔(dān)算法中,對(duì)一所述待轉(zhuǎn)發(fā)報(bào)文, 一成員端 口被選擇為所述出端口的概率等于該成員端口的定時(shí)更新的端口能力值在 所有端口的總能力值所占的百分比。
4. 如權(quán)利要求3所述的聚合鏈路流量分擔(dān)方法,其特征在于,在步驟 S200中,所述總能力值為加權(quán)的端口能力值的總和。
5. 如權(quán)利要求2所述的聚合鏈路流量分擔(dān)方法,其特征在于在步驟 S100中,發(fā)生故障的所述成員端口的所述端口能力值設(shè)置為O,所述故障消 除時(shí),更新所述端口能力值;所述成員端口的流量負(fù)荷達(dá)到一閾值時(shí),將該 成員端口的端口能力值設(shè)置為0。
6. 如權(quán)利要求2所述的聚合鏈路流量分擔(dān)方法,其特征在于,獲取所 述統(tǒng)計(jì)計(jì)數(shù)器的方式為定時(shí)査詢所述統(tǒng)計(jì)計(jì)數(shù)器的統(tǒng)計(jì)計(jì)數(shù)值或啟動(dòng)硬件 DMA上傳所述統(tǒng)計(jì)計(jì)數(shù)器的所述統(tǒng)計(jì)計(jì)數(shù)值。
7. 如權(quán)利要求1所述的聚合鏈路流量分擔(dān)方法,其特征在于在步驟 S200中,對(duì)屬于一個(gè)報(bào)文流的所述待轉(zhuǎn)發(fā)報(bào)文,將該報(bào)文的出端口選擇為已 記錄的該報(bào)文流的出端口。
8. 如權(quán)利要求1所述的聚合鏈路流量分擔(dān)方法,其特征在于所述動(dòng)態(tài)參數(shù)為連接距離、租用鏈路成本或上網(wǎng)時(shí)間段。
9. 一種實(shí)現(xiàn)權(quán)利要求1所述的聚合鏈路流量分擔(dān)方法的聚合鏈路流量 分擔(dān)裝置,其特征在于,所述聚合鏈路流量分擔(dān)裝置包括參數(shù)獲取模塊、端口選擇模塊和轉(zhuǎn)發(fā)模塊;參數(shù)獲取模塊用于獲取各所述成員端口的至少一個(gè)能夠動(dòng)態(tài)反映該端 口轉(zhuǎn)發(fā)性能的動(dòng)態(tài)參數(shù)值;端口選擇模塊連接于所述參數(shù)獲取模塊,將所述待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù)值與所述參數(shù)獲取模塊傳來(lái)的動(dòng)態(tài)參數(shù)值,共同作為聚合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法;轉(zhuǎn)發(fā)模塊連接于所述端口選擇模塊,接收所述端口選擇模塊傳來(lái)的由 所述分擔(dān)算法選擇的出端口 ,將所述待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述出端口 。
10. 如權(quán)利要求9所述的聚合鏈路流量分擔(dān)裝置,其特征在于所述動(dòng) 態(tài)參數(shù)值為用于標(biāo)稱所述端口當(dāng)前可用剩余帶寬的端口能力值;所述參數(shù)獲取模塊中包括計(jì)算單元、流量統(tǒng)計(jì)單元和參數(shù)轉(zhuǎn)換單元;其中所述流量統(tǒng)計(jì)單元,用于獲取各成員端口的當(dāng)前流量占用帶寬;通過(guò)接 收或查詢各成員端口綁定的用于獲取當(dāng)前流量帶寬占用值的統(tǒng)計(jì)計(jì)數(shù)器的 統(tǒng)計(jì)計(jì)數(shù)值,來(lái)獲取各成員端口的當(dāng)前流量帶寬占用值。所述計(jì)算單元,接收所述流量統(tǒng)計(jì)單元輸入的當(dāng)前流量占用帶寬,由所 述端口支持的最大帶寬減去當(dāng)前流量占用帶寬得到當(dāng)前可用剩余帶寬;所述轉(zhuǎn)換單元,將所述計(jì)算單元傳來(lái)的所述當(dāng)前可用剩余帶寬,轉(zhuǎn)換為 標(biāo)稱所述端口當(dāng)前可用剩余帶寬的端口能力值。
11. 如權(quán)利要求10所述的聚合鏈路流量分擔(dān)裝置,其特征在于在所 述端口選擇模塊中,包括總計(jì)單元,用于統(tǒng)計(jì)各成員端口的端口能力值,并計(jì)算所有端口的總能 力值;概率計(jì)算單元,接收所述總計(jì)單元傳來(lái)的各成員端口的端口能力值與所 述總能力值,計(jì)算各成員端口的端口能力值在所述總能力值中所占的百分 比;算法單元,用于運(yùn)行所述聚合鏈路流量分擔(dān)算法,接收概率計(jì)算單元傳來(lái)的所述百分比,以所述百分比為選擇概率為所述待轉(zhuǎn)發(fā)報(bào)文選擇出端口。
12. 如權(quán)利要求11所述的聚合鏈路流量分擔(dān)裝置,其特征在于在所 述端口選擇模塊中,還包括配置單元,用于配置各成員端口的加權(quán)系數(shù)值;所述總計(jì)單元,接收所述配置單元輸入的各成員端口的加權(quán)系數(shù)值,計(jì) 算各成員端口的加權(quán)端口能力值與所有端口的加權(quán)總能力值。
13. 如權(quán)利要求11所述的聚合鏈路流量分擔(dān)裝置,其特征在于,所述 端口選擇模塊還包括映射單元,所述映射單元接收所述算法單元輸入的所述 靜態(tài)參數(shù),將一個(gè)被映射的成員端口輸出給所述算法單元,兩所述成員端口 被映射的概率等于所述兩成員端口的端口能力值之比。
14. 如權(quán)利要求11所述的聚合鏈路流量分擔(dān)裝置,其特征在于在所 述端口選擇單元中,還包括一個(gè)流處理單元,所述流處理單元記錄該報(bào)文流 的出端口,對(duì)屬于該報(bào)文流的所述待轉(zhuǎn)發(fā)報(bào)文的轉(zhuǎn)發(fā)端口選擇為該出端口。
15. 如權(quán)利要求12所述的聚合鏈路流量分擔(dān)裝置,其特征在于所述 參數(shù)獲取模塊還包括參數(shù)調(diào)整單元,所述參數(shù)調(diào)整單元接收所述轉(zhuǎn)換單元輸 入的端口能力值,將發(fā)生故障的所述成員端口的端口能力值調(diào)整為0;所述 故障消除時(shí),更新所述端口能力值;所述參數(shù)調(diào)整單元還將流量負(fù)荷達(dá)到閾 值的成員端口的端口能力值調(diào)整為0。
全文摘要
本發(fā)明公開(kāi)了一種聚合鏈路流量分擔(dān)方法,用于對(duì)聚合鏈路成員端口之間的流量分擔(dān),包括以下步驟獲知各所述成員端口的至少一個(gè)能夠動(dòng)態(tài)反映該端口轉(zhuǎn)發(fā)性能的動(dòng)態(tài)參數(shù)值;將所述待轉(zhuǎn)發(fā)報(bào)文的靜態(tài)參數(shù)值與所述動(dòng)態(tài)參數(shù)值,共同作為聚合鏈路流量分擔(dān)算法的輸入,運(yùn)行所述聚合鏈路流量分擔(dān)算法;將所述待轉(zhuǎn)發(fā)報(bào)文轉(zhuǎn)發(fā)于所述分擔(dān)算法選擇的出端口。本發(fā)明還公開(kāi)了一種聚合鏈路流量分擔(dān)裝置。本發(fā)明的聚合鏈路流量分擔(dān)方法,使聚合鏈路上的流量負(fù)荷得到有效分擔(dān)。
文檔編號(hào)H04L12/56GK101227402SQ20081000792
公開(kāi)日2008年7月23日 申請(qǐng)日期2008年2月20日 優(yōu)先權(quán)日2008年2月20日
發(fā)明者晉兆瓊, 李玉濤, 琮 王, 凱 鐘 申請(qǐng)人:杭州華三通信技術(shù)有限公司