我们使用嗅探的libpcap在linux上 我们得到的每个数据包的报头包看起来像:PCAP结构pcap_pkthdr LEN VS caplen
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
您应该在pcapr.net上发布触发此问题的pcap,这将非常有趣。 Personnaly,我从来没有见过。 – bortzmeyer 2009-09-29 20:42:37