趙力力,李 文,蔣元兵,康宗緒,王建兵
(1.重慶金美通信有限責任公司,重慶 400030;2.軍事科學院系統(tǒng)工程研究院,北京 100141)
傳輸控制協(xié)議 /網(wǎng)際協(xié)議(Transmission Control Protocol / Internet Protocol,TCP/IP)是不同網(wǎng)絡(luò)實體實現(xiàn)信息互通的協(xié)議族,在20世紀80年代提出并得到迅速發(fā)展,已成為現(xiàn)代因特網(wǎng)基礎(chǔ)和標準協(xié)議[1]。只要遵循TCP/IP協(xié)議,不同主機、網(wǎng)絡(luò)設(shè)備之間即使傳輸介質(zhì)和操作系統(tǒng)各異,也能實現(xiàn)網(wǎng)內(nèi)或跨網(wǎng)通信[2]。隨著通信技術(shù)的迅猛發(fā)展,互聯(lián)網(wǎng)用戶數(shù)量也在急劇增加,網(wǎng)絡(luò)不斷興建大量的信息化基礎(chǔ)設(shè)施,包括各種各樣的二層交換機、三層交換機、以太網(wǎng)無源光網(wǎng)絡(luò)(Ethernet Passive Optical Network,EPON)以及服務(wù)器等。此外,大型互聯(lián)網(wǎng)公司為了給不同地域的用戶提供低時延高帶寬的可靠服務(wù),在世界各地逐步部署數(shù)據(jù)服務(wù)中心,如Google公司在世界各地部署的數(shù)據(jù)中心超過30個,這些數(shù)據(jù)中心內(nèi)的服務(wù)器數(shù)量高達4.5×105臺[3]。
近年來,網(wǎng)絡(luò)規(guī)模日益劇增,網(wǎng)絡(luò)流量也在不斷增長,根據(jù)思科(Cisco)2017年發(fā)布的技術(shù)白皮書,到2022年,全球聯(lián)網(wǎng)設(shè)備數(shù)量將達到人口總數(shù)的3倍以上[4]。數(shù)據(jù)中心之上的應(yīng)用和數(shù)據(jù)中心之間的同步都會產(chǎn)生巨大的流量,并且傳統(tǒng)的服務(wù)器下行數(shù)據(jù)到客戶端模式逐漸被數(shù)據(jù)中心同步流量所取代。Cisco的研究報告表明,截至2020年,數(shù)據(jù)中心內(nèi)的服務(wù)器下行數(shù)據(jù)流量僅為數(shù)據(jù)中心同步流量的1/3,同時數(shù)據(jù)中心之間的流量還在急劇增長,每月能夠達到330 TB至330 PB,這給數(shù)據(jù)中心供應(yīng)商產(chǎn)生了數(shù)以億計的經(jīng)濟成本[5]。在這種背景下,廣域網(wǎng)資源利用率成為熱點研究課題。
目前,解決廣域網(wǎng)資源利用率最成功的方法就是軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)。2006年,斯坦福大學的Clean Slate課題開始研究SDN技術(shù),McKeown N教授的研究團隊提出了OpenFlow的技術(shù)概念用于校園網(wǎng)絡(luò)的試驗創(chuàng)新[6]。在SDN的概念中,將網(wǎng)絡(luò)控制面與轉(zhuǎn)發(fā)面進行分離,網(wǎng)絡(luò)狀態(tài)被集中控制,底層網(wǎng)絡(luò)設(shè)備提供統(tǒng)一的管理和編程接口供上層應(yīng)用使用。2009年,MIT Technology Review雜志將SDN評選為未來十大突破性技術(shù)之一[7]。
許多大型互聯(lián)網(wǎng)公司都在廣域網(wǎng)中進行了SDN的嘗試,以提高網(wǎng)絡(luò)利用率,并取得了顯著的成果。Google采用SDN來改造的就是數(shù)據(jù)中心之間互聯(lián)的廣域網(wǎng),改造后的網(wǎng)絡(luò)被稱為B4網(wǎng)絡(luò)[8]。在B4網(wǎng)絡(luò)中,每個數(shù)據(jù)中心都部署物理設(shè)備層的物理交換機和局部網(wǎng)絡(luò)控制層的控制器,而全局控制層的網(wǎng)關(guān)和流量工程(Traffic Engineering,TE)服務(wù)器則部署在全局統(tǒng)一的控制地。改造之后B4網(wǎng)絡(luò)的鏈路帶寬利用率接近100%,鏈路成本大大降低,網(wǎng)絡(luò)服務(wù)更加穩(wěn)定。
微軟公司的軟件驅(qū)動廣域網(wǎng)(software-driver Wide Area Network,SWAN)與 B4 系統(tǒng)基本原理類似,同樣利用SDN,通過OpenFlow接口控制開放式網(wǎng)絡(luò)設(shè)備,采用流量工程算法,實現(xiàn)了數(shù)據(jù)中心私有廣域網(wǎng)鏈路的高效利用。微軟聲稱,與使用多協(xié)議標記交換流量工程(Multi-Protocol Label Switching-TE,MPLS-TE)的58.3%帶寬利用率相比,SWAN帶寬利用率可以達到99%,并且同時提高了數(shù)據(jù)流轉(zhuǎn)發(fā)的公平性和網(wǎng)絡(luò)更新的速度等[9]。
除了SDN技術(shù)外,傳統(tǒng)的集成模型技術(shù)在流量工程方面具備較好的拓展性和靈活性。利用資源預留 協(xié) 議(Resource Reservation Protocol,RSVP) 建 立MPLS-TE隧道,通過多協(xié)議標簽交換技術(shù)來提高網(wǎng)絡(luò)的帶寬利用率[10]。
除了SDN和RSVP外,本文介紹了一種協(xié)議無關(guān)的源路由技術(shù)方法,也可以提高IP數(shù)據(jù)網(wǎng)絡(luò)的資源利用率。
在IP網(wǎng)絡(luò)中,業(yè)務(wù)數(shù)據(jù)報文從源節(jié)點到目的節(jié)點的最優(yōu)路徑是由單播路由協(xié)議計算得出,如果網(wǎng)絡(luò)中存在多條傳播路徑,則需要從拓撲數(shù)據(jù)庫中去掉最優(yōu)路徑后再次運行最短路徑優(yōu)先(Shortest Path First,SPF)算法,從而計算出次優(yōu)路徑。通過SPF算法可以得到網(wǎng)絡(luò)內(nèi)兩個節(jié)點之間的最短路徑,其帶來的問題是當網(wǎng)絡(luò)中任意一條鏈路狀態(tài)發(fā)生變化后,將引起全網(wǎng)鏈路數(shù)據(jù)同步,當業(yè)務(wù)報文沿著計算出的次優(yōu)路徑傳輸時會和鏈路狀態(tài)泛洪競爭帶寬資源。
基于以上考慮,提出一種協(xié)議無關(guān)的IP業(yè)務(wù)數(shù)據(jù)引流方法,該方法采用泛搜索機制來計算次優(yōu)路徑,利用嚴格的源路由來引導數(shù)據(jù)流按照次優(yōu)路徑傳輸。
前向路徑探詢示意如圖1所示,當發(fā)送終端的數(shù)據(jù)業(yè)務(wù)報文進入三層交換機后,通過匹配關(guān)鍵字段(源IP地址、目的IP地址、源UDP端口號、目的UDP端口號以及服務(wù)類型),引導該數(shù)據(jù)報文進入CPU的軟件應(yīng)用程序,啟動根據(jù)數(shù)據(jù)目的IP地址進行前向路徑探尋的過程。前向路徑探尋采用泛洪方式在排除最優(yōu)路徑指定的出接口后,向三層交換機的其他所有接口發(fā)送Explore-Packet(探詢報文)。由源三層交換機維護Explore-Packet的序號,每發(fā)送一個Explore-Packet,探詢序號加1。序號作為查詢計數(shù)使用,不同的查詢計數(shù)因前向消息和后向消息的各種判斷導致處理方式有所不同,如果三層交換機收到的探詢和確認報的序號文小于當前記錄序號,則不進行相關(guān)處理。
前向探詢路徑上的所有三層交換機節(jié)點收到探尋報文后需要記錄報文中的原節(jié)點信息、目的節(jié)點信息、序號信息、前向鄰居IP地址、接口信息以及是否發(fā)送確認報文,并在收到確認報文時記錄后向鄰居IP地址和接口信息。
前向探詢報文需要攜帶每個發(fā)送接口的IP地址信息,以便確認報文正確封裝;后向確認報文需要攜帶每個發(fā)送接口的IP地址信息,以便業(yè)務(wù)端引導數(shù)據(jù)流使用。
后向路徑確認示意圖如圖2所示。前向路徑探尋的終點是目的節(jié)點的網(wǎng)關(guān)三層交換機,該節(jié)點判斷自身是終點三層交換機的方法是目的節(jié)點的IP地址落入直連路由的范圍內(nèi)。當三層交換機收到前向探詢報文后,向前向路徑的三層交換機依次發(fā)送單播后向路徑確認報文。網(wǎng)絡(luò)中的中間三層交換機根據(jù)后向確認報文攜帶的前向路徑能夠推算出引用的本地信息,獲取前向鄰居信息后向其發(fā)送確認報文。每個三層交換機需要保證后向確認消息不會向同一個出接口發(fā)送相同的確認消息,這樣才能確保選出的業(yè)務(wù)次優(yōu)鏈路不會重合。
圖2 后向路徑確認
結(jié)合圖1和圖2所示過程,原始節(jié)點終端開始向目的節(jié)點終端192.10.14.2發(fā)送數(shù)據(jù)業(yè)務(wù)。第一跳三層交換機節(jié)點A根據(jù)五元組信息匹配到相應(yīng)信息后將符合條件的數(shù)據(jù)報文進行啟動前向路徑探尋處理。
節(jié)點A以目的節(jié)點IP地址192.10.14.2進行查詢路由表,取得路由接口,然后向所有非路由接口發(fā)送泛洪請求報文。節(jié)點C收到此探尋報文后,將報文的源IP地址192.10.11.1的地址記錄下來放入探尋報文后,繼續(xù)沿著非路由接口進行泛洪。節(jié)點E收到此探尋報文后,將報文的源IP地址192.10.12.1的地址記錄下來放入探尋報文后,繼續(xù)沿著非路由接口進行泛洪。節(jié)點F收到此探尋報文后,因為192.10.14.2的地址落入直連路由的網(wǎng)段內(nèi),判斷自身是終點三層交換機,開始進行后向路徑確認過程。確認報文將依次經(jīng)過的節(jié)點即為前向探尋報文中記錄的節(jié)點地址:192.10.13.1、192.10.12.1、192.10.11.1。后向確認報文將按照前向探尋報文的反向進行單播逐級傳遞,最終確認報文到達原始節(jié)點A,完成路徑確認,得到完成的路徑為192.10.11.2,192.10.12.2、192.10.13.2。
三層交換機的前向鄰居信息和后向鄰居信息完整后啟動鄰居維護定時器,維護前向和后向節(jié)點的鄰居關(guān)系。當鄰居超時脫網(wǎng)后,刪除記錄的鄰居信息。如果前向鄰居超時,則三層交換機直接刪除記錄的鄰居信息;如果是后向鄰居超時,則需要向申請地節(jié)點發(fā)送鄰居消失通告消息。
業(yè)務(wù)源通過以上泛搜索機制獲取到次優(yōu)路徑上的三層交換機IP地址,并通過嚴格源路由方式將用戶業(yè)務(wù)數(shù)據(jù)引導至網(wǎng)關(guān)設(shè)備。嚴格源路由規(guī)定IP數(shù)據(jù)要經(jīng)過路徑上的每一個路由器,相鄰路由器之間不得有中間路由器,并且經(jīng)過路由器的順序不可更改。
如圖1和圖2所示,經(jīng)過前向路徑探尋和后向路徑確認,原始節(jié)點A獲取了特定業(yè)務(wù)的規(guī)劃路徑192.10.11.2、192.10.12.2、192.10.13.2。通過嚴格源路由的方式,為特定業(yè)務(wù)報文封裝特定的IP頭部選項。在IP頭部選項中將整個路徑的IP地址都封裝在里面,然后每個接收節(jié)點按照標準的IP頭部選項處理即可。IP數(shù)據(jù)報文到達目的三層交換機后,將被恢復為原始IP報文,IP頭部選項字段內(nèi)的內(nèi)容已被清零,然后繼續(xù)按照標準路由的方式將該報文送到目的終端計算機。
本文研究了一種協(xié)議無關(guān)的與業(yè)務(wù)主路徑不重合的次優(yōu)傳輸路徑生成方法,采用源路由方式引導業(yè)務(wù)報文按照生成的次優(yōu)路徑從源節(jié)點傳輸?shù)侥康墓?jié)點。該方法在次優(yōu)路徑生成過程中無需獲取全網(wǎng)拓撲,并且不占用主路徑的鏈路帶寬,非常適用于窄帶鏈路構(gòu)成的網(wǎng)絡(luò)。