




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NS-3网络仿真一:实验要求用NS-3仿真某个特定的网络环境,并输出相应的仿真参数(时延,抖动率,吞吐量,丢包率)。二:软件介绍NS-3 是一款全新新的网络模拟器,NS-3并不是NS-2的扩展。虽然二者都由C+编写的,但是NS-3并不支持NS-2的API。NS-2的一些模块已经被移植到了NS-3。在NS-3开发过程时,“NS-3项目”会继续维护NS-2,同时也会研究从NS-2到NS-3的过渡和整合机制。三:实验原理及步骤NS-3是一款离散事件网络模拟驱动器,操作者能够编辑自己所需要的网络拓扑以及网络环境,来模拟一个网络的数据传输,并输出其性能参数。软件中包含很多模块:节点模块(创造节点),移动模块(仿真WIFI,LTE可使用),随机模块(生成随机错误模型),网络模块(不同的通信协议),应用模块(创建packet 数据包以及接受packet数据包),统计模块(输出统计数据,网络性能参数)等等;首先假设一个简单的网络拓扑:两个节点之间使用点对点链路,使用TCP协议进行通信,假设随机错误率为0.00001,节点不可移动(因为不是无线网络),具体代码如下: NodeContainer nodes;nodes.Create (2);创建两个节点;PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute (DataRate, StringValue (5Mbps);pointToPoint.SetChannelAttribute (Delay, StringValue (2ms);设置链路的传输速率为5Mbps,时延为2ms;NetDeviceContainer devices;devices = pointToPoint.Install (nodes);为每个节点添加网络设备Ptrem=CreateObject ();em-SetAttribute(ErrorRate,DoubleValue(0.00001);devices.Get(1)-SetAttribute(ReceiveErrorModel,PointerValue (em);创建一个错误模型,讲错误率设置为0.00001,仿真TCP协议的重传机制。InternetStackHelper stack;stack.Install (nodes);为每个节点安装协议栈;Ipv4AddressHelper address;address.SetBase (10.1.1.0, 255.255.255.252);Ipv4InterfaceContainer interfaces = address.Assign (devices);为每个节点的网络设备添加IP地址;这样一个简单的网络拓扑就建立完成。接下来就是为这个网络节点添加应用程序,让他们在这个网络中模拟传输数据,具体代码如下:uint16_t sinkPort = 8080;Address sinkAddress (InetSocketAddress (interfaces.GetAddress (1), sinkPort);PacketSinkHelper packetSinkHelper (ns3:TcpSocketFactory, InetSocketAddress (Ipv4Address:GetAny (), sinkPort);ApplicationContainer sinkApps = packetSinkHelper.Install (nodes.Get (1);sinkApps.Start (Seconds (0.);sinkApps.Stop (Seconds (10.);将接受数据的应用程序设置在Node.Get(1)节点上,端口设置为8080;程序起始时间为0s,终止时间为10s;Ptr app = CreateObject ();app-Setup (ns3TcpSocket, sinkAddress, 1040, 1000, DataRate (1Mbps);nodes.Get (0)-AddApplication (app);app-SetStartTime (Seconds (1.);app-SetStopTime (Seconds (10.);将发送数据的应用程序设置在Node.Get(0);发送起始时间为1s;结束时间为10s;这样网络拓扑和节点之间应用程序的设定已完成,接下来就是应用统计模块,输出节点之间具体通信性能的参数,及时延,吞吐量,抖动率,丢包率;NS-3中,有一个回调机制,方便我们来输出具体某个条件发生改变时就自动执行某个函数,回调的实现是TraceConnectWithoutContext函数,举个例子,在我的时延仿真中,输出时延的代码我是这样写的:static voidCalculateDelay (Ptrp,const Address &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();首先定义一个时延的计算函数,是全局变量函数;其次在main函数中使用回调机制:sinkApps.Get(0)-TraceConnectWithoutContext(Rx, MakeCallback(&CalculateDelay);含义就是当接受端节点每收到一个TCP包,就会执行一次CalculateDelay函数,计算这个数据包在网络中传输的时延,并输出;这样就完成了程序的编写;接下来就是输出具体数据:在终端打开,到指定的文件夹中,输入./waf -run scratch/delay delay.dat 2&1按指定格式输出.dat文件之后,再在终端用GNUPLOT来作出.dat文件中的图形即可:下面用同样的拓扑,应用程序以及同样的错误模型仿真输出TCP拥塞窗口值随时间的变化,抖动率,丢包率,吞吐量: 拥塞窗口随时间的变化:丢包率抖动率吞吐量在仿真结果中我们可以看到:当网络传输出现差错传输,导致链路拥塞,使得拥塞窗口值陡然降低,致使链路的时延变大,抖动率变化也比较明显,吞路量也变小。下面进行WIFI环境下的网络吞吐量的仿真:拓扑的建立和之前的建立方式大同小异,主要是WIFI多了移动模型的添加,为一个节点添加移动模型的代码如下:MobilityHelper mobility1;mobility1.SetPositionAllocator (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=100), Bounds, RectangleValue (Rectangle (-100, 100, -100, 100);mobility1.Install (wifiStaNodes.Get (0);这样这个节点就能够随机移动,仿真WIFI下用户随机移动的特点;仿真的拓扑图如下:由于节点的移动导致离AP节点的距离不同,因此信道是不断变化的,所以吞吐量也是不断变化的,再次情况下仿真出来的吞吐量如下:由此可见:链路的吞吐量没有点对点链路那么平整,变化稍微大一点;四:实验总结经过这次实验,我体会到其实不管做什么事,只要坚持,并且冷静去寻找解决问题的途径,就能解决所有问题。这次实验实际来说给的时间并不多,两星期不到,我一开始选择了第四个题目,一个全新的东西,一开始看书,什么都看不明白,不过幸好用的语言是c+,这是唯一幸运的东西。另外NS-3要求在linux系统下运行,我就赶紧找linux安装教程,之前用过虚拟机,但是特别卡。之后关于NS-3的安装,挺顺利,没有什么差错。接下来就是NS-3软件的学习了,由于NS-3比较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成立咨询公司避税方案
- 城市工业棕地景观活力提升的策略与方法
- 植物奶营销策划方案
- 债务法律咨询方案
- 跨境箱包配饰电商直播运营技术解决方案报告
- 跨境箱包配饰电商2025年直播营销渠道拓展与整合策略报告
- 职业病应急预案桌面演练
- 上海商住楼营销方案
- 二次供水应急预案范本
- 校园无底线营销食品方案
- 铸剑先生行为分析技术
- 发展汉语初级口语1:第1课你好
- 基因工程(含有动画)课件
- 公路养护知识培训-讲义课件
- 药品经营质量风险分析评估报告
- 现场踏勘情况记录表
- 道亨铁塔长短腿基础配置系统-操作说明
- 秋冬季呼吸道传染病预防知识讲座课件
- 小学科学苏教四年级上册1单元动物大家族2《鱼类》教案
- 一氧化碳中毒急救PPT课件(PPT 43页)
- JIS G4305-2021 冷轧不锈钢板材、薄板材和带材
评论
0/150
提交评论