2013-07-29 11 views
6

Ho due file PCAP, A e B.Qual è la differenza tra un file PCAP con un numero magico di "0x4d3cb2a1" e "0xd4c3b2a1"?

A ha un 'numero magico' nell'intestazione del d4 c3 b2 a1, B ha un 'numero magico' nell'intestazione del 4d 3c b2 a1. Secondo la documentazione di wireshark (http://wiki.wireshark.org/Development/LibpcapFileFormat), solo 0xd4c3b2a1 e 0xa1b2c3d4 sono numeri magici validi, il che mi porta a pensare che B non sia un numero magico valido.

esecuzione file su linux non si capiscono questo in su, con l'uscita di file A essere:

tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 65535) 

file B dà semplicemente:

data 

Sembra che tutto ciò che ha scritto B ha scritto in un 'scambiato '(little-endian) formato, ma ha scritto il forst twp byte con i nibbles nel modo sbagliato. Dato che mi aspetto che un sistema big-endian scriva l'intero int32 al contrario e non i singoli byte, dando un numero magico di 1a 2b 3c 4d.

È un file valido B? Se è così, perché? I sistemi diversi possono scrivere sia in 32 bit sia i singoli nibbles in un byte in un ordine arbitrario?

risposta

10

Qual è la differenza tra un file PCAP con un numero magico di "0x4d3cb2a1" e "0xd4c3b2a1"?

Un file pcap con un numero magico di 0xa1b23c4d o 0x4d3cb2a1 è un file pcap in cui il pacchetto marche temporali sono in secondi e nanosecondi .

Un file pcap con un numero magico di 0xa1b2c3d4 o 0xd4c3b2a1 è un file pcap "regolare" in cui il pacchetto marche temporali sono in secondi e microsecondi .

Dove hai ricevuto il file B? L'unica versione standard di libpcap che scrive i file in formato "risoluzione nanosecondi" è la versione sul trunk dell'albero libit Git, e questo avverrebbe solo se il programma che usa libpcap sta leggendo un altro formato "risoluzione nanosecondo" o richiedendo esplicitamente time stamp nanosecondi dall'adattatore di rete (attualmente supportato solo su Linux e probabilmente richiede un kernel sufficientemente recente). Questa è anche l'unica versione in grado di leggerli. Wireshark non li produrrà di default, sebbene le versioni recenti di Wireshark possano leggerli.

+0

Guardando in wireshark, posso davvero vedere che sta visualizzando il timestamp del Frame su 9dp per 'B', ma in realtà solo 6dp per' A' (gli ultimi tre sono sempre 0). 'B' è stato generato da una NIC specializzata, sembra che supporti la risoluzione di ns. :) – growse

+1

Avresti bisogno di una scheda NIC specializzata o di un sistema operativo con un meccanismo di acquisizione che supporti la risoluzione di nanosecondi per ottenere timestamp con risoluzione nanosecondo. Avresti * anche * bisogno di un programma e/o di una libreria che possa ottenere quei timestamp ad alta risoluzione dalla NIC/OS e che possa scrivere timestamp a risoluzione nanosecondo; Qualche idea su quale programma l'ha scritto? –

+0

Ho scavato ancora un po '. Più che probabile uno di questi http://www.napatech.com/products/network_adapters.html - pensa che i driver supportino la scrittura di PCAP in una risoluzione di 1ns. – growse

Problemi correlati