首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ns3如何在协议层实现处理延迟?

ns3如何在协议层实现处理延迟?
EN

Stack Overflow用户
提问于 2022-10-12 04:07:56
回答 1查看 17关注 0票数 0

我刚开始阅读ns3的源代码。我从first.cc示例开始,然后在发送数据包之后进入udp-echo-client.cc -> ipv4 4-原始套接字- -> ipv4 4-interface.cc ->流量控制层。

我发现上层在事件处理过程中直接调用下层的发送方法,而不是调度另一个事件。那么ns3如何在协议层内实现处理延迟呢?例如,UDP层在将数据包发送到IP层之前接受10 to的处理。

对不起,如果我的问题是愚蠢的。任何指向正确的方向来理解ns3设计将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-12 14:13:02

通常,ns-3不为发送/接收/转发数据包的处理延迟建模.有一些例外,如LTE/NR系统中的MAC到PHY延迟,以及一些专门的模型,如DOCSIS,但TCP/IP堆栈和Wi没有内置的可配置处理延迟能力。

但是,可以将处理延迟插入到许多模型中,方法是将接收堆栈中的相关点定位为接收堆栈中的相关点,并将直接方法调用重构为调度的(具有延迟的)调用。例如,要在UDP接收路径中插入处理延迟,可以使用如下语句:

代码语言:javascript
复制
(*endPoint)->ForwardUp(packet->Copy(), header, udpHeader.GetSourcePort(), interface);

并将其包装在一个方法中,如:

代码语言:javascript
复制
Simulator::Schedule (MicroSeconds (10), &UdpL4Protocol::ForwardUpAfterDelay, this, packet->Copy (), header, udpHeader.GetSourcePort ());

此外,将10 us的神奇数字更改为可配置的时间属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74036384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档