關於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解決問題。