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?
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
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? –
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