我试图在NS3实验中捕获数据包 .
我使用 PointToPointHelper 来使用pcap . 并且,它可以捕获正常的数据包 .
PointToPointHelper pointToPoint;
pointToPoint.EnablePcap ("Host", (hosts.Get(0))->GetDevice(1));
但是,它无法捕获我故意丢弃的数据包 .
我在RouteInput方法中删除了数据包 . 我只是简单地 return false 丢弃数据包 .
RouteInput(Ptr<Packet> p, Ipv4Header &header, Ptr<const NetDevice> idev, UnicastForwardCallback ucb, MulticastForwardCallback mcb, LocalDeliverCallback lcb, ErrorCallback ecb) {
...
return false;
}
我发现pcap没有捕获丢弃的数据包 .
虽然这个数据包是故意被交换机丢弃的,但它确实来到了交换机 . 所以,我想通过pcap捕获数据包 .
有没有办法可以捕获故意丢弃的数据包?
1 回答
如果不能使用pcap文件,NS3也会生成带有d操作的.tr文件,这意味着数据包被丢弃 .