一、 实验目的
本实验基于NS-3仿真平台,通过多种网络模型建模的设计,使学生掌握信息网络的拓扑建模、移动性建模、信道建模、协议层建模等基本方法。另外,本实验借助Netanim实现仿真网络的可视化,旨在直观地学习和掌握网络的结构和变化过程,以更好地理解信息网络建模与仿真的过程。
二、 实验要求
- 读懂third.cc代码,掌握在NS-3中实现有线网络P2P信道、CSMA信道和无线网络WiFi衰落信道的整体流程,成功运行third.cc的结果。
- 掌握信息网络模型的可视化方法,并讨论分析仿真结果。
- 掌握移动模型建模方法,在third.cc代码中完成对移动模型的替换,例如替换为RandomWaypointMobilityMode移动模型。
- 掌握信道模型建模方法,在third.cc代码中完成对信道模型的替换,例如LogDistancePropagationLossModel信道模型。
- 掌握拓扑模型建立方法,在third.cc代码中增加、删减Wi-Fi节点并设定位置,改变拓扑结构。
- 掌握传输层模型使用方法,修改third.cc中UDP协议发送的数据包数量、时间间隔和数据包大小以及对IP地址的修改,呈现在最后的输出结果中。
- 掌握TCP协议的内容,结合fifth.cc,在third.cc中实现TCP协议传输。
三、信息网络各部分建模描述
1.传输层
UdpEchoServerHelper echoServer (8); //服务器端口号
ApplicationContainer serverApps = echoServer.Install (csmaNodes.Get (2));
serverApps.Start (Seconds (1.0));
serverApps.Stop (Seconds (10.0));
UdpEchoClientHelper echoClient (csmaInterfaces.GetAddress (2), 8);//设定远程服务器的IP地址和端口号
echoClient.SetAttribute ("MaxPackets", UintegerValue (3));
echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));
echoClient.SetAttribute ("PacketSize", UintegerValue (1024));
ApplicationContainer clientApps =
echoClient.Install (wifiStaNodes.Get (3));
clientApps.Start (Seconds (2.0));
clientApps.Stop (Seconds (10.0));
2.网络层
```cpp
//安装协议栈
InternetStackHelper stack;
stack.Install (csmaNodes);
stack.Install (wifiApNode);
stack.Install (wifiStaNodes);
Ipv4AddressHelper address;
address.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer p2pInterfaces;
p2pInterfaces = address.Assign (p2