1

我使用 tcprewrite 从 CAIDA 数据集中重写我的原始 pcap 文件(更改 MAC 地址,然后更改 IP)。我遇到了这个问题。命令使用如下:

sudo tcprewrite --infile=xxx.pcap --dlt=enet --outfile=yyy.pcap --enet-dmac=00:00:00:03 --enet-smac=00:00:00:1f 

错误

pcap was captured using a snaplen of 65000 bytes.  This may mean you have truncated packets.

我试图从网上搜索解决方案,不幸的是我无法解决它。根据这个线程 http://sourceforge.net/p/tcpreplay/mailman/tcpreplay-users/?viewmonth=201201 错误上升,因为从一开始就没有捕获数据包。

有谁知道如何解决这个问题?

4

1 回答 1

3

pcap was captured using a snaplen of 65000 bytes. This may mean you have truncated packets.

或者它可能没有,事实上,它可能并不意味着你已经截断了数据包。

某些系统上的数据包捕获机制要求指定某个最大数据包长度,但它可能足够大,以至于实际上没有数据包大于最大值,因此不会截断任何数据包。

65535 经常被用作这样的最大值——Wireshark 甚至在它被重命名为 Wireshark 之前就这样做了,并且首先更改了 tcpdump,以便“-s 0”将使用 65535,然后更改为默认值 65535。tcpreplay 正在处理任何最大数据包长度 < 65535 表示“不尝试捕获整个数据包”,但警告例如 65534 有点傻。

Tcpdump 和 Wireshark 最近将限制提高到 262144 以处理一些 USB 捕获。

(选择的限制不要太大- pcap 和 pcap-ng 文件格式最多允许 2^32-1,但某些软件可能在读取此类文件时尝试分配 2^32-1 字节缓冲和失败。)

所以,不用担心,但也不要显式指定 65000 的快照长度 - 显式快照长度仅在您只想捕获数据包的一部分或如果您有旧的 tcpdump(或ANCIENT Ethereal)时有用默认为 68 或 96 字节,在后一种情况下,您最好使用 >= 65535 的值。

于 2015-02-09T07:40:53.657 回答