2017-09-08 181 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文件,這意味着數據包被丟棄。