王浩辰,張煥杰,李 京,
1(中國科學(xué)技術(shù)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,合肥 230026)
2(中國科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)信息中心,合肥 230026 )
E-mail:whc1996@mail.ustc.edu.cn
我國國家高性能計算環(huán)境結(jié)點通常都是獨立建設(shè),各結(jié)點所在網(wǎng)絡(luò)環(huán)境差異較大,通常具有不同運營商網(wǎng)絡(luò)出口,其中部分結(jié)點網(wǎng)絡(luò)條件比較好,具備多家網(wǎng)絡(luò)出口.由于我國國情原因,運營商之間的網(wǎng)絡(luò)互連互通帶寬相比網(wǎng)內(nèi)帶寬差很多,數(shù)據(jù)在這種復(fù)雜的網(wǎng)絡(luò)條件下的傳輸速率會大打折扣而且不可控,不能滿足國家高性能計算環(huán)境結(jié)點間數(shù)據(jù)高速傳輸?shù)男枨?,制約了國家高性能計算環(huán)境的進一步發(fā)展.而專線價格隨著帶寬需求的增加成本越來越高,因此現(xiàn)階段國家高性能計算環(huán)境迫切需要構(gòu)建一個可控的低延遲結(jié)點互聯(lián)網(wǎng)絡(luò)環(huán)境.
我國擁有多個網(wǎng)絡(luò)運營商,常用的網(wǎng)絡(luò)出口有中國移動、中國電信、中國聯(lián)通、教育網(wǎng)、科技網(wǎng)等IPv4/IPv6網(wǎng).各網(wǎng)絡(luò)運營商在網(wǎng)絡(luò)規(guī)模、用戶數(shù)量和各地的網(wǎng)絡(luò)資源差別很大,中國電信和中國聯(lián)通分別在南方21個省市區(qū)和北方10個省市區(qū)居主導(dǎo)地位.由于各地區(qū)的互聯(lián)網(wǎng)跨運營商在當?shù)赝鶝]有互聯(lián),所有的跨網(wǎng)流量都要經(jīng)過3個NAP(network access point 網(wǎng)絡(luò)接入點)中轉(zhuǎn),導(dǎo)致了兩大問題的.一方面,由于網(wǎng)上信息源分布在不同的運營商網(wǎng)絡(luò)里,一個用戶如果要訪問本地的一個非本地運營單位的網(wǎng)站就需要繞道北京、上?;驈V州,存在互聯(lián)網(wǎng)間互通的繞道問題,其網(wǎng)絡(luò)服務(wù)速度可想而知,互通也只是概念上的互通,很大程度降低了網(wǎng)絡(luò)服務(wù)的質(zhì)量.另一方面,大量的流量繞走國家互聯(lián)網(wǎng)交換中心,占用大量的網(wǎng)絡(luò)帶寬,導(dǎo)致資源浪費.
由于廣域互聯(lián)網(wǎng)網(wǎng)絡(luò)條件復(fù)雜,流量調(diào)度不可控,所以需要在物理網(wǎng)絡(luò)之上構(gòu)建一個自己的虛擬網(wǎng)絡(luò),流量調(diào)度完全可控.因此本文基于Overlay網(wǎng)絡(luò)在互聯(lián)網(wǎng)上構(gòu)建一個虛擬的SD-WAN(software defined wide area netwo-rk)網(wǎng)絡(luò),使用隧道和三層路由調(diào)度方案,以達到降低跨運營商網(wǎng)絡(luò)延遲,提高網(wǎng)絡(luò)傳輸帶寬的目標.
國家高性能計算環(huán)境(中國國家網(wǎng)格cnGrid)目前包括19個節(jié)點.其節(jié)點分布非常廣泛,地理跨度南起香港,北到吉林,東起上海,西到甘肅.由于物理專線價格昂貴,各個節(jié)點之間的數(shù)據(jù)交換通常在廣域網(wǎng)上進行.
廣域互聯(lián)網(wǎng)上運營商內(nèi)部數(shù)據(jù)傳輸效率遠遠大于各個運營商之間數(shù)據(jù)的互聯(lián)互通速率.因此可以把節(jié)點按照出口運營商進行分類,形成多個節(jié)點集合,每個集合內(nèi)的網(wǎng)絡(luò)節(jié)點具有同一出口運營商,它們之間的傳輸速度快,網(wǎng)絡(luò)條件好,如圖1所示.我們定義了一類特殊的節(jié)點,稱為超級節(jié)點.超級節(jié)點有多個網(wǎng)絡(luò)運營商出口,在抽象模型中就是集合交集中的節(jié)點.當不同集合內(nèi)的節(jié)點相互通信的時候,可以利用超級結(jié)點進行轉(zhuǎn)發(fā).例如處于聯(lián)通網(wǎng)的上海節(jié)點和和處于電信網(wǎng)的北京節(jié)點進行通信,由于跨運營商通信,它們之間直接通訊的速率會相對較慢,此時利用兩個集合交集中的合肥節(jié)點作為超級節(jié)點,控制流量先從上海傳輸?shù)胶戏?,再從合肥轉(zhuǎn)發(fā)到北京以達到預(yù)期的目標.因此,本文給出的解決方案:普通節(jié)點之間通過超級節(jié)點進行通信,而超級節(jié)點既進行節(jié)點之間的通信,同時轉(zhuǎn)發(fā)數(shù)據(jù).
圖1 網(wǎng)絡(luò)抽象模型Fig.1 Network abstraction model
為了提高國家超算環(huán)境各節(jié)點間傳輸帶寬和減小傳輸延遲,本文研究構(gòu)建一個網(wǎng)絡(luò)流量可調(diào)可控的overlay網(wǎng)絡(luò).Overlay網(wǎng)絡(luò)模型定義如圖2所示,是一個兩層的網(wǎng)絡(luò)拓撲.節(jié)點分為普通節(jié)點和超級節(jié)點普通節(jié)點用于數(shù)據(jù)的發(fā)送和接收,普通節(jié)點之間不直接進行流量傳輸;超級節(jié)點擁有多個網(wǎng)絡(luò)出口,既可以用于自身數(shù)據(jù)的傳輸,也可以用于流量轉(zhuǎn)發(fā).圖中的每條邊都有代價C,我們稱之為距離,可以由這條邊上實時帶寬、延遲等因素決定,兩節(jié)點之間鏈路帶寬越大、延遲越小,節(jié)點之間的距離C越小.假設(shè)網(wǎng)絡(luò)中有m個普通節(jié)點N1,N2,…,Nm,k個超級節(jié)點S1,S2,…,Sk,我們的目標就是找到所有非轉(zhuǎn)發(fā)節(jié)點之間的最優(yōu)流量調(diào)度路徑.對于其中所求的任意兩個普通節(jié)點之間的流量調(diào)度,兩節(jié)點之間的距離可以用公式(1)和公式(2)表示
=min(dist(Ni,Nj),dist(Ni,Sr)+C(Sr,Nj)r∈[1,k])
(1)
?Nii∈[1,m]dist(Ni,Sr)r∈[1,k]
=min(dist(Ni,Sr),dist(Ni,Sq)+C(Sq,Sr)q∈[1,k])
(2)
圖2 問題定義模型Fig.2 Problem definition model
Overlay網(wǎng)絡(luò)[1,2]的設(shè)計目標是提供增強的或自定義的功能,以滿足某些不能使用原始Internet基礎(chǔ)結(jié)構(gòu)實現(xiàn)的目標,例如有效的資源共享和網(wǎng)絡(luò)隔離,往往需要通過使用數(shù)據(jù)包封裝技術(shù)在基礎(chǔ)網(wǎng)絡(luò)之上創(chuàng)建邏輯層來實現(xiàn)它們.傳統(tǒng)上,Overlay網(wǎng)絡(luò)已分為結(jié)構(gòu)化和非結(jié)構(gòu)化網(wǎng)絡(luò).結(jié)構(gòu)化網(wǎng)絡(luò)中的節(jié)點是根據(jù)定義明確的全局拓撲策略組織的,并遵循基于標識符的技術(shù)的某些變體來路由消息.結(jié)構(gòu)化網(wǎng)絡(luò)在網(wǎng)絡(luò)維護開銷之間進行權(quán)衡,以實現(xiàn)覆蓋圖中任何一對節(jié)點之間的有效O(log N)躍點路由.結(jié)構(gòu)化覆蓋網(wǎng)絡(luò)的著名示例是Chord[3]和Kadmelia[4].非結(jié)構(gòu)化覆蓋網(wǎng)絡(luò)沒有用于拓撲管理的結(jié)構(gòu)化全局策略.由于缺乏明確定義的結(jié)構(gòu),非結(jié)構(gòu)化網(wǎng)絡(luò)中的路由技術(shù)依賴于啟發(fā)式算法,例如擴展環(huán)搜索或隨機行走進行路徑發(fā)現(xiàn).這種方法可能導(dǎo)致泛洪,從而限制了可伸縮性.著名的非結(jié)構(gòu)化網(wǎng)絡(luò)包括Gnutella[5]和Freenet[6].
對于邏輯網(wǎng)絡(luò)通道的建立,OneSwarm[7]利用社交網(wǎng)絡(luò)上的公共密鑰交換來創(chuàng)建具有強大隱私保障的內(nèi)容共享覆蓋.SocialVPN[8]利用OSN(Online Social Network )進行引導(dǎo),對等點發(fā)現(xiàn)和交換ICE端點,以創(chuàng)建可通過虛擬網(wǎng)絡(luò)接口訪問以覆蓋端點的NAT穿越隧道.本文采用隧道的方式,根據(jù)上節(jié)網(wǎng)絡(luò)抽象模型所確定的網(wǎng)絡(luò)拓撲,在各個節(jié)點處安裝隧道傳輸設(shè)備,使用支持AES-NI指令擴展的CPU,在廣域網(wǎng)絡(luò)上搭建Overlay虛擬網(wǎng)絡(luò)鏈路,使得網(wǎng)絡(luò)中流量的調(diào)度完全可控.
基于overlay網(wǎng)絡(luò)的流量調(diào)度比較簡單的做法是建立L2VPN,即通過VPN隧道將以太網(wǎng)數(shù)據(jù)包經(jīng)過加密后利用Internet網(wǎng)絡(luò)傳遞,從而完成雙發(fā)的通信.部分國外企業(yè)利用UDP[9]協(xié)議作為覆蓋網(wǎng)絡(luò)的隧道通信協(xié)議,以獲得更快的傳輸速率(如wire guard[10]、nebula[11]),2019年底Linux網(wǎng)絡(luò)堆棧維護者David Miller 已將WireGuard VPN項目提交到Linux“net-next”源代碼樹中.使用這種先進的SW-WAN技術(shù)可以滿足國外企業(yè)在不同區(qū)域內(nèi)的數(shù)據(jù)傳輸需要,但是由于中國大部分地區(qū)的運營商都會針對UDP協(xié)議進行QoS限速或者丟包,導(dǎo)致UDP在國內(nèi)網(wǎng)絡(luò)環(huán)境下效率低下,速度往往會比正常使用TCP協(xié)議還慢很多.
本文對常見的L2VPN或能實現(xiàn)類似的L2隧道功能的程序(VxLAN[12],VTun[13],Tinc[14],OpenVPN[15])進行了研究和對比,如表1所示.
VxLAN主要用于數(shù)據(jù)中心內(nèi)部解決VLAN擴展性問題,OpenVPN用于遠程用戶的連接,不適合用來建立隧道擴展網(wǎng)絡(luò),Tinc和VTun在公網(wǎng)連接不穩(wěn)定時會無法避免的形成短時的環(huán)路,引起網(wǎng)絡(luò)廣播風暴,這對以太網(wǎng)是致命的.流量調(diào)度需要的是一個足夠安全、穩(wěn)定、有效率的VPN隧道程序.
本文采用了我們自主實現(xiàn)的Ethernet over UDP[16](簡稱EthUDP)協(xié)議,該協(xié)議支持使用IPv4和IPv6建立隧道,支持一方使用動態(tài)地址或NAT環(huán)境后的連接,并可以驗證對方IP地址.為了適應(yīng)高速網(wǎng)絡(luò),EthUDP可選使用LZ4[17]高速算法對發(fā)送數(shù)據(jù)包進行壓縮,在高帶寬環(huán)境下盡量少影響性能.啟用壓縮后,EthUDP在每個數(shù)據(jù)包后增加一個字節(jié)作為是否壓縮的標志.當原始數(shù)據(jù)包使用LZ4壓縮無效(壓縮后的長度沒有減少)時,該標志為0xaa;有效壓縮時為0xff.通過這樣的機制,一個數(shù)據(jù)包即便無法有效壓縮,也僅僅多傳輸1個字節(jié).EthUDP可選使用openssl[18]提供的AES CBC算法對發(fā)送數(shù)據(jù)包進行簡單加密.加密處理中使用openssl標準填充方式填充,每個數(shù)據(jù)包加密后可能會增加1-16字節(jié).
目前,國內(nèi)一些研究構(gòu)建的軟件定義廣域網(wǎng)(software defined-wide area networking,SD-WAN)網(wǎng)絡(luò)使用了基于OpenFlow[19]的SDN技術(shù),用于降低互聯(lián)成本,提升業(yè)務(wù)部署靈活性.但考慮到其一旦出現(xiàn)控制器故障,將會導(dǎo)致網(wǎng)絡(luò)中斷,因此并不適用于本文的應(yīng)用場景.由于發(fā)生故障的鏈接可以在發(fā)生故障后立即刪除,因此許多研究人員專注于廣域網(wǎng)中設(shè)備(控制器和交換機)的可靠性,并提供了許多解決方案.HyperFlow[20]就是一個代表性的故障轉(zhuǎn)移系統(tǒng).當HyperFlow發(fā)現(xiàn)控制器故障后,它將重新配置受影響的交換機,并將其重定向到附近的另一個控制器實體.考慮到項目中節(jié)點分布區(qū)域廣、物理跨度大,配置多個控制器也不是最好的選擇.而SD-WAN[21]三層流量調(diào)度方案,就可以避免上述問題.
三層路由調(diào)度方案擁有強大的路由傳輸、帶寬分配、多媒體傳輸和安全控制功能,能夠根據(jù)不同的通信業(yè)務(wù)系統(tǒng)劃分不同的用戶群體,實現(xiàn)電業(yè)業(yè)務(wù)的高效傳輸.除了優(yōu)秀的性能之外,三層路由還具有一些傳統(tǒng)的二層交換機沒有的特性,這些特性可以給本文的網(wǎng)絡(luò)建設(shè)帶來許多好處.比如說1)高可擴展性:三層路由在連接多個子網(wǎng)時,子網(wǎng)只是與第三層交換模塊建立邏輯連接,不像傳統(tǒng)外接路由器那樣需要增加端口,從而保證了用戶對局域網(wǎng)的投資,并滿足超算中心3到5年網(wǎng)絡(luò)應(yīng)用快速增長的需要.2)高性價比:三層路由方式具有連接大型網(wǎng)絡(luò)的能力,功能基本上可以取代某些傳統(tǒng)路由器,但是價格卻接近二層交換機.三層路由方式可以與普通路由器一樣,具有訪問列表的功能,可以實現(xiàn)不同VLAN間的單向或雙向通訊.如果在訪問列表中進行設(shè)置,可以限制用戶訪問特定的IP地址.訪問列表不僅可以用于禁止內(nèi)部用戶訪問某些站點,也可以用于防止局域網(wǎng)外部的非法用戶訪問校局域網(wǎng)內(nèi)部的網(wǎng)絡(luò)資源,從而提高網(wǎng)絡(luò)的安全.3)三層路由方式具有QoS(quality of service)的控制功能,可以給不同的應(yīng)用程序分配不同的帶寬.
通過SD-WAN三層流量調(diào)度方案可以實現(xiàn)的功能有:鏈路可視、流量自動或人工調(diào)度、優(yōu)化傳輸.目前,已經(jīng)實現(xiàn)了基于三層路由的流量調(diào)度方案.
基于圖2的網(wǎng)絡(luò)抽象模型,我們把各超算中心看作是節(jié)點,其中有作為超級節(jié)點的節(jié)點和作為普通節(jié)點的節(jié)點.超級節(jié)點和普通節(jié)點之間有連線,表示站點間建立加密隧道鏈路,用于安全、高速地傳輸信息,連線的粗細表示這條鏈路上傳輸數(shù)據(jù)花費的權(quán)重,可人工或自動生成.我們的軟件擁有一個控制器,各隧道鏈路帶寬、丟包、延遲等運行狀態(tài)匯集到控制器,同時在GUI管理界面上對其進行控制管理,控制器指令各個站點修改路由表,實現(xiàn)流量的按需調(diào)度.
網(wǎng)絡(luò)中的路由信息包括節(jié)點和鏈路信息,路由信息更新的狀態(tài)機包括3個狀態(tài):采集狀態(tài)、計算路由和更新路由.控制器先采集狀態(tài),再根據(jù)采集到的狀態(tài)進行路由計算,最后更新路由器中的信息.完整的3層路由流量調(diào)度由網(wǎng)絡(luò)更新信息的4個步驟組成,如圖3所示.第1步定時根據(jù)節(jié)點、鏈路信息等有路由算法生成路由表,路由表有唯一的版本號(時間戳),此時路由表存在服務(wù)器數(shù)據(jù)庫中,然后由路由表更新服務(wù)將路由表下發(fā)給各個網(wǎng)絡(luò)節(jié)點,網(wǎng)絡(luò)中的每個節(jié)點會根據(jù)接收到的路由信息更新本地的路由表,并將最新的路由表版本號回傳給服務(wù)器.這種流量調(diào)度方式保證了控制器端故障時,各個路由節(jié)點中存儲著某一個版本號的路由表,網(wǎng)絡(luò)是通暢的,盡管可能不是最優(yōu)的.
圖3 3層路由流量調(diào)度系統(tǒng)架構(gòu)Fig.3 Three-tier routing traffic scheduling system architecture
本節(jié)介紹本文提出的數(shù)據(jù)中心廣域網(wǎng)流量調(diào)度方案的核心路由算法,流量調(diào)度問題轉(zhuǎn)化為無向圖中求解頂點之間的最短路徑.網(wǎng)絡(luò)拓撲示意圖為有向圖.節(jié)點信息包括標識、內(nèi)部IP地址、描述、服務(wù)進程、路由表版本.標識表示為節(jié)點的實際名字;內(nèi)部IP地址表示為節(jié)點的IP地址;描述表示為節(jié)點補充描述信息;服務(wù)進程表示為節(jié)點上服務(wù)的進程號;路由表版本表示為路由表的版本號.圖中每一個節(jié)點有唯一的IP地址.鏈路信息包含標識、子網(wǎng)、代價、IP地址、節(jié)點、端口.標識表示為link-A-B,代表從節(jié)點A到節(jié)點B的鏈路;子網(wǎng)表示為×××.×××.×××.×××/××,代表鏈路的子網(wǎng)以及子網(wǎng)掩碼;代價表示為具體數(shù)值C,由這條鏈路上實時帶寬、延遲等因素決定,鏈路帶寬越大、延遲越小,代價C越??;IP地址表示為IPA/IPB,分別代表鏈路兩端節(jié)點的IP地址;節(jié)點表示為A/B,分別代表鏈路兩端節(jié)點的實際名字;端口表示為A/B,分別表示鏈路兩端節(jié)點所使用的端口號.我們使用時間戳(精確到毫秒)標示一組路由,將節(jié)點信息和鏈路信息存放在數(shù)據(jù)庫路由信息route表中.根據(jù)問題求解模型,我們的算法改進了求解源點到其他頂點的最短路徑算法--迪杰斯特拉算法[22],算法分為兩階段計算,第1階段先計算出超級節(jié)點間的最短路徑,第2階段再根據(jù)已經(jīng)得到的信息求出普通節(jié)點到其他節(jié)點的最短路徑,并據(jù)此生成路由表.
為了將節(jié)點信息和鏈路信息全部存儲到服務(wù)器中,構(gòu)建了存儲路由信息的數(shù)據(jù)結(jié)構(gòu),所有對應(yīng)表項的信息已經(jīng)在表2中寫明.
表2 存儲路由信息的數(shù)據(jù)結(jié)構(gòu)Table 2 Data structure for storing node information
當讀入所有節(jié)點數(shù)據(jù)后進行改進的路由算法即可得到路由表所需的流量調(diào)度信息.我們將節(jié)點分為兩個集合:普通節(jié)點集合和超級節(jié)點集合,利用只有超級節(jié)點才可以進行數(shù)據(jù)轉(zhuǎn)發(fā)的特點.該算法的具體表述如算法1所示.
算法1.網(wǎng)絡(luò)中流量調(diào)度路由算法
輸入:網(wǎng)絡(luò)的路由信息,普通節(jié)點集合(N1,N2,…,Nk),超級節(jié)點集合(S1,S2,…,Sm)
輸出:圖中節(jié)點間的最短路徑
1.//第1階段:
2.fori=1 tom//對于每一個超級節(jié)點i,求它到其他超級節(jié)點的最短路徑
3. 初始化距離集合dist(i,j),標志是否遍歷過的集合visited
4. visited[i]=True
5.forno_use=1 tom-1//依次處理剩下m+k-1個節(jié)點
6.min=MAX
7.forv=1 tom
8.ifnot visited[v] and dist(i,v) 9.min=dist(i,v) 10.temp=v 11. end if 12. visited[temp]=True 13.forv=1 tom//更新節(jié)點i到其他未選中超級節(jié)點的權(quán)值 14.ifnot visited[v] andmin+C(temp,v) 15. dist(i,v)=min+C(temp,v) 16. path(i,v)=temp//記錄通過最短路徑到達節(jié)點v的上一條路由temp 17. end if 18.//第2階段 19.fori=1 ton//對于每個普通節(jié)點i,求它到其他超級節(jié)點的最短距離 20. 初始化距離集合dist 21.forj=1 tom 22.fort=1 tom 23.ifdist(i,j)>dist(i,t)+dist(t,j) 24. dist(i,j)=dist(i,t)+dist(t,j) 25. end if 26.fori=1 ton//對于每個普通節(jié)點i,求它到其他普通節(jié)點的最短距離 27.forj=1 ton 28.ifi!=j 29.fort=1 tom 30.ifdist(i,j)>dist(i,t)+dist(t,j) 31. dist(i,j)=dist(i,t)+dist(t,j) 32. end if 33. end if 算法說明:算法的第一階段使用公式3求出所有超級節(jié)點之間的最短路徑. =min(dist(Si,Sj),dist(Si,Sr)+C(Sr,Sj)r∈[1,m]) (3) 算法的第2階段分為兩步,第1步使用公式(4)求出任一普通節(jié)點到其他所有超級節(jié)點之間的最短路徑 ?Nii∈[1,k]dist(Ni,Sj)j∈[1,m] (4) 第2步使用公式(5)求出任一普通節(jié)點到其他所有普通節(jié)點之間的最短路徑. (5) 算法時間復(fù)雜度分析:圖中有m個超級節(jié)點和k個普通節(jié)點,一共有m+k個節(jié)點,其中普通節(jié)點的個數(shù)一般遠多于超級節(jié)點的個數(shù),即k?m.使用傳統(tǒng)的Dijkstra算法的時間復(fù)雜度為O((m+k)3),約等于O(k3).本文使用的算法第1階段使用Dijkstra算法算出超級節(jié)點集合間的最短路徑,時間復(fù)雜度為O(m3),第2階段計算普通節(jié)點到超級節(jié)點之間的最短路徑時間復(fù)雜度為O(k×m2),計算普通節(jié)點到其他普通節(jié)點之間的最短路徑的時間復(fù)雜度為O(k2×m),總復(fù)雜度為O(m3)+ O(k×m2)+ O(k2×m)約等于O(k2).因此,本文采取的算法相對于傳統(tǒng)的Dijkstra算法在時間復(fù)雜度上有較明顯的優(yōu)化. 根據(jù)路由算法1我們得到了網(wǎng)絡(luò)的路由信息,并將路由信息寫回數(shù)據(jù)庫中.路由表中的表項為當前節(jié)點到其余各節(jié)點的下一跳路由.當數(shù)據(jù)包到達路由器時,路由器將根據(jù)路由表中的信息對數(shù)據(jù)包進行轉(zhuǎn)發(fā). 本文設(shè)計了如圖4所示的繞行測試拓撲結(jié)構(gòu),圖中合肥節(jié)點和上海節(jié)點為兩個普通節(jié)點,合肥節(jié)點只有教育網(wǎng)出口,上海節(jié)點只有電信網(wǎng)出口,合肥路由節(jié)點為超級節(jié)點,其擁有教育網(wǎng)以及電信網(wǎng)出口.當合肥節(jié)點與上海節(jié)點之間通過公網(wǎng)傳輸數(shù)據(jù)的時候,數(shù)據(jù)包會進行跨運營商的調(diào)度,由于公網(wǎng)環(huán)境復(fù)雜,期間會存在互聯(lián)網(wǎng)運營商之間數(shù)據(jù)互通的繞道問題,導(dǎo)致數(shù)據(jù)傳輸延遲較高.使用本文中提出的方法,在公網(wǎng)上構(gòu)建一個Overlay網(wǎng)絡(luò)使得網(wǎng)絡(luò)流量可控,并通過超級節(jié)點進行流量調(diào)度.數(shù)據(jù)包通過教育網(wǎng)從合肥節(jié)點傳輸?shù)匠壒?jié)點,再由超級節(jié)點的電信網(wǎng)出口通過電信網(wǎng)傳輸?shù)缴虾9?jié)點.本文實驗通過這種方式避免了數(shù)據(jù)包的跨運營商傳輸,傳輸帶寬僅和選定的兩條傳輸鏈路有關(guān),理論上通過本文所提出的流量調(diào)度模型可以獲得更低的傳輸延遲和更高的傳輸帶寬.本文分別使用ping和iperf3測試合肥和上海之間使用公網(wǎng)直接通信以及隧道優(yōu)化通信的延遲和tcp通信帶寬. 圖4 繞行測試拓撲結(jié)構(gòu)Fig.4 Detour test topology 本文實驗在真實的超算環(huán)境中進行,在實驗中分別測試了在同一時間段內(nèi),兩個超算節(jié)點之間使用Overlay虛擬網(wǎng)絡(luò)隧道和在互聯(lián)網(wǎng)上直接進行數(shù)據(jù)傳輸?shù)男阅鼙憩F(xiàn),實驗時間持續(xù)30分鐘.測試環(huán)境如拓撲圖如圖6所示,合肥路由結(jié)點與合肥結(jié)點位于中國科學(xué)技術(shù)大學(xué),上海結(jié)點位于中科大上海研究院. 由于不同設(shè)備(不同CPU)對加密算法的處理方式不同,隧道鏈路在不同設(shè)備(不同CPU)下加密/不加密時的轉(zhuǎn)發(fā)性能有較大差異.經(jīng)在不同的CPU上測試,如表3所示,得出如下結(jié)論:Overlay網(wǎng)絡(luò)鏈路性能主要受限于加密.如果CPU支持AES-NI高級加密標準指令集擴展,對于正常的網(wǎng)絡(luò)流量(平均700字節(jié)包長度),很容易可以提供>800Mbps的性能,滿足本文需求.如果CPU不支持AES-NI指令集擴展,僅能提供約300Mbps性能,不滿足本文需求.因此只要建設(shè)Overlay網(wǎng)絡(luò)時,使用支持AES-NI指令擴展的CPU,隧道鏈路的性能即可滿足本文需求.本文所使用的測試設(shè)備:合肥端CPU為E5-2670 v3 @ 2.30GHz;上海端CPU為E5-2670 v3 @ 2.40GHz. 表3 幾種CPU性能測試結(jié)果Table 3 Several CPU performance test results 測試過程如下: 1)合肥路由節(jié)點控制端輸入兩條命令: 1. /EthUDP-n link-ustc-hf-i-enc aes-128-k ustc-p ustchf 202.38.95.6 7099 0.0.0.0 0 100.64.2.254 30 2. /EthUDP-n link-ustc-sh-i-enc aes-128-k ustcsh-p ustcsh 218.22.21.9 7098 0.0.0.0 0 100.64.2.250 30 設(shè)置合肥的路由節(jié)點(也就是前文所提的超級節(jié)點)可以通過隧道進行路由轉(zhuǎn)發(fā). 2)在合肥節(jié)點和上海節(jié)點的控制端分別執(zhí)行3條指令進行性能測試. 合肥節(jié)點: 1. ip addr add 100.64.0.100 dev lo 2. /EthUDP-n link-ustc-hf-i-enc aes-128-k ustc-p ustchf 0.0.0.0 0 202.38.95.6 7099 100.64.2.253 30 3. /update_route_client 100.64.2.254 9999 上海節(jié)點: 1. ip addr add 100.64.0.101 dev lo 2. /EthUDP-n link-ustc-sh-i-enc aes-128-k ustcsh-p ustcsh 0.0.0.0 0 218.22.21.9 7098 100.64.2.249 30 3. /update_route_client 100.64.2.250 9999 根據(jù)測試結(jié)果,測試總結(jié)如表4所示. 表4 繞行測試結(jié)果Table 4 Detour test results 在真實超算環(huán)境下的性能測試分別使用公網(wǎng)和隧道優(yōu)化后的網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,實驗使用了上海和合肥的兩個節(jié)點,通過iperf命令來獲取鏈路平均帶寬,通過ping命令來獲取網(wǎng)絡(luò)延遲. 如圖5所示,當在上海和合肥節(jié)點之間進行公網(wǎng)測試時,在跨運營商的條件下,延遲有130ms之高,當使用我們的方法進行鏈路繞行之后,延遲降低了92%,這表明本文方法可以大大降低跨運營商交換數(shù)據(jù)時鏈路上的傳輸延遲. 如圖6所示,當在上海和合肥節(jié)點之間使用iperf3進行TCP傳輸帶寬測試時,從上海到合肥的鏈路傳輸效率提高了8.8倍,而從合肥到上海的鏈路傳輸效率只提高了1.7倍,這是因為,測試時,上海結(jié)點所在的網(wǎng)絡(luò)出口有其他流量占用帶寬,影響了合肥到上海的隧道優(yōu)化測試結(jié)果. 圖5 延遲測試Fig.5 Delay test 圖6 帶寬測試Fig.6 Bandwidth test 綜上可得,本文方法可以大大降低跨運營商交換數(shù)據(jù)時鏈路上的傳輸延遲,提高鏈路上傳輸數(shù)據(jù)的帶寬,這將對我國高性能中心之間的數(shù)據(jù)交換性能有著顯著的提高. 隨著互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)中心規(guī)模擴大,高性能計算中心之間的數(shù)據(jù)交換流量爆發(fā)式增長,跨各大運營商之間的數(shù)據(jù)傳輸效率低下且不受控制.傳統(tǒng)的直連式通信已經(jīng)無法滿足數(shù)據(jù)中心網(wǎng)絡(luò)的流量調(diào)度,嚴重阻礙了國家高性能計算網(wǎng)絡(luò)的發(fā)展.物理網(wǎng)絡(luò)專線價格昂貴,基于Overlay網(wǎng)絡(luò)建立一個可控的SD-WAN網(wǎng)絡(luò)進行可控流量調(diào)度成為了本文的主要目標. 本文評估和優(yōu)化了Overlay隧道鏈路的性能,研究發(fā)現(xiàn),在國家高性能中心網(wǎng)絡(luò)的場景下,只要在建設(shè)Overlay網(wǎng)絡(luò)時,使用EthUDP協(xié)議,同時使用3層路由的方式進行流量調(diào)度,在降低網(wǎng)絡(luò)延遲和提高傳輸帶寬上取得了很好的效果.6 實 驗
6.1 實驗環(huán)境
6.2 實驗分析
7 結(jié) 論