当前位置: 首页 > news >正文

ns-3仿真_pcap抓取时间太长问题_log打印时间显示5s结束,pcap抓包抓到了10s

  ns3的官方手册很全,相关书籍也是有的,官网先贴在这里:

ns-3 | a discrete-event network simulator for internet systemsa discrete-event network simulator for internet systemshttps://www.nsnam.org/相关的脚本介绍也都有一些:

ns-3.35_wifi-he-network.cc_ns-3网络仿真工具wifi脚本解析_wifi脚本网络拓扑_ns-3wifi6吞吐脚本关键注释_吞吐部分_基础ns-3_ns3.35-CSDN博客

ns-3-model-library wifi 浅析_ns-3wifi部分解析_ns-3网络模拟器wifi部分文档分析_Part1_ns3 wifiphy物理层冲突-CSDN博客

ns-3-model-library wifi 浅析_ns-3wifi部分解析_ns-3网络模拟器wifi部分文档分析_Part2_yansphy-CSDN博客

问题现象

在进行eht吞吐仿真的时候,我进行了时间间隔较短的吞吐测试:

PktLen1000
UdpInterval0.0005
UdpTime0.5
    UdpServerHelper echoServer(9); // 端口9ApplicationContainer serverApps = echoServer.Install(pppNodes.Get(0));serverApps.Start(Seconds(1.0));serverApps.Stop(Seconds(2+UdpTime));for (uint32_t i = 0; i < staNodes.GetN(); ++i){UdpClientHelper client(pppAp1Interfaces.GetAddress(0), 9);client.SetAttribute("MaxPackets", UintegerValue(2127283647));client.SetAttribute("Interval", TimeValue(Seconds(UdpInterval)));client.SetAttribute("PacketSize", UintegerValue(PktLen));ApplicationContainer clientApp = client.Install(staNodes.Get(i));clientApp.Start(Seconds(2));clientApp.Stop(Seconds(2+UdpTime));}

可见如果要是链路没有限制,正常的pcap应该是UDP包从2秒开始到2.5s结束,应该是0.5/0.0005=1000包。

由于我们需要进行的是饱和吞吐的测试,实际产生的数据包的数目当然要多余链路容量,所以pcap抓包数目一定小于这个数值,且是一个2秒开始到2.5s结束的记录。

但事实上抓包发现抓到的太多了——936*1000*8/0.5=14976000 bps的吞吐,就是14Mbps的吞吐,比链路理论速率8.6高得多了。

具体分析

在脚本中添加log,查看udp流量结束时间:

可以看到流量确实是2.5s结束的——吞吐也是合理的7.07M(忽略掉80+80,那个是随意打印的字符串),所以问题就出在pcap上:

 

ns-3里面,UDP流也和正常的iperf类似,包里面是有应用层序号的——此包序号3e7:

可以看到这个是udp产生的第999包——换言之pcap并没有完全的抓取两端包发送完成的时间,而是抓取了全部时间。

其中原因

数据包的产生确实是产生了999包,但是双方在2.5s后就不处理udp了,不过wifi仍然连接,且AP STA的缓冲区都是无限大的,所以2.5s后包还是会进入空气,直到产生的包全部发发送完成,只不过这些包与UDP无关了而已——他们来的,太晚啦。

事实上对于吞吐分析,pcap这里面2.5s以后的内容会让大家产生迷惑——需要更多的注意

相关文章:

  • Kubernetes控制平面组件:Controller Manager详解
  • ByteArrayInputStream 类详解
  • 什么是“系统调用”
  • JS DAY3
  • STM32 PulseSensor心跳传感器驱动代码
  • 【实战教程】React Native项目集成Google ML Kit实现离线水表OCR识别
  • unity TMP字体使用出现乱码方框
  • 【QT】QT中的软键盘设计
  • Java开发者面试实录:微服务架构与Spring Cloud的应用
  • Java面试场景分析:从音视频到安全与风控的技术探讨
  • 查看并升级Docker里面Jenkins的Java17到21版本
  • suna工具调用可视化界面实现原理分析(二)
  • 数据资本化:解锁数字资产价值的证券化与质押融资之路
  • uniapp 云开发全集 云开发的概念
  • 了解巴纳姆效应
  • Redis从入门到实战——实战篇(下)
  • RViz(机器人可视化工具)的配置文件(moveitcpp)
  • spring中spring-boot-configuration-processor的使用
  • AI图片修复工具,一键操作,图片更清晰!
  • gcc/g++用法摘记
  • 五一档7.47亿收官:《水饺皇后》领跑;男观众占比增多
  • 经济日报:以人工智能激活产业新增长
  • 晋城一男子实名举报村支书打伤其67岁父亲,镇政府:案件正在侦办中
  • 韩国前国务总理韩德洙正式宣布参加总统选举
  • 马克思主义理论研究教学名师系列访谈|丁晓强:马克思主义学者要更关注社会现实的需要
  • 苹果手机为何无法在美制造?全球供应链难迁移