一種報文分段處理系統及處理方法
2023-07-16 02:19:36 2
專利名稱:一種報文分段處理系統及處理方法
技術領域:
本發明涉及通信技術領域,特別涉及一種報文分段處理系統及處理方法。
背景技術:
在通信技術高速發展的當今社會,網絡已進入人們生活的方方面面,在網絡上有各種應用及業務數據,要求網絡傳輸設備、轉發設備和控制設備,對數據進行深入分析和處理;如需要支持IPv4數據流,IPv6數據流,多協議標籤交換(MPLS)數據流,支持訪問列表過濾(ACL),支持數據流的承諾速率訪問控制(CAR),支持各種QOS流量控制等。除了數據的豐富,各種接入技術、網絡技術和傳輸技術也是異彩紛呈,如需要支持高速的萬兆以太 (XGE)接口,千兆以太(GE)接口,同時要支持低速的El接口等,要支持報文的二層交換,同時也要支持報文的三層轉發。對路由器來說,如何在支持眾多功能的同時滿足高速轉發的需求是個挑戰性的問題。在現有技術中,有的設備通過使用網絡處理器(NP)來提升整機性能,有的通過多核處理器來提高處理能力,有的通過提高通信處理器的主頻來提升轉發性能;但僅僅通過提高硬體處理能力,對整機性能的提升並不能達到很好的增益。要達到很好的性價比,需要優化相應的軟體流程,而傳統的轉發方式如進程交換,快速交換,快速轉發等已不適合現在的各種有硬體加速的系統。高中低端的路由器在硬體上會有所不同,有的是集中式的,有的是分布式的,有的採用的是單核CPU,有的採用多核CPU,有的有硬體加速部件,有的沒有硬體加速部件,有的需要採用AMP(不對稱多處理器)技術,而有的需要採用SMP(對稱多處理器)技術來達到更好的整機性能,如何在適應各種硬體差異的同時,提高轉發效率,達到最優的轉發性能就是個問題。因此,有必要提出一種能夠提高報文轉發效率的相關處理方法。
發明內容
本發明所要解決的技術問題是提出一種報文分段處理系統及處理方法,解決傳統技術中無法適應在通信設備硬體差異的情況下,滿足高效轉發的需求的問題。本發明解決上述技術問題所採用的方案是一種報文分段處理系統,包括控制平面處理模塊,用於轉發通道或轉發接口的生成,並在轉發接口上生成由轉發路徑和轉發階段組成的轉發矩陣;數據平面處理模塊,用於根據轉發接口的轉發矩陣完成報文的轉發處理;資源調度模塊,用於完成轉發資源的調配。進一步,所述數據平面處理模塊,包括報文接收及分流單元,用於從鏈路接收報文,並基於報文特徵劃分數據流;報文路徑識別單元,用於完成鏈路的處理和接口的查找,及識別轉發路徑;報文分段處理單元,用於完成報文在不同轉發路徑上的轉發處理;報文調度及發送單元,用於完成報文出隊及發送處理。
進一步,所述報文分段處理單元,用於使用報文接收接口或報文發送接口的轉發矩陣中的轉發路徑的各個轉發階段處理函數進行報文的轉發處理。進一步,所述轉發路徑由接口上用戶配置的轉發類型來決定,或者,由報文頭中攜帶的負載類型來決定。進一步,所述資源調度模塊,用於完成轉發矩陣的各轉發階段中CPU核和/或進程和/或線程的配置和調度。進一步,所述轉發階段包括鏈路接收處理、輸入解析、鏈路輸入控制、轉發輸入處理及輸入控制、轉發查表、輸出解析、轉發輸出處理及控制、鏈路輸出控制、發送調度及報文發送階段。一種報文分段處理方法,包括控制平面處理模塊劃分報文轉發路徑及轉發階段, 並形成轉發矩陣;當數據平面處理模塊接收到報文後,完成鏈路的處理和接口的查找,並識別轉發路徑;然後使用報文接收接口或報文發送接口的轉發矩陣中的本轉發路徑的各個轉發階段處理函數進行報文的轉發處理。進一步,在報文的轉發處理過程中,直接修改報文本身或將報文的處理信息攜帶在報文的描述符中,由後續處理函數繼續處理。進一步,該方法具體包括以下步驟a.驅動接收報文並定位接收物理接口 ;b.鏈路處理相應的報文鏈路頭,區分報文的負載類型及所在的子接口,識別報文所屬轉發路徑;e.對報文所屬的轉發路徑進行輸入處理和控制處理;f.對報文所屬的轉發路徑進行查表,根據查表結果封裝新的鏈路頭;j.對報文入隊及報文發送進行控制。進一步,在步驟b和步驟e之間還包括步驟c.對報文中各個報文頭進行解析,並將信息存入報文描述符中;d.對鏈路的輸入控制;在步驟f和步驟j之間還包括步驟g.對報文的輸出進行解析;h.對報文所屬轉發路徑的輸出處理及輸出控制;i.對鏈路的輸出控制。本發明的有益效果是可以充分利用硬體的特性完成高效轉發,也可以方便地進行靜態或動態的任務劃分,及計算資源的調配;對不同的產品,採用不同的調度方法即可達到高效轉發的目的,同時減少了產品開發的周期。
圖I是本發明的一種優選實施例的報文分段轉發流程圖;圖2是本發明的一種優選實施例的轉發矩陣的示意圖;圖3是本發明的轉發處理所用的報文結構的示意圖;圖4是本發明的另一實施例的報文分段轉發示意圖;圖5是本發明的一種優選實施例的轉發系統的結構示意圖。
具體實施例方式針對傳統技術中無法適應在通信設備硬體差異的情況下,滿足高效轉發的需求的問題,本發明提供一種報文分段處理方法及報文分段處理系統,其中心思想是要保證報文在各個轉發階段處理的獨立性和整個轉發流程的高效性,並且儘量不依賴於硬體的特異性。本發明的報文分段處理方法,適用於單核轉發系統,也適用於多核的轉發系統,適用於使用流水線的報文並行處理,也適用於報文的串行處理。為了方便理解此方法,下面以報文串行處理為例,結合附圖及相關實施例,對本發明進行詳細描述。該報文分段處理方法的要點如下第一轉發中用到的數據最好以轉發流程中訪問最多的結構為基礎進行組織。眾所周知,系統中的cache的大小會對轉發的性能有很大的影響,而cache的局部性原理,使轉發過程中訪問的內存的數據的內聚性越好,轉發性能越高;訪問RAM的次數越少,性能越高。為了提高性能,首先需要考慮的就是要將報文轉發流程中所用到的數據儘可能組織在一起,儘可能減少轉發過程中訪問內存數據的代價。而轉發系統中多數數據和業務等與接口密切相關,故而以接口等最小的轉發單位為基礎來組織數據對轉發性能有很大的幫助。第二劃分轉發路徑和轉發階段時儘量使同一個報文所跑的代碼最精減,可以考慮各個轉發路徑處理的獨立性,轉發處理中的相關性及各個轉發階段中代碼執行時間和代碼量的大小。對報文進行處理的常規步驟一般為驅動接收,鏈路輸入,轉發系統處理,鏈路輸出,驅動發送。而對不同協議的報文其這幾個階段中所跑的代碼相異性是非常大的,如IP、 MPLS、IPV6和橋接的處理都是不同的,而且對IP,MPLS等報文,在鏈路處理和轉發處理中所作的業務控制也可能是截然不同的。在現有的CPU中,分支判斷對性能影響很大,指令 cache的換入換出對性能的影響也不容小視,故而在轉發過程中劃分轉發路徑是一種理想的選擇,使報文儘可能使用最精減的代碼完成其轉發處理。轉發路徑可以根據接口上用戶配置的轉發類型來決定,也可以由報文頭中帶的負載類型來決定其轉發路徑。如可以將轉發路徑劃分為橋接二層轉發、VPLS轉發、L2TP轉發、 IPV4單播轉發、IPV4組播轉發、MPLS轉發、IPV6轉發等。在轉發系統中很多業務是配置於接口上的,如有的接口上配置了 ACL輸入過濾, 有的配置了流量整形,有的配置了網絡地址轉換(NAT)等,也就是說,不同接口上的相同協議類型的報文如IP包,都有可能走不同的處理流程,故而基於接口或比接口還小的轉發單位組織轉發流程會使轉發更高效。劃分轉發階段可以在報文處理流程的基礎上,將有類似功能的處理放在一個轉發階段,或者可以根據各個階段處理中代碼的長度或代碼執行時間來劃分。以將有類似功能的處理放在一個階段的劃分標準來說,可以分為如下幾個轉發階段鏈路接收處理、輸入解析、鏈路輸入控制、轉發輸入處理及輸入控制、轉發查表、輸出解析、轉發輸出處理及控制、鏈路輸出控制、發送調度及報文發送階段。
基於以上思想,在接口上就形成了一個由轉發路徑和轉發階段組成的轉發矩陣, 如圖2所示,橫向表示劃分的轉發路徑,豎向表示各轉發路徑下劃分的轉發階段。矩陣中的各個節點即為一系列的轉發處理函數,且矩陣中的一些節點是可以為空的,並且在矩陣中以轉發路徑為軸是一個單向的處理流程,無論從哪個處理階段進入都只是單向向後處理, 這樣就簡化了流程。這個單向流程可以通過單向鍊表結合函數數組來實現。轉發路徑和轉發階段的擴展都非常容易,這樣便於支持更多的業務和處理。也方便支持不同類型的設備,如對分布式的系統,可以在處理階段中加一個跨卡預處理階段。由於各個路徑的獨立性,再擴展新的轉發路徑也是同樣簡單。第三、轉發過程中用到的數據和需要經過的業務控制都需要由控制平面下發至數據平面,並在數據平面根據以上原則思想,形成接口上的轉發矩陣。另外將各業務信息組織在接口結構上,方便通過接口定位各個控制業務的數據信息。如圖I所示,為一個報文的完整轉發流程,其包括以下步驟步驟10 :驅動接收報文並定位接收物理接口,如果是多核的系統可以在此步進行初步分流,如基於IP五元組或MPLS標籤等分流。步驟20 :鏈路處理相應的報文鏈路頭,區分報文的負載類型,區分報文所在的子接口,最後識別報文所屬轉發路徑。步驟30 :對報文中各個報文頭進行解析,並將信息存入報文描述符中。此步是可選的步驟,如果後續輸入處理中有業務關心報文中更詳細的信息,則在此步驟中進行報文解析。步驟40 :與轉發路徑無關的輸入控制,如基於鏈路的控制,如MAC-ACL,CAR等,此步是可選的步驟,當不存在這些配置時,此步驟被跳過。步驟50 :本報文所屬的轉發路徑的輸入處理和控制,如對IP報文來說就是如IP 輸入處理,IP ACL輸入控制等,而對MPLS報文來說,就是MPLS輸入處理和MPLS的輸入控制。步驟60 :本報文所屬的轉發路徑的查表及根據查表結果封裝新的鏈路頭。對不同的轉發路徑查找不同的表,如IP單播轉發表,組播轉發表,MPLS標籤表等。步驟70 :報文輸出階段處理的解析,類似輸入解析,但是是對即將輸出的報文的解析,也是可選的步驟。步驟80 :本報文所屬的轉發路徑的輸出處理及輸出控制,也是可選的。步驟90 :鏈路輸出控制,如MAC ACL, QOS, CAR等輸出處理。此步是可選的步驟。步驟100 :報文入隊及報文發送。以上為從外部接口收到一個報文的完整轉發流程。如果涉及到轉發路徑間的切換,可以通過入報文隊列或消息隊列等方式進行轉發路徑切換,如IP路徑切換為MPLS路徑等,路徑切換後,從需要的步驟開始後續流程即可,此流程是從屬於此完整轉發流程的子流程。如圖3所示為報文轉發所使用的報文buffer,此buffer由兩部分組成,報文數據本身和報文描述符。報文轉發處理過程中,直接修改報文本身,或者是將報文的處理信息攜帶在報文的描述符中,由後續處理函數繼續處理。各個轉發處理除了需要關心報文本身和描述符外,不需要關心是在哪個處理核完成的,也不需要關心後續處理在哪個處理核上進行的,儘量保證各轉發階段處理的獨立性和內聚性,減少不同轉發階段間的通信,方便轉發矩陣適用於多核和單核,或串行和並行的處理環境。圖4為一個報文分段轉發的實施例示意圖。其中路徑I為IP單播轉發路徑,路徑M是MPLS轉發路徑,其它路徑略去。首先控制平面下發接口表,下發接口上的用戶業務配置如ACL,CAR等,在數據平面形成轉發需要用到的基於接口的轉發矩陣。對一個IP報文來說,其轉發經過的處理為201,202,203,204,205,206等,其中 203-205表示該報文在IP單播轉發路徑下所經過了 I-N個轉發階段的處理。對一個MPLS報文來說,其轉發經過的處理為201,202,207,208,209,206等,其中 207-209表示該報文在MPLS轉發路徑下所經過了 1_N個轉發階段的處理。如果某個接口上少一些配置和業務控制,就可以跳過一些轉發階段的處理,這在生成此接口的轉發矩陣時就在鍊表中跳過,而不是在轉發流程中才判斷,這樣可以加快報文的處理性能。如若實施例中可以跳過204,那此接口的轉發矩陣中IP路徑上的轉發鍊表中就不包括204階段。對此接口上的IP包來說,其處理流程為201,202,203,205,206等。資源調度處理在單核系統中可以控制各個轉發階段在哪個進程或線程中完成。在多核系統中,可以支配哪個轉發階段在哪個核上完成。另外一個轉發階段可以由一個核完成,也可以由多個核完成。此外,本發明還提供了一種報文轉發系統;圖5為本發明一種優選實施例中報文轉發系統的結構示意圖。如圖所示,該系統包括控制平面處理模塊601,數據平面處理模塊 602,資源調度模塊603,其中數據平面處理模塊包括報文接收及分流單元701,報文路徑識別單元702,報文分段處理單元703 708,報文調度及發送單元709。控制平面處理模塊601,用於下發接口、業務配置等,接收數據平面的通知和收集轉發統計等,並在轉發接口上生成由轉發路徑和轉發階段組成的轉發矩陣。數據平面轉發模塊602,用於完成報文的整個轉發處理。資源調度模塊603,用於完成轉發資源的調配。如CPU核的分配等。其中數據平面轉發模塊602,又包括如下一些處理模塊報文接收及分流單元701,用於從線路接收報文,對一些系統還完成報文分流的作用。報文路徑識別單元702,完成鏈路的處理和接口的查找,轉發路徑的識別。報文分段處理單元703 708,完成本設備中相應轉發路徑和轉發階段的分段處理。報文調度及發送單元709,完成報文的出隊及發送處理。本發明所要求保護的技術方案包含但不僅限於上述實施方式中的內容,在不脫離本發明的精神實質的情況下,本領域技術人員根據上述實施方式所記載的內容對本發明的方案作出的等同替換均在本發明的保護範圍內。
權利要求
1.一種報文分段處理系統,其特徵在於,包括控制平面處理模塊,用於轉發通道或轉發接口的生成,並在轉發接口上生成由轉發路徑和轉發階段組成的轉發矩陣;數據平面處理模塊,用於根據轉發接口的轉發矩陣,完成報文的轉發處理;資源調度模塊,用於完成轉發資源的調配。
2.如權利要求I所述的一種報文分段處理系統,其特徵在於,所述數據平面處理模塊, 包括報文接收及分流單元,用於從鏈路接收報文,並基於報文特徵劃分數據流;報文路徑識別單元,用於完成鏈路的處理和接口的查找,並識別轉發路徑;報文分段處理單元,用於完成報文在不同轉發路徑上的轉發處理;報文調度及發送單元,用於完成報文出隊及發送處理。
3.如權利要求2所述的一種報文分段處理系統,其特徵在於,所述報文分段處理單元, 用於使用報文接收接口或報文發送接口的轉發矩陣中的轉發路徑的各個轉發階段處理函數進行報文的轉發處理。
4.如權利要求I或2所述的一種報文分段處理系統,其特徵在於,所述轉發路徑由接口上用戶配置的轉發類型來決定。
5.如權利要求I或2所述的一種報文分段處理系統,其特徵在於,所述轉發路徑由報文頭中攜帶的負載類型來決定。
6.如權利要求I或2所述的一種報文分段處理系統,其特徵在於,所述資源調度模塊, 用於完成轉發矩陣的各轉發階段中CPU核和/或進程和/或線程的配置和調度。
7.一種報文分段處理方法,包括控制平面處理模塊劃分報文轉發路徑及轉發階段, 並形成轉發矩陣;當數據平面處理模塊接收到報文後,完成鏈路的處理和接口的查找,並識別轉發路徑;然後使用報文接收接口或報文發送接口的轉發矩陣中的轉發路徑的各個轉發階段處理函數進行報文的轉發處理。
8.如權利要求7所述的一種報文分段處理方法,其特徵在於,在報文的轉發處理過程中,直接修改報文本身或將報文的處理信息攜帶在報文的描述符中,由後續處理函數繼續處理。
9.如權利要求7或8所述的一種報文分段處理方法,其特徵在於,該方法具體包括以下步驟a.驅動接收報文並定位接收物理接口;b.鏈路處理相應的報文鏈路頭,區分報文的負載類型及所在的子接口,識別報文所屬轉發路徑;e.對報文所屬的轉發路徑進行輸入處理和控制處理;f.對報文所屬的轉發路徑進行查表,根據查表結果封裝新的鏈路頭; j.對報文入隊及報文發送進行控制。
10.如權利要求9所述的一種報文分段處理方法,其特徵在於,在步驟b和步驟e之間還包括步驟c.對報文中各個報文頭進行解析,並將信息存入報文描述符中;d.對鏈路的輸入控制;在步驟f和步驟j之間還包括步驟g.對報文的輸出進行解析;h.對報文所屬轉發路徑的輸出處理及輸出控制;i.對鏈路的輸出控制。
全文摘要
本發明涉及通信技術領域,其公開了一種報文分段處理方法,解決傳統技術中無法適應在通信設備硬體差異的情況下,滿足高效轉發的需求的問題。其技術方案的要點是一種報文分段處理方法,包括控制平面處理模塊劃分報文轉發路徑及轉發階段,並形成轉發矩陣;當數據平面處理模塊接收到報文後,完成鏈路的處理和接口的查找,並識別轉發路徑;然後使用報文接收接口或報文發送接口的轉發矩陣中的本轉發路徑的各個轉發階段處理函數進行報文的轉發處理。此外,本發明還提出了一種報文分段處理系統,適用於報文快速高效轉發。
文檔編號H04L12/56GK102594680SQ20121003445
公開日2012年7月18日 申請日期2012年2月15日 優先權日2012年2月15日
發明者劉寶琴, 楊文楷 申請人:邁普通信技術股份有限公司