NS3 sixth.cc注释
文章目录
- 前言
- 一、sixth.cc
- 二、运行结果
- 总结
前言
NS3 sixth.cc注释
最近在学NS3,tutorial的1-4代码注释都有很多帖子,但是5、6缺很少。所以贴一下查找后的代码及注释
主要参考官方tutorial的第8章。
本人缺乏相关的理论和代码基础,所有不太准确,望理解。
fifth.cc注释见:fifth.cc
网络分析可参考:ns-3中两个常用的网络分析工具——TcpDump和Wireshark
Tracing可参考:Tracing
一、sixth.cc
代码如下(仅显示main函数,其他与fifth.cc相同):
//4.主函数
int
main (int argc, char *argv[])
{CommandLine cmd (__FILE__); cmd.Parse (argc, argv); //读取命令行参数//5.创建网络拓扑NodeContainer nodes;nodes.Create (2);PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));NetDeviceContainer devices;devices = pointToPoint.Install (nodes);//引入ErrorModel模型:RateErrorModelPtr<RateErrorModel> em = CreateObject<RateErrorModel> ();em->SetAttribute ("ErrorRate", DoubleValue (0.00001));devices.Get (1)->SetAttribute ("ReceiveErrorModel", PointerValue (em));//6.安装TCP/IP协议栈InternetStackHelper stack;stack.Install (nodes);Ipv4AddressHelper address; //分配IPaddress.SetBase ("10.1.1.0", "255.255.255.252");Ipv4InterfaceContainer interfaces = address.Assign (devices);uint16_t sinkPort = 8080; //设置socket端口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 (20.));//创建socket连接Ptr<Socket> ns3TcpSocket = Socket::CreateSocket (nodes.Get (0), TcpSocketFactory::GetTypeId ());//7.安装应用程序 实例化应用程序,手动创建安装Ptr<MyApp> app = CreateObject<MyApp> (); //创建MyAPPapp->Setup (ns3TcpSocket, sinkAddress, 1040, 1000, DataRate ("1Mbps"));
//socket,地址,数据量,事件数,数据速率nodes.Get (0)->AddApplication (app);//应用程序添加到节点中app->SetStartTime (Seconds (1.));app->SetStopTime (Seconds (20.));//cwnd输出到ascii文件AsciiTraceHelper asciiTraceHelper;Ptr<OutputStreamWrapper> stream = asciiTraceHelper.CreateFileStream ("sixth.cwnd");ns3TcpSocket->TraceConnectWithoutContext ("CongestionWindow", MakeBoundCallback (&CwndChange, stream));//数据包输出到pcap文件PcapHelper pcapHelper;Ptr<PcapFileWrapper> file = pcapHelper.CreateFile ("sixth.pcap", std::ios::out, PcapHelper::DLT_PPP);devices.Get (1)->TraceConnectWithoutContext ("PhyRxDrop", MakeBoundCallback (&RxDrop, file));//8.启动与结束Simulator::Stop (Seconds (20));Simulator::Run ();Simulator::Destroy ();return 0;
}
二、运行结果
生成的文件:
sixth.cwnd
sixth.pcap (Wireshark打开)
总结
以上即sixth.cc
NS3 sixth.cc注释相关推荐
- ns3—— sixth.cc 大概理解
sixth.cc 总的来说就是下面这么个结构,目的:node0 要向 node1 发送TCP消息. node 0 node 1 +----------------+ +---------------- ...
- NS3 seventh.cc为例说明Probe 一
之所以选择example/tutorial里的seven.cc,是因为在统计数据画图时,不仅仅存在常有的Trace机制如ASCII trace file和PCAP文件,还存在利用GNUPLOT Hel ...
- ns-3 third.cc
示例脚本:[examples/tutorial/third.cc] 用ns-3脚本搭建一个Wi-Fi无线网络 模拟了一个混合场景,包含PPP,CSMA和Wi-Fi 1. 头文件 头文件命名规范:&qu ...
- 【NS3】入门笔记(部分) 翻译自ns3-tutorial
文章目录 NS3-Tutorial Introduction Getting Started Conceptual Overview Key Abstractions Node Application ...
- vim关闭下一行也是注释_10分钟教你为自己打造一个专属VIM
Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享一个前端工作者不得不安装的一些插件,而关于 Vim 的简介,主题的选择,以及为何使用 vi ...
- NS3 MyApp Class Reference
官方文档:MyApp 可以在下面的几个例子找到: examples/tutorial/fifth.cc examples/tutorial/seventh.cc examples/tutorial/s ...
- 【网络仿真】ns-3安装与简介
此篇为学习笔记,课程地址--> 1 2 1 引言 The ns-3 simulator is a discrete-event network simulator targeted primar ...
- 修改VMware虚拟机网卡MAC地址的方法总结
修改MAC地址有两种方法: 一.修改vmx配置文件 修改vmx配置文件的两种方法 1.用文本工具(比如记事本或vi)打开vmx配置文件,然后修改一下几行: ethernet0.generatedAdd ...
- 打造一款高逼格的Vim神器
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中 ...
最新文章
- authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
- 机器学习简单代码示例
- abap中的弹出窗口函数
- android安装python opencv_MacLinux环境在Android Studio中安装OpenCV
- 在服务器上使用第三方独立组件对Word/Excel进行编程
- MySQL中索引的分类和基本操作
- easyui select ajax,easyui的combobox根据后台数据实现自动输入提示功能
- Apache Accumulo 1.9.3 发布,高性能 K/V 存储方案
- java 等待唤醒机制,Java线程等待唤醒机制
- 微信图片显示定位服务器,姚晓雷:通过一张微信图片定位对方具体位置的方法...
- 19.SimLogin_case01
- Mysql常用操作2
- 渠道生意宝android版,生意宝app安卓版
- Windows64位安装git
- c语言禁忌搜索算法源代码,禁忌搜索算法CC++源代码.pdf
- python kdj指标详解_python实现kdj、macd、rsi、bias、willr指标
- Edge的新标签页设置
- C#实现QQ扫码登录
- (LeetCode)Java 求解正则表达式匹配
- dev-C++五子棋