999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

復(fù)雜混合網(wǎng)絡(luò)中擁塞控制算法仿真實驗設(shè)計

2021-03-04 08:41:44姜雨菲梁向陽
實驗技術(shù)與管理 2021年1期
關(guān)鍵詞:環(huán)境實驗

姜雨菲,梁向陽

(西安工業(yè)大學(xué) 計算機科學(xué)與工程學(xué)院 新型網(wǎng)絡(luò)與檢測控制國家地方 聯(lián)合工程實驗室,陜西 西安 710021)

“計算機網(wǎng)絡(luò)”及其相關(guān)課程是教育部指定的計算機專業(yè)和信息類專業(yè)本科生和研究生的核心基礎(chǔ)課程[1]。課程以網(wǎng)絡(luò)體系結(jié)構(gòu)為框架展開,由于網(wǎng)絡(luò)概念一般比較抽象,學(xué)生難以理解,而實驗教學(xué)環(huán)節(jié)能很好地彌補這一缺陷。又由于實際的網(wǎng)絡(luò)實驗受到環(huán)境、規(guī)模的限制,采用仿真方法便成為最經(jīng)濟有效的課程教學(xué)實驗手段[2]。

TCP擁塞控制是“計算機網(wǎng)絡(luò)”教學(xué)中的一個重點和難點[3]。隨著當(dāng)前傳統(tǒng)的單一網(wǎng)絡(luò)結(jié)構(gòu)轉(zhuǎn)變?yōu)槎喾N異構(gòu)網(wǎng)絡(luò)結(jié)合的復(fù)雜混合網(wǎng)絡(luò)結(jié)構(gòu),也對相關(guān)的實驗教學(xué)內(nèi)容提出了新的挑戰(zhàn)和要求。復(fù)雜混合網(wǎng)絡(luò)中的擁塞控制不僅是網(wǎng)絡(luò)穩(wěn)定、高效運行的關(guān)鍵,同時又是實現(xiàn)各種服務(wù)的基礎(chǔ)和前提。本文基于NS3仿真平臺,以TCP擁塞控制為實驗?zāi)繕?biāo),詳細論述了當(dāng)前普遍使用的多種TCP擁塞控制算法的仿真實現(xiàn)過程,并在多個網(wǎng)絡(luò)環(huán)境下對各類算法的公平性以及友好性進行了實驗比較。

1 NS3仿真概述

NS3是一種基于 Linux的開源、免費的網(wǎng)絡(luò)仿真軟件,由于其能夠更符合實際地模擬現(xiàn)實世界中的各種網(wǎng)絡(luò),因而其可靠性得到世界上眾多研究者和企業(yè)界的認可[4]。同時由于其適應(yīng)性非常廣泛,可以實現(xiàn)多類復(fù)雜混合的網(wǎng)絡(luò)傳輸環(huán)境和拓撲環(huán)境,因而對“計算機網(wǎng)絡(luò)”教學(xué)有著非常重要的輔助價值和現(xiàn)實意義。圖1為其可模擬的典型復(fù)雜混合網(wǎng)絡(luò)。

圖1 模擬真實環(huán)境中復(fù)雜網(wǎng)絡(luò)拓撲

NS3仿真模塊基本涵蓋了網(wǎng)絡(luò)通信的所有層次,包括應(yīng)用層的各種分組產(chǎn)生器,傳輸層的 TCP和UDP,網(wǎng)絡(luò)層的IPv4和IPv6協(xié)議,鏈路層和物理層的點對點(PPP)、CSMA,以及 IEEE 802.11a/b/g/n和LTE協(xié)議等無線網(wǎng)絡(luò)。

2 實驗平臺的實現(xiàn)

NS3提供各種用于網(wǎng)絡(luò)模擬的應(yīng)用程序接口(application programming interface,API),可以在模擬腳本中調(diào)用這些 API來構(gòu)建自己的仿真網(wǎng)絡(luò)結(jié)構(gòu)[5-6],其仿真的基本模型如圖2所示。

圖2 NS3基本模型

其中,Node類提供了用來管理模擬器中網(wǎng)絡(luò)組件表示的各種方法,包括應(yīng)用程序、協(xié)議棧、外接卡和驅(qū)動程序。Application類為仿真中的用戶級應(yīng)用程序提供了各種方法。在這些應(yīng)用程序中,發(fā)送方和接收方應(yīng)用程序都用于在仿真網(wǎng)絡(luò)中發(fā)送和接收數(shù)據(jù)包。Channel類用于描述通信子網(wǎng)對象,并提供一種方法來管理它們并將它們連接到節(jié)點。NetDevice類用于描述 NS3中的網(wǎng)絡(luò)設(shè)備,包括 CsmaNetDevice、PointToPointNetDevice、Wi-FiNetDevice等。NetDevice類的主要功能是管理節(jié)點和連接信道對象。Topology Helper用于幫助連接網(wǎng)絡(luò)設(shè)備和節(jié)點以及網(wǎng)絡(luò)設(shè)備和通道,并幫助安排IP地址。

網(wǎng)絡(luò)中 Channel的傳輸方式主要包括點對點(PPP)、CSMA和無線。點對點仿真使用點對點協(xié)議(point-to-point protocol,PPP)傳輸分組。對于點對點信道來說,對應(yīng)的網(wǎng)絡(luò)設(shè)備類是PointToPointNetDevice,信道類是PointToPointChannel。構(gòu)建點對點網(wǎng)絡(luò)鏈路的核心代碼如圖3所示。

圖3 點對點網(wǎng)絡(luò)鏈路的核心代碼

CSMA網(wǎng)絡(luò)與PPP都屬于有線網(wǎng)絡(luò)技術(shù),不同之處是 CSMA信道可以連接多個節(jié)點,如總線型網(wǎng)絡(luò)等,需要節(jié)點競爭信道使用權(quán)。其鏈路仿真構(gòu)建的核心代碼如圖4所示。

圖4 CSMA鏈路仿真構(gòu)建的核心代碼

無線網(wǎng)絡(luò)由一個接入點(access point,AP)和多個nWifi移動節(jié)點組成,無線鏈路仿真構(gòu)建的核心代碼如圖5所示。

在NS3仿真平臺上可以通過自主創(chuàng)建節(jié)點、配置信道屬性、創(chuàng)建信道并連接節(jié)點來實現(xiàn)網(wǎng)絡(luò)拓撲的建立。NS3的所有模塊都為用戶提供了豐富的助手類,可以屏蔽復(fù)雜操作的實現(xiàn)細節(jié),從而降低了編寫模擬腳本的復(fù)雜度。

圖5 無線鏈路仿真構(gòu)建的核心代碼

3 TCP擁塞控制算法實驗案例

3.1 實驗場景設(shè)計與搭建

實驗場景如圖6所示,其中0—3,6—9節(jié)點可以同時作為發(fā)送端和接收端,4,5節(jié)點為交換路由節(jié)點,4~5鏈路為典型的瓶頸鏈路。傳輸方式是有線,通過設(shè)置節(jié)點發(fā)送速率和鏈路的傳輸時延,可模擬多種混合網(wǎng)絡(luò)環(huán)境,具有較好的普適性。

圖6 4∶4啞鈴網(wǎng)絡(luò)拓撲結(jié)構(gòu)

本文使用 NS-3.29版本,仿真環(huán)境為 Ubuntu 16.04。構(gòu)建圖6網(wǎng)絡(luò)拓撲結(jié)構(gòu)的主要代碼如圖7所示。

3.2 TCP擁塞控制算法的實現(xiàn)

在網(wǎng)絡(luò)運行的某段時間,如果對網(wǎng)絡(luò)傳輸資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)的性能就要發(fā)生變化,這種情況叫擁塞[7]。擁塞控制能防止過多的數(shù)據(jù)同一時間注入到網(wǎng)絡(luò)當(dāng)中,從而使網(wǎng)絡(luò)中的設(shè)備資源或鏈路不致過載。擁塞控制常常是在TCP中實現(xiàn)的,因此也叫TCP擁塞控制。

NS3中TCP的屬性和trace變量都集中在以下3個核心類中。TcpSocket:這是一個虛類,主要定義了一些基本的TCP屬性;TcpSocketBase:窗口管理、擁塞控制等主要TCP算法都在這個類中實現(xiàn);TcpL4Protocol:是與網(wǎng)絡(luò)層的接口,也負責(zé)TcpSocketBase對象。

圖7 圖6網(wǎng)絡(luò)拓撲結(jié)構(gòu)的主要代碼

實驗人員在仿真程序的頂部以及在為節(jié)點創(chuàng)建網(wǎng)絡(luò)協(xié)議棧之前添加相應(yīng)代碼,就可以設(shè)置所需要的TCP擁塞控制算法。例如,設(shè)置Cubic擁塞控制算法如下:

擁塞控制算法的公平性和友好性一般是通過吞吐量的值來衡量的,而吞吐量的獲取需要套接字的屬性[8]。通過 Socket::CreateSocket()函數(shù)創(chuàng)建套接字,其返回值就是一個套接字指針,其參數(shù)必須是ns3::SocketFactory對象,需要通過配置套接字指針把屬性和 TcpL4Protocol對象關(guān)聯(lián)在一起,采用的方法是通過配置系統(tǒng)函數(shù)Config::Set(),其核心代碼如下:

4 實驗及結(jié)果分析

4.1 擁塞控制算法理論驗證性實驗

NS3支持的擁塞控制算法有十多種之多,基本涵蓋了當(dāng)前所有常用的擁塞控制算法,包括NewReno、Cubic、Vegas、Yeah、Hybla等。對 NS3支持的主要TCP擁塞控制算法進行仿真,將仿真參數(shù)設(shè)置如下:鏈路帶寬 100 Mbps,時延 100 ms,仿真時間 250 s,丟包率0.000 001。去掉前50 s非穩(wěn)態(tài)區(qū)數(shù)據(jù)后的仿真實驗結(jié)果如圖8所示。

圖8 TCP擁塞控制算法的cwnd(網(wǎng)絡(luò)擁塞窗口)

下面兩小節(jié)將以其中兩個典型的擁塞控制算法NewReno和Cubic為例,進行驗證性分析。

4.1.1 NewReno擁塞控制算法的驗證性分析

NewReno是 Windows系統(tǒng)多個版本中采用的TCP擁塞控制算法[9],也是大部分“計算機網(wǎng)絡(luò)”課程中的教學(xué)事例算法,其核心思想涉及對擁塞控制窗口和慢啟動閾值的調(diào)節(jié)機制。

在慢啟動階段,發(fā)送端每收到了一個新的 ACK(確認字符),擁塞窗口就增加一個 MSS(最大數(shù)據(jù)段長度),擁塞窗口的計算方法為:

在擁塞避免階段,擁塞窗口的增長幅度相對于慢啟動階段有所放緩。窗口大小在一個RTT(往返時延)內(nèi)增加一個 MSS,從指數(shù)增加變成了線性增加。此時,發(fā)送端收到一個新ACK時,新?lián)砣翱诘挠嬎惴椒椋?/p>

RTO(重傳超時時間)超時、快速重傳與快速恢復(fù)時,擁塞事件可以由RTO超時和重復(fù)ACK引起。若發(fā)送方連續(xù)收到N(一般為3)個重復(fù)ACK,則發(fā)送方確定數(shù)據(jù)包丟失,它將立即重新發(fā)送數(shù)據(jù)包,而不等待RTO超時,之后進入快速恢復(fù)階段。此時,慢啟動閾值的計算方法為:

截取圖 8(g)中 NewReno擁塞控制窗口變化的部分?jǐn)?shù)據(jù)放大,如圖9所示。

圖9 NewReno算法擁塞控制窗口局部放大圖

由圖9可見,擁塞控制窗口在增加的時候有一個明顯的指數(shù)上升階段和一個線性上升階段,而當(dāng)發(fā)生重傳時,慢啟動閾值會降為當(dāng)前擁塞窗口的一半,并基于此進入擁塞避免階段。由此可見,該算法的仿真結(jié)果和理論分析完全一致[10]。

4.1.2 Cubic擁塞控制算法的驗證性分析

Cubic算法是在 Bic算法基礎(chǔ)上改進而來的,并被應(yīng)用在當(dāng)前多個Linux操作系統(tǒng)版本中[11],也是較流行的一種擁塞控制算法,對其進行研究有助于理解Linux操作系統(tǒng)的網(wǎng)絡(luò)特性。

Cubic算法使用一個如下的三次立方函數(shù)來代替Bic算法中的窗口探測曲線,其擁塞窗口的計算方法為:

截取圖8(h)中Cubic擁塞控制窗口變化的部分?jǐn)?shù)據(jù)放大,如圖10所示。

從圖 10可見,除了發(fā)生丟包重傳而使得擁塞控制窗口數(shù)值突然下降外,整個擁塞控制窗口的變化完全符合三次立方函數(shù)的變化趨勢,和理論分析完全一致[12]。

除了上述兩個典型的擁塞控制算法,文獻[13—25]也分別說明了其他算法仿真結(jié)果的合理性與準(zhǔn)確性。

圖10 Cubic算法擁塞控制窗口局部放大圖

4.2 擁塞控制算法的公平性實驗

公平性是TCP擁塞控制算法的重要特征之一,是指采用同一種擁塞控制算法的 TCP流對網(wǎng)絡(luò)共享資源(如瓶頸鏈路)的占用公平程度。對NS3內(nèi)支持的主要TCP擁塞控制算法進行公平性實驗仿真,每次仿真中,有4條采用相同擁塞控制算法的TCP流,2條基于高延時(100 ms)、高帶寬(100 Mb·s-1)的鏈路,2 條普通鏈路(2 ms,1 Mb·s-1),以各鏈路的吞吐量作為比較的指標(biāo)依據(jù)。其仿真結(jié)果如圖11所示。仿真時間為 250 s,丟包率為 0.000 001。

圖11 TCP擁塞控制算法不同鏈路吞吐量對比

仍以NewReno算法和Cubic算法為例進行分析說明。NewReno算法是 RTT敏感性算法,在網(wǎng)絡(luò)運行初期,低延遲的TCP流具有較小的RTT,因此其擁塞窗口增長很快,吞吐量激增,而當(dāng)高延遲TCP流的擁塞窗口也增長上來后,在網(wǎng)絡(luò)傳輸錯誤率不高的情況下,網(wǎng)絡(luò)帶寬的大小將決定對瓶頸鏈路的占用比例。由此可見,NewReno算法對網(wǎng)絡(luò)環(huán)境是較為敏感的,不同的網(wǎng)絡(luò)環(huán)境會有不同的性能特征,但同質(zhì)網(wǎng)絡(luò)環(huán)境下的公平性卻非常好。而Cubic算法的擁塞窗口增長函數(shù)是由連續(xù)兩個擁塞事件之間的時間間隔決定的,與RTT無關(guān)[26],這就使得Cubic算法在多個共享瓶頸鏈路的TCP流之間表現(xiàn)出良好的公平性,且不受網(wǎng)絡(luò)環(huán)境的影響。由此可見,采用Cubic的Linux操作系統(tǒng)在網(wǎng)絡(luò)環(huán)境略差的情況下還可以保持相對優(yōu)良的網(wǎng)絡(luò)傳輸性能。

4.3 擁塞控制算法友好性實驗

友好性是TCP擁塞控制算法的另一個重要特征,是指采用不同擁塞控制算法的 TCP流之間對網(wǎng)絡(luò)共享資源(如瓶頸鏈路)的占用公平程度。下面以Cubic為基準(zhǔn),實現(xiàn)其與其他擁塞控制算法的友好性對比實驗。每次仿真有4條TCP流,2條采用Cubic,2條采用其他算法,各鏈路的帶寬為 100 Mb·s-1,時延為 100 ms,仿真時間250 s,丟包率為0.000 001。其仿真結(jié)果如圖12所示。

圖12 Cubic算法與其他擁塞控制算法友好性對比

由圖12可見,在本實驗設(shè)定的網(wǎng)絡(luò)環(huán)境中,Cubic具有較好的傳輸性,網(wǎng)絡(luò)吞吐量穩(wěn)定,且不會受其他TCP流的影響。由于每種擁塞控制算法的設(shè)計都有其適應(yīng)性范圍和條件,因此也可以得出,一些擁塞控制算法(如 NewReno、YeAH)在當(dāng)前網(wǎng)絡(luò)實驗環(huán)境下與Cubic相比的友好性較差。

5 結(jié)語

文章采用NS3仿真工具,搭建了多種類TCP擁塞控制算法的啞鈴型混合網(wǎng)絡(luò)實驗環(huán)境,并詳細論述了實驗平臺實現(xiàn)的方法,包括拓撲構(gòu)建、網(wǎng)絡(luò)環(huán)境參數(shù)設(shè)置、協(xié)議棧和套接字的安裝、擁塞控制算法的配置等關(guān)鍵步驟。文章對多個擁塞控制算法進行了驗證性仿真實驗,并以NewReno和Cubic算法為例進行了理論分析對比。在此基礎(chǔ)上,對多個算法在不同網(wǎng)絡(luò)環(huán)境下的公平性進行了仿真和結(jié)果分析,并以 Cubic為對象,仿真對比了該算法與其他擁塞控制算法的友好性。仿真結(jié)果符合理論分析,實驗設(shè)計成功,結(jié)果正確。該實驗方法和平臺不僅可以服務(wù)于本科生和研究生教學(xué),也可以通過修改擁塞控制算法源代碼,產(chǎn)生新的擁塞控制算法,使其進一步成為可靠的研究性實驗平臺。

猜你喜歡
環(huán)境實驗
記一次有趣的實驗
微型實驗里看“燃燒”
長期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
孕期遠離容易致畸的環(huán)境
不能改變環(huán)境,那就改變心境
做個怪怪長實驗
環(huán)境
孕期遠離容易致畸的環(huán)境
NO與NO2相互轉(zhuǎn)化實驗的改進
主站蜘蛛池模板: 欧美福利在线观看| 国产一在线| 日本五区在线不卡精品| 国产哺乳奶水91在线播放| 免费观看男人免费桶女人视频| 成人午夜视频网站| 一本一道波多野结衣av黑人在线| 狠狠做深爱婷婷久久一区| 色偷偷男人的天堂亚洲av| 免费精品一区二区h| 成人在线不卡视频| 久久特级毛片| 米奇精品一区二区三区| 992tv国产人成在线观看| 婷婷五月在线视频| 免费观看成人久久网免费观看| 亚洲欧洲一区二区三区| 一级全黄毛片| 国产视频只有无码精品| 九九这里只有精品视频| 五月婷婷亚洲综合| 色欲色欲久久综合网| 伊人久久综在合线亚洲91| 亚洲黄色激情网站| 美女一区二区在线观看| 亚洲国产精品久久久久秋霞影院 | 国产精品成| 日本爱爱精品一区二区| 97视频精品全国免费观看 | a毛片在线| 精品国产aⅴ一区二区三区| 在线观看亚洲成人| 国产二级毛片| 久久大香香蕉国产免费网站| 国产精品原创不卡在线| 一区二区三区四区精品视频| av无码一区二区三区在线| 国产精品手机视频| 国产97区一区二区三区无码| 色呦呦手机在线精品| 99热这里只有精品在线观看| 四虎成人在线视频| 日本人妻丰满熟妇区| AV无码无在线观看免费| 亚洲欧美自拍中文| 在线a网站| 国产亚洲精品资源在线26u| 最近最新中文字幕在线第一页| 国产精品主播| 亚洲欧美色中文字幕| 中文字幕免费视频| 亚洲永久精品ww47国产| 一级不卡毛片| 国产永久无码观看在线| 小蝌蚪亚洲精品国产| 成人国内精品久久久久影院| 人妻无码中文字幕第一区| 亚洲欧美极品| 国产伦精品一区二区三区视频优播| 亚洲精品天堂在线观看| 色综合a怡红院怡红院首页| 香蕉久久国产超碰青草| 99精品在线看| 内射人妻无码色AV天堂| 视频一本大道香蕉久在线播放| 国产成人亚洲综合A∨在线播放| 国产精品手机视频| 色精品视频| 免费一级毛片| 色婷婷成人| 亚洲一级色| 亚洲区欧美区| 精品午夜国产福利观看| 色成人综合| 国产h视频免费观看| 国产亚洲精品自在久久不卡| 重口调教一区二区视频| 亚洲第一区在线| 久久精品丝袜高跟鞋| 国产91小视频在线观看| 无码AV日韩一二三区| 色综合天天综合中文网|