基于負(fù)載均衡的路由方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種基于負(fù)載均衡的路由方法和設(shè)備。
【背景技術(shù)】
[0002]在現(xiàn)有的各種網(wǎng)絡(luò)中,由于網(wǎng)絡(luò)流量的不均衡,使得各網(wǎng)絡(luò)節(jié)點(diǎn)的負(fù)載不均衡,即存在一些網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)荷重,一些網(wǎng)絡(luò)負(fù)荷節(jié)點(diǎn)負(fù)荷輕的情況。網(wǎng)絡(luò)流量負(fù)載的不均衡,會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)的吞吐量下降。
[0003]現(xiàn)有技術(shù)中,通常采用等價(jià)多路徑(Equal-Cost Multipath,簡(jiǎn)稱ECMP)技術(shù)來實(shí)現(xiàn)負(fù)載均衡,在ECMP技術(shù)中,當(dāng)源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間存在多條最短路徑時(shí),通過一些特定的選路算法,將流量平均分配到這些路徑中,避免所有流量通過一條固定路徑轉(zhuǎn)發(fā),以達(dá)到負(fù)載均衡的目的。
[0004]由于ECMP是根據(jù)預(yù)先配置好的選路算法進(jìn)行選路,可能會(huì)導(dǎo)致選擇的路徑中的網(wǎng)絡(luò)節(jié)點(diǎn)的負(fù)荷過重,導(dǎo)致數(shù)據(jù)流的延遲過大。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種基于負(fù)載均衡的路由方法和設(shè)備,以解決現(xiàn)有網(wǎng)絡(luò)中負(fù)載不均衡的問題。
[0006]本發(fā)明第一方面提供一種基于負(fù)載均衡的路由方法,包括:
[0007]當(dāng)始發(fā)節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送時(shí),所述始發(fā)節(jié)點(diǎn)根據(jù)預(yù)先獲得的網(wǎng)絡(luò)中的所有節(jié)點(diǎn)的負(fù)載信息確定擁塞節(jié)點(diǎn),其中,所述擁塞節(jié)點(diǎn)的負(fù)載超過預(yù)設(shè)的負(fù)載閾值;
[0008]所述始發(fā)節(jié)點(diǎn)將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在數(shù)據(jù)報(bào)文中;
[0009]所述始發(fā)節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)報(bào)文的目的地址和所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn),所述下一跳節(jié)點(diǎn)不為所述擁塞節(jié)點(diǎn);
[0010]所述始發(fā)節(jié)點(diǎn)將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述下一跳節(jié)點(diǎn)。
[0011]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式中,所述始發(fā)節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)報(bào)文的目的地址和所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn),包括:
[0012]所述始發(fā)節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)報(bào)文的目的地址從多條等價(jià)路徑中選擇一條目的路徑;
[0013]所述始發(fā)節(jié)點(diǎn)判斷所述目的路徑的下一跳節(jié)點(diǎn)是否為所述擁塞節(jié)點(diǎn);
[0014]若所述目的路徑的下一跳節(jié)點(diǎn)不為所述擁塞節(jié)點(diǎn),則所述始發(fā)節(jié)點(diǎn)確定所述目的路徑的下一跳節(jié)點(diǎn)為所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn);
[0015]若所述目的路徑的下一跳節(jié)點(diǎn)為所述擁塞節(jié)點(diǎn),則所述始發(fā)節(jié)點(diǎn)從所述多條等價(jià)路徑中除所述目的路徑之外的剩余路徑中重新確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn)。
[0016]結(jié)合本發(fā)明第一方面以及本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式中,所述始發(fā)節(jié)點(diǎn)將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在數(shù)據(jù)報(bào)文中,包括:
[0017]所述始發(fā)節(jié)點(diǎn)將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在所述數(shù)據(jù)報(bào)文的網(wǎng)絡(luò)互聯(lián)協(xié)議IP報(bào)文頭或者多鏈接透明互聯(lián)TRILL報(bào)文頭之后的相鄰字段中。
[0018]結(jié)合本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第三種可能的實(shí)現(xiàn)方式中,所述始發(fā)節(jié)點(diǎn)根據(jù)預(yù)先獲得的網(wǎng)絡(luò)中的所有節(jié)點(diǎn)的負(fù)載信息確定擁塞節(jié)點(diǎn)之前,所述方法還包括:
[0019]所述始發(fā)節(jié)點(diǎn)獲取所述所有節(jié)點(diǎn)的負(fù)載信息。
[0020]結(jié)合本發(fā)明第一方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第四種可能的實(shí)現(xiàn)方式中,所述始發(fā)節(jié)點(diǎn)獲取所述所有節(jié)點(diǎn)的負(fù)載信息,包括:
[0021]所述始發(fā)節(jié)點(diǎn)接收控制器發(fā)送的所述所有節(jié)點(diǎn)的負(fù)載信息。
[0022]本發(fā)明第二方面提供一種基于負(fù)載均衡的路由方法,包括:
[0023]中間節(jié)點(diǎn)接收上一跳節(jié)點(diǎn)發(fā)送的數(shù)據(jù)報(bào)文,所述數(shù)據(jù)報(bào)文中包括擁塞節(jié)點(diǎn)的標(biāo)識(shí)和所述數(shù)據(jù)報(bào)文的目的地址,所述擁塞節(jié)點(diǎn)是所述數(shù)據(jù)報(bào)文的始發(fā)節(jié)點(diǎn)根據(jù)預(yù)先獲得的網(wǎng)絡(luò)中所有節(jié)點(diǎn)的負(fù)載信息確定的,并將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)添加到所述數(shù)據(jù)報(bào)文中的;
[0024]所述中間節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)報(bào)文的目的地址和所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn),其中,所述下一跳節(jié)點(diǎn)不能為所述擁塞節(jié)點(diǎn);
[0025]所述中間節(jié)點(diǎn)將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述下一跳節(jié)點(diǎn)。
[0026]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第一種可能的實(shí)現(xiàn)方式,所述中間節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)報(bào)文的目的地址和所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn),包括:
[0027]所述中間節(jié)點(diǎn)根據(jù)所述數(shù)據(jù)報(bào)文的目的地址從多條等價(jià)路徑中選擇一條目的路徑;
[0028]所述中間節(jié)點(diǎn)判斷所述目的路徑的下一跳節(jié)點(diǎn)是否為所述擁塞節(jié)點(diǎn);
[0029]若所述目的路徑的下一跳節(jié)點(diǎn)不為所述擁塞節(jié)點(diǎn),則所述中間節(jié)點(diǎn)確定所述目的路徑的下一跳節(jié)點(diǎn)為所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn);
[0030]若所述目的路徑的下一跳節(jié)點(diǎn)為所述擁塞節(jié)點(diǎn),則所述中間節(jié)點(diǎn)從所述多條等價(jià)路徑中除所述目的路徑之外的剩余路徑中重新確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn)。
[0031]結(jié)合本發(fā)明第二方面以及本發(fā)明第二方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第二方面的第二種可能的實(shí)現(xiàn)方式,所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在所述數(shù)據(jù)報(bào)文的網(wǎng)絡(luò)互聯(lián)協(xié)議IP報(bào)文頭或者多鏈接透明互聯(lián)TRILL報(bào)文頭之后的相鄰字段中。
[0032]本發(fā)明第三方面提供一種始發(fā)節(jié)點(diǎn),包括:
[0033]第一確定模塊,用于當(dāng)所述始發(fā)節(jié)點(diǎn)有數(shù)據(jù)要發(fā)送時(shí),根據(jù)預(yù)先獲得的網(wǎng)絡(luò)中的所有節(jié)點(diǎn)的負(fù)載信息確定擁塞節(jié)點(diǎn),其中,所述擁塞節(jié)點(diǎn)的負(fù)載超過預(yù)設(shè)的負(fù)載閾值;
[0034]封裝模塊,用于將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在數(shù)據(jù)報(bào)文中;
[0035]第二確定模塊,用于根據(jù)所述數(shù)據(jù)報(bào)文的目的地址和所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn),所述下一跳節(jié)點(diǎn)不為所述擁塞節(jié)點(diǎn);
[0036]發(fā)送模塊,用于將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述下一跳節(jié)點(diǎn)。
[0037]結(jié)合本發(fā)明第三方面,在本發(fā)明第三方面的第一種可能的實(shí)現(xiàn)方式中,所述第二確定模塊具體用于:
[0038]根據(jù)所述數(shù)據(jù)報(bào)文的目的地址從多條等價(jià)路徑中選擇一條目的路徑;
[0039]判斷所述目的路徑的下一跳節(jié)點(diǎn)是否為所述擁塞節(jié)點(diǎn);
[0040]若所述目的路徑的下一跳節(jié)點(diǎn)不為所述擁塞節(jié)點(diǎn),則確定所述目的路徑的下一跳節(jié)點(diǎn)為所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn);
[0041]若所述目的路徑的下一跳節(jié)點(diǎn)為所述擁塞節(jié)點(diǎn),則從所述多條等價(jià)路徑中除所述目的路徑之外的剩余路徑中重新確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn)。
[0042]結(jié)合本發(fā)明第三方面以及本發(fā)明第三方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第二種可能的實(shí)現(xiàn)方式中,所述封裝模塊具體用于:
[0043]將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在所述數(shù)據(jù)報(bào)文的網(wǎng)絡(luò)互聯(lián)協(xié)議IP報(bào)文頭或者多鏈接透明互聯(lián)TRILL報(bào)文頭之后的相鄰字段中。
[0044]結(jié)合本發(fā)明第三方面的第二種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第三種可能的實(shí)現(xiàn)方式中,所述始發(fā)節(jié)點(diǎn)還包括:
[0045]獲取模塊,用于獲取所述所有節(jié)點(diǎn)的負(fù)載信息。
[0046]結(jié)合本發(fā)明第三方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第四種可能的實(shí)現(xiàn)方式中,所述獲取模塊具體用于:
[0047]接收控制器發(fā)送的所述所有節(jié)點(diǎn)的負(fù)載信息。
[0048]本發(fā)明第四方面提供一種中間節(jié)點(diǎn),包括:
[0049]接收模塊,用于接收上一跳節(jié)點(diǎn)發(fā)送的數(shù)據(jù)報(bào)文,所述數(shù)據(jù)報(bào)文中包括擁塞節(jié)點(diǎn)的標(biāo)識(shí)和所述數(shù)據(jù)報(bào)文的目的地址,所述擁塞節(jié)點(diǎn)是所述數(shù)據(jù)報(bào)文的始發(fā)節(jié)點(diǎn)根據(jù)預(yù)先獲得的網(wǎng)絡(luò)中所有節(jié)點(diǎn)的負(fù)載信息確定的,并將所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)添加到所述數(shù)據(jù)報(bào)文中的;
[0050]確定模塊,用于根據(jù)所述數(shù)據(jù)報(bào)文的目的地址和所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn),其中,所述下一跳節(jié)點(diǎn)不能為所述擁塞節(jié)點(diǎn);
[0051 ] 發(fā)送模塊,用于將所述數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給所述下一跳節(jié)點(diǎn)。
[0052]結(jié)合本發(fā)明第四方面,在本發(fā)明第四方面的第一種可能的實(shí)現(xiàn)方式,所述確定模塊具體用于:
[0053]根據(jù)所述數(shù)據(jù)報(bào)文的目的地址從多條等價(jià)路徑中選擇一條目的路徑;
[0054]判斷所述目的路徑的下一跳節(jié)點(diǎn)是否為所述擁塞節(jié)點(diǎn);
[0055]若所述目的路徑的下一跳節(jié)點(diǎn)不為所述擁塞節(jié)點(diǎn),則確定所述目的路徑的下一跳節(jié)點(diǎn)為所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn);
[0056]若所述目的路徑的下一跳節(jié)點(diǎn)為所述擁塞節(jié)點(diǎn),則從所述多條等價(jià)路徑中除所述目的路徑之外的剩余路徑中重新確定所述數(shù)據(jù)報(bào)文的下一跳節(jié)點(diǎn)。
[0057]結(jié)合本發(fā)明第四方面以及本發(fā)明第四方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第四方面的第二種可能的實(shí)現(xiàn)方式,所述擁塞節(jié)點(diǎn)的標(biāo)識(shí)封裝在所述數(shù)據(jù)報(bào)文的網(wǎng)絡(luò)互聯(lián)協(xié)議IP報(bào)文頭或者多鏈接