報文轉發方法、裝置和通訊設備的製作方法
2023-05-05 09:00:46
專利名稱:報文轉發方法、裝置和通訊設備的製作方法
技術領域:
本發明涉及通信技術,尤其涉及一種報文轉發方法、裝置和通訊設備。
背景技術:
堆疊是指將一臺以上的交換機組合起來共同工作,以便在有限的空間內提供儘可能多的埠,多臺交換機經過堆疊之後形成一個堆疊系統。堆疊系統中包括一臺主交換機和多臺從交換機,主交換機負責管理整個堆疊系統,包括主從交換機的報文轉發、協議運行和界面管理等等。堆疊系統中的主從交換機之間往往通過普通乙太網接口進行連接,因此主從交換機之間的信道報文需要遵循交換機的優先級調度機制。而信道中包含了內部控制報文和各種客戶端發出的需要在主從交換機上轉發的報文,因此,如何保證內部控制報文的優先轉發成為一個有待解決的問題。為了解決上述問題,現有技術中通常為內部控制報文單獨指定一個隊列,該隊列專門用於發送內部控制報文,使得內部控制報文可以優先轉發,從而信道中其他報文所在隊列的擁塞等不會對內部控制報文的轉發的優先級造成影響。然而,由於交換機中專用集成電路(Application Specific IntegratedCircuit ;以下簡稱ASIC)的優先級隊列的數量是有限的,例如中低端交換機一般只有8個優先級隊列,則現有技術中的上述方案會導致提供給用戶配置和使用的隊列減少,導致用戶報文的轉發受到影響。
發明內容
本發明提供一種報文轉發方法、裝置和通訊設備,在保證用戶報文的優先級隊列的正常使用的情況下,儘量優先轉發內部控制報文。本發明的第一個方面是提供一種報文轉發方法,包括監聽各隊列的隊列配置狀態;根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。本發明的另一個方面是提供一種報文轉發裝置,包括監聽模塊,用於監聽各隊列的隊列配置狀態;轉發模塊,用於根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。本發明的又一個方面是提供一種通訊設備,包括上述報文轉發裝置。本發明的技術效果是通過監聽各隊列的隊列配置狀態,根據隊列配置狀態來為控制報文分配轉發隊列,並通過該轉發隊列轉發控制報文,該轉發隊列為各隊列中優先級最高的隊列;本發明根據用戶報文對隊列的隊列配置狀態來動態地為控制報文分配各隊列中優先級最高的隊列作為轉發隊列,而非為控制報文單獨分配固定的隊列,從而在保證用戶報文的優先級隊列的正常使用的情況下,儘量優先轉發內部控制報文。
圖I為本發明報文轉發方法實施例一的流程圖;圖2為本發明報文轉發方法實施例二的流程圖;圖3 為本發明報文轉發裝置實施例一的結構示意圖;圖4為本發明報文轉發裝置實施例二的結構示意圖。
具體實施例方式圖I為本發明報文轉發方法實施例一的流程圖,如圖I所示,本實施例提供了一種報文轉發方法,本實施例可以具體應用於堆疊系統中,主交換機控制主從交換機之間的控制報文的轉發,本實施例可以具體包括如下步驟步驟101,監聽各隊列的隊列配置狀態。在本實施例中,為了為控制報文分配可以優先轉發的轉發隊列,而不影響用戶報文的轉發,需要對各隊列的隊列配置狀態進行監聽,通過隊列配置狀態來為控制報文分配轉發隊列,而非為控制報文單獨分配固定的隊列。本實施例中的控制報文可以具體為主從交換機之間交互的內部控制報文,與用戶報文相區別。此處的隊列配置狀態可以具體包括隊列已配置和隊列未配置,此處的用戶配置可以為用戶配置隊列與報文優先級之間的映射關係。用戶可以分別配置某一個或幾個隊列與不同報文優先屬性之間的映射關係,通常情況下,當用戶需要轉發用戶報文時,根據報文優先屬性為該用戶報文分配一個隊列,然後將分配的隊列與該用戶報文的報文優先屬性匹配在一起,即形成隊列與報文優先屬性的映射關係。因此,當某個隊列的隊列配置狀態為已配置時,表明該隊列已被分配給某個或某類用戶報文進行報文轉發;相應地,當某個隊列的隊列配置狀態為未配置時,表明該隊列未被分配,當前處於空閒狀態,即為空閒隊列。步驟102,根據隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發控制報文,其中,轉發隊列為所述各隊列中優先級最高的隊列。在通過上述步驟監聽到各隊列的隊列配置狀態後,根據各隊列的隊列配置狀態為控制報文分配轉發隊列,即根據用戶報文對隊列的使用情況或運行情況,來為控制報文分配轉發隊列,通過該轉發隊列轉發所述控制報文,其中,轉發隊列為所述各隊列中優先級最高的隊列。在本實施例中,通過隊列配置狀態分配各隊列中優先級最高的隊列作為轉發隊列,可以儘量優先轉發控制報文,同時也不會對用戶報文的正常轉發造成影響,可以避免現有技術中為控制報文單獨分配固定的隊列而使得供用戶報文使用的隊列數量減少。具體地,本實施例中的上述步驟102可以具體包括如下步驟當所述各隊列均已配置時,為所述控制報文分配最高優先級隊列作為轉發隊列,並通過所述最高優先級隊列優先轉發所述控制報文;當所述各隊列未全部已配置時,為所述控制報文分配未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級,通過所述未配置的隊列優先轉發所述控制報文。進一步地,本實施例中的上述為所述控制報文分配最高優先級隊列作為轉發隊列的步驟可以包括對最高優先級隊列進行監聽;當所述最高優先級隊列出現擁塞時,採用隊列降級算法獲取新的未配置隊列,為所述控制報文分配所述新的未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級;當所述最高優先級隊列未出現擁塞時,為所述控制報文分配最高優先級隊列作為轉發隊列。具體地,上述採用隊列降級算法獲取新的未配置的隊列的步驟可以具體包括從所述各隊列中獲取優先級最低的兩個隊列;通過合併所述優先級最低的兩個隊列來獲取新的未配置的隊列。更具體地,本實施例中的上述步驟101可以具體為分別判斷各隊列是否已配置與報文優先屬性的映射關係。 本實施例提供了一種報文轉發方法,通過監聽各隊列的隊列配置狀態,根據隊列配置狀態來為控制報文分配轉發隊列,並通過該轉發隊列轉發控制報文,該轉發隊列為各隊列中優先級最高的隊列;本實施例根據用戶報文對隊列的隊列配置狀態來動態地為控制報文分配各隊列中優先級最高的隊列作為轉發隊列,而非為控制報文單獨分配固定的隊列,從而在保證用戶報文的優先級隊列的正常使用的情況下,儘量優先轉發內部控制報文。圖2為本發明報文轉發方法實施例二的流程圖,如圖2所示,本實施例提供了一種報文轉發方法,可以具體包括如下步驟步驟201,監聽各隊列的隊列配置狀態,判斷各隊列是否均被用戶配置,如果是,則執行步驟202,否則執行步驟206。本步驟為對各隊列的隊列配置狀態進行監聽,由此判斷各隊列是否均已配置,具體可以為分別判斷各隊列是否已配置與報文優先屬性的映射關係,即判斷用戶是否配置了各隊列與報文優先屬性的映射關係。如果各隊列均已配置,即用戶為每個隊列分別配置了不同的報文優先屬性,相當於各隊列均已被分配用於轉發對應報文優先屬性的用戶報文,此時不存在未配置的隊列,此處的未配置的隊列即為空閒隊列,則執行步驟202-205 ;如果各隊列未全部已配置,即用戶只有為部分隊列配置了報文優先屬性,此時存在未配置的隊列,則執行步驟206。步驟202,對最高優先級隊列進行監聽,判斷該最高優先級隊列是否出現擁塞,如果是,則執行步驟203,否則執行步驟205。當各隊列均已配置時,表明當前不存在空閒隊列,則對各隊列中的最高優先級隊列進行監聽,此處的最高優先級隊列具體為配置了最高優先級的隊列。通過對最高優先級隊列進行監聽,獲取該最高優先級隊列的運行狀態,即判斷該最高優先級隊列是否出現擁塞,如果是,則執行步驟203-204,否則執行步驟205。步驟203,採用隊列降級算法獲取新的未配置的隊列。當最高優先級隊列當前出現擁塞時,由於當前已不存在未配置的隊列,則啟動隊列降級算法,通過隊列降級算法來獲取新的未配置的隊列。本實施例中的隊列降級算法的實現原理為當最高優先級隊列出現擁塞時,由於控制報文的數量很少,只能說明當前除控制報文外轉發的報文中包含報文優先級最高的報文,且該類報文的流量超過出口帶寬,此時如果仍採用最高優先級隊列轉發控制報文也會出現丟包現象。此處的隊列降級算法可以為先從各隊列中獲取優先級最低的兩個隊列,再通過合併所述優先級最低的兩個隊列來獲取新的未配置的隊列,即將優先級最低的兩個隊列合併成同一個隊列,從而可以空閒出一個隊列。由於此時優先級最低的兩個隊列無法進行報文轉發,因此將這兩個隊列進行合併不會對用戶報文的轉發造成任何影響。
步驟204,為控制報文分配新的未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級,通過新的未配置的隊列優先轉發控制報文。在通過隊列降級算法獲取到新的未配置的隊列後,本實施例將該新的未配置的隊列的優先級配置為最高優先級,為控制報文分配該新的未配置的隊列作為轉發隊列,並通過新的未配置的隊列優先轉發控制報文,從而實現了對控制報文的優先轉發,同時也不影響用戶報文的轉發。步驟205,為控制報文分配最高優先級隊列作為轉發隊列,並通過最高優先級隊列轉發控制報文。當最高優先級隊列當前未出現擁塞時,則可以直接將該最高優先級隊列分配為控制報文的轉發隊列,通過該最高優先級隊列來轉發控制報文,從而實現了對控制報文的優先轉發,同時也不影響用戶報文的轉發。
步驟206,為控制報文分配未配置的隊列作為轉發隊列,並通過未配置的隊列優先轉發控制報文。當各隊列未全部被配置時,表明當前存在空閒隊列,則為控制報文分配一個未配置的隊列作為轉發隊列,同時將該未配置的隊列的優先級配置為最高優先級,並通過該未配置的隊列優先轉發控制報文,從而實現了對控制報文的優先轉發,同時也不影響用戶報文的轉發。本實施例提供了一種報文轉發方法,通過監聽各隊列的隊列配置狀態,根據隊列配置狀態來為控制報文分配轉發隊列,並通過該轉發隊列轉發控制報文,該轉發隊列為各隊列中優先級最高的隊列;本實施例根據用戶報文對隊列的隊列配置狀態來動態地為控制報文分配各隊列中優先級最高的隊列作為轉發隊列,而非為控制報文單獨分配固定的隊列,從而在保證用戶報文的優先級隊列的正常使用的情況下,儘量優先轉發內部控制報文。本領域普通技術人員可以理解實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成。前述的程序可以存儲於一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括R0M、RAM、磁碟或者光碟等各種可以存儲程序代碼的介質。圖3為本發明報文轉發裝置實施例一的結構示意圖,如圖3所示,本實施例提供了一種報文轉發裝置,可以具體執行上述方法實施例一的各個步驟,此處不再贅述。本實施例提供的報文轉發裝置可以具體包括監聽模塊I和轉發模塊2。其中,監聽模塊I用於監聽各隊列的隊列配置狀態。轉發模塊2用於根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。圖4為本發明報文轉發裝置實施例二的結構示意圖,如圖4所示,本實施例提供了一種報文轉發裝置,可以具體執行上述方法實施例二的各個步驟,此處不再贅述。本實施例提供的報文轉發裝置在上述圖3所示的基礎之上,轉發模塊2可以具體包括第一轉發子模塊21和第二轉發子模塊22。其中,第一轉發子模塊21用於當所述各隊列均已配置時,為所述控制報文分配最高優先級隊列作為轉發隊列,並通過所述最高優先級隊列優先轉發所述控制報文。第二轉發子模塊22用於當所述各隊列未全部已配置時,為所述控制報文分配未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級,通過所述未配置的隊列優先轉發所述控制報文。具體地,第一轉發子模塊21可以具體包括監聽單元211、第一轉發單元212和第二轉發單元213。其中,監聽單元211用於當所述各隊列均被用戶配置時,對最高優先級隊列進行監聽。第一轉發單元212用於當所述最高優先級隊列出現擁塞時,採用隊列降級算法獲取新的未配置的隊列,為所述控制報文分配所述新的未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級,通過所述新的未配置的隊列優先轉發所述控制報文。第二轉發單元213用於當所述最高優先級隊列未出現擁塞時,為所述控制報文分配最高優先級隊列作為轉發隊列,並通過所述最高優先級隊列轉發所述控制報文。進一步地,第一轉發單元212可以具體包括獲取子單元2121、合併子單元2122和轉發子單元2123。其中,獲取子單元2121用於當所述最高優先級隊列出現擁塞時,從所述各隊列中獲取優先級最低的兩個隊列。合併子單元2122用於通過合併所述優先級最低的兩個隊列來獲取新的未配置的隊列。轉發子單元2123用於為所述控制報文分配所述新的未配置的隊列作為轉發隊列,並通過所述新的未配置的隊列優先轉發所述控制報文。具體地,本實施例中的監聽模塊I具體用於分別判斷各隊列是否已配置與報文優先屬性的映射關係。本實施例提供了一種報文轉發裝置,通過監聽各隊列的隊列配置狀態,根據隊列配置狀態來為控制報文分配轉發隊列,並通過該轉發隊列轉發控制報文,該轉發隊列為各隊列中優先級最高的隊列;本發明根據用戶報文對隊列的隊列配置狀態來動態地為控制報文分配各隊列中優先級最高的隊列作為轉發隊列,而非為控制報文單獨分配固定的隊列,從而在保證用戶報文的優先級隊列的正常使用的情況下,儘量優先轉發內部控制報文。本實施例還提供了一種通訊設備,可以具體包括上述圖3或圖4所示的報文轉發裝置。最後應說明的是以上各實施例僅用以說明本發明的技術方案,而非對其限制;儘管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特徵進行等同替換;而這些修改或者替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的範圍。
權利要求
1.一種報文轉發方法,其特徵在於,包括 監聽各隊列的隊列配置狀態; 根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。
2.根據權利要求I所述的方法,其特徵在於,所述根據所述隊列配置狀態為控制報文分配轉發隊列包括 當所述各隊列均已配置時,為所述控制報文分配最高優先級隊列作為轉發隊列; 當所述各隊列未全部已配置時,為所述控制報文分配未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級。
3.根據權利要求2所述的方法,其特徵在於,所述為所述控制報文分配最高優先級隊列作為轉發隊列包括 對最高優先級隊列進行監聽; 當所述最高優先級隊列出現擁塞時,採用隊列降級算法獲取新的未配置的隊列,為所述控制報文分配所述新的未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最聞優先級; 當所述最高優先級隊列未出現擁塞時,為所述控制報文分配最高優先級隊列作為轉發隊列。
4.根據權利要求3所述的方法,其特徵在於,所述採用隊列降級算法獲取新的未配置的隊列包括 從所述各隊列中獲取優先級最低的兩個隊列; 通過合併所述優先級最低的兩個隊列來獲取新的未配置的隊列。
5.根據權利要求I或2所述的方法,其特徵在於,所述監聽各隊列的隊列配置狀態具體為 分別判斷各隊列是否已配置與報文優先屬性的映射關係。
6.一種報文轉發裝置,其特徵在於,包括 監聽模塊,用於監聽各隊列的隊列配置狀態; 轉發模塊,用於根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。
7.根據權利要求6所述的裝置,其特徵在於,所述轉發模塊包括 第一轉發子模塊,用於當所述各隊列均已配置時,為所述控制報文分配最高優先級隊列作為轉發隊列,並通過所述最高優先級隊列轉發所述控制報文; 第二轉發子模塊,用於當所述各隊列未全部已配置時,為所述控制報文分配未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級,通過所述未配置的隊列轉發所述控制報文。
8.根據權利要求7所述的裝置,其特徵在於,所述第一轉發子模塊包括 監聽單元,用於當所述各隊列均被用戶配置時,對最高優先級隊列進行監聽; 第一轉發單元,用於當所述最高優先級隊列出現擁塞時,採用隊列降級算法獲取新的未配置的隊列,為所述控制報文分配所述新的未配置的隊列作為轉發隊列,並將所述轉發隊列的優先級配置為最高優先級,通過所述新的未配置的隊列轉發所述控制報文;第二轉發單元,用於當所述最高優先級隊列未出現擁塞時,為所述控制報文分配最高優先級隊列作為轉發隊列,並通過所述最高優先級隊列轉發所述控制報文。
9.根據權利要求8所述的裝置,其特徵在於,所述第一轉發單元包括 獲取子單元,用於當所述最高優先級隊列出現擁塞時,從所述各隊列中獲取優先級最低的兩個隊列; 合併子單元,用於通過合併所述優先級最低的兩個隊列來獲取新的未配置的隊列;轉發子單元,用於為所述控制報文分配所述新的未配置的隊列作為轉發隊列,並通過所述新的未配置的隊列優先轉發所述控制報文。
10.根據權利要求6或7所述的裝置,其特徵在於,所述監聽模塊具體用於分別判斷各隊列是否已配置與報文優先屬性的映射關係。
11.一種通訊設備,其特徵在於,包括權利要求6-10中任一項所述的報文轉發裝置。
全文摘要
本發明提供一種報文轉發方法、裝置和通訊設備,方法包括監聽各隊列的隊列配置狀態;根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。裝置包括監聽模塊,用於監聽各隊列的隊列配置狀態;轉發模塊,用於根據所述隊列配置狀態為控制報文分配轉發隊列,並通過所述轉發隊列轉發所述控制報文,其中,所述轉發隊列為所述各隊列中優先級最高的隊列。通訊設備包括上述報文轉發裝置。本發明在保證用戶報文的優先級隊列的正常使用的情況下,儘量優先轉發內部控制報文。
文檔編號H04L12/56GK102647352SQ20121009800
公開日2012年8月22日 申請日期2012年4月5日 優先權日2012年4月5日
發明者黃米青 申請人:北京星網銳捷網絡技術有限公司