关于pcap文件的文件解析网上资料有不少,我在这就不说明了html
通常来讲,wireshark不适合长时间捕获包,也就是随着时间增加,总会报出上述错误,通常以下:
windows
由于wireshark将数据一直放在内存,因此随着捕包时间的增加,就会报出内存溢出的错误,貌似是不释放内存的。。。这是wireshark的一个bug服务器
顺着这个思路,很容易想到的就是将捕获的数据存成多个文件,那么你将使用以下设置:
tcp
具体操做可参见博客[http://www.cnblogs.com/wangqiguo/p/5068602.html)工具
然而并无解决问题,由于...wireshark依然没有释放内存。code
感兴趣的可仔细阅读下:https://wiki.wireshark.org/KnownBugs/OutOfMemoryhtm
既然上述都行不通,那就用tcpdump这个好用的工具吧,可是因为服务器是windows的,因此只能选择具备windows下的tcpdump之称的windump,然而,我发现丢包...并且特别严重。好,你问我怎么知道,在
中,有个capture length是捕获包长度,明显比包长度小不少。blog
我也不知道为何。。。。因此只能不用这个工具了。内存
解决问题是从这个里面看到的,https://blog.packet-foo.com/2013/05/the-notorious-wireshark-out-of-memory-problem/,固然前面提到的那个博客园的连接也有写。get
wireshark其实调用的就是dumpcap命令,并且这个默认在wireshark安装的时候就存在,因此很方便啦,具体使用能够
dumpcap -h #帮助命令
值得一提的是,默认dumpcap默认保存是pcapng格式,跟pcap格式不同,若是想要保存的文件是pcap格式的,那须要指定 -P参数。 dumpcap -i 2 -f "dst port 80" -w D:\capture\6-2.pcap -b filesize:65536 -P 以上,最后一个dumpcap解决问题。