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