Nous renifler des paquets en utilisant libpcap sur linux L'en-tête que nous obtenons sur chaque paquet ressemble:PPCE struct 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) */
};
Maintenant, Je crois comprendre que Caplen est la longueur des données nous avons capturé pendant que len est la longueur du paquet sur le fil. Dans certains cas (par exemple, lorsque le paramètre snaplen est trop bas lors de l'ouverture du périphérique pcap), nous pouvons capturer uniquement des parties du paquet, cette longueur sera 'caplen', alors que 'len' est la longueur d'origine. Ainsi, caplen devrait être égal ou inférieur à len, mais jamais supérieur à len.
Est-ce une bonne compréhension? Nous lisons caplen> len sur certaines machines
Vous devriez poster le pcap qui déclenche ce problème sur pcapr.net, ce serait très intéressant. Personnellement, je n'ai jamais vu ça. – bortzmeyer