負載分擔的方法和裝置制造方法
【專利摘要】本發明涉及一種負載分擔的方法和裝置。該方法包括:接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級;查詢報文轉發映射表,獲取所述報文優先級對應的出端口;通過所述出端口對應的鏈路轉發所述數據報文至對端設備。本發明實現了按報文優先級為報文選擇相應的鏈路進行傳輸,從而控制不同報文優先級的報文轉發路徑。
【專利說明】負載分擔的方法和裝置
【技術領域】
[0001]本發明涉及通信【技術領域】,尤其涉及一種負載分擔的方法和裝置。
【背景技術】
[0002]在通信領域,存在多種路由技術,例如快速重路由(Fast Reroute,FRR)機制,等價多路徑協議(Equal-Cost MultipathRouting Protocol, ECMP)技術,FRR 機制通過鏈路檢測協議,如以太網 0AM(Operations, Administration and Maintenance,操作、管理和維護)協議來檢測鏈路的連通性,當鏈路發生物理狀態異常時,可以快速將鏈路由主鏈路切換到備鏈路;ECMP技術主要用于兩臺網絡設備之間各條鏈路的負載分擔。
[0003]在現有技術下,網絡設備在接收到數據報文后,將數據報文放入報文優先級緩存隊列,數據報文在鏈路上的傳輸順序是按照報文優先級來排序的,在鏈路發生異常,如鏈路故障、鏈路擁擠時,低優先級的用戶數據報文更容易被丟棄,造成用戶業務終端或業務質量降低,無法保護低優先級用戶數據報文的傳輸。
【發明內容】
[0004]本發明實施例提供了一種負載分擔的方法和裝置,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。
[0005]第一方面,本發明實施例提供了一種負載分擔的方法,所述方法包括:
[0006]接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級;
[0007]查詢報文轉發映射表,獲取所述報文優先級對應的出端口 ;
[0008]通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
[0009]根據第一方面,在第一種可能的實現方式中,所述方法還包括:檢測主鏈路的負載信息,所述主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常;根據所述負載信息,判斷是否需要對所述主鏈路進行負載均衡;如果是,則根據所述負載信息更新所述報文轉發映射表,并且根據更新后的報文轉發映射表對所述主鏈路進行負載均衡。
[0010]結合第一方面的第一種可能的實現方式,在第二種可能的實現方式中,所述檢測主鏈路的負載信息包括:檢測所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常;所述根據所述主鏈路的負載信息,判斷是否需要對所述主鏈路進行負載均衡,包括:如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
[0011]結合第一方面的第一種可能的實現方式,在第三種可能的實現方式中,所述檢測主鏈路的負載信息包括:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值;所述丟包信息是否超過預設門限值通過以下信息之一或者信息的組合進行衡量:丟包率、丟包數量;所述根據所述主鏈路的負載信息,判斷是否需要對所述主鏈路進行負載均衡,包括:如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
[0012]結合第一方面的第一種可能的實現方式,在第四種可能的實現方式中,所述根據所述負載信息更新所述報文轉發映射表具體為:將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口。
[0013]結合第一方面,在第五種可能的實現方式中,所述方法還包括:檢測各個出端口對應的鏈路的負載信息,所述各個出端口對應的鏈路的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常;根據所檢測的鏈路的負載信息,判斷是否需要將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸;如果是,則更新所述報文轉發映射表,并且根據更新后的報文轉發映射表將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。
[0014]第二方面,本發明實施例提供了一種負載分擔的裝置,所述裝置包括:
[0015]解析單元,用于接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級,以及將所述報文優先級傳輸至查詢單元;
[0016]查詢單元,用于接收所述解析單元傳輸的所述報文優先級,查詢報文轉發映射表,獲取所述報文優先級對應的出端口,將所述出端口傳輸至發送單元;
[0017]發送單元,用于接收所述查詢單元傳輸的所述出端口,通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
[0018]結合第二方面,在第一種可能的實現方式中,所述裝置還包括:
[0019]第一檢測單元,用于檢測主鏈路的負載信息,所述主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常,將所述負載信息傳輸至第一判斷單元;
[0020]第一判斷單元,用于接收所述第一檢測單元傳輸的負載信息,根據所述負載信息,判斷是否需要對所述主鏈路進行負載均衡,將判斷結果傳輸至第一處理單元;
[0021]第一處理單元,用于接收所述第一判斷單元傳輸的所述判斷結果,如果所述判斷結果為是,則根據所述負載信息更新所述報文轉發映射表,并且根據更新后的報文轉發映射表對所述主鏈路進行負載均衡。
[0022]結合第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述第一檢測單元具體用于:所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常;所述第一判斷單元具體用于:如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
[0023]結合第二方面的第一種可能的實現方式,在第三種可能的實現方式中,所述第一檢測單元具體用于:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值;其中丟包信息是否超過預設門限值通過以下信息之一或者信息的組合來進行衡量:丟包率、丟包數量;所述第一判斷單元具體用于:如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
[0024]結合第二方面的第一種可能的實現方式,在第四種可能的實現方式中,所述根據所述負載信息更新所述報文轉發映射表,包括:將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口。
[0025]結合第二方面,在第五種可能的實現方式中,所述裝置還包括:第二檢測單元,用于檢測各個出端口對應的鏈路的負載信息,所述各個出端口對應的鏈路的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常,將所述負載信息傳輸至第二判斷單元;第二判斷單元,用于接收所述第二檢測單元傳輸的所述負載信息,根據所檢測的鏈路的負載信息,判斷是否需要將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸,將判斷結果傳輸至第二處理單元;第二處理單元,用于接收所述第二判斷傳輸的所述判斷結果,如果所述判斷結果為是,則更新所述報文轉發映射表,并且根據更新后的報文轉發映射表將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。
[0026]本發明實施例提供的負載分擔的方法和裝置,通過將數據報文優先級不同的報文映射到對應的鏈路上,實現了按照報文優先級的鏈路負載分擔,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,本發明提供的技術方案中,通過檢測鏈路上某個報文優先級的數據報文的傳輸是否出現異常,如果傳輸出現異常則可以將相應報文優先級的數據報文切換到其他鏈路上進行轉發,由此進一步地對低報文優先級的用戶數據報文的傳輸做到保護。
【專利附圖】
【附圖說明】
[0027]圖1為本發明實施例提供的一種負載分擔的方法的應用場景示意圖;
[0028]圖2為本發明實施例提供的另一負載分擔的方法的應用場景示意圖;
[0029]圖3為本發明實施例提供的一種負載分擔的方法流程示意圖;
[0030]圖4為IP報文的格式示意圖;
[0031]圖5為本發明實施例提供的一種負載分擔的裝置示意圖;
[0032]圖6為本發明實施例提供的另一負載分擔的裝置示意圖;
[0033]圖7為本發明實施例提供的又一負載分擔的裝置示意圖;
[0034]圖8為本發明實施例提供的一種網絡設備示意圖。
【具體實施方式】
[0035]下面通過附圖和實施例,對本發明的技術方案做進一步的詳細描述。
[0036]本發明實施例提供的負載分擔的方法在實際應用時,作為一種新的負載分擔的方法可應用于兩臺物理設備之間通過鏈路轉發數據報文的場景。圖1為本發明實施例提供的一種負載分擔的方法的應用場景示意圖,如圖1所示,網絡設備I和網絡設備5之間存在3條鏈路,其中通過網絡設備2的是主鏈路,通過網絡設備3的備鏈路1,通過網絡設備4的是備鏈路2,網絡設備I中設置有一個報文轉發映射表,其中保存了報文優先級與鏈路的對應關系,當網絡設備I接收到終端A發送的數據報文后,可以查詢該報文轉發映射表來確定將接收到的數據報文從哪條鏈路轉發至網絡設備5。網絡設備I可以通過鏈路檢測協議報文來檢測主鏈路上數據報文的傳輸是否發生異常,在主鏈路上報文傳輸沒有發生異常的情況下,所有報文優先級的數據報文都可以從主鏈路轉發至網絡設備5 ;在某個報文優先級的數據報文在主鏈路上發生異常的情況下,網絡設備I可以將該報文優先級的數據報文以及低于該報文優先級的報文優先級的數據報文切換至備鏈路I或備鏈路2進行轉發。由此本發明實施例提供的負載分擔的方法實現了按照報文優先級進行分級的主備鏈路切換功能,可以減小在主鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。
[0037]本發明實施例還可以應用于負載分擔鏈路的場景,圖2為本發明實施例提供的另一負載分擔的方法的應用場景示意圖,如圖2所示,網絡設備I和網絡設備5之間存在3條鏈路,分別為第一鏈路,第二鏈路和第三鏈路,這三條鏈路不分主備,是三條等價的負載分擔鏈路,網絡設備I中設置有一個報文轉發映射表,其中保存了報文優先級與鏈路的對應關系,當網絡設備I接收到終端A發送的數據報文后,可以查詢該報文轉發映射表來確定將接收到的數據報文從哪條鏈路轉發至網絡設備5。網絡設備I可以通過鏈路檢測協議報文檢測各個鏈路上的數據報文的傳輸是否發生異常,在沒有發生異常的情況下,各個報文優先級的數據報文從對應的鏈路轉發至網絡設備5,當某條鏈路上發生異常時,網絡設備I可以將該條鏈路對應的報文優先級的數據報文切換至其他等價鏈路上進行轉發。由此本發明實施例提供的負載分擔的方法實現了按照報文優先級進行分級的負載分擔功能,可以減小在某個鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。
[0038]圖3為本發明實施例提供的一種負載分擔的方法流程示意圖,本實施例的執行主體是網絡設備,其中詳細描述了網絡設備對接收到的數據報文按照報文優先級在相應的鏈路上進行轉發的過程。如圖3所示,該實施例包括以下步驟:
[0039]步驟310,接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級。
[0040]網絡設備接收到終端發送的數據報文后,可以對所述數據報文進行解析,根據數據報文中的優先級字段可以識別數據報文的報文優先級,例如,對于虛擬局域網(VirtualLocal AreaNetwork, VLAN)類型的數據報文,其報文優先級(Priority)字段封裝在標簽(Tag)字段中,其值為1-7中的任一值,值為I說明優先級最低,值為7說明優先級最高;對于多協議標簽交換(Mult1-Protocol Label Switching, MPLS)類型的數據報文,其報文優先級字段為業務級別(Class of Service, CoS)字段,該字段封裝于二層頭部MPLS頭部,其值為1-7中的任一值,值為I說明優先級最低,值為7說明優先級最高;對于普通的IP報文,其報文優先級(Priority)字段封裝在服務類型(Type of Service)字段中。圖4為IP報文的格式示意圖,其中明確顯示了報文優先級字段在報文中的位置。
[0041]步驟320,查詢報文轉發映射表,獲取所述報文優先級對應的出端口。
[0042]其中,報文轉發映射表包括所述報文優先級和所述報文優先級對應的出端口。其中,該映射表中可以存儲兩條記錄,一條記錄用于存儲報文優先級,如報文優先級1-7分別存儲為自然數字1-7,一條記錄用于存儲報文優先級對應的出端口,如物理端口 0-8。
[0043]優選地,報文轉發映射表中的報文優先級和所述報文優先級對應的出端口也可以用一條記錄來表示。例如,假設報文優先級是1,并且該數據報文通過出端口 8發送至對端設備,則可以在報文轉發映射表中添加一條記錄00011111,其中這條記錄的高4位表示報文優先級1,低4位表示報文的出端口 8。網絡設備查詢報文轉發映射表,判斷報文優先級為I的數據報文通過出端口 8對應的鏈路發送至對端設備。
[0044]需要說明的是,報文轉發映射表中存儲的報文優先級和所述報文優先級對應的出端口的形式只是一種【具體實施方式】而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。[0045]優選地,當網絡設備檢測到與對端設備之間的鏈路發生報文傳輸異常時,可以自動更新報文轉發映射表,將報文異常鏈路上的數據報文切換到其他出端口對應的鏈路上進行發送。
[0046]可選地,網絡設備可以設置在與對端設備之間的鏈路正常的情況下,每個報文優先級的數據報文從哪條鏈路發送至對端設備;并且可以設置在與對端設備之間的鏈路異常的情況下,將傳輸異常的報文優先級對應的數據報文切換至哪條鏈路進行發送。由此,網絡設備可以根據報文優先級,將數據報文映射到對應的鏈路上,實現按照報文優先級的鏈路負載分擔,對低報文優先級的數據報文的傳輸做到保護。
[0047]步驟330,通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
[0048]網絡設備解析數據報文,獲取報文優先級并且在報文轉發映射表中查找到該數據報文對應的出端口后,即可將數據報文置于該出端口對應的鏈路的緩存隊列中,通過對應的鏈路傳輸至對端設備。
[0049]本發明實施例提供的負載分擔的方法,通過將數據報文優先級不同的報文映射到對應的鏈路上,實現了按照報文優先級的鏈路負載分擔,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,本發明提供的技術方案中,通過檢測鏈路上某個報文優先級的數據報文的傳輸是否出現異常,如果傳輸出現異常則可以將相應報文優先級的數據報文切換到其他鏈路上進行轉發,由此進一步地對低報文優先級的用戶數據報文的傳輸做到保護。上面的實施例簡單描述了網絡設備對接收到的報文按照報文轉發映射表中設置的報文優先級與出端口的映射關系進行轉發的方案。下面針對圖1和圖2所描述的場景簡單描述報文轉發映射表的配置與自動更新的方法。
[0050]優選地,在圖1所示的應用場景下,網絡設備可以預先設置在與對端設備之間的主鏈路正常的情況下,所有報文優先級對應的數據報文都在主鏈路上傳輸,如果主鏈路對應的端口為I,則在報文轉發映射表中報文優先級1-7對應的出端口都為1,以實現所有數據報文都通過出端口 I對應的主鏈路發送至對端設備。網絡設備可以周期性檢測主鏈路的負載信息,并根據檢測結果判斷是否要對主鏈路進行負載均衡處理,如果需要則根據負載信息更新報文轉發映射表,并且根據更新后的報文轉發映射表對主鏈路進行負載均衡,即將主鏈路上傳輸發生異常的低優先級報文切換到備鏈路上傳輸。其中,這里所描述的主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常,例如,報文優先級為I的報文在主鏈路上是否出現異常等。
[0051]優選地,在圖1所述的應用場景下,網絡設備可以預先設置在與對端設備之間的主鏈路發生擁擠或阻塞的情況下,每個報文優先級的數據報文在哪個鏈路上傳輸,例如,在主鏈路發生擁擠,導致報文優先級1-6的數據報文在主鏈路上的傳輸發生異常的情況下,當網絡設備接收到數據報文后,可以通過查找預設的報文轉發映射表,將報文優先級為I和2的數據報文調度到備鏈路I上傳輸,報文優先級為3和4的數據報文調度到備鏈路2上傳輸,這樣可以減小在主鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,網絡設備還可以周期性檢測主鏈路、備鏈路1、備鏈路2的負載信息,并根據檢查結果判斷是否需要對主鏈路、或者備鏈路1、或者備鏈路2進行負載均衡處理,例如上述舉例中,如果報文優先級為5的數據報文在主鏈路上的傳輸發生異常,則可以將報文優先級為5的報文切換到備鏈路上傳輸,或者如果報文優先級為I的數據報文在備鏈路I上的傳輸發生異常,則可以設置將報文優先級為I的數據報文切換到備鏈路2上傳輸,由此本發明實施例提供的技術方案中可以將發生異常的低報文優先級的數據報文切換到其他鏈路上傳輸,進一步地對低報文優先級的用戶數據報文的傳輸做到保護。其中,舉例來說,檢測主鏈路的負載信息包括:檢測所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常;如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
[0052]又舉例來說,檢測主鏈路的負載信息可以包括:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值。其中,丟包信息是否超過預設門限值可以通過以下信息之一或者信息的組合來衡量:丟包率、丟包數量。如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
[0053]可選地,還可以通過檢測緩存隊列中報文優先級的數據報文的發送時延來檢測主鏈路的負載信息,如果時延過長,則可以判斷需要對主鏈路進行負載均衡。
[0054]舉例來說,在判斷出某個報文優先級的數據報文在主鏈路上傳輸異常時,可以更新報文轉發映射表,即將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口,并根據更新后的報文轉發映射表進行負載均衡。可選地,在將傳輸異常的數據報文優先級報文切換至備鏈路后,可以繼續周期性檢測主鏈路以及傳輸數據報文的備鏈路的負載信息,當判斷主鏈路上該報文優先級的數據報文可以被正常地傳輸時,可以將該報文優先級的數據報文重新切換到主鏈路上進行傳輸。
[0055]由此,在圖1所示的應用場景下,網絡設備實現了按照報文優先級的鏈路負載分擔,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,本發明提供的技術方案中,通過檢測鏈路上某個報文優先級的數據報文的傳輸是否出現異常,如果傳輸出現異常則可以將相應報文優先級的數據報文切換到其他鏈路上進行轉發,由此進一步地對低報文優先級的用戶數據報文的傳輸做到保護。
[0056]優選地,在圖2所示的應用場景下,網絡設備可以預先設置在與對端設備之間的鏈路正常的情況下,對每個報文優先級設置對應的鏈路,例如將報文優先級為1-2的數據報文設置在第一鏈路上傳輸,將報文優先級為3-5的數據報文設置在第二鏈路上傳輸,將報文優先級為6-7的數據報文設置在第三鏈路上傳輸。這樣,網絡設備在接收到數據報文后,根據數據報文的報文優先級,可以將數據報文映射到預先設置的鏈路上,實現了按照報文優先級的鏈路負載分擔。網絡設備可以周期性檢測各個出端口對應的鏈路的負載信息,并且根據檢測結果,判斷是否需要將所檢測鏈路上傳輸的數據報文切換到其他鏈路,如果需要,則更新報文轉發映射表,并且根據更新后的報文轉發映射表將所檢測鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。
[0057]可選地,在將所檢測的異常鏈路上傳輸的報文切換至其他鏈路后,可以繼續周期性檢測各個鏈路的負載信息,如果在預設時間內檢測到各個鏈路的負載信息發生變化時,則可根據負載信息繼續更新報文轉發映射表。
[0058]其中,每個鏈路對應的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常。檢測各個出端口對應的鏈路的負載信息的方法可以為:檢測在預設時間內各個鏈路上是否接收到對應報文優先級的鏈路檢測協議報文;或者,檢測各個鏈路的報文優先級緩存隊列中是否有被丟棄的數據報文。
[0059]由此,在圖2所示的應用場景下,網絡設備實現了按照報文優先級的鏈路負載分擔,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,本發明提供的技術方案中,通過檢測鏈路上某個報文優先級的數據報文的傳輸是否出現異常,如果傳輸出現異常則可以將相應報文優先級的數據報文切換到其他鏈路上進行轉發,由此進一步地對低報文優先級的用戶數據報文的傳輸做到保護。
[0060]相應地,本發明實施例還提供了一種負載分擔的裝置,圖5為本發明實施例提供的一種負載分擔的裝置示意圖,如圖5所示,該裝置包括:
[0061]解析單元510,用于接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級,以及將所述報文優先級傳輸至查詢單元。
[0062]查詢單元520,用于接收所述解析單元傳輸的所述報文優先級,查詢報文轉發映射表,獲取所述報文優先級對應的出端口,將所述出端口傳輸至發送單元。
[0063]其中,報文轉發映射表包括所述報文優先級和所述報文優先級對應的出端口。其中,該映射表中可以存儲兩條記錄,一條記錄用于存儲報文優先級,如報文優先級1-7分別存儲為自然數字1-7,一條記錄用于存儲報文優先級對應的出端口,如物理端口 0-8。
[0064]優選地,報文轉發映射表中的報文優先級和所述報文優先級對應的出端口也可以用一條記錄來表示。例如,假設報文優先級是1,并且該數據報文通過出端口 8發送至對端設備,則可以在報文轉發映射表中添加一條記錄00011111,其中這條記錄的高4位表示報文優先級1,低4位表示報文的出端口 8。網絡設備查詢報文轉發映射表,判斷報文優先級為I的報文通過出端口 8對應的鏈路發送至對端設備。
[0065]優選地,網絡設備可以設置在與對端設備之間的鏈路正常的情況下,每個報文優先級的數據報文從哪條鏈路發送至對端設備;并且可以設置在與對端設備之間的鏈路異常的情況下,將傳輸異常的報文優先級對應的數據報文切換至哪條鏈路進行發送,因此,查詢單元520通過查詢報文轉發映射表獲取數據報文的出端口。
[0066]發送單元530,用于接收所述查詢單元傳輸的所述出端口,通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
[0067]優選地,如圖6所示,對于應用于圖1所示的場景的負載分擔裝置,還包括:第一檢測單元540,用于檢測主鏈路的負載信息,所述主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常,將所述負載信息傳輸至第一判斷單元;第一判斷單元550,用于接收所述第一檢測單元傳輸的負載信息,根據所述負載信息,判斷是否需要對所述主鏈路進行負載均衡,將判斷結果傳輸至第一處理單元;第一處理單元560,用于接收所述第一判斷單元傳輸的所述判斷結果,如果所述判斷結果為是,則根據所述負載信息更新所述報文轉發映射表,并且根據更新后的報文轉發映射表對所述主鏈路進行負載均衡。
[0068]可選地,第一檢測單元540具體用于:檢測所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常;第一判斷單元550具體用于如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
[0069]可選地,第一檢測單元540具體用于:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值;其中丟包信息是否超過預設門限值通過以下信息之一或者信息的組合來進行衡量:丟包率、丟包數量;第一判斷單元550具體用于:如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
[0070]可選地,其中,第一處理單元560更新轉發映射表的方法包括:將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口。
[0071]在判斷出某個報文優先級的數據報文在主鏈路上傳輸異常時,可以更新報文轉發映射表,并根據更新后的報文轉發映射表將該報文優先級的數據報文以及低于該報文優先級的數據報文切換到備鏈路I或者備鏈路2。
[0072]由此,該負載分擔裝置實現了按照報文優先級的鏈路負載分擔,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,本發明提供的技術方案中,通過檢測鏈路上某個報文優先級的數據報文的傳輸是否出現異常,如果傳輸出現異常則可以將相應報文優先級的數據報文切換到其他鏈路上進行轉發,由此進一步地對低報文優先級的用戶數據報文的傳輸做到保護。
[0073]優選地,如圖7所示,對于應用于圖2所示的場景的負載分擔裝置,還包括:第二檢測單元570,用于檢測各個出端口對應的鏈路的負載信息,所述各個出端口對應的鏈路的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常,將所述負載信息傳輸至第二判斷單元;第二判斷單元580,用于接收所述第二檢測單元傳輸的所述負載信息,根據所檢測的鏈路的負載信息,判斷是否需要將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸,將判斷結果傳輸至第二處理單元;第二處理單元590,用于接收所述第二判斷傳輸的所述判斷結果,如果所述判斷結果為是,則更新所述報文轉發映射表,并且根據更新后的報文轉發映射表將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。由此,該裝置可以周期性檢測各個鏈路的負載信息,并自動根據檢測結果更新報文轉發映射表以及對各個鏈路進行負載均衡,進而實現按照報文優先級進行負載均衡功能,進而實現了對低優先級報文的傳輸進行保護。
[0074]由此,本發明實施例通過報文轉發映射表中存儲的報文優先級與鏈路的映射關系,可以實現網絡設備按照報文優先級為接收到的數據報文選擇相應的鏈路進行傳輸,從而控制不同報文優先級的數據報文轉發路徑,避免了在鏈路發生異常時低報文優先級的數據報文首先被丟棄,對低報文優先級的用戶數據報文的傳輸做到保護,穩定網絡流量。
[0075]相應地,本發明實施例還提供了一種網絡設備,圖8為本發明實施例提供的一種網絡設備示意圖,如圖所示,本實施例包括網絡接口 810、處理器820和存儲器830。系統總線840用于連接網絡接口 810、處理器820和存儲器830。
[0076]網絡接口 810用于與終端、對端設備進行通信。該網絡接口 810包括與對端設備進行通信的出端口,以及與終端相連接的入端口。
[0077]存儲器830可以是永久存儲器,例如硬盤驅動器和閃存,存儲器830中具有軟件模塊和設備驅動程序。軟件模塊能夠執行本發明上述方法的各種功能模塊;設備驅動程序可以是網絡和接口驅動程序。
[0078]在啟動時,這些軟件模塊被加載到存儲器830中,然后被處理器820訪問并執行如下指令:[0079]接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級;
[0080]查詢報文轉發映射表,獲取所述報文優先級對應的出端口 ;
[0081]通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
[0082]其中,報文轉發映射表包括所述報文優先級和所述報文優先級對應的出端口。其中,該映射表中可以存儲兩條記錄,一條記錄用于存儲報文優先級,如報文優先級1-7分別存儲為自然數字1-7,一條記錄用于存儲報文優先級對應的出端口,如物理端口 0-8。
[0083]優選地,報文轉發映射表中的報文優先級和所述報文優先級對應的出端口也可以用一條記錄來表示。例如,假設報文優先級是1,該數據報文通過出端口 8發送至對端設備,則可以在報文轉發映射表中添加一條記錄00011111,其中這條記錄的高4位表示報文優先級1,低4位表示報文的出端口 8。
[0084]進一步的,對于圖1所示的應用場景,處理器820訪問存儲器830中的軟件模塊后,執行以下過程的指令:
[0085]檢測主鏈路的負載信息,所述主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常;
[0086]根據所述負載信息,判斷是否需要對所述主鏈路進行負載均衡;
[0087]如果是,則根據所述負載信息更新所述報文轉發映射表,并且根據更新后的報文轉發映射表對所述主鏈路進行負載均衡。
[0088]可選地,處理器820執行檢測主鏈路的負載信息指令的過程為:檢測所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常。在這種情況下,處理器820執行根據所述主鏈路的負載信息,判斷是否需要對所述主鏈路進行負載均衡指令的過程為:如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
[0089]可選地,處理器820執行檢測主鏈路的負載信息指令的過程為:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值。其中,丟包信息是否超過預設門限值通過以下信息之一或者信息的組合進行衡量:丟包率、丟包數量;在這種情況下,處理器820執行根據所述主鏈路的負載信息,判斷是否需要對所述主鏈路進行負載均衡指令的過程為:如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
[0090]可選地,處理器820執行根據所述負載信息更新所述報文轉發映射表指令的過程為:將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口。
[0091]進一步的,對于圖2所示的應用場景,處理器820訪問存儲器830中的軟件模塊后,執行以下過程的指令:
[0092]檢測各個出端口對應的鏈路的負載信息,所述各個出端口對應的鏈路的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常;
[0093]根據所檢測的鏈路的負載信息,判斷是否需要將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸;
[0094]如果是,則更新所述報文轉發映射表,并且根據更新后的報文轉發映射表將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。
[0095]由此,本發明實施例實現了按照報文優先級的鏈路負載分擔,可以減小在鏈路故障或擁擠時,低優先級用戶數據報文被丟棄的可能性。進一步地,本發明提供的技術方案中,通過檢測鏈路上某個報文優先級的數據報文的傳輸是否出現異常,如果傳輸出現異常則可以將相應報文優先級的數據報文切換到其他鏈路上進行轉發,由此進一步地對低報文優先級的用戶數據報文的傳輸做到保護。
[0096]專業人員應該還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
[0097]結合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術領域】內所公知的任意其它形式的存儲介質中。
[0098]以上所述的【具體實施方式】,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的【具體實施方式】而已,并不用于限定本發明的保護范圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種負載分擔的方法,其特征在于,所述方法包括: 接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級; 查詢報文轉發映射表,獲取所述報文優先級對應的出端口 ; 通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
2.根據權利要求1所述的負載分擔的方法,其特征在于,所述方法還包括: 檢測主鏈路的負載信息,所述主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常; 根據所述負載信息,判斷是否需要對所述主鏈路進行負載均衡; 如果是,則根據所述負載信息更新所述報文轉發映射表,并且根據更新后的報文轉發映射表對所述主鏈路進行負載均衡。
3.根據權利要求2所述的負載分擔的方法,其特征在于, 所述檢測主鏈路的負載信息包括:檢測所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常; 所述根據所述主鏈路的負載信息,判斷是否需要對所述主鏈路進行負載均衡,包括:如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
4.根據權利要求2所述的 負載分擔的方法,其特征在于, 所述檢測主鏈路的負載信息包括:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值; 所述丟包信息是否超過預設門限值通過以下信息之一或者信息的組合進行衡量:丟包率、丟包數量; 所述根據所述主鏈路的負載信息,判斷是否需要對所述主鏈路進行負載均衡,包括:如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
5.根據權利要求2所述的負載分擔的方法,其特征在于,所述根據所述負載信息更新所述報文轉發映射表具體為: 將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口。
6.根據權利要求1所述的負載分擔的方法,其特征在于,所述方法還包括: 檢測各個出端口對應的鏈路的負載信息,所述各個出端口對應的鏈路的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常; 根據所檢測的鏈路的負載信息,判斷是否需要將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸; 如果是,則更新所述報文轉發映射表,并且根據更新后的報文轉發映射表將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。
7.一種負載分擔的裝置,其特征在于,所述裝置包括: 解析單元,用于接收數據報文,解析所述數據報文,獲取所述數據報文對應的報文優先級,以及將所述報文優先級傳輸至查詢單元; 查詢單元,用于接收所述解析單元傳輸的所述報文優先級,查詢報文轉發映射表,獲取所述報文優先級對應的出端口,將所述出端口傳輸至發送單元; 發送單元,用于接收所述查詢單元傳輸的所述出端口,通過所述出端口對應的鏈路轉發所述數據報文至對端設備。
8.根據權利要求7所述的負載分擔的裝置,其特征在于,所述裝置還包括: 第一檢測單元,用于檢測主鏈路的負載信息,所述主鏈路的負載信息標識所述報文優先級的數據報文在所述主鏈路上的傳輸是否正常,將所述負載信息傳輸至第一判斷單元;第一判斷單元,用于接收所述第一檢測單元傳輸的負載信息,根據所述負載信息,判斷是否需要對所述主鏈路進行負載均衡,將判斷結果傳輸至第一處理單元; 第一處理單元,用于接收所述第一判斷單元傳輸的所述判斷結果,如果所述判斷結果為是,則根據所述負載信息更新所述報文轉發映射表,并且根據更新后的報文轉發映射表對所述主鏈路進行負載均衡。
9.根據權利要求8所述的負載分擔的裝置,其特征在于, 所述第一檢測單元具體用于:檢測所述報文優先級的鏈路檢測協議報文在所述主鏈路上的傳輸是否正常; 所述第一判斷單元具體用于:如果所述主鏈路的負載信息標識所述報文優先級的鏈路檢測協議報文傳輸異常,則判斷需要對所述主鏈路進行負載均衡。
10.根據權利要求8所述的負載分擔的裝置,其特征在于, 所述第一檢測單元具體用于:檢測所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息是否超過預設門限值;其中丟包信息是否超過預設門限值通過以下信息之一或者信息的組合來進行 衡量:丟包率、丟包數量; 所述第一判斷單元具體用于:如果所述主鏈路的負載信息標識所述主鏈路對應的緩存隊列中所述報文優先級的數據報文的丟包信息超過所述預設門限值,則判斷需要對所述主鏈路進行負載均衡。
11.根據權利要求8所述的負載分擔的裝置,其特征在于,所述根據所述負載信息更新所述報文轉發映射表,包括: 將所述報文轉發映射表中所述等于和/或低于所述報文優先級所對應的端口調整為備份鏈路所對應的端口。
12.根據權利要求7所述的負載分擔的裝置,其特征在于,所述裝置還包括: 第二檢測單元,用于檢測各個出端口對應的鏈路的負載信息,所述各個出端口對應的鏈路的負載信息標識所述報文優先級的數據報文在所述各個出端口對應的鏈路上的傳輸是否正常,將所述負載信息傳輸至第二判斷單元; 第二判斷單元,用于接收所述第二檢測單元傳輸的所述負載信息,根據所檢測的鏈路的負載信息,判斷是否需要將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸,將判斷結果傳輸至第二處理單元; 第二處理單元,用于接收所述第二判斷傳輸的所述判斷結果,如果所述判斷結果為是,則更新所述報文轉發映射表,并且根據更新后的報文轉發映射表將在所述鏈路上傳輸的數據報文切換到其他鏈路進行傳輸。
【文檔編號】H04L12/803GK103428101SQ201310332688
【公開日】2013年12月4日 申請日期:2013年8月1日 優先權日:2013年8月1日
【發明者】丁勇, 呂祥生, 鮑磊 申請人:華為技術有限公司