tcprewrite - 截断数据包错误

tcprewrite - truncated packet error

我使用 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 由于数据包从一开始就没有被捕获而导致的错误上升。

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

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 为 "not trying to capture the entire packet",但是关于例如 65534 的警告有点愚蠢。

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

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

所以,不用担心,但也不要明确指定 65000 的快照长度 - 明确的快照长度仅在您 想要 仅捕获部分时才有用数据包或者如果你有一个默认为 68 或 96 字节的旧 tcpdump(或 ANCIENT Ethereal),并且在后一种情况下,你不妨选择一个值 >= 65535.