柳依岸,郜 帥,侯心迪,劉寧春
(北京交通大學 電子信息工程學院 移動專用網絡國家工程研究中心,北京 100044)
在傳統互聯網TCP/IP結構體系創造之初,終端設備大多采用以“固定、有線”為主的連通方式,網絡結構固定,使得IP具有身份和位置雙重屬性[1],這種在當時簡單有效的設計在如今卻直接或間接帶來了現網中移動性[2]、路由可擴展性[3]、網絡安全[4]等問題。
針對上述問題,國內外許多團隊提出從根本上重新設計的網絡原理、機制、體系結構,部分采取顛覆性的演進設計,以避免傳統互聯網TCP/IP體系中的根源性問題。具有代表性的包括位置身份分離協議LISP[5]、主機標識協議HIP[6]、面向數據分發的網絡NDN[7]、移動性網絡MobilityFirst[8]、面向云計算的網絡NEBULA[9]、不同主體靈活通信的XIA[10]。國內張宏科院士團隊的標識網絡(Smart Identifier Network,SINET)[11-12],提出了全新網絡體系結構的“網通層”和“服務層”兩層總體模型與理論。標識網絡將網絡結構劃分為核心網與接入網兩個部分,為了解決IP地址的二義性,定義了接入標識與路由標識,在接入網中使用接入標識傳輸,核心網中使用路由標識傳輸,并提出接入標識與路由標識分離映射理論,建立接入標識與路由標識的映射機制,完成身份位置的解綁。標識網絡的接入標識與路由標識分離映射理論解決了傳統互聯網TCP/IP體系的設計性問題,為傳統網絡移動支持性差、安全性差、路由可聚合性差等問題提供了可行的替代方案,對未來網絡發展有積極意義,是具有影響力的下一代互聯網代表架構[13]。
目前在部分專用網絡中標識網絡的部署應用已經取得了良好效果,然而標識網絡很難在現有的網絡中使用,現有的TCP/IP網絡體系的應用非常成熟,更具體地說IP協議深深地嵌入到主機網絡和應用軟件中以及路由器硬件和軟件中,架構更替面臨極高的部署障礙。
近年可編程交換平臺[14]依托軟件定義網絡(Software Defined Networking,SDN)[15]的快速發展,為打破當前網絡設備封閉的局限性帶來希望??删幊叹W絡平臺架構中,采用轉發與控制分離的思想,將網絡中的路由交換解耦為數據面與控制面,數據面負責網絡的轉發邏輯,控制面負責網絡的控制邏輯。轉發邏輯由可編程的數據平面實現,能夠靈活地設計并實現不同的報文解析處理流程與轉發邏輯,控制平面負責從數據平面收集信息,實現網絡的復雜控制計算邏輯,指揮數據平面的轉發,同樣具有可編程的靈活性。可編程交換平臺的發展降低了網絡創新開發和部署運維的成本,采用可編程平臺使得標識網絡的推廣與應用成為可能。
該文在標識網絡移動性管理機制的研究基礎上,提出采用可編程網絡平臺架構實現基于可編程平臺的標識網絡移動性管理機制。首先根據可編程平臺特點設計總體架構,在數據平面設計報文處理與轉發邏輯,在控制平面設計網絡功能對應的處理模塊。然后實現搭建一套原型系統進行功能測試與性能測試。
近年針對標識網絡移動性管理機制的研究主要集中在基于Linux系統的網絡轉發平臺上。在文獻[16]中提出了標識網絡的網絡層移動管理基礎,標識分離映射機制。在文獻[17]中針對標識網絡移動管理方案提出改進的層次移動管理機制、位置管理機制、尋呼機制。在文獻[18]中引入移動管理域優化了映射關系處理。在上述文獻中大多根據Linux系統網絡轉發平臺特點設計標識網絡移動切換管理機制。在傳統網絡結構中由于網絡的控制能力分散在各個網元設備中,所以需要將定制軟件安裝進網絡拓撲中大部分網元設備與終端中,例如在文獻[18]中,需要將定制軟件部署至標識映射服務器(Identity Map Server,IDMS)、接入交換路由器(Access Switch Router,ASR)、移動終端(Mobile Node,MN)中。當移動終端發生移動切換,新的映射關系由新的本地ASR生成并發布至IDMS,并由IDMS通知原ASR更新舊的映射關系。當發生三角路由時主要由ASR處理失效的映射關系。在傳統平臺中網絡控制能力分散在各個網元設備中,大部分的邏輯處理工作由各網元設備處理并在網元設備之間通過信令交互與交換信息。邏輯處理在一定程度上占用了ASR的部分計算能力,同時部分信令的開銷也占用了一定的設備轉發能力,這種情況下可能會更快地產生ASR單點失效的問題。由于網絡拓撲中各個網元均需要定制化的開發,網絡系統在開發、部署、運維、推廣上可能會存在障礙。
該文提出基于可編程網絡平臺架構實現標識網絡移性管理機制,由于轉發與控制分離的特點,控制面集中網絡的管控能力,部分需要ASR處理的邏輯與信令交互集中至控制器處理,相較于傳統的基于Linux系統的網絡轉發平臺省去了部分ASR之間信令交互的資源開銷與時間開銷??删幊唐脚_易于開發部署推廣的特點一定程度上也便于標識網絡的推廣與應用。
基于可編程平臺的控制與轉發分離的理念,標識網絡架構總體分為數據平面和控制平面兩部分設計。數據平面負責根據可編程設計的數據面解析處理邏輯處理報文,并按照控制面下發的流表進行轉發。控制平面負責網絡整體的管控能力,同時對數據面下發流表指導轉發,配合數據平面實現網絡基礎通信功能,包括標識網絡中設備注冊、認證、映射發布與查詢。以及在此之上提供標識網絡的移動性管理機制。可編程平臺下標識網絡整體架構如圖1所示。

圖1 基于可編程平臺的標識網絡架構
標識網絡邏輯上將網絡拓撲劃分為接入網與核心網。接入網中的終端采用128位全局唯一的接入標識AID(Access Identifier,AID)表示身份信息,并且在移動切換過程中不會改變。當終端接入網絡完成認證,控制面會給終端分配代表接入位置信息的RID(Route Identifier,RID),RID用于報文在核心網中路由。接入交換路由器(Access Switch Router,ASR)負責接入網內的通信以及跨域通信時身份標識與路由標識的轉換,從而實現身份與位置分離,ASR的流表中包含了當前域內所有的終端的AID與RID映射關系。核心路由器(Core Router,CR)負責核心網的報文轉發。
2.1.1 數據平面設計
數據平面依靠可編程交換設備實現對報文解析、報文處理、報文轉發的功能,通過數據平面的設計實現標識網絡數據包轉發、設備認證、映射查詢、移動切換等網絡功能。數據平面的報文處理邏輯如圖2所示。

圖2 基于可編程平臺的標識網絡數據平面轉發邏輯
(1)當數據平面可編程交換設備收到一個數據報,首先按照標識網絡解析報文首部,判斷報文是否存在核心網首部,若存在執行(2);若不存在則執行(3);
(2)對具有核心網首部的報文,根據核心網首部中的目的RID,在RID核心網轉發流表中查詢是否有對應的流表能夠轉發,若存在流表執行按照對應的端口號轉發到核心網,流程結束;若不存在流表執行(4);
(3)對無核心網首部的報文即接入網報文,判斷接入網首部中的標志位是否標記為信令報文,若是執行向控制器轉發并結束流程;若不是執行(5);
(4)對核心網報文,根據核心網首部中的目的RID,在RID本域解封裝流表中查詢是否有對應的流表,若存在流表將核心網報文解封裝,去掉核心網首部,執行(6);若不存在流表轉發到核心網默認端口,流程結束;
(5)對接入網報文,根據接入網首部中的目的AID,在AID本域終端轉發流表中查詢是否有對應的流表能夠轉發,若存在流表執行按照對應端口號轉發到本域接入網,流程結束;若不存在流表執行(7);
(6)對核心網報文解封裝后的接入網報文,根據接入網首部中的目的AID,在AID本域終端轉發流表中查詢是否有對應的流表能夠轉發,若存在流表執行按照對應端口號轉發到本域接入網,流程結束;若不存在流表向控制器轉發,發起三角路由處理流程;
(7)對目的AID不在本域的接入網報文,根據接入網首部中的目的AID,在目的AID-RID映射流表中查詢是否有目的AID映射的RID,若存在流表執行封裝核心網首部,將源、目的AID映射成源、目的RID,執行(8);若不存在,向控制器轉發報文,發起映射查詢,結束流程;
(8)對接入網報文封裝成核心網報文,根據核心網首部的目的RID,在RID核心網轉發流表中查詢是否有對應的流表能夠轉發,若存在流表執行按照對應的端口號轉發到核心網,流程結束;若不存在流表,轉發到核心網默認端口,流程結束。
2.1.2 控制平面設計
在可編程網絡平臺中,控制平面負責網絡整體的功能實現,從基本的端到端通信到復雜的網絡管控都依賴于控制平面。在可編程平臺下的標識網絡移動性管理機制中,控制平面也是系統運行的核心。控制平面通過接收數據平面轉交的報文獲取數據平面的信息,進而發起不同的網絡流程進入不同的處理邏輯。在控制平面處理流程中通過向數據平面下發不同的流表完成對數據平面的轉發工作的指揮。控制平面總體架構設計如圖3所示,控制平面系統包括四個模塊,負責不同的功能。

圖3 控制平面系統架構
映射服務器負責存儲全局設備的映射關系,并將存儲的數據對外提供查詢、更新、注冊等功能。
標識分離映射控制模塊負責處理從數據平面轉交的報文,解析報文意圖并從報文中提取報文信息,例如源目的AID、標志位、報文負載等,并根據報文意圖開啟不同的邏輯流程,向后續模塊傳遞信息。設計如下:
(1)當標識分離映射控制模塊收到數據平面轉交的接入認證報文時,會提取出報文中的源AID、報文負載密文、報文來源的數據平面交換機以及交換機端口號,將信息轉交給標識接入認證模塊,開啟接入認證流程。
(2)當收到數據平面轉交的映射查詢報文時,會提取出報文中的目的AID、報文來源的數據平面交換機,將信息轉交給標識映射發布與查詢模塊,開啟映射查詢流程。
(3)當收到數據平面轉交的移動接入報文,會提取出報文中的源AID、報文來源的數據平面交換機以及交換機端口號,將信息轉交給移動性管理模塊,開啟移動切換流程。
(4)當收到數據平面轉交的三角路由報文,會提取出報文中的源AID、報文來源的數據平面交換機,將信息轉交給移動性管理模塊,開啟三角路由處理流程。
標識接入認證模塊負責對設備進行接入認證,并處理設備所在接入域的交換機的流表邏輯。當標識接入認證模塊收到標識分離映射控制模塊的接入認證請求,會根據傳遞過來的信息:設備源AID、接入認證報文負載密文、報文來源交換機、報文來源交換機端口號,解密報文密文,認證設備身份。完成身份認證后會向設備所在接入域的交換機下發AID本域終端轉發流表,最后將信息轉交給標識映射發布與查詢模塊,開啟映射注冊流程。
標識映射發布與查詢模塊負責處理設備的映射關系以及處理數據平面中映射關系對應的流表,并將處理結果與映射服務器同步,包括映射注冊、映射查詢、映射更新。設計如下:
(1)當標識映射發布與查詢模塊收到映射注冊請求,會根據請求中的信息為終端分配與接入域相關的RID,并將映射關系寫入映射服務器以同步到全局。新的RID本域解封裝流表下發到接入認證設備所在接入域的交換機,使得數據平面會解封裝該RID對應的報文。最后會將該設備的AID、RID映射關系、所在接入域交換機、交換機端口號等信息轉交給移動性管理模塊存儲。
(2)當收到標識分離映射控制模塊發送的映射查詢請求,會根據請求中的目的AID向映射服務器查詢AID對應的RID映射關系,并將查詢到的映射關系下發到發起映射查詢的設備所在接入域的數據平面交換機中,指揮發往該目的AID的報文的核心網首部封裝。
(3)當收到移動性管理模塊的映射更新請求,會根據請求中的信息為終端重新分配與接入域相關的RID,并將更新后的映射關系寫入映射服務器,同時向設備所在的接入域交換機下發新的本域RID解封裝流表,最后將更新后的映射關系通知給移動性管理模塊。
移動性管理模塊負責根據移動切換報文判斷移動切換的信息,管理移動前后的映射關系同步以及數據平面的流表邏輯。
(1)當移動性管理模塊收到標識分離映射控制模塊發送的移動切換請求,首先根據源AID在存儲的信息中查詢AID接入的交換機并與移動接入報文的來源交換機對比:(a)如果是在同一臺交換機不同的端口之間移動,則向來源交換機下發新的AID本域終端轉發流表,更新數據平面中記錄的接入交換機端口信息,因為仍在同一接入域內,故映射關系無需處理。(b)如果是設備在不同的接入域交換機間移動,首先根據模塊內存儲的先前接入交換機的信息,將先前接入交換機內本設備的AID本域終端轉發流表清除,向新接入的接入域交換機下發AID本域終端轉發流表,再將信息發送給標識映射發布與查詢模塊開啟映射更新流程,為設備重新注冊新的接入域相關的RID并處理對應的流表。
(2)三角路由是由于設備移動切換后新的AID-RID映射關系無法直接同步到先前與設備通信的接入域,先前的通信對端依然按照舊的映射關系將報文錯誤的發送到設備移動切換前的接入域交換機中,數據平面感知到三角路由報文時會將報文轉交給控制面處理,最終到達移動性管理模塊。當收到三角路由報文,會根據報文源AID在存儲中找到發送此報文的對端接入域交換機,將信息轉交給標識映射發布與查詢模塊,將對端交換機中過期的目的AID-RID映射流表通過映射查詢流程更新,從而解決三角路由問題。
在可編程平臺架構下的標識網絡劃分為數據平面與控制平面,數據平面負責對報文進行處理并按照控制平面的指導轉發,控制平面負責實現網絡中的負責邏輯功能,維護標識網絡的映射關系,通過數據平面轉交的報文獲取數據平面的信息,并且通過下發流表實現對數據平面的控制。以圖1為例介紹基于可編程平臺的標識網絡工作流程。標識網絡將網絡劃分為接入網與核心網,接入網中的設備通過接入交換路由器(ASR)接入網絡,圖1中展示了三個接入網通過核心網聯通。其中移動終端MN位于接入網1,對應的通信對端是位于接入網3的有線固定終端CN,MN與CN位于不同的接入網,需要通過核心網路由通信。MN會因為移動從不同的接入網接入網絡。
2.2.1 基礎通信工作流程
以圖1中的拓撲結構下移動終端MN與有線終端CN的通信為例,介紹基于可編程平臺的標識網絡通信的具體工作流程。如圖4所示,流程中移動終端MN與有線終端CN已經完成設備注冊,映射服務器中包含了這兩臺終端的AID-RID映射關系。當移動終端MN首次與有線終端CN通信時,通信報文到達移動終端MN所在接入網1的接入交換路由器ASR1時,由于此時數據平面還沒有目的AID-RID映射流表,數據平面將報文轉交給控制平面,發起標識映射查詢流程。控制器收到數據平面轉交的報文,由標識映射分離控制模塊提取報文中的信息,解析報文的意圖,轉交給標識映射發布與查詢模塊向映射服務器發起映射查詢??刂破鲝挠成浞掌鞑樵兊酵ㄐ艑Χ薈N的AID-RID映射關系,完成映射查詢流程,將映射關系以目的AID-RID映射流表的形式下發至ASR1。

圖4 基于可編程平臺的標識網絡基礎通信流程
當移動終端MN后續的通信報文到達ASR1時,擊中目的AID-RID映射流表,報文被封裝上核心網首部向核心網內轉發,在核心網通過RID路由到有線終端CN所在接入網3的接入交換路由器ASR3。報文擊中數據平面RID本域解封裝流表,解封裝核心網首部,根據目的AID路由到接入網3中的有線終端CN。
2.2.2 移動切換工作流程
仍以圖1中拓撲結構為例,介紹基于可編程平臺的標識網絡移動切換工作流程以及三角路由的產生與處理流程。如圖5所示,當移動終端移動切換后接入到接入域2的無線AP,AP感知到終端接入向ASR2發送移動切換報文,ASR2收到并解析移動切換報文發起移動切換流程轉交給控制面處理??刂破魇盏綌祿矫嬉苿忧袚Q報文,解析報文意圖,提取報文中的信息,轉交給移動性管理模塊進入移動切換流程。移動性管理模塊首先根據終端新的接入位置信息分配新的RID,并將新的映射關系通過標識映射發布與查詢模塊更新給映射服務器。收到映射服務器的更新響應后,向移動終端新接入的ASR2下發移動終端MN的RID本域解封裝流表和AID本域終端轉發流表,此時移動終端MN的通信恢復。同時由于移動終端MN已經離開接入域1,所以還要將ASR1中移動終端MN的AID本域終端轉發流表刪除,移動切換流程結束。

圖5 移動切換流程與三角路由處理
在移動終端MN離開接入域1后,通信對端CN如果繼續與MN通信,由于ASR3中的目的AID-RID映射流表對應的映射關系是MN移動之前的映射關系,此時報文擊中過期的目的AID-RID映射流表,經過封裝核心網首部后在核心網中路由到ASR1,ASR1將報文解封裝后無法擊中對應的AID本域終端轉發流表,此時產生了三角路由,ASR1會將報文轉交給控制器處理。控制器收到三角路由的報文后,解析報文意圖,提取報文中的信息,轉交給移動性管理模塊,進入三角路由處理流程。移動性管理模塊會根據報文中的信息找到具有過期流表的ASR3,并向它更新目的AID-RID映射流表,后續的通信報文就會根據最新的映射關系路由到移動終端MN所在的ASR2,三角路由處理流程結束。
基于可編程平臺的標識網絡原型系統網絡拓撲如圖6所示。數據平面由四臺可編程P4交換機構成,型號均為Barefoot Networks Wedge100BF-32X。其中三臺ASR1、ASR2、ASR3作為接入網接入交換路由器,代表三個接入網。一臺作為核心網交換路由器CR。兩個無線接入點AP1和AP2分別與ASR1和ASR2連接??刂破矫嬗蓛膳_高性能服務器構成,一臺作為控制器使用,另一臺作為映射服務器使用,配置為Intel? Xeon? Silver 4212 CPU @ 2.20 GHz * 48,搭載62.6GiB內存。數據平面ASR1、ASR2、ASR3分別與CR相連,數據平面四臺可編程P4交換機通過P4Runtime協議與控制面進行通信。移動終端MN通過無線接入點AP1接入ASR1,也可以移動切換到AP2接入ASR2。有線終端CN與ASR3相連。

圖6 基于可編程平臺的標識網絡原型系統網絡拓撲
首先對設備注冊與通信功能進行測試。移動終端MN與有線終端CN在接入網絡后首先向ASR1和ASR3發送接入認證報文,交換機收到接入認證報文后轉發至控制平面的控制器處理??刂破鹘馕鼋尤胝J證報文中的信息以及負載密文,通過后為終端設備分配RID并將映射關系發布至映射服務器。并將對應的流表下發至ASR1與ASR3。圖7(a)展示了控制器中終端注冊的日志,其中包括報文解析、身份認證、映射注冊、流表下發的過程。

(a)終端注冊控制器日志
在移動終端MN與有線終端CN均完成設備注冊后,便可開始通信。當MN首次與CN通信時,會觸發映射查詢,報文從ASR1轉交到控制器進行映射查詢,映射查詢的結果將以流表的形式下發到ASR1。當映射查詢結束后,MN的通信報文將經過ASR1核心網首部封裝,經核心網路由器CR的轉發到達ASR3,解封裝后到達CN。通過上述流程,當CN也完成映射查詢后,MN與CN能夠進行雙向段端到端通信,在CN上部署視頻服務,MN能夠訪問播放,實現了網絡功能的正常運行。
再對移動切換功能進行測試。在移動終端MN與有線終端CN完成設備注冊并通信后,MN發起移動切換,從ASR1的AP1接入點切換至ASR2的AP2接入點,AP2感知到無線終端接入,向ASR2發送移動切換報文,ASR2將移動切換報文轉交給控制器進行移動切換流程。圖7(b)展示了控制器中移動切換日志,其中包括報文解析、流表刪除、映射關系更新、流表下發。移動切換流程結束后,CN與MN的通信恢復。
首先根據移動切換流程分析移動切換時延組成,時延組成如圖8所示。從AP感知到終端移動接入發出移動切換報文開始,網絡層切換時延分為三部分,從數據平面Packet_in轉交至控制平面的時延、控制平面處理的時延、控制平面流表下發至數據平面生效的時延。Packet_in時延和流表生效時延受數據平面到控制平面網絡實體端到端時延和控制平面與數據平面通信協議解析時延的影響,經多次測試均值在4.8 ms左右。控制平面處理流程時延由報文信息解析時延、映射關系更新時延、流表處理流程時延三部分構成。每部分時延受控制器系統運行狀態影響,且在控制系統不同模塊之間數據傳輸時延經多次測試為5.2 ms左右。實驗環境中不同網絡實體之間往返時延RTT多次測試結果見表1。

表1 實驗環境中不同網絡實體之間的往返時間 ms

圖8 網絡層切換時延組成
下面對移動性管理機制進行多次重復性能測試,在移動終端MN與有線終端CN完成設備注冊與映射查詢,能夠正常通信時,在CN上以每秒1 000次的速率向MN發送數據包,同時使MN在AP1與AP2之間反復切換,利用抓包軟件測量AP接入點處從AP發出移動切換報文到收到CN發送的數據包之間的時間間隔,該時間間隔即為切換時延。
圖9為MN移動切換30次獲取的實驗結果。其中切換時延最大值為75 ms,最小值為41 ms,圖中橫線為平均值55 ms。從實驗結果來看,該移動性管理機制能夠滿足大部分實時應用需求?;诳删幊唐脚_中集中化管控的控制平面系統減少了在傳統交換設備平臺中原本不同ASR之間傳遞信息的流程,將原本ASR之間交互的信息統一到控制器中處理,省去了不同ASR之間通信與處理時延,性能測試結果也顯示相對于文獻[18]中基于傳統交換設備平臺的標識網絡移動切換性能更快。

圖9 移動切換性能測試結果
針對標識網絡在現網中的部署障礙,結合標識網絡優勢與可編程網絡平臺特性,該文提出一種基于可編程平臺下的標識網絡移動性管理機制。基于可編程平臺控制與轉發分離的理念,數據平面設計一套報文解析與處理流程,實現對標識網絡報文的處理轉發以及對標識網絡設備注冊、移動切換的支持。控制平面通過設計控制平面系統與映射服務器,實現設備身份認證與映射關系注冊、映射關系查詢、設備移動切換等網絡功能。同時對應該設計,搭建了一套對應的原型系統,并進行了功能測試和性能測試,測試結果表明該機制能夠支持標識網絡的運行以及對設備移動切換具有良好支持,切換性能滿足大部分實時應用需求。