我们在 Linux 上使用 libpcap 嗅探数据包 我们在每个数据包上获得的标头如下所示:
struct pcap_pkthdr {
struct timeval ts; /* time stamp */
bpf_u_int32 caplen; /* length of portion present */
bpf_u_int32 len; /* length this packet (off wire) */
};
现在,据我了解,caplen 是我们捕获的数据的长度,而 len 是网络上数据包的长度。在某些情况下(例如,当打开 pcap 设备时将 snaplen 设置得太低)我们可能只捕获数据包的一部分,该长度将是“caplen”,而“len”是原始长度。因此,caplen 应该等于或小于 len,但决不能大于 len。
这是正确的理解吗?我们在一些机器上看到 caplen > len