文章目录

  • 前言
  • 一、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注释相关推荐

  1. ns3—— sixth.cc 大概理解

    sixth.cc 总的来说就是下面这么个结构,目的:node0 要向 node1 发送TCP消息. node 0 node 1 +----------------+ +---------------- ...

  2. NS3 seventh.cc为例说明Probe 一

    之所以选择example/tutorial里的seven.cc,是因为在统计数据画图时,不仅仅存在常有的Trace机制如ASCII trace file和PCAP文件,还存在利用GNUPLOT Hel ...

  3. ns-3 third.cc

    示例脚本:[examples/tutorial/third.cc] 用ns-3脚本搭建一个Wi-Fi无线网络 模拟了一个混合场景,包含PPP,CSMA和Wi-Fi 1. 头文件 头文件命名规范:&qu ...

  4. 【NS3】入门笔记(部分) 翻译自ns3-tutorial

    文章目录 NS3-Tutorial Introduction Getting Started Conceptual Overview Key Abstractions Node Application ...

  5. vim关闭下一行也是注释_10分钟教你为自己打造一个专属VIM

    Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享一个前端工作者不得不安装的一些插件,而关于 Vim 的简介,主题的选择,以及为何使用 vi ...

  6. NS3 MyApp Class Reference

    官方文档:MyApp 可以在下面的几个例子找到: examples/tutorial/fifth.cc examples/tutorial/seventh.cc examples/tutorial/s ...

  7. 【网络仿真】ns-3安装与简介

    此篇为学习笔记,课程地址--> 1 2 1 引言 The ns-3 simulator is a discrete-event network simulator targeted primar ...

  8. 修改VMware虚拟机网卡MAC地址的方法总结

    修改MAC地址有两种方法: 一.修改vmx配置文件 修改vmx配置文件的两种方法 1.用文本工具(比如记事本或vi)打开vmx配置文件,然后修改一下几行: ethernet0.generatedAdd ...

  9. 打造一款高逼格的Vim神器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中 ...

最新文章

  1. authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
  2. 机器学习简单代码示例
  3. abap中的弹出窗口函数
  4. android安装python opencv_MacLinux环境在Android Studio中安装OpenCV
  5. 在服务器上使用第三方独立组件对Word/Excel进行编程
  6. MySQL中索引的分类和基本操作
  7. easyui select ajax,easyui的combobox根据后台数据实现自动输入提示功能
  8. Apache Accumulo 1.9.3 发布,高性能 K/V 存储方案
  9. java 等待唤醒机制,Java线程等待唤醒机制
  10. 微信图片显示定位服务器,姚晓雷:通过一张微信图片定位对方具体位置的方法...
  11. 19.SimLogin_case01
  12. Mysql常用操作2
  13. 渠道生意宝android版,生意宝app安卓版
  14. Windows64位安装git
  15. c语言禁忌搜索算法源代码,禁忌搜索算法CC++源代码.pdf
  16. python kdj指标详解_python实现kdj、macd、rsi、bias、willr指标
  17. Edge的新标签页设置
  18. C#实现QQ扫码登录
  19. (LeetCode)Java 求解正则表达式匹配
  20. dev-C++五子棋

热门文章

  1. 让蔡徐坤来教你实现游戏中的帧动画(下)
  2. 从零开始在虚拟机下安装Ubuntu (转)
  3. 基于RISC-V架构的开源处理器及SoC研究综述(一)
  4. 实现:您必须使用微信内置浏览器访问本页面! 的功能
  5. 如何成为一名黑客 from Eric Raymond
  6. C语言零基础速通——函数(7分钟搞懂)
  7. MATLAB | 我用MATLAB制作了一款伪3D第一视角迷宫小游戏
  8. 学习笔记(符号扩展指令:SXTB和SXTH)
  9. 垃圾分类微信小程序——云开发+CMS+微应用+百度智能云图片识别
  10. 洛谷3964 松鼠聚会