我們使用嗅探的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