首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NS-3嗅探被动ACK

NS-3嗅探被动ACK
EN

Stack Overflow用户
提问于 2017-11-24 21:58:13
回答 1查看 69关注 0票数 0

我正在编辑NS-3中的AODV模块。

当一个节点将数据包转发到下一个节点时,我想让我的AODV模块监听下一个节点的转发过程,以确保它转发正确。

pcap文件正确地嗅探下一个节点的传输,但我无法从AODV模块获得它。

我猜数据包正在被丢弃,因为它不应该涉及到它,因此我想知道如何改变这一点。

谁能给我一些线索,告诉我在哪里可以更改任何相关的代码?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-11-25 05:54:08

窃听可以通过挂接其中一个Wi-Fi设备跟踪源来实现。WifiPhy对象中的MonitorSnifferRx可能就是您想要的。有两个步骤: 1)以某种方式获得指向Wi-Fi Phy的指针,以及2)将回调函数附加到该跟踪源。

步骤1)已经在Aodv的现有方法中完成了大部分:

代码语言:javascript
复制
RoutingProtocol::NotifyInterfaceUp ()
...
// Allow neighbor manager use this interface for layer 2 feedback if possible
Ptr<WifiNetDevice> wifi = dev->GetObject<WifiNetDevice> ();

从这一点,您可以获得一个Phy对象指针:

代码语言:javascript
复制
Ptr<WifiPhy> phy = wifi->GetPhy();

在这里,您将需要使用TraceConnectWithoutContext()来挂钩跟踪源,并使用一个回调,该回调具有与MonitorSniffRx跟踪所需的匹配函数签名。

代码语言:javascript
复制
phy->TraceConnectWithoutContext ("MonitorSniffRx", MakeCallback (&InsertYourCallbackFunctionHere));

看看Mac级别的跟踪源"TxErrHeader“是如何以同样的方法挂接的。

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

https://stackoverflow.com/questions/47474828

复制
相关文章

相似问题

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