謝景昭,單煒,肖暢,馬鐵,陳力,虞紅芳,孫罡
(1. 電子科技大學,四川 成都 611731;2. 華為技術有限公司,廣東 深圳518129)
工業(yè)互聯(lián)網(wǎng)、遠程醫(yī)療、VR/AR等新興應用場景與5G通信、云網(wǎng)融合等新型承載技術的出現(xiàn),對數(shù)據(jù)網(wǎng)的內(nèi)生能力和性能指標提出了更高要求。網(wǎng)絡技術創(chuàng)新作為數(shù)據(jù)網(wǎng)發(fā)展的根本動力,是應用和業(yè)務創(chuàng)新的使能條件,是關乎整個行業(yè)進步的關鍵環(huán)節(jié)。為了凝聚共識,以頂層設計的方式提出面向未來的網(wǎng)絡創(chuàng)新目標,推進關鍵技術創(chuàng)新和行業(yè)發(fā)展,也有網(wǎng)絡5.0這樣的網(wǎng)絡跨代演進概念被提出。然而創(chuàng)新技術的開發(fā)和驗證仍然面臨許多現(xiàn)實性的難題,如成本、效率、安全以及系統(tǒng)復雜性和可重復性等,嚴重阻礙了技術的創(chuàng)新,因此亟須一個網(wǎng)絡創(chuàng)新平臺為其提供可用且友好的開發(fā)和實驗環(huán)境??梢娋W(wǎng)絡創(chuàng)新平臺對網(wǎng)絡技術的創(chuàng)新具有重要意義,是網(wǎng)絡未來發(fā)展的關鍵。
網(wǎng)絡創(chuàng)新平臺提供新技術的開發(fā)環(huán)境以及用于評估和驗證創(chuàng)新技術的具體實驗場景,通常包括網(wǎng)絡仿真平臺和網(wǎng)絡模擬平臺兩類。與完全基于軟件模型的仿真平臺相比,網(wǎng)絡模擬平臺依賴實體的模擬網(wǎng)絡進行技術的開發(fā)和實驗,因而更接近實際的網(wǎng)絡運行、更具有現(xiàn)實意義,模擬平臺上開發(fā)的網(wǎng)絡新技術也可以更快速地落地部署。盡管目前的網(wǎng)絡模擬平臺能在一定程度上支持技術創(chuàng)新,但大多仍存在規(guī)模有限、適用的創(chuàng)新形式單一、可執(zhí)行的操作少、實驗開展難度高等問題,沒有充分挖掘模擬平臺的優(yōu)勢,難以應對網(wǎng)絡未來發(fā)展過程中規(guī)模大且場景復雜、技術創(chuàng)新多樣化且發(fā)展迅速的趨勢。
針對網(wǎng)絡未來的發(fā)展需要,本文提出了一種面向技術創(chuàng)新的網(wǎng)絡模擬實驗平臺Klonet。首先,Klonet模擬的網(wǎng)絡可以根據(jù)需求靈活擴展,支持網(wǎng)絡層、傳輸層、應用層等多層次網(wǎng)絡技術的創(chuàng)新,符合網(wǎng)絡進入超大規(guī)模時代的特征以及從頂層設計網(wǎng)絡的目標;其次,Klonet支持在實驗的運行過程中引入動態(tài)網(wǎng)絡事件,并為網(wǎng)絡實驗的完整流程提供相應的輔助功能,使得實驗場景更加真實、過程更加便捷,加速了創(chuàng)新概念轉化為實際部署的進程,從而推動網(wǎng)絡技術的創(chuàng)新發(fā)展。通過兩個具體用例分析說明了使用Klonet進行網(wǎng)絡創(chuàng)新的方法,并且展現(xiàn)了Klonet為技術創(chuàng)新帶來的多種可能性。
通過對比網(wǎng)絡創(chuàng)新平臺兩類方法的不同實現(xiàn)思路,闡述網(wǎng)絡仿真的局限性以及網(wǎng)絡模擬在開發(fā)和測試網(wǎng)絡創(chuàng)新技術上的優(yōu)勢,并對幾種具有代表性的網(wǎng)絡模擬平臺進行分析,同時指出它們面對技術創(chuàng)新時的不足。
當前存在多種用于開發(fā)、評估和驗證新技術的網(wǎng)絡創(chuàng)新平臺,按照本質實現(xiàn)方法的不同將這些平臺分為兩類:網(wǎng)絡仿真平臺和網(wǎng)絡模擬平臺。網(wǎng)絡仿真平臺依據(jù)離散事件模型為真實網(wǎng)絡的邏輯結構和運行狀態(tài)建模,通過逐層嵌套的軟件模塊構建網(wǎng)絡系統(tǒng)抽象,是一種完全基于軟件的實現(xiàn)方法,比較具有代表性的仿真平臺有OMNeT++[1]、NS3[2]和OPNET[3]等。網(wǎng)絡模擬平臺則通過物理設備或虛擬化技術構建實際的網(wǎng)絡,對真實網(wǎng)絡進行模擬,該模擬網(wǎng)絡與目標網(wǎng)絡的原型相同或是對其最小規(guī)模的近似,是模擬平臺的實現(xiàn)基礎,其中比較有代表性的模擬平臺包括PlanetLab[4]、Emulab[5]和Mininet[6]等。
網(wǎng)絡仿真依賴于對網(wǎng)絡的建模,是一種在事件、時序、語義層面上對網(wǎng)絡的模仿,所以網(wǎng)絡仿真過程中沒有真實的網(wǎng)絡應用、協(xié)議或報文,因此網(wǎng)絡仿真存在許多固有的局限性。
首先,仿真模型要盡量完美地反映、捕捉現(xiàn)實中的實體對象、操作邏輯和動作行為,因此對建模的要求很高、建立模型的過程很難;其次,仿真只是一種邏輯和數(shù)學上的表示和計算,而不是網(wǎng)絡系統(tǒng)中的真實實現(xiàn),因此通過仿真實現(xiàn)和測試的網(wǎng)絡創(chuàng)新與能夠在實際網(wǎng)絡中部署的成品間還存在非常大的差距;最后,仿真實驗中的理想模型與真實網(wǎng)絡環(huán)境中的實際運行情況也很難保持完全一致,因此對網(wǎng)絡運行的還原度較低??梢娨蕾嚲W(wǎng)絡仿真方法構建的創(chuàng)新環(huán)境,只能對網(wǎng)絡創(chuàng)新做相對理想化的分析和評估。
網(wǎng)絡模擬通過物理或虛擬形式的模擬網(wǎng)絡來分析真實網(wǎng)絡系統(tǒng)中的行為和表現(xiàn),以此對運行在模擬網(wǎng)絡上的創(chuàng)新技術進行評估和驗證。模擬網(wǎng)絡在終端節(jié)點方面,包含真實的操作系統(tǒng),具有完整的內(nèi)核協(xié)議棧,可發(fā)送標準分組,可運行真實的網(wǎng)絡應用;在網(wǎng)絡節(jié)點方面,運行真實網(wǎng)絡設備的固件或軟件,執(zhí)行真實的網(wǎng)絡協(xié)議,可交換和轉發(fā)標準分組;在網(wǎng)絡工具方面,具有同真實網(wǎng)絡一致的測試工具、配置工具和程序腳本等,其交互模式同生產(chǎn)網(wǎng)絡一致。
對比基于軟件模型的網(wǎng)絡仿真,模擬方法中的各類對象和事件是真實存在和發(fā)生的,不依賴煩瑣的模型語言描述;在模擬網(wǎng)絡上開發(fā)和測試創(chuàng)新實例,所使用的方法和工具與在實際網(wǎng)絡中相同,創(chuàng)新成果更接近于能夠在現(xiàn)網(wǎng)中部署的形式;模擬方法中的測試結果是網(wǎng)絡實體間相互作用的真實體現(xiàn),因此得到的評估和驗證結果也更能反映網(wǎng)絡創(chuàng)新在真實運行情況下的性能和表現(xiàn)??偠灾W(wǎng)絡模擬能夠高度還原真實網(wǎng)絡的運行過程,基于模擬開發(fā)的網(wǎng)絡創(chuàng)新實例更接近于實際部署,實驗結果更為可信。
許多機構和高校設計實現(xiàn)了網(wǎng)絡模擬平臺用于網(wǎng)絡研究和技術創(chuàng)新工作,其中常見的有如下3個。
(1)SDN原型測試工具Mininet
Mininet支持在單臺主機上快速地構建大型SDN,憑借其輕量、易用等特點Mininet已經(jīng)成為近幾年熱門的網(wǎng)絡模擬工具。利用Linux的容器技術,Mininet可以輕松地在單臺主機上快速搭建一個包含上百網(wǎng)絡節(jié)點和吉比特級別鏈路的虛擬網(wǎng)絡,以支撐SDN系統(tǒng)的創(chuàng)新和研究工作。然而,受限于單機的計算資源,Mininet不能支持大規(guī)?;蛸Y源敏感的網(wǎng)絡技術、應用進行創(chuàng)新和實驗。
(2)分布式系統(tǒng)開發(fā)平臺PlanetLab
PlanetLab向網(wǎng)絡研究人員提供全球覆蓋的網(wǎng)絡平臺,以支持全球級別大規(guī)模網(wǎng)絡服務或應用的開發(fā)工作[7],自上線以來取得了非常大的成功。PlanetLab通過虛擬機向用戶提供上層的overlay網(wǎng)絡,服務切片初始化后可作為獨立的網(wǎng)絡實驗資源被用戶訪問和控制,用于業(yè)務和應用的創(chuàng)新開發(fā)。然而,PlanetLab只模擬端到端的應用層網(wǎng)絡,缺乏對網(wǎng)絡拓撲和網(wǎng)元功能的考慮,無法用于底層網(wǎng)絡技術的創(chuàng)新。
(3)網(wǎng)絡控制平面模擬器CrystalNet
CrystalNet[8]是微軟提出的網(wǎng)絡模擬平臺,利用Docker模擬大規(guī)模的生產(chǎn)網(wǎng)絡,并承諾其具有高保真的控制平面。新網(wǎng)絡架構、設備固件和配置策略被實際部署之前,可以首先利用CrystalNet進行測試以驗證其正確性,從而減少各種未知錯誤可能對生產(chǎn)網(wǎng)絡造成的影響以及隨之而來的經(jīng)濟損失。然而,CrystalNet僅模擬網(wǎng)絡的控制面,不提供網(wǎng)絡的數(shù)據(jù)面屬性,難以應用于與數(shù)據(jù)面相關的技術創(chuàng)新之中。
綜上所述,現(xiàn)有的網(wǎng)絡模擬平臺常常聚焦于網(wǎng)絡的個別特征,缺乏全方位模擬大規(guī)模網(wǎng)絡的能力,只支持特定類型或特定場景下的網(wǎng)絡技術創(chuàng)新。并且這些平臺部署的模擬網(wǎng)絡大部分是“靜態(tài)的”,缺少細粒度的網(wǎng)元、鏈路操作能力,很難模擬像鏈路增加、移除這樣的網(wǎng)絡動態(tài)事件。此外很少有平臺考慮專門輔助網(wǎng)絡實驗的功能,因此需要額外借助多種工具用于分析研究,不利于新技術的評估和驗證??梢?,如何設計一個以技術創(chuàng)新為目標的網(wǎng)絡模擬實驗平臺,仍是一個充滿挑戰(zhàn)且十分重要問題。
鑒于已有平臺在功能特性上的缺陷和不足,以網(wǎng)絡發(fā)展現(xiàn)狀、技術創(chuàng)新的一般性要求以及網(wǎng)絡實驗的常見需求為基礎,分析了Klonet的總體設計目標。
(1)靈活的規(guī)??蓴U展能力
不斷擴大的網(wǎng)絡規(guī)模是通信網(wǎng)絡發(fā)展的顯著特征之一,并且隨著網(wǎng)絡向工業(yè)、醫(yī)療、交通和市政等領域的垂直延伸,仍有更多的人和海量的新設備在持續(xù)接入互聯(lián)網(wǎng)絡。這意味著許多未來的網(wǎng)絡難題和網(wǎng)絡創(chuàng)新理念是以大規(guī)模的網(wǎng)絡系統(tǒng)、網(wǎng)絡應用為背景的,也意味著網(wǎng)絡創(chuàng)新技術的開發(fā)和實驗需要大規(guī)模的網(wǎng)絡環(huán)境作為支撐。因此,Klonet要靈活應對網(wǎng)絡技術對實驗規(guī)模的需求,其部署的模擬網(wǎng)絡,以及相應的平臺資源和平臺整體架構都應該易于規(guī)模的擴展。
(2)全方位的網(wǎng)絡模擬能力
某些網(wǎng)絡技術依賴網(wǎng)絡的部分特征就能進行開發(fā)和實驗。例如,分布式應用只重視端到端鏈路的數(shù)據(jù)面屬性,網(wǎng)絡拓撲、網(wǎng)絡節(jié)點和網(wǎng)絡操作并不受重視。但是就路由協(xié)議的創(chuàng)新而言,又需要關心拓撲結構和節(jié)點行為,僅模擬端到端鏈路明顯不夠。所以要真正服務于網(wǎng)絡的頂層設計,滿足網(wǎng)絡技術從3層到5層的創(chuàng)新需求,網(wǎng)絡的拓撲結構、網(wǎng)絡層次、網(wǎng)元功能、控制面行為以及數(shù)據(jù)面屬性等因素都不可或缺。因此,Klonet要對實際網(wǎng)絡進行全方位的模擬。
(3)細粒度的網(wǎng)絡管理能力
(4)實驗工作流的支撐能力
開展網(wǎng)絡實驗是復雜的過程。完整的實驗工作流主要包括網(wǎng)絡拓撲設計、網(wǎng)絡參數(shù)配置、網(wǎng)絡流量生成以及最后的實驗數(shù)據(jù)獲取等步驟[9],該流程中的大部分工作很煩瑣且容易出錯,并且在模擬網(wǎng)絡中生成網(wǎng)絡流量、收集網(wǎng)絡運行數(shù)據(jù)還需額外借助多種網(wǎng)絡應用和工具。所以當實驗規(guī)模較大時,評估和驗證新技術的難度以及花費的大量時間都顯而易見,這極大阻礙了創(chuàng)新概念的快速落地。因此,為了加快技術創(chuàng)新的進程,Klonet要提供與某些實驗步驟相關的支撐功能。
針對上述設計目標,從平臺的系統(tǒng)架構、模擬網(wǎng)絡的構建方法、模擬網(wǎng)絡管理的關鍵實現(xiàn)以及支撐實驗的具體功能4個方面,對本文面向技術創(chuàng)新的網(wǎng)絡模擬實驗平臺Klonet展開論述。
隨著網(wǎng)絡規(guī)模的不斷擴大,規(guī)模擴展能力將會成為網(wǎng)絡創(chuàng)新平臺最重要的特性。系統(tǒng)架構作為平臺的根本設計,關乎基礎資源提供、基礎網(wǎng)絡性能保證以及模擬網(wǎng)絡擴展等重要問題。Klonet系統(tǒng)架構如圖1所示。其中,基礎設施是平臺網(wǎng)絡和計算資源的根本;模擬網(wǎng)絡是平臺部署的虛擬網(wǎng)絡,是開展網(wǎng)絡技術創(chuàng)新的實際環(huán)境;控制框架是平臺各類控制邏輯的集合,負責解析指令并執(zhí)行各類操作;應用接口是用戶與平臺交互、開展實驗的接口。
圖1 Klonet系統(tǒng)架構
由于資源限制,單臺主機無法承載大規(guī)模的模擬網(wǎng)絡,更不用談有效的性能保障。所以Klonet的基礎設施由多臺高性能物理主機和其底層的高性能物理網(wǎng)絡(高帶寬、低時延)共同組成。一方面充足的計算能力可以滿足實驗規(guī)模擴展的資源需求,同時還能減小干擾、保證性能隔離;另一方面在一定范圍內(nèi)可信且高性能的物理鏈路,能夠為模擬網(wǎng)絡鏈路屬性的模擬提供基本的網(wǎng)絡性能支持。
技術創(chuàng)新環(huán)境可以靈活擴展,意味著模擬網(wǎng)絡能夠在底層分布式的基礎設施上任意地擴展部署,所以Klonet通過計算和網(wǎng)絡虛擬化技術,利用虛擬網(wǎng)元和虛擬鏈路,在物理underlay網(wǎng)絡的基礎上,搭建統(tǒng)一的overlay網(wǎng)絡用于網(wǎng)絡創(chuàng)新實驗,解決了擴展創(chuàng)新實驗規(guī)模的首要問題。
非混合型污染污染物大多呈液態(tài)形式,主要是由于大范圍的開采石油以及相類似的石油產(chǎn)品造成的污染。這種污染情況大多數(shù)出現(xiàn)在電子、化工等工廠附近,被污染后的水源一部分揮發(fā)滯留在地面一層,還有一部分會層層滲透,最終到達地下水一層。
當規(guī)模擴展時,控制框架必須將底層分布式的資源、分散部署的模擬網(wǎng)絡以及上層集中的用戶接口有效地整合到一起。為此Klonet采用分層的控制框架,通過程序與數(shù)據(jù)的分離、主從控制邏輯的拆分以及動作執(zhí)行和軟硬件接口的解耦,在有效整合上下層的同時進一步提高平臺的可擴展性。首先,控制框架將程序處理所需的關鍵數(shù)據(jù)從進程內(nèi)存中剝離,通過統(tǒng)一的運維數(shù)據(jù)庫維護和存儲,從可存儲的數(shù)據(jù)規(guī)模方面提高了可擴展性,同時也提高了平臺運行的可靠性。其次,控制架構按照主從的形式拆分控制邏輯。主控制器是平臺控制邏輯的核心,對上層的用戶指令進行分析和處理,并向下層的各個從控制器發(fā)送相應的控制信號;從控制器則與物理主機一一對應,根據(jù)自身邏輯分析下達的命令,對主機執(zhí)行相應的操作。主從設計在降低集中控制邏輯處理復雜度的同時,通過一定程度上的自治能力降低了多主機管理的難度,更利于規(guī)模的擴展。最后,Klonet憑借資源適配器將主機的各類軟硬件資源封裝為統(tǒng)一的網(wǎng)元操作和鏈路操作接口(如網(wǎng)元的創(chuàng)建、停止、銷毀等)供從控制器調(diào)用,使邏輯上的執(zhí)行與具體的資源操作解耦,不僅降低了從控制器管控多維資源的難度,更提高了控制框架對底層資源的兼容性和平臺規(guī)模的擴展能力。
面對底層分布式的物理資源以及分散部署的模擬網(wǎng)絡,用戶需要統(tǒng)一的上層接口操作實驗平臺、進行大規(guī)模的網(wǎng)絡實驗。一方面考慮到圖形化界面操作直觀、實時性高、可交互性強,另一方面考慮到編程接口較高的靈活性和較高的可定制能力,所以Klonet的應用接口由圖形接口和編程接口共同組成,不僅滿足應用接口的易用性和功能性,也能夠應對大規(guī)模創(chuàng)新環(huán)境帶來的挑戰(zhàn)。
Klonet構建的模擬網(wǎng)絡,是實際部署網(wǎng)絡創(chuàng)新技術、開展創(chuàng)新實驗的網(wǎng)絡環(huán)境。為了提供真實、豐富的網(wǎng)絡實驗場景,支持多種網(wǎng)絡技術的行為驗證和性能評估,模擬網(wǎng)絡應該具備任意拓撲的模擬能力,多種網(wǎng)元功能、網(wǎng)絡層次的模擬能力,以及網(wǎng)絡控制面和數(shù)據(jù)面的模擬能力。
第一,為了實現(xiàn)任意拓撲的模擬能力,Klonet首先構建一個具有任意拓撲的“二層網(wǎng)絡”。從overlay網(wǎng)絡的視角來看,虛擬網(wǎng)元要按照任意的連接關系,通過一條虛擬的二層鏈路互連起來,虛擬網(wǎng)元的網(wǎng)絡命名空間獨立,等同于物理的網(wǎng)絡設備,而虛擬鏈路要等同于由兩個物理網(wǎng)絡端口和一條物理網(wǎng)線形成的點到點連接,從而在overlay網(wǎng)絡的層面達成真正意義上的任意拓撲。第二,實現(xiàn)多種網(wǎng)元功能、網(wǎng)絡層次,以及網(wǎng)絡控制面的模擬能力,實際是要將各層、各類的網(wǎng)絡設備軟件以及終端的網(wǎng)絡應用安裝、運行到“二層網(wǎng)絡”的虛擬網(wǎng)元中,而網(wǎng)絡控制面則會由這些設備軟件間的網(wǎng)絡行為形成。第三,為了實現(xiàn)網(wǎng)絡數(shù)據(jù)面的模擬能力,Klonet在“二層網(wǎng)絡”中的端口設備上設置特定的端口規(guī)則,模擬帶寬、時延等數(shù)據(jù)面屬性,最終使該“二層網(wǎng)絡”逐步構建為具有多種網(wǎng)絡模擬能力的模擬網(wǎng)絡,如圖2所示。
圖2 模擬網(wǎng)絡構建方法
對于虛擬網(wǎng)元的實現(xiàn)??紤]到虛擬網(wǎng)元要具有獨立的網(wǎng)絡命名空間、要能夠安裝和運行軟件應用,并且要具備一定的性能隔離能力,所以Klonet采用虛擬機或容器作為解決方案。虛擬機具有完整的操作系統(tǒng)內(nèi)核,性能隔離性好,但較為笨重;容器資源開銷小、輕量且靈活,但缺點在于容器共享宿主機內(nèi)核,性能干擾較大。因此要根據(jù)不同的性能需求來選擇不同的虛擬化技術。
對于虛擬鏈路的實現(xiàn)??紤]到要構建等同于真實設備間的點到點連接,網(wǎng)元中要有真實的網(wǎng)卡設備來配置隊列規(guī)則,所以對于同宿主機上的網(wǎng)元,Klonet采用vethpair[10]以及tap與虛擬網(wǎng)橋的組合建立容器以及虛擬機之間的虛擬鏈路;對于不同宿主機上的網(wǎng)元,Klonet以前者虛擬鏈路為基礎,通過添加VxLAN隧道或配置VLAN實現(xiàn)虛擬鏈路。最后使用Linuxtc設置鏈路的數(shù)據(jù)面屬性。
Klonet支持在實驗運行過程中對其模擬網(wǎng)絡進行多種管理操作行為,如網(wǎng)元的創(chuàng)建和刪除、鏈路的增加和移除、創(chuàng)新實例的啟動和停止等。這些操作行為不僅可以幫助用戶將動態(tài)事件引入模擬網(wǎng)絡,使其具有真實場景下復雜多樣的變化,還可以幫助用戶靈活地管理實例的運行狀態(tài)、修改網(wǎng)絡拓撲、改善實驗方案。另外Klonet還提供實時的網(wǎng)絡拓撲展示功能,從而提高模擬網(wǎng)絡的可視化水平和可操作性。
實現(xiàn)網(wǎng)絡管理操作以及網(wǎng)絡拓撲展示的關鍵在于模擬網(wǎng)絡的描述信息,如果有數(shù)據(jù)模型能夠維護模擬網(wǎng)絡的狀態(tài)信息,平臺就可以根據(jù)這些數(shù)據(jù)進行相應的網(wǎng)元和鏈路操作,或根據(jù)數(shù)據(jù)模型來繪制圖形化的拓撲界面。
對于模擬網(wǎng)絡的展示,需要一種靜態(tài)的模擬網(wǎng)絡模型向圖形接口描述當前時刻的網(wǎng)絡狀態(tài)以繪制對應的界面。當然,這類模型同樣可以描述用戶設計的網(wǎng)絡拓撲,服務于網(wǎng)絡拓撲定制功能。為此Klonet設計了JSON數(shù)據(jù)格式的拓撲描述文件,作為平臺描述模擬網(wǎng)絡的規(guī)范模型。但是由于其靜態(tài)性,該模型很難跟蹤模擬網(wǎng)絡的動態(tài)改變、描述模擬網(wǎng)絡的實時狀態(tài),而實驗過程中對已部署網(wǎng)絡的動態(tài)操作和修改又勢必會改變其狀態(tài)以及相應的模型表示。
所以Klonet還基于Redis設計了模擬網(wǎng)絡的動態(tài)模型。動態(tài)模型的特點是會隨著模擬網(wǎng)絡狀態(tài)的改變而變化。當短時間內(nèi)有大量動態(tài)事件發(fā)生時,動態(tài)模型會隨之產(chǎn)生大量更新,所以適合使用非關系的內(nèi)存型數(shù)據(jù)庫維護和存儲。Redis執(zhí)行速度快、適用于頻繁讀寫的場景,并且其鍵值(key-value)存儲系統(tǒng)的性質,非常利于其動態(tài)表項與JSON格式的靜態(tài)文件進行相互轉換。綜上,Klonet采用Redis作為運維數(shù)據(jù)庫,并以Redis的表項對模擬網(wǎng)絡中的各類實體進行了重新刻畫,最終形成網(wǎng)絡的動態(tài)模型。
模擬網(wǎng)絡部署時,靜態(tài)的拓撲描述被實例化為虛擬網(wǎng)元和虛擬鏈路,同時也被實例化為運維數(shù)據(jù)庫中的動態(tài)模型。當用戶管理和操作模擬網(wǎng)絡時,控制框架會以動態(tài)模型作為數(shù)據(jù)支持來執(zhí)行相應的動作,并按照動作的執(zhí)行結果進行相應的模型更新。對于拓撲展示,圖形接口會定期向控制框架請求當前時刻的模擬網(wǎng)絡描述,控制框架收到請求后將讀取運維數(shù)據(jù)庫中此刻的網(wǎng)絡數(shù)據(jù),并把這些數(shù)據(jù)轉換為網(wǎng)絡的靜態(tài)模型,然后返回到圖形接口用于界面繪制。
考慮到拓撲結構、網(wǎng)絡流量和實驗結果等網(wǎng)絡實驗的基本要素[9],Klonet對實驗的支撐能力主要包括網(wǎng)絡拓撲定制、多種流量發(fā)生和實驗結果分析的功能,給予網(wǎng)絡實驗必要的功能助力,節(jié)省開發(fā)、測試、分析網(wǎng)絡創(chuàng)新技術所需的時間,簡化實驗過程,降低技術創(chuàng)新門檻。在實驗中,網(wǎng)絡拓撲定制實現(xiàn)任意網(wǎng)絡拓撲的靈活設計和部署,多種流量發(fā)生向模擬網(wǎng)絡注入不同分布、不同模式的流量,實驗結果分析提供對網(wǎng)絡指標和協(xié)議行為的監(jiān)控、統(tǒng)計、分析和呈現(xiàn),如圖3所示。
圖3 Klonet實驗支撐功能
(1)網(wǎng)絡拓撲定制
Klonet提供兩類拓撲定制方法,圖形化接口定制和編寫拓撲描述文件定制,分別對應使用圖形接口和編程接口兩種部署方式。圖形化方法在采用典型拓撲模板(如Tree、FatTree、BCube等)的基礎上手動拖曳網(wǎng)元、鏈路的形式定制拓撲;或者可以完全由手動拖曳網(wǎng)元、鏈路設計。典型模板用來快速生成大規(guī)模的拓撲骨干,手動拖拽則在此基礎上進行微調(diào)。拓撲設計完成之后,圖形接口會生成相應的規(guī)范化拓撲描述文件。該方法可有效減輕拓撲結構設計負擔,適應特異網(wǎng)絡拓撲結構的交互式設計要求,使拓撲定制更加直觀、便捷,交互性更強。編寫拓撲描述文件的方法要求實驗人員向平臺提交可讀的拓撲描述文件,描繪定制后的拓撲結構。所以相較于交互式的手動拖曳,通過程序腳本可以自動化生成規(guī)范的拓撲描述,能夠高效定制大規(guī)模、有規(guī)律的拓撲,并且可以解析已有的拓撲數(shù)據(jù)集和其他平臺的拓撲文件,便于現(xiàn)有網(wǎng)絡描述的移植,豐富定制拓撲結構的方法。
(2)多種流量發(fā)生
定制好的網(wǎng)絡拓撲被部署到硬件集群后,若沒有業(yè)務流量的注入,則只存在路由交換協(xié)議、DHCP等控制平面協(xié)議產(chǎn)生的控制面流量,無法滿足對數(shù)據(jù)面操作行為的觀察和性能指標的評估。為了解決這一問題,Klonet提供包含數(shù)據(jù)流生成和數(shù)據(jù)包生成的多種流量發(fā)生功能,向網(wǎng)絡數(shù)據(jù)面注入可靈活定制的高速數(shù)據(jù)流量。數(shù)據(jù)流生成基于系統(tǒng)的傳輸層接口,Klonet允許用戶定制流請求大小的累積分布函數(shù),請求總時間和期望吞吐等參數(shù)。數(shù)據(jù)包生成則憑借構包、發(fā)包的方式產(chǎn)生流量,Klonet允許用戶定制報文的字段格式、取值和長度,允許定制包長的分布,允許按照符合指定分布的時間間隔發(fā)送數(shù)據(jù)包。另外,Klonet還將Iperf以程序化接口的形式提供給用戶,用戶可以利用Iperf產(chǎn)生背景流,也可以在Iperf的基礎上通過編程的方式靈活定義流量發(fā)生模式。
(3)實驗結果分析
實驗結果分析是開發(fā)者在平臺上開發(fā)、驗證網(wǎng)絡創(chuàng)新技術的最后一步,為此Klonet的實驗結果分析功能從控制面的協(xié)議行為分析和數(shù)據(jù)面的性能結果獲取兩個方向出發(fā),對模擬網(wǎng)絡進行監(jiān)測。網(wǎng)絡監(jiān)測主要基于網(wǎng)絡端口上的報文抓取,為了提高抓包效率、減小抓包開銷,平臺引入可編程的eBPF技術在內(nèi)核中設置鉤子捕獲事件信息,使報文信息獲取更加輕量且賦予其更加豐富的定制化能力。對于可定制的協(xié)議分析部分,平臺提供對常用協(xié)議的報文過濾能力以及字段提取、分析能力,可按照協(xié)議類型或字段類型對報文進行抓取、聚合等操作。對于性能結果的獲取,平臺提供部分常見性能指標(如吞吐率)的計算獲取。與網(wǎng)元資源用量有關的分析和驗證,平臺主要通過集成Prometheus監(jiān)控系統(tǒng)實現(xiàn),支持對計算、存儲等資源使用情況的收集、存儲和處理。實驗結果分析功能允許通過可視化接口或描述文件對具體的監(jiān)控事件進行定制,支持監(jiān)測數(shù)據(jù)的可視化分析,并且允許以文件形式導出原始數(shù)據(jù)和結果圖像。
通過對兩類面向不同網(wǎng)絡研究問題的實驗場景分析,具體說明平臺對網(wǎng)絡技術創(chuàng)新的支撐能力,以及利用平臺開展實驗的大致方法。
TCP作為互聯(lián)網(wǎng)的主流傳輸協(xié)議,其擁塞控制方法對端到端數(shù)據(jù)傳輸?shù)男阅鼙憩F(xiàn)和帶寬資源的使用情況具有重大影響。隨著近年來網(wǎng)絡環(huán)境愈發(fā)復雜、網(wǎng)絡應用場景愈發(fā)多樣的發(fā)展趨勢,網(wǎng)絡擁塞控制方法仍在面臨著源源不斷的需求和挑戰(zhàn),該研究也一直都是網(wǎng)絡創(chuàng)新中的熱點。
為了在現(xiàn)實中評估擁塞控制算法,基于UDP套接字的用戶態(tài)實現(xiàn)方式通常會被采用[11],該方法不用改動內(nèi)核協(xié)議棧中的具體實現(xiàn),可以作為用戶態(tài)應用程序執(zhí)行。另外,為了理解算法的真實表現(xiàn),通常要在廣域網(wǎng)鏈路、衛(wèi)星鏈路等不同的網(wǎng)絡條件下對其進行測試。
在用戶態(tài)進行擁塞控制研究以及模擬復雜的網(wǎng)絡鏈路場景Klonet都能夠支持。首先,Klonet構建的模擬網(wǎng)絡,其虛擬網(wǎng)元采用虛擬機或容器實現(xiàn),具有完整的內(nèi)核協(xié)議棧,易于封裝和執(zhí)行用戶態(tài)的算法實現(xiàn)。其次,Klonet能夠模擬網(wǎng)絡數(shù)據(jù)面的多種屬性并支持屬性的定制化配置,具體見表1。通過對帶寬、往返時延、丟包率以及端口緩存大小等屬性的有機組合,可以模擬出多種不同的網(wǎng)絡條件用于性能表現(xiàn)的評估(如吞吐率、緩存占用率、時延敏感性、公平性等)。最后,Klonet的Web接口可以幫助用戶進行可視化的拓撲定制和鏈路屬性配置,在實驗過程中便捷引入新的鏈路競爭以及改變網(wǎng)絡屬性。Klonet使得擁塞控制算法的開發(fā)和實驗可以更靈活、高效地開展。
表1 網(wǎng)絡屬性定制能力
隨著5G時代的到來和網(wǎng)絡應用場景的不斷擴展,基于IPv6的網(wǎng)絡應用創(chuàng)新和網(wǎng)絡協(xié)議創(chuàng)新成為下一代互聯(lián)網(wǎng)的重要發(fā)展動力。其中,IPv6段路由SRv6作為最具代表性的創(chuàng)新協(xié)議之一,憑借其易擴展、易編程、高可靠等特性吸引了廣大的研究人員,也有不少方案已經(jīng)落地部署。
利用Klonet可以設計、搭建完整的網(wǎng)絡測試環(huán)境,用于SRv6創(chuàng)新實例的功能性驗證,參考網(wǎng)絡場景如圖4所示。該網(wǎng)絡由兩部分組成,一部分是控制和管理平面,另一部分是數(shù)據(jù)平面。對于數(shù)據(jù)平面的模擬,Klonet能夠在“二層網(wǎng)絡”的虛擬節(jié)點中安裝、運行FRR(FRRouting)等軟件路由協(xié)議族使其成為基于內(nèi)核的SRv6路由器網(wǎng)元。通過eBPF和XDP等可編程技術,可以在內(nèi)核層面對路由器網(wǎng)元進行功能擴展和數(shù)據(jù)路加速,實現(xiàn)SRv6網(wǎng)絡的數(shù)據(jù)平面創(chuàng)新。對于控制平面的模擬,Klonet單獨為網(wǎng)元和控制器創(chuàng)建一個上層的控制網(wǎng)絡,用于SRv6南向接口的創(chuàng)新實現(xiàn),并且當路由網(wǎng)絡的測試場景規(guī)模較大時,可以利用Klonet編程接口在可定制程度和大批量操作等方面的優(yōu)勢,采用多樣的方式編寫拓撲描述文件、定制網(wǎng)絡拓撲,成批地引入各類網(wǎng)絡事件、執(zhí)行各類操作。
圖4 SRv6網(wǎng)絡場景參考
本文面向網(wǎng)絡技術創(chuàng)新在開發(fā)和實驗方面的需求,提出了網(wǎng)絡模擬實驗平臺Klonet的設計目標和具體實現(xiàn)方法。Klonet首先能夠滿足大規(guī)模的實驗場景,并且其搭建的模擬網(wǎng)絡具有任意拓撲、在功能和屬性上十分貼近真實的網(wǎng)絡情況,使多類別的網(wǎng)絡技術創(chuàng)新能夠部署、運行到多樣化的網(wǎng)絡場景中,以進行相應的正確性驗證和性能表現(xiàn)評估,最后憑借實驗過程中的拓撲展示能力、網(wǎng)絡操作能力,以及對實驗從拓撲到流量再到結果的全方位功能支持,帶來更多方案上的可行性和操作上的便利性。Klonet能夠應對由網(wǎng)絡規(guī)模不斷擴大和技術創(chuàng)新形式不斷豐富所帶來的挑戰(zhàn),有望助力網(wǎng)絡技術的創(chuàng)新和發(fā)展。
現(xiàn)有Klonet是基于容器的虛擬化技術實現(xiàn),更適合進行功能方面的創(chuàng)新驗證,后續(xù)將考慮采用高速互聯(lián)的多卡高性能服務器集群來支撐性能方面的創(chuàng)新試驗。同時,現(xiàn)有Klonet對模擬網(wǎng)絡的優(yōu)化部署研究不夠深入,導致平臺資源利用率不高。未來Klonet將會關注平臺各類資源的量化描述,通過大量測試建立合理的資源需求模型,并以此為基礎設計模擬網(wǎng)絡切分和放置算法,從而實現(xiàn)資源的高效利用。