ns-3網(wǎng)絡(luò)仿真_第1頁(yè)
ns-3網(wǎng)絡(luò)仿真_第2頁(yè)
ns-3網(wǎng)絡(luò)仿真_第3頁(yè)
ns-3網(wǎng)絡(luò)仿真_第4頁(yè)
ns-3網(wǎng)絡(luò)仿真_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精品文檔隨意編輯NS-3網(wǎng)絡(luò)仿真一:實(shí)驗(yàn)要求用NS-3仿真某個(gè)特定的網(wǎng)絡(luò)環(huán)境,并輸出相應(yīng)的仿真參數(shù)(時(shí)延,抖動(dòng)率,吞吐量,丟 包率)。二:軟件介紹NS-3是一款全新新的網(wǎng)絡(luò)模擬器,NS-3并不是NS-2的擴(kuò)展。雖然二者都由C+編寫 的,但是NS-3并不支持NS-2的API。NS-2的一些模塊已經(jīng)被移植到了NS-3。在NS-3開 發(fā)過程時(shí),“-N項(xiàng)目”會(huì)繼續(xù)維護(hù)NS-2,同時(shí)也會(huì)研究從NS-2到NS-3的過渡和整合機(jī) 制。三:實(shí)驗(yàn)原理及步驟NS-3是一款離散事件網(wǎng)絡(luò)模擬驅(qū)動(dòng)器,操作者能夠編輯自己所需要的網(wǎng)絡(luò)拓?fù)湟约熬W(wǎng)絡(luò) 環(huán)境,來模擬一個(gè)網(wǎng)絡(luò)的數(shù)據(jù)傳輸,并輸出其性能參數(shù)。軟件中包含很多模塊:節(jié)點(diǎn)模

2、塊(創(chuàng)造節(jié)點(diǎn)),移動(dòng)模塊(仿真WIFI,LTE可使用),隨機(jī)模塊(生成隨機(jī)錯(cuò)誤模型) ,網(wǎng)絡(luò)模塊(不同的通信協(xié)議) ,應(yīng)用模塊(創(chuàng)建packet數(shù) 據(jù)包以及接受packet數(shù)據(jù)包),統(tǒng)計(jì)模塊(輸出統(tǒng)計(jì)數(shù)據(jù),網(wǎng)絡(luò)性能參數(shù))等等;首先假設(shè)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)拓?fù)洌?兩個(gè)節(jié)點(diǎn)之間使用點(diǎn)對(duì)點(diǎn)鏈路, 使用TCP協(xié)議進(jìn)行通信, 假設(shè)隨機(jī)錯(cuò)誤率為0.00001,節(jié)點(diǎn)不可移動(dòng)(因?yàn)椴皇菬o(wú)線網(wǎng)絡(luò)) ,具體代碼如下:NodeContainer nodes;nodes.Create (2);精品文檔隨意編輯創(chuàng)建兩個(gè)節(jié)點(diǎn);PointToPointHelper pointToPoint; pointToPoint.SetDe

3、viceAttribute (DataRate, StringValue(5Mbps); pointToPoint.SetChannelAttribute (Delay, StringValue (2ms);設(shè)置鏈路的傳輸速率為5Mbps,時(shí)延為2ms;NetDeviceContainer devices;devices = pointToPoint.Install (nodes);為每個(gè)節(jié)點(diǎn)添加網(wǎng)絡(luò)設(shè)備Ptrem=CreateObject ();em-SetAttribute(ErrorRate,DoubleValue(0.00001);devices.Get(1)-SetAttribute

4、(ReceiveErrorModel,PointerValue (em);創(chuàng)建一個(gè)錯(cuò)誤模型,講錯(cuò)誤率設(shè)置為0.00001,仿真TCP協(xié)議的重傳機(jī)制。InternetStackHelper stack;stack.Install (nodes);為每個(gè)節(jié)點(diǎn)安裝協(xié)議棧;Ipv4AddressHelper address; address.SetBase (10.1.1.0, 255.255.255.252);Ipv4InterfaceContainer interfaces = address.Assign (devices);為每個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)設(shè)備添加IP地址; 這樣一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)拓?fù)渚徒⑼瓿伞?/p>

5、接下來就是為這個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)添加應(yīng)用程序,讓他們?cè)谶@個(gè)網(wǎng)絡(luò)中模擬傳輸數(shù)據(jù),具體代碼如下:uint16_t sinkPort = 8080;Address sinkAddress (InetSocketAddress (interfaces.GetAddress (1), sinkPort);PacketSinkHelper packetSinkHelper (ns3:TcpSocketFactory, InetSocketAddress(Ipv4Address:GetAny (), sinkPort);ApplicationContainer sinkApps = packetSinkHelper

6、.Install (nodes.Get (1);精品文檔隨意編輯sinkApps.Start (Seconds (0.);sinkApps.Stop (Seconds (10.);將接受數(shù)據(jù)的應(yīng)用程序設(shè)置在Node.Get(1)節(jié)點(diǎn)上,端口設(shè)置為8080;程序起始時(shí)間為Os,終止時(shí)間為10s;Ptr app = CreateObject ();app-Setup (ns3TcpSocket, sinkAddress, 1040, 1000, DataRate (1Mbps);nodes.Get (0)-AddApplication (app);app-SetStartTime (Seconds

7、 (1.);app-SetStopTime (Seconds (10.);將發(fā)送數(shù)據(jù)的應(yīng)用程序設(shè)置在Node.Get(O);發(fā)送起始時(shí)間為1s;結(jié)束時(shí)間為10s;這樣網(wǎng)絡(luò)拓?fù)浜凸?jié)點(diǎn)之間應(yīng)用程序的設(shè)定已完成,接下來就是應(yīng)用統(tǒng)計(jì)模塊,輸出節(jié)點(diǎn) 之間具體通信性能的參數(shù),及時(shí)延,吞吐量,抖動(dòng)率,丟包率;NS-3中,有一個(gè)回調(diào)機(jī)制,方便我們來輸出具體某個(gè)條件發(fā)生改變時(shí)就自動(dòng)執(zhí)行某個(gè)函 數(shù),回調(diào)的實(shí)現(xiàn)是TraceConnectWithoutContext函數(shù),舉個(gè)例子,在我的時(shí)延仿真中,輸 出時(shí)延的代碼我是這樣寫的:static voidCalculateDelay (Ptrp,const Address

8、 &address)static float k = 0;k+;static float m = -1;static float n = 0;精品文檔隨意編輯n += (p-GetUid() - m)/2-1;delayJitter.RecordRx(p);Time t = delayJitter.GetLastDelay();std:cout Simulator:Now ().GetSeconds () t t.GetMilliSeconds()GetUid();首先定義一個(gè)時(shí)延的計(jì)算函數(shù),是全局變量函數(shù); 其次在main函數(shù)中使用回調(diào)機(jī)制:sinkApps.Get(0)-Trace

9、ConnectWithoutContext(Rx,MakeCallback(&CalculateDelay);含義就是當(dāng)接受端節(jié)點(diǎn)每收到一個(gè)TCP包,就會(huì)執(zhí)行一次CalculateDelay函數(shù),計(jì)算這 個(gè)數(shù)據(jù)包在網(wǎng)絡(luò)中傳輸?shù)臅r(shí)延,并輸出;這樣就完成了程序的編寫;接下來就是輸出具體數(shù)據(jù): 在終端打開,到指定的文件夾中,輸入./waf -run scratch/delay delay.dat 2&1按指定格式輸出.dat文件之后,再在終端用GNUPLOT來作出.dat文件中的圖形即可:精品文檔隨意編輯F面用同樣的拓?fù)洌瑧?yīng)用程序以及同樣的錯(cuò)誤模型仿真輸出TCP擁塞窗口值隨時(shí)間的變1

10、600014UUC120001000080006000400020000123化,抖動(dòng)率,丟包率,吞吐量:cwrid& g io精品文檔隨意編輯擁塞窗口隨時(shí)間的變化:精品文檔隨意編輯抖動(dòng)率精品文檔隨意編輯吞吐量 在仿真結(jié)果中我們可以看到:當(dāng)網(wǎng)絡(luò)傳輸出現(xiàn)差錯(cuò)傳輸,導(dǎo)致鏈路擁塞,使得擁塞窗口 值陡然降低,致使鏈路的時(shí)延變大,抖動(dòng)率變化也比較明顯,吞路量也變小。下面進(jìn)行WIFI環(huán)境下的網(wǎng)絡(luò)吞吐量的仿真:拓?fù)涞慕⒑椭暗慕⒎绞酱笸‘悾饕荳IFI多了移動(dòng)模型的添加,為一個(gè)節(jié)點(diǎn) 添加移動(dòng)模型的代碼如下:MobilityHelper mobility1;mobility1.SetPosit

11、ionAllocator (ns3:RandomDiscPositionAllocator,X, StringValue (0.0),Y, StringValue (0.0),Rho, StringValue(ns3:UniformRandomVariableMin=0|Max=20);mobility1.SetMobilityModel (ns3:RandomWalk2dMobilityModel,Mode,StringValue (Time),Time,StringValue (2s),Speed,StringValue(ns3:ConstantRandomVariableConstant

12、=100),Bounds, RectangleValue (Rectangle (-100, 100,-100, 100);mobility1.Install (wifiStaNodes.Get (0);精品文檔隨意編輯H2O-50050Zoom: 1.428: Speed: 1.000AITTime: 3.500000 sSnapshot Shell Simulate (F3) Adva need這樣這個(gè)節(jié)點(diǎn)就能夠隨機(jī)移動(dòng),仿真WIFI下用戶隨機(jī)移動(dòng)的特點(diǎn);仿真的拓?fù)鋱D如下:由于節(jié)點(diǎn)的移動(dòng)導(dǎo)致離AP節(jié)點(diǎn)的距離不同, 因此信道是不斷變化的, 所以吞吐量也是不 斷變化的,再次情況下仿真出來的吞吐

13、量如下:-40H60WOO精品文檔隨意編輯由此可見:鏈路的吞吐量沒有點(diǎn)對(duì)點(diǎn)鏈路那么平整,變化稍微大一點(diǎn);四:實(shí)驗(yàn)總結(jié)經(jīng)過這次實(shí)驗(yàn),我體會(huì)到其實(shí)不管做什么事,只要堅(jiān)持,并且冷靜去尋找解決問題的途 徑,就能解決所有問題。這次實(shí)驗(yàn)實(shí)際來說給的時(shí)間并不多,兩星期不到,我一開始選擇了 第四個(gè)題目,一個(gè)全新的東西,一開始看書,什么都看不明白,不過幸好用的語(yǔ)言是C+,這是唯一幸運(yùn)的東西。另外NS-3要求在linux系統(tǒng)下運(yùn)行,我就趕緊找linux安裝教程,之 前用過虛擬機(jī),但是特別卡。之后關(guān)于NS-3的安裝,挺順利,沒有什么差錯(cuò)。接下來就是NS-3軟件的學(xué)習(xí)了,由于NS-3比較新,國(guó)內(nèi)的教材很少,但在網(wǎng)上搜索的時(shí)候,發(fā)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論