摘 要:對可重構路由單元中軟件體系結構進行了初步探討,提出了支持多網融合環境下的可重構軟件架構的模型、實現方案并對關鍵技術進行了研究。該技術方案可保證在現有的多網融合的運行環境中實現標準化的功能擴展,使得路由單元的服務支持可重構特性。
關鍵詞:可重構; 路由單元; 軟件體系結構; 關鍵技術
中圖分類號:TP311文獻標志碼:A
文章編號:1001-3695(2009)09-3341-04
doi:10.3969/j.issn.1001-3695.2009.09.040
Research and implementation based onsoftware architecture of reconfigurable routers
LIU Qiang1,2, WANG Bin-qiang PAN Dong-cun3, YU Jing
(1.China National Digital Switching System Engineering Technological Research Center,Zhengzhou 450002,China; 2.Archives Dept., General Logistics Department of PLA,Beijing 100842, China; 3.PLA Information Engineering University,Zhengzhou 450002,China)
Abstract:This paper made an initial study on the reconfigurable routers software architecture, proposed a model and a implementation scheme which supported reconfigurable software framework. And it researched the key technology of the scheme. This scheme made possible the functionality extension just based on current existing low level resources, as a result, possible the reconfigurations.
Key words:reconfigurable; router unit; software architecture; key technology
隨著對路由器研究的深入,人們在追求路由交換性能快速提高和帶寬容量擴展的同時開始更多地關注于路由器本身在功能方面的靈活擴展問題[1~3]。這也是實現多網融合、多業務融合的迫切需要。但是,傳統的路由器在體系結構上是封閉的,用戶只有有限的按照廠家提供的軟件對設備進行設置的靈活性,其可編程和按用戶需求配置的可重構性均非常有限。
針對以上問題,科技部提出了研究面向新一代網絡高度靈活需求的路由交換節點的任務。該任務的核心可以歸納為實現開放性、可編程性和支持多服務的高度可重構性。開放指對路由器底層構件資源充分地向用戶開放,同時通過各個模塊構件及相互接口的定義和通信協議統一或標準化,使其具有高度的跨廠家相互兼容性和可互操作性??删幊淌侵钢С謱Y源的編程控制,從操作層面支持按業務需求重組路由器中的模塊構件組成或者改變其屬性??芍貥嬛冈谙嗤幕酒脚_上對路由器中的各種資源進行重構組合,實現對路由設備服務功能的靈活重組,產生支持不同業務功能或相同業務的不同指標需要的網絡節點設備或相應功能,支持多業務融合服務。上述特征中,開放是基礎,可編程是手段,可重構是目的。
開放可重構路由單元的研究是一個結合軟件和硬件最新技術的龐大的研究課題,包含軟件和硬件的體系架構、協議標準、軟件實現、硬件實現等方面的問題。本文重點分析可重構路由單元的軟件部分技術方案。
1 可重構路由單元軟件可重構分析
圖1為可重構路由單元的邏輯框圖,可重構路由單元由線路接口組件、轉發組件、數據平面拓撲連接組件、控制組件、交換組件幾部分組件組成,每個組件內部由各構件重構完成其功能。
圖2為可重構路由單元軟件總體實現框架,可重構網絡接口層主要由硬件實現??芍貥嬄酚蓡卧O計運用與各網絡核心節點上為高端路由設備,所以交換、轉發等組件主要功能由軟件支持的硬件實現??刂平M件、數據平面拓撲組件和交換組件中相關表項的管理等由軟件控制實現。當線路接口組件接收不同接入網絡數據后,對進入線路接口組件的報文包頭進行相關處理,并向可重構路由單元控制模塊進行通告,觸發相關報文處理模塊。本文關注于可重構路由單元軟件部分。
路由單元設計運行多種網絡,但往往實際運用過程中可能僅僅運行一種或兩種網絡,所以路由單元內資源需要動態重構,節省資源開銷。可重構路由單元軟件部分的設計目的是通過對軟件部分可重構性進行分析,精簡實現主要協議,明確協議接口,保證在實現原有協議功能的基礎上減少系統資源消耗、增強靈活性、保證高吞吐率[4~6]。對于可重構路由單元可重構性分析主要體現在可重用性和可復用性。
1.1 協議組合可重用性分析
以重構路由單元分組網絡接口組件為例。由圖2可知,可重構路由單元接口組件包括IP分組網絡接口構件、PSTN電信網絡接口構件、廣電網接口構件、未知網絡接口預留構件。IP分組網絡接口構件(可重構路由單元IP網絡線卡模塊)對進入路由單元IP網絡入口(包括POS、LAN、WAN接口)的報文,剝去鏈路層幀頭,解封裝為分組報文。電信網報文通過可重構網絡接口層異構網絡中間件也封裝為分組報文。所以對于進入可重構路由單元的任何報文的處理,簡化為對分組報文的處理。協議可重構性分析成為對核心IP網絡的分析。
核心IP網絡中TCP/IP協議在制定過程中就按照一種層次的思想,允許協議的設計者能在一段時間內把注意力集中到某一層而不必擔心較低層的執行情況[7,8]。不同層間協議相互獨立,不同層次的協議需要通過簡單的層間接口進行服務交互。并且,當任何一層發生變化時,只要接口關系保持不變,則該層上、下各層均不受影響。這就為按照層次關系進行網絡軟件可重構提供了條件。其次,同層間協議或者相互獨立,或者與同層間其他協議協同工作。傳輸層TCP和UDP協議分別面向連接服務和無連接服務,之間沒有任何交集,互不影響,各自獨立工作。IP層的IPv4與IPv6及相關配合使用的協議可以在一個協議棧中并存,但處理上各自獨立。運行于應用層的路由協議各域內路由協議獨立運行,可以獨立進行路由發現和匯聚。這種現狀使得不同層間協議的耦合度很低,便于協議的刪減和擴展,使協議棧重構成為可能,采用模塊化思想來實現,使用戶可以根據需求選擇協議,構造與需求相適應的協議棧[9~11]。
可重構路由單元軟件體系結構如圖3所示。
1.2 資源有效可復用性分析
現有IP分組網絡、電信網、廣電網中的交換設施主要功能都是在本身網絡中進行報文的轉發和交換。在可重構路由單元取代各個網絡中原有交換設備后,報文通過接口組件處理后,在可重構路由單元內部都變換為分組IP報文。交換網絡的核心功能——交換功能,完全可以利用原有路由器內部的路由交換功能進行實現。
由于路由協議耗費了路由器大量的資源(運算資源和內存資源),可重構路由單元軟件資源開銷對路由資源進行構件化設計,在需要時進行構件加載,以利于節省資源開銷。路由單元內部協議棧部分支持IPv4、IPv6協議族;路由部分實現IPv4/IPv6路由協議、組播路由協議,支持MPLS VPN功能。當前主要的IPv4路由協議構件包括RIPv2、OSPFv2、IS-IS for IPv4、BGP-4,IPv6路由協議包括RIPng、OSPFv3、IS-IS for IPv6、BGP-4+等。
研究表明現有路由器同時運行在IPv4、IPv6網絡的可能性不大,同時運行多種路由協議的幾率也不高,所以采用對資源進行復用,利用事件觸發重構路由器軟件系統實現要求功能相當有必要。
2 可重構路由單元軟件體系結構設計與實現
2.1 軟件總體體系結構設計
根據以上分析和實際需求,將可重構路由單元軟件體系結構設計目標定為:a)具有比較小的代碼量,盡量少地占用系統資源,高效、穩定、易于移植;b)支持多種協議,使體系結構具有更好的可擴展性;c)具有可重構性,路由器可根據自己的實際需求通過編譯、加載對軟件體系結構進行重構。
采用模塊化的設計思想,其中各個模塊均由宏開關打開,盡量減少各個模塊間的耦合。系統軟件的體系結構設計如圖4所示。
可重構路由單元軟件部分公用模塊主要包括以下四部分:
a)控制管理模塊。負責整個可重構路由單元的管理和控制,包括對各種模塊單元的配置和管理,各構件注冊、銷毀情況的控制,各構件的版本控制,對路由器中各種資源的監控和管理。
b)觸發接口\\上下文管理單元。負責對進入路由器的各種數據的觸發,包括對進入報文的判斷和路由器各單元的情況的收集。
c)適配管理單元。負責管理路由器中各種環境模型庫、策略庫、構件庫的建立和管理,并通過用戶接口和上下文管理單元的相關信息進行相關各庫的編譯、重構。
d)應用層負責。根據控制管理模塊的指令對配置管理單元中各庫中模型、構件的加載和卸載。
由于篇幅問題,本文以IPv4和IPv6可重構進行分析。文中軟件體系結構可重構為IPv4、IPv6或雙棧,也可根據需求重構為未知協議。
2.2 關鍵技術的實現
2.2.1 構件庫的建立和管理
在可重構路由單元軟件模型的設計中采用了軟件構件模型的概念。對網絡中原有相關協議以低耦合、高內聚為目的進行改進。
構件具有相對獨立功能,可以明確辨識,接口由契約指定,與語境有明顯依賴關系,可獨立部署,可組裝軟件實體,包括了接口、約束、實現體以及內部結構。
可重構路由單元的設計思路為開放、可重構、可復用,所以構件庫中的相關構件可能由多個研究機構完成,還要做好各相同功能構件的版本控制。構件庫的建立和管理按照類—實例的層次進行建立和管理。例如將一個構件編號為3.80001.03.04,在構件庫中將各個組件進行編號,即1線路接口組件、2轉發組件、3數據平面拓撲連接組件、4控制組件、5交換組件,80001為該組件的第80001類構件,03為該構件類的第三個實例,04為該構件實例的第四個版本。
以路由軟件為例,分析構件庫的建立和管理。根據路由軟件子系統的功能,路由軟件子系統可以劃分為IPv4單播路由協議構件、IPv6單播路由協議構件、組播路由協議構件(分為IPv4組播路由協議、IPv6組播路由協議兩個子模塊)、路由表管理構件、MPLS VPN構件和網管接口構件。具體如圖5所示。
IPv4路由協議構件主要實現IPv4路由協議,它的實現體包括RIPv2、OSPFv2、IS-IS for IPv4、 BGP-4等路由協議;同時具有實現協議對應的MIB庫、對控制管理模塊的接口和下層協議棧的相關接口。本構件功能如下:
a)本構件從IPv4協議構件和傳輸層協議構件接收協議報文(協議報文的類型有TCP/UDP/RAW IPv4三種),各個路由協議分別對協議報文進行處理,獲取路由信息經過計算后生成路由表,并將各自生成的IPv4路由信息提交給路由表管理構件。
b)同時本構件內各個路由協議根據協議自身運行的要求和路由更新的要求生成協議報文(同樣有TCP/UDP/RAW IPv4三種類型),通過協議軟件構件發送協議報文給別的路由器。
c)從路由表管理構件接收接口信息,觸發對應路由協議的事件。
d)在路由協議運行過程中,每個路由協議通過了路由表管理構件來完成與別的路由協議之間的路由信息的再分配功能。
IPv4路由協議構件采用高內聚的設計思路,構件內部的主要數據流如下:
IPv4路由協議分別從TCP/IPv4協議層接收路由協議報文,進行路由計算處理;同時協議運行過程中發送路由協議報文到TCP/IPv4協議層,維持協議的運行和發送路由更新。
IPv4路由協議從路由管理構件接收接口狀態信息,觸發協議運行狀態的改變;將路由計算所得的路由信息提交給路由管理構件,用于生成到目的網絡的最優路由;同時根據路由再分配的配置,各個路由協議從路由管理構件接收從其他路由協議分配來的路由信息,觸發路由更新;路由信息的數據流如圖6中箭頭所示。
2.2.2 構件下發及加載
可重構路由單元控制模塊使用數據結構跟蹤它所控制的構件??刂颇K觸發構件加載任務后須根據策略庫中的相關模型配置相關構件模型,通過接口將某些已運行的構件進行廢棄或者可重構。構件的加載主要分為路由器啟動時的加載和路由器運行過程中的加載。
由圖4可知軟件構件庫存在于適配層。在整個路由器啟動時,首先按照人工配置在控制模塊中的信息進行初始化:
a)檢測路由器各模塊狀態,設置模塊的相應初始值,從而初始化設備硬件。
b)調用register_mod向控制模塊登記自身,即以各構件的主版本號為索引,在mod向量表中填寫一個mod_struct結構。
c)啟動中斷守護進程request_irq,并根據構件類型設置其中斷處理程序。
d)通過控制管理模塊,為各構件配置資源。
e)通過控制管理模塊,啟動相關構件的編譯和加載過程。
在路由器運行階段,也需要根據臨時配置加載構件流程:
a)接收控制管理模塊信息,啟動策略庫,根據模型庫和環境庫的相關模型調用構件庫中的構件。
b)向控制模塊申請資源,如中斷、內存等。如果這些資源已經在初始化時申請,此處就不用再次申請了。若路由器中資源不足,調用策略庫中相關策略中斷其他構件服務或等待。
c)在控制模塊建立私有的管理數據結構。
d)初始化各構件的各種配置,如路由構件的各種配置參數。
e)啟動構件,配置接口與其他各構件通信。構件加載完成。
可重構路由單元的設計思路為開放、可重構、可復用,所以構件庫中的各構件初始化時只進行預編譯,在控制模塊控制信息觸發后才啟動構件加載過程,如圖7所示。
2.2.3 利用XML語言對可重構路由單元進行構件控制
在路由單元的設計過程中,對構件采用黑盒設計的方法,在構件的組裝過程中,利用XML語言對構件進行組裝。
下面代碼為報頭封裝過程中的構件處理過程:
〈name〉EthernetII〈/name〉
-〈dataTypeDefs〉
- 〈dataTypeDef〉
〈name〉IEEEMAC〈/name〉
〈synopsis〉IEEE mac.〈/synopsis〉
〈typeRef〉byte[6]〈/typeRef〉
〈/dataTypeDef〉
- 〈dataTypeDef〉
〈name〉MacFilterTableEntryType〈/name〉
〈synopsis〉MAC filter table entry〈/synopsis〉
〈typeRef〉IEEEMAC〈/typeRef〉
〈/dataTypeDef〉
〈/dataTypeDefs〉
- 〈scClassDefs〉
- 〈scClassDef scClassID=\"80002\"〉
〈name〉EtherDecap〈/name〉
〈version〉1.0〈/version〉
……
- 〈outputPorts〉
- 〈outputPort group=\"yes\"〉
〈name〉DecapOut〈/name〉
〈synopsis〉Ethernet decapsulation output.〈/synopsis〉
-〈product〉
……
3 結束語
國內外對路由器為代表的關鍵網絡設備的研究,已經從單純追求提高設備性能發展到同步研究提高性能和擴展功能,這是實現多網融合、業務融合的迫切需要。本文提出了可重構路由單元中軟件架構的初步技術方案。這些方案是建立在對軟件構件研究的基礎上,圍繞建立在面向新型網絡應用的可重構性、可復用性研究后形成的,并對方案路由器軟件部分中軟件構件的生成、控制、加載等作了研究。后期將圍繞提高可重構路由單元性能,將部分軟件構件功能硬件化及對相關標準的制定進行更多詳細研究。
參考文獻:
[1]HIDELL M, SJDIN P, HAGSAND O. Control and forwarding plane interaction in distributed routers[C]//Proc of the 4th International IFIP-TC6 Networking Conference. Waterloo:Springer, 2005:1339-1342.
[2]TAKOUROUT R N, RIERRE S, MARCHAND L. Separation of the control plane and forwarding plane in next-generation routers[J]. Journal of Computer Science, 2006,2(11):815-823.
[3]Juniper networks delivers industry’s first high-performance control plane scaling platform[EB/OL].(2008-02-25). http://www.juniper.net/company/ presscenter/pr/2008/pr- 080225.html.
[4]HALEPLIDIS E, HAAS R, DENAZIS S, et al. A Web service- and ForCES-based programmable router architecture[C]//Proc of International Working Conference on Active and Programmable Netwoks. Berlin:Springer,2005:108-120.
[5]SCHUBA C, GOLDSCHMIDT J, KALAJAN K, et al. Integrated network service processing using network devices[EB/OL]. (2005-05).http://research. sun.com/techrep/2005/ smli_tr- 2005-138.pdf.
[6]FEAMSTER N, BALAKRISHNAN H, REXFORD J, et al. The case for separating routing from routers[EB/OL].(2004). http://www.research.att.com/~kobus/ docs/rcp-fdna.pdf.
[7]LI YUN-chen,CHIANG Mei-ling. lyraNET:a zero-copy TCP/IP protocal stack for embedded operation systems[C]//Proc of the 11th IEEE International Conference on Embeded and Real_time Computing Systems and Applications. Washington DC:IEEE Computer Society, 2005:123-128.
[8]COMER D E. 用TCP/IP進行網際互聯,第1卷:原理、協議與結構[M].4版.北京:電子工業出版社,2001:128-130.
[9]ZHAO Feng, SU jin-shu, CHENG Xiao-mei. OpenRouter: a TCP-based lightweight protocol for control plane and forwarding plane communication[C]//Proc of the 3rd International Conference on Networking and Mobile Computing. Berlin, Heidelberg: Springer, 2005: 1032-1041.
[10]王寶生,夏毅,陳曉梅,等.基于ForCES體系結構的IPv6路由器的研究與實現[J].國防科技大學學報,2006,28(3):44-48.
[11]IYER S, MCKEOWN N W. Analysis of the parallel packet switch architecture[J]. IEEE/ACM Trans on Networking, 2003,11(2):314-324.