我需要读取捕获的 pcap 文件,该文件包含一些由 FPGA 在 MAC 标头之后的文件开头附加的专有描述符,向描述符添加额外的 2 个字节并写回。
我正在尝试使用 Linux 上的 libpcap 库在 C 中实现这一点。我是否需要调用 pcap_dump_open() 和 pcap_dump() 来写入缓冲区?另外,在使用 pcap_dump 写入缓冲区之前,我需要相应地从 pcap_pkthdr 中增加 caplen 和“len”(添加 2),这是真的吗?
提前致谢 !
我需要读取捕获的 pcap 文件,该文件包含一些由 FPGA 在 MAC 标头之后的文件开头附加的专有描述符
所以数据包格式是,按顺序:
?
向描述符添加额外的 2 个字节并写回。
那么专有描述符将变得长 2 个字节,从而将有效负载向下移动两个字节?
我正在尝试使用 Linux 上的 libpcap 库在 C 中实现这一点。我是否需要调用 pcap_dump_open() 和 pcap_dump() 来写入缓冲区?
这可能是最简单的方法。
另外,在使用 pcap_dump 写入缓冲区之前,我需要相应地从 pcap_pkthdr 中增加 caplen 和“len”(添加 2),这是真的吗?
如果您要向数据包添加 2 个字节,是的,您需要在写出数据包之前将结构的caplen
和len
字段都增加 2。pcap_pkthdr
除非您确定它caplen
足够大以包含 MAC 标头和专有描述符中的所有数据,直到您将添加有问题的 2 个字节,您还应该检查以确保它是并且,如果不是,请不要修改有问题的数据包,只修改该特定数据包len
,而不是修改。caplen