我们正在使用libpcap在Linux上嗅探数据包,每个数据包的头部看起来像是:
这是一个正确的理解吗?我们在一些机器上看到caplen>len。
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。