ns-3网络仿真

  • 格式:pdf
  • 大小:392.07 KB
  • 文档页数:8

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;

4

1

1

2

201628NetDeviceContainer 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.));

4

1

1

2

201628app->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() << std::endl; m = p->GetUid();}首先定义一个时延的计算函数,是全局变量函数;其次在main函数中使用回调机制:sinkApps.Get(0)->TraceConnectWithoutContext("Rx", MakeCallback(&CalculateDelay));含义就是当接受端节点每收到一个TCP包,就会执行一次CalculateDelay函数,计算这个数据包在网络中传输的时延,并输出;这样就完成了程序的编写;接下来就是输出具体数据:在终端打开,到指定的文件夹中,输入./waf --run scratch/delay >delay.dat 2>&1按指定格式输出.dat文件之后,再在终端用GNUPLOT来作出.dat文件中的图形即可:

4

1

1

2

201628下面用同样的拓扑,应用程序以及同样的错误模型仿真输出TCP拥塞窗口值随时间的变化,抖动率,丢包率,吞吐量:

拥塞窗口随时间的变化: 以上

材,深入

纳入学习内容

克思主义立场观

情怀、务实思想作

“五位一体”总体布局、

深刻内涵和要求。要着重学

、科学发展、和谐发展。 (三)

新要求,坚持以知促行、知行合一

德、有品行,讲奉献、有作为的合格党员

想信念时时处处体现为行动的力量;坚定正确

针政策看齐,认真贯彻省委、市委决策部署,做

产党员永远是劳动人民的普通一员,密切联系群众,

,心存敬畏、手握戒尺,廉洁从政、从严治家,带头弘扬社

,筑牢拒腐防变的防线;始终保持干事创业、开拓进取的精气神

险时候豁得出,在XX事业“十三五”规划开局起步、“决胜全面小

”中奋发有为、建功立业。 全体党员要坚持学做结合,坚

念,牢固树立党的意识、党员意识,强化党的宗旨意识,积极践行社会主义

稳定实践中建功立业。 县处级以上党员领导干部要学做结合,对照习近平总书

个必须”等重要论述,认真践行“三严三实”要求和好干部标准,带头坚定理想信

和政治规矩,带头牢固树立和贯彻落实五大发展理念,带头攻坚克难、敢于担当,

党责任。 三、主要措施 (一)开展“两重温两对照”主题党日活动。4月底前,结

以党支部为单位开展一次主题党日活动,组织党员重温入党志愿、重温入党誓词,

、谈信念,对照入党誓词找标准、找差距。党支部书记作学习动员,领导干部带头

温入党志愿和入党誓词,交流思想体会。 (二)开展“三个

中心组形式,定期组织集中学习,每次确定1个专题开展交流研讨。按照“三会一

组每月底组织一次党员集中学习。支部每季度召开一次全体党员会议,分别围绕“

治方向”、“坚持根本宗旨,敢于担当作为”、“坚守纪律底线,树立清风正气

每个专题集中学习讨论不得少于1天。 (三)开展“四个讲党课”。党支部要结合

“四个讲党课”要求,开展党组班子成员到联系区县XX局带头讲党课,局党组书记

记给支部党员讲党课,邀请党校教师、专家学者给党员干部讲党课,鼓励普通党

党章党规、学系列 讲话,做合格党员”学习教育实施方案 党中央决定,2

、学系列讲话,做合格党员”学习教育(以下简称“两学一做”学习教

党员中开展“学党章党规、学系列讲话,做合格党员”学习教育方

办公室关于印发〈关于在全市党员中开展“学党章党规、学系

(XX委办〔2016〕28号),结合我局实际,现制定如下实

“两学一做”学习教育,基础

重要讲话,全面贯彻落实党的十八大和十八届三中

践活动和“三严三实”专题教育成果;要突出

持学用结合、创先争优,进一步强化宗旨

对问题改,进一步坚持问题导向,注重

领导带头、以上率下,为协调推进

良好开局和“决胜全面小康、

党党章,明确做合格党员

党内法规,尊崇党

用好红色教育

、守纪律目标格丢包率

抖动率 处级以上

教材,深入

》纳入学习内容

的马克思主义立场观

情怀、务实思想作

路、“五位一体”总体布局、

面的深刻内涵和要求。要着重学

展、科学发展、和谐发展。 (三)

新要求,坚持以知促行、知行合一

讲道德、有品行,讲奉献、有作为的合格党员

把理想信念时时处处体现为行动的力量;坚定正确

线方针政策看齐,认真贯彻省委、市委决策部署,做

记共产党员永远是劳动人民的普通一员,密切联系群众,

,心存敬畏、手握戒尺,廉洁从政、从严治家,带头弘扬社

德,筑牢拒腐防变的防线;始终保持干事创业、开拓进取的精气神

危险时候豁得出,在XX事业“十三五”规划开局起步、“决胜全面小

”中奋发有为、建功立业。 全体党员要坚持学做结合,坚

念,牢固树立党的意识、党员意识,强化党的宗旨意识,积极践行社会主义

展稳定实践中建功立业。 县处级以上党员领导干部要学做结合,对照习近平总书

五个必须”等重要论述,认真践行“三严三实”要求和好干部标准,带头坚定理想信

律和政治规矩,带头牢固树立和贯彻落实五大发展理念,带头攻坚克难、敢于担当,

党责任。 三、主要措施 (一)开展“两重温两对照”主题党日活动。4月底前,结

,以党支部为单位开展一次主题党日活动,组织党员重温入党志愿、重温入党誓词,

、谈信念,对照入党誓词找标准、找差距。党支部书记作学习动员,领导干部带头

温入党志愿和入党誓词,交流思想体会。 (二)开展“三个

组中心组形式,定期组织集中学习,每次确定1个专题开展交流研讨。按照“三会一

组每月底组织一次党员集中学习。支部每季度召开一次全体党员会议,分别围绕“

政治方向”、“坚持根本宗旨,敢于担当作为”、“坚守纪律底线,树立清风正气

每个专题集中学习讨论不得少于1天。 (三)开展“四个讲党课”。党支部要结合

“四个讲党课”要求,开展党组班子成员到联系区县XX局带头讲党课,局党组书记