0

我需要读取捕获的 pcap 文件,该文件包含一些由 FPGA 在 MAC 标头之后的文件开头附加的专有描述符,向描述符添加额外的 2 个字节并写回。

我正在尝试使用 Linux 上的 libpcap 库在 C 中实现这一点。我是否需要调用 pcap_dump_open() 和 pcap_dump() 来写入缓冲区?另外,在使用 pcap_dump 写入缓冲区之前,我需要相应地从 pcap_pkthdr 中增加 caplen 和“len”(添加 2),这是真的吗?

提前致谢 !

4

1 回答 1

1

我需要读取捕获的 pcap 文件,该文件包含一些由 FPGA 在 MAC 标头之后的文件开头附加的专有描述符

所以数据包格式是,按顺序:

  • MAC 标头
  • 专有描述符
  • 有效载荷

?

向描述符添加额外的 2 个字节并写回。

那么专有描述符将变得长 2 个字节,从而将有效负载向下移动两个字节?

我正在尝试使用 Linux 上的 libpcap 库在 C 中实现这一点。我是否需要调用 pcap_dump_open() 和 pcap_dump() 来写入缓冲区?

这可能是最简单的方法。

另外,在使用 pcap_dump 写入缓冲区之前,我需要相应地从 pcap_pkthdr 中增加 caplen 和“len”(添加 2),这是真的吗?

如果您要向数据包添加 2 个字节,是的,您需要在写出数据包之前将结构的caplenlen字段都增加 2。pcap_pkthdr

除非您确定它caplen足够大以包含 MAC 标头和专有描述符中的所有数据,直到您将添加有问题的 2 个字节,您还应该检查以确保它是并且,如果不是,请不要修改有问题的数据包,只修改该特定数据包len,而不是修改。caplen

于 2013-07-13T18:10:02.397 回答