2017-09-08 270 views
0

我试图捕获NS3实验中的数据包。如何在NS3中使用PointToPointHelper来丢弃数据包

我用PointToPointHelper使用pcap。 而且,它可以捕获正常的数据包。

PointToPointHelper pointToPoint; 
pointToPoint.EnablePcap ("Host", (hosts.Get(0))->GetDevice(1)); 

但是,它无法捕获我故意丢弃的数据包。

我丢弃了RouteInput方法中的数据包。 而我只是简单地返回假丢弃数据包。

RouteInput(Ptr<Packet> p, Ipv4Header &header, Ptr<const NetDevice> idev, UnicastForwardCallback ucb, MulticastForwardCallback mcb, LocalDeliverCallback lcb, ErrorCallback ecb) { 
... 
return false; 
} 

我发现pcap没有捕获丢弃的数据包。

尽管数据包被交换机故意丢弃,但它确实来到了交换机。所以,我希望数据包能够被pcap捕获。

有没有一种方法可以捕获故意丢弃的数据包?

回答

0

如果不能与pcap文件一起工作,NS3也会生成一个带有d操作的.tr文件,这意味着数据包被丢弃。