文档介绍:精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 1 页
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协议进行通信,,节点不可移动(因为不是无线网络),具体代码如下: NodeContainer nodes;
(2);
创建两个节点;
PointToPointHelper pointToPoint;
("DataRate", StringValue ("5Mbps"));
("Delay", StringValue ("2ms"));
设置链路的传输速率为5Mbps,时延为2ms;
精品文档,仅供学习与交流,如有侵权请联系网站删除
【精品文档】第 2 页
NetDeviceContainer devices;
devices = (nodes);
为每个节点添加网络设备
Ptr<RateErrorModel>em=CreateObject<RateErrorModel> ();
em->SetAttribute("ErrorRate",DoubleValue());
(1)->SetAttribute("ReceiveErrorModel",PointerValue (em));
创建一个错误模型,,仿真TCP协议的重传机制。
InternetStackHelper stack;
(nodes);
为每个节点安装协议栈;
Ipv4AddressHelper address;
("", "");
Ipv4InterfaceContainer interfaces = (devices);
为每个节点的网络设备添加IP地址;
这样一个简单的网络拓扑就建立完成。
接下来