• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于NS-3的計(jì)算機(jī)網(wǎng)絡(luò)傳輸實(shí)驗(yàn)教學(xué)方案設(shè)計(jì)

      2023-07-16 08:16:48胡晉彬羅望卿
      軟件導(dǎo)刊 2023年6期
      關(guān)鍵詞:網(wǎng)絡(luò)設(shè)備接收端IP地址

      胡晉彬,羅望卿,王 進(jìn)

      (長(zhǎng)沙理工大學(xué) 計(jì)算機(jī)與通信工程學(xué)院,湖南 長(zhǎng)沙 410114)

      0 引言

      計(jì)算機(jī)網(wǎng)絡(luò)是計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程和通信工程等專業(yè)的基礎(chǔ)課程,具有理論內(nèi)容多、范圍廣和知識(shí)更新速度快的特點(diǎn)。計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)特別注重理論教學(xué)與實(shí)踐操作教學(xué)相結(jié)合,通過(guò)具體的計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)幫助學(xué)生理解和掌握計(jì)算機(jī)網(wǎng)絡(luò)傳輸機(jī)制及其工作原理。然而,現(xiàn)有計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)方案設(shè)計(jì)中很少考慮目前工業(yè)界的實(shí)際網(wǎng)絡(luò)需求變化,具體教學(xué)方案設(shè)計(jì)未采用工業(yè)界實(shí)際部署的網(wǎng)絡(luò)傳輸協(xié)議,使得學(xué)生難以真正了解計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)在實(shí)際工業(yè)環(huán)境應(yīng)用中的需求變化,以及網(wǎng)絡(luò)傳輸協(xié)議在實(shí)際網(wǎng)絡(luò)環(huán)境中部署的具體問(wèn)題和所面臨的實(shí)際挑戰(zhàn)。為了改變這種狀況,教師應(yīng)及時(shí)了解實(shí)際工業(yè)生產(chǎn)環(huán)境中計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迭代和更新,在計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)中將網(wǎng)絡(luò)實(shí)驗(yàn)設(shè)計(jì)與現(xiàn)代工業(yè)生產(chǎn)中的網(wǎng)絡(luò)技術(shù)緊密結(jié)合,設(shè)計(jì)與社會(huì)發(fā)展需求和實(shí)際應(yīng)用相結(jié)合的教學(xué)方案,提高學(xué)生的創(chuàng)新能力和解決實(shí)際工程問(wèn)題的能力,同時(shí)提高學(xué)生的學(xué)習(xí)興趣,促進(jìn)計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教學(xué)的發(fā)展。

      本文以目前工業(yè)界在生產(chǎn)數(shù)據(jù)中心網(wǎng)絡(luò)中實(shí)際部署的網(wǎng)絡(luò)傳輸協(xié)議[1-3]為例,設(shè)計(jì)并實(shí)現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò)傳輸控制的實(shí)驗(yàn)方案,幫助學(xué)生在掌握計(jì)算機(jī)網(wǎng)絡(luò)基本概念和傳輸機(jī)制原理的同時(shí),更深刻地理解網(wǎng)絡(luò)中數(shù)據(jù)包從發(fā)送端經(jīng)過(guò)網(wǎng)絡(luò)中間設(shè)備交換機(jī),再傳輸?shù)浇邮斩说耐暾麄鬏斶^(guò)程。具體來(lái)說(shuō),在NS-3網(wǎng)絡(luò)仿真系統(tǒng)軟件[4]環(huán)境下,學(xué)生通過(guò)C++語(yǔ)言編寫程序搭建網(wǎng)絡(luò)拓?fù)?、輸入網(wǎng)絡(luò)流量、配置路由、部署基于不同擁塞反饋信號(hào)的網(wǎng)絡(luò)傳輸協(xié)議,并測(cè)試實(shí)時(shí)吞吐率和數(shù)據(jù)流完成時(shí)間等網(wǎng)絡(luò)性能[5],以達(dá)到了解網(wǎng)絡(luò)傳輸控制的工作流程和深入理解網(wǎng)絡(luò)傳輸控制原理的目的。

      1 NS-3網(wǎng)絡(luò)仿真系統(tǒng)軟件

      NS-3是基于事件驅(qū)動(dòng)的仿真軟件,具有免費(fèi)的源代碼公共源,可滿足學(xué)術(shù)研究和教學(xué)對(duì)網(wǎng)絡(luò)仿真模擬的需求[6]。在NS-3網(wǎng)絡(luò)仿真環(huán)境中,可以采用C++和Python兩種編程語(yǔ)言編寫程序,其源代碼可以應(yīng)用于Linux、Mac OS、Cygwin和Mingw等不同操作系統(tǒng)。一個(gè)完整的NS-3 模型具有應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層和物理層。與NS-2相比,NS-3在各個(gè)層面都有了很大改進(jìn)。NS-2網(wǎng)絡(luò)仿真系統(tǒng)軟件只支持C語(yǔ)言和OTcl Tool語(yǔ)言,其仿真結(jié)果演示需要通過(guò)網(wǎng)絡(luò)動(dòng)畫模擬器進(jìn)行。此外,NS-2的很多模塊都采用C語(yǔ)言編寫,有些模塊采用OTcl腳本語(yǔ)言編寫,如果只采用C語(yǔ)言而不用OTcl腳本無(wú)法運(yùn)行仿真實(shí)驗(yàn)。然而在NS-3網(wǎng)絡(luò)仿真系統(tǒng)軟件中,所有模擬器均采用C++編寫,具有良好的繼承性和多態(tài)性[6]。學(xué)生在NS-3網(wǎng)絡(luò)仿真系統(tǒng)軟件中可采用C++和Python兩種編程語(yǔ)言編寫程序和模擬腳本,為C++程序生成相應(yīng)的跟蹤文件,還可以靈活地生成跟蹤文件以分析仿真模擬過(guò)程。該軟件還有一些其他特點(diǎn),例如使用IP地址處理節(jié)點(diǎn)端口,更有助于學(xué)生理解傳輸過(guò)程[7]。

      采用NS-3進(jìn)行網(wǎng)絡(luò)仿真實(shí)驗(yàn)一般有4個(gè)步驟:①確定仿真場(chǎng)景;②編寫網(wǎng)絡(luò)仿真腳本配置拓?fù)浜蛻?yīng)用程序;③運(yùn)行模擬實(shí)驗(yàn);④分析仿真數(shù)據(jù)。

      模擬場(chǎng)景由用戶根據(jù)所研究的網(wǎng)絡(luò)場(chǎng)景確定,編寫網(wǎng)絡(luò)仿真程序和腳本可分為6個(gè)步驟:①通過(guò)仿真場(chǎng)景確定拓?fù)浣Y(jié)構(gòu)和所需的仿真模塊,搭建相應(yīng)節(jié)點(diǎn);②通過(guò)仿真場(chǎng)景確定網(wǎng)絡(luò)設(shè)備類型,并根據(jù)拓?fù)浒惭b在相應(yīng)節(jié)點(diǎn)上;③為每個(gè)網(wǎng)絡(luò)設(shè)備部署互聯(lián)網(wǎng)協(xié)議棧并分配IP地址;④通過(guò)模擬場(chǎng)景確定流量模式,利用Application的子類生成相應(yīng)的數(shù)據(jù)包;⑤根據(jù)需要啟動(dòng)相應(yīng)的記錄和跟蹤系統(tǒng),生成數(shù)據(jù)供后期分析仿真結(jié)果;⑥Simulator::Run()函數(shù)啟動(dòng)仿真程序。

      2 實(shí)驗(yàn)方案

      2.1 實(shí)驗(yàn)內(nèi)容

      基于NS-3網(wǎng)絡(luò)仿真系統(tǒng)軟件平臺(tái)構(gòu)建網(wǎng)絡(luò)拓?fù)?,編寫C++程序測(cè)試流完成時(shí)間和實(shí)時(shí)吞吐率,深入理解數(shù)據(jù)包從發(fā)送端通過(guò)交換機(jī)傳輸?shù)浇邮斩说膫鬏斎^(guò)程以及傳輸過(guò)程的擁塞反饋。

      2.2 實(shí)驗(yàn)過(guò)程

      2.2.1 拓?fù)鋭?chuàng)建

      采用數(shù)據(jù)中心廣泛部署的葉—脊(Leaf-Spine)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)[8],其中脊交換機(jī)為核心交換機(jī);葉交換機(jī)為網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的接入層,其承上啟下,連接終端服務(wù)器與核心交換機(jī)。葉—脊網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要解決傳統(tǒng)網(wǎng)絡(luò)拓?fù)錈o(wú)法適應(yīng)數(shù)據(jù)中心流量急劇增加和數(shù)據(jù)中心規(guī)模日益擴(kuò)大而帶來(lái)的數(shù)據(jù)中心高速互聯(lián)要求問(wèn)題。與傳統(tǒng)網(wǎng)絡(luò)架構(gòu)相比,葉—脊網(wǎng)絡(luò)拓?fù)浼軜?gòu)可以降低網(wǎng)絡(luò)傳輸延時(shí)、緩解網(wǎng)絡(luò)流量瓶頸和擴(kuò)展網(wǎng)絡(luò)帶寬。

      本文實(shí)驗(yàn)需搭建一個(gè)擁有2 Leaf和2 Spine的葉—脊拓?fù)浣Y(jié)構(gòu)(發(fā)送端和接收端之間有2條并行路徑)。如圖1所示,拓?fù)浣Y(jié)構(gòu)由兩臺(tái)Spine交換機(jī)S1、S2,兩臺(tái)Leaf交換機(jī)L1、L2和4臺(tái)終端服務(wù)器組成。

      Fig.1 Leaf-spine topology圖1 葉—脊拓?fù)浣Y(jié)構(gòu)

      設(shè)置拓?fù)浜?,配置主機(jī)的IP地址。在算法中,IP地址的分配需要定義Ipv4addressHelper對(duì)象地址;然后通過(guò)IP地址調(diào)用SetBase進(jìn)行網(wǎng)關(guān)與子網(wǎng)掩碼設(shè)置;最后在Assign函數(shù)調(diào)用IP地址的基礎(chǔ)上自10.1.1.1起對(duì)網(wǎng)絡(luò)設(shè)備分配地址。Assign函數(shù)通過(guò)對(duì)網(wǎng)絡(luò)連接關(guān)系進(jìn)行分析得到網(wǎng)絡(luò)上任意兩個(gè)節(jié)點(diǎn)之間的路徑信息,然后將這些數(shù)據(jù)存儲(chǔ)到一個(gè)樹(shù)型結(jié)構(gòu)中,這個(gè)樹(shù)即為網(wǎng)絡(luò)圖。該拓?fù)渖隙喙?jié)點(diǎn)網(wǎng)絡(luò)設(shè)備以這種方式進(jìn)行地址分配時(shí)需要使用Address Assign(devices)進(jìn)行地址分配,而代碼設(shè)置的對(duì)象接口Ipv4InterfaceContainer用于保存和管理成功分配好的IP地址。具體IP地址分配代碼為:

      2.2.2 NS-3 C++程序

      (1)首先添加相應(yīng)模塊的頭文件,具體代碼為:

      然后定義節(jié)點(diǎn)容器nodes,由nodes.get(i)獲取第i個(gè)節(jié)點(diǎn),節(jié)點(diǎn)使用Create()函數(shù)創(chuàng)建節(jié)點(diǎn),具體代碼為:

      最后配置基本參數(shù)node節(jié)點(diǎn)個(gè)數(shù)、servers服務(wù)器個(gè)數(shù)、leaf-spine交換機(jī)個(gè)數(shù)、flow數(shù)量等,具體代碼為:

      (2)確定所需網(wǎng)絡(luò)設(shè)備類型,并根據(jù)第一步設(shè)置好的拓?fù)浣Y(jié)構(gòu)將其分別安裝在相應(yīng)節(jié)點(diǎn)上。編寫代碼定義點(diǎn)對(duì)點(diǎn)鏈接對(duì)象pointToPoint,用于配置網(wǎng)絡(luò)設(shè)備,設(shè)置點(diǎn)對(duì)點(diǎn)通道的鏈路速率,設(shè)置點(diǎn)對(duì)點(diǎn)通道的鏈路延時(shí)。定義好點(diǎn)對(duì)點(diǎn)鏈接對(duì)象后需要定義網(wǎng)絡(luò)設(shè)備容器對(duì)象設(shè)備,用于調(diào)用安裝節(jié)點(diǎn)函數(shù),將對(duì)等網(wǎng)絡(luò)設(shè)備與通道安裝到該節(jié)點(diǎn),網(wǎng)絡(luò)設(shè)備安裝完成后需將其分配到devices。

      (3)為每個(gè)網(wǎng)絡(luò)設(shè)備安裝互聯(lián)網(wǎng)協(xié)議棧并分配IP地址。首先需要安裝Internet協(xié)議棧,在C++中采用代碼InternetstackHelper定義對(duì)象堆棧;然后堆棧調(diào)用節(jié)點(diǎn)安裝函數(shù)為nodes中包含的節(jié)點(diǎn)安裝網(wǎng)絡(luò)協(xié)議棧。實(shí)驗(yàn)過(guò)程中部署數(shù)據(jù)中心網(wǎng)絡(luò)中廣泛應(yīng)用的基于顯式擁塞通知(Explicit Congestion Notification,ECN)標(biāo)記的DCTCP[8-9]傳輸協(xié)議。DCTCP于2010年首次被提出,其是數(shù)據(jù)中心第一個(gè)專用的擁塞控制協(xié)議。DCTCP調(diào)整機(jī)制涉及發(fā)送端、交換機(jī)和接收端,其利用交換機(jī)隊(duì)列長(zhǎng)度信息判斷網(wǎng)絡(luò)擁塞程度,對(duì)超過(guò)一定隊(duì)列長(zhǎng)度閾值的數(shù)據(jù)包標(biāo)記ECN位。當(dāng)接收端接收到ECN標(biāo)記的數(shù)據(jù)包,將相應(yīng)的確認(rèn)包標(biāo)記ECN-echo并發(fā)送到發(fā)送端,發(fā)送端根據(jù)ECN標(biāo)記比例對(duì)發(fā)送窗口進(jìn)行調(diào)整。

      (4)使用Application的子類生成相應(yīng)數(shù)據(jù)包。定義監(jiān)聽(tīng)對(duì)象echoServer,代碼為UdpEchoServerHelper echoServer()。echoServer使用Install(nodes.Get()))安裝echo服務(wù)器程序,安裝成功后返回的echo服務(wù)器程序由serverApps保存。調(diào)用ServerApps設(shè)置ServerApps中包含應(yīng)用程序的開(kāi)始和停止時(shí)間,代碼為serverApps.Start(Seconds(1.0)),serverApps.Stop(Seconds(10.0))。定義被監(jiān)控的客戶端對(duì)象echoClient。獲取服務(wù)器的IP地址,向服務(wù)器端口發(fā)送數(shù)據(jù),并設(shè)置要發(fā)送的最大數(shù)據(jù)包數(shù)量、設(shè)置發(fā)送數(shù)據(jù)包的時(shí)間間隔以及設(shè)置發(fā)送數(shù)據(jù)包的大小,代碼為echo-Client.SetAttribute("MaxPackets",UintegerValue(1));echo-Client.SetAttribute("Interval",TimeValue(Seconds(1.0)));echoClient.SetAttribute("PacketSize",UintegerValue(1024))。調(diào)用Install函數(shù)在節(jié)點(diǎn)上安裝客戶機(jī)應(yīng)用程序,調(diào)用Start函數(shù)設(shè)置應(yīng)用程序啟動(dòng)的秒數(shù),調(diào)用Stop函數(shù)設(shè)置應(yīng)用程序啟動(dòng)的時(shí)間,代碼為clientApps.Start(Seconds(2.0));clientApps.Stop(Seconds(10.0))。

      (5)根據(jù)需要激活相應(yīng)的記錄和跟蹤系統(tǒng),為后續(xù)模擬結(jié)果分析生成數(shù)據(jù),并開(kāi)始模擬實(shí)驗(yàn)。

      2.2.3 測(cè)試與數(shù)據(jù)分析

      運(yùn)行以上C++實(shí)驗(yàn)程序,深入理解傳輸協(xié)議的工作過(guò)程,分析數(shù)據(jù)包如何在網(wǎng)絡(luò)中通過(guò)交換機(jī)從發(fā)送端傳輸?shù)浇邮斩?,并給出流完成時(shí)間和實(shí)時(shí)吞吐率的計(jì)算方法。

      (1)數(shù)據(jù)包傳輸過(guò)程分析。首先要對(duì)是否有數(shù)據(jù)從發(fā)送端發(fā)往接收端進(jìn)行編碼判斷,如果發(fā)包成功,程序需繼續(xù)判斷發(fā)包成功目的IP是否在同一網(wǎng)段中。如果發(fā)包方目的IP與發(fā)包方地址所歸屬的網(wǎng)段一致,程序就會(huì)判斷正確,進(jìn)行編碼,將數(shù)據(jù)包封裝成一幀,再通過(guò)接入層進(jìn)入?yún)R聚層中,經(jīng)過(guò)匯聚層中的網(wǎng)絡(luò)設(shè)備將數(shù)據(jù)包送到目的IP;如果發(fā)包方目的地址與發(fā)包方不在一個(gè)網(wǎng)段中,那么發(fā)包方就會(huì)將數(shù)據(jù)包轉(zhuǎn)送到目的IP,再通過(guò)匯聚層將數(shù)據(jù)包轉(zhuǎn)送到網(wǎng)關(guān)中。如果沒(méi)有收到目的IP,那么該數(shù)據(jù)包將被丟棄;若接收到目的IP,則該數(shù)據(jù)包會(huì)繼續(xù)傳送下去,直至所有數(shù)據(jù)包都收到為止,如此循環(huán)重復(fù)多次即可實(shí)現(xiàn)整個(gè)過(guò)程。最后將數(shù)據(jù)包回傳至目的IP中,選擇轉(zhuǎn)發(fā)路徑及轉(zhuǎn)發(fā)端口,IP包被確認(rèn)后可轉(zhuǎn)發(fā)至下一路由器。IP包在到達(dá)路由器時(shí)先從IP頭讀取目的IP地址并查找路由表,IP包按照路由協(xié)議算法選擇最佳路徑轉(zhuǎn)發(fā)。

      (2)流完成時(shí)間和實(shí)時(shí)吞吐率測(cè)試。流完成時(shí)間是指從發(fā)送第一個(gè)數(shù)據(jù)包至接收最后一個(gè)數(shù)據(jù)包的時(shí)間。用戶通常想讓網(wǎng)頁(yè)搜索、傳輸文件、深度學(xué)習(xí)、數(shù)據(jù)挖掘等業(yè)務(wù)在最短時(shí)間內(nèi)完成,因此流完成時(shí)間成為衡量傳輸性能的重要指標(biāo)[9-11]。從C++程序運(yùn)行后生成的相應(yīng)trace文件中獲取流號(hào)、第一個(gè)數(shù)據(jù)包的發(fā)送時(shí)間和最后一個(gè)數(shù)據(jù)包的接收時(shí)間,然后計(jì)算出一條流的完成時(shí)間。如果需要計(jì)算平均流完成時(shí)間則可編寫腳本計(jì)算所有流的平均時(shí)間[12-13]。網(wǎng)絡(luò)性能的好壞通過(guò)實(shí)時(shí)吞吐率一目了然,統(tǒng)計(jì)一段時(shí)間內(nèi)的數(shù)據(jù)字節(jié)數(shù)量,然后采用Python腳本計(jì)算單位時(shí)間內(nèi)傳輸?shù)淖止?jié)數(shù),即實(shí)時(shí)吞吐率。

      3 結(jié)語(yǔ)

      虛擬實(shí)驗(yàn)教學(xué)完全建立在計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的基礎(chǔ)上,學(xué)生可以在計(jì)算機(jī)上完成整個(gè)教學(xué)過(guò)程。通過(guò)部署目前工業(yè)界實(shí)際應(yīng)用的計(jì)算機(jī)網(wǎng)絡(luò)傳輸協(xié)議,學(xué)生不僅深入了解了數(shù)據(jù)包從發(fā)送端到接收端的傳輸全過(guò)程,學(xué)習(xí)了如何測(cè)試流完成時(shí)間和實(shí)時(shí)吞吐率等網(wǎng)絡(luò)性能指標(biāo),而且了解了計(jì)算機(jī)網(wǎng)絡(luò)傳輸技術(shù)的實(shí)際需求和面臨挑戰(zhàn),提高了研究能力、創(chuàng)新能力、動(dòng)手能力和實(shí)際應(yīng)用能力。后續(xù)可結(jié)合最新計(jì)算機(jī)網(wǎng)絡(luò)傳輸技術(shù),設(shè)計(jì)更符合社會(huì)發(fā)展需求的實(shí)驗(yàn)教學(xué)方案,以進(jìn)一步提高教師教學(xué)水平和學(xué)生學(xué)習(xí)效果。

      猜你喜歡
      網(wǎng)絡(luò)設(shè)備接收端IP地址
      基于擾動(dòng)觀察法的光通信接收端優(yōu)化策略
      頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
      一種設(shè)置在密閉結(jié)構(gòu)中的無(wú)線電能傳輸系統(tǒng)
      新能源科技(2021年6期)2021-04-02 22:43:34
      基于多接收線圈的無(wú)線電能傳輸系統(tǒng)優(yōu)化研究
      一種基于C# 的網(wǎng)絡(luò)設(shè)備自動(dòng)化登錄工具的研制
      鐵路遠(yuǎn)動(dòng)系統(tǒng)幾種組網(wǎng)方式IP地址的申請(qǐng)和設(shè)置
      基于SNMP的IP地址管理系統(tǒng)開(kāi)發(fā)與應(yīng)用
      黑龍江電力(2017年1期)2017-05-17 04:25:16
      數(shù)據(jù)中心唯“快”不破
      基于列車監(jiān)測(cè)網(wǎng)絡(luò)設(shè)備的射頻功放模塊設(shè)計(jì)
      基于三層交換技術(shù)架構(gòu)數(shù)字化校園網(wǎng)絡(luò)設(shè)備的配置與管理
      石城县| 曲麻莱县| 靖安县| 太谷县| 廉江市| 泌阳县| 灵宝市| 中西区| 秦皇岛市| 江永县| 大城县| 长海县| 庐江县| 高安市| 沅江市| 蕲春县| 永福县| 红安县| 西乌珠穆沁旗| 绍兴市| 浦县| 江源县| 江津市| 楚雄市| 孟村| 房山区| 焦作市| 辽阳县| 武城县| 九龙城区| 贵溪市| 井陉县| 吴江市| 喀喇沁旗| 建湖县| 化隆| 沙田区| 韶关市| 隆化县| 汤原县| 永定县|