Come possiamo leggere e interpretare manualmente i pacchetti correttamente senza usare WireShark?

Ora dallintestazione Ethernet So che lindirizzo MAC di destinazione dovrebbe essere al 5 ° byte (dopo la conversione di bit / byte). Quindi da questi dati, ho pensato che sarebbe stato il 4a in poi. Tuttavia, in realtà “s 00:17:f2:d0:4c:82.

Lo stesso vale per la destinazione della sorgente IP. Ad esempio, la sorgente dovrebbe essere a 13-16 byte. Secondo le letture, immagino che dovrebbe essere 0800 in poi. Ma in realtà è su 0a 32 e7 85 ma non capisco perché? Sono solo confuso su come interpretare correttamente questi dati o forse sto capendo in modo errato la struttura generale dellintestazione.

https://ntquan87.wordpress.com/2015/08/17/reading-packet-hex-dumps-manually-no-wireshark/

Risposta

La mia ipotesi è che quello che stai vedendo sia un frame Ethernet di livello 2 e quindi manca il preambolo. Anche il checksum Ethernet sembra mancare. In questo caso tutto sembra allinearsi (il tipo di pacchetto allinterno del frame Ethernet, la versione IPv4, la lunghezza del pacchetto IPv4, il tipo di pacchetto, cioè TCP, allinterno del pacchetto IP, …). Poi avresti “letto il tuo pacchetto come nellimmagine.

pacchetto

Il payload TCP è

474554202f20485454502f312e300d0a 557365722d4167656e743a2057676574 2f312e31312e340d0a4163636570743a 202a2f2a0d0a486f73743a207777772e 696574662e6f72670d0a436f6e6e6563 74696f6e3a204b6565702d416c697665 0d0a0d0a 

e decodifica in:

GET / HTTP/1.0 User-Agent: Wget/1.11.4 Accept: */* Host: www.ietf.org Connection: Keep-Alive 

che è coerente con il fatto che la porta di destinazione è 80.

Commenti

  • Perché avevo erroneamente scambiato le etichette con lorigine e la destinazione .. . Colpa mia. Ho aggiornato limmagine. Non cè checksum perché le intestazioni IPv4 dicono che il pacchetto IPv4 è lungo 152 byte, cioè termina esattamente alla fine dei tuoi dati. Puoi facilmente vedere che tutti gli ultimi byte sono parte del payload in base alla versione decodificata (' è una richiesta HTTP GET).
  • Non ' Non so da dove ' stai ottenendo questi numeri. Il payload Ethernet (pacchetto IPv4) inizia dal 15 ° byte. Vedi: it .wikipedia.org / wiki / Ethernet_frame . Allinterno della I Pacchetto Pv4, la sua lunghezza è nel 3 ° e 4 ° byte. Vedi: en.wikipedia.org/wiki/IPv4#Packet_structure . Pertanto la lunghezza è 0x0098 (in esadecimale), ovvero 152 byte. Questa è la lunghezza dellintero pacchetto IPv4 (la casella con il bordo blu nellimmagine).
  • Ho capito da dove ' stai ottenendo i numeri da: stai leggendo lo schema che hai postato nel modo sbagliato! La lunghezza dellindirizzo di destinazione Ethernet non è di 32 bit! ' 48 bit = 6 byte … nel diagramma, l " indirizzo MAC di destinazione " il campo non termina alla fine della seconda riga, ma continua anche sulla terza riga (nello spazio bianco, fino a quando " | " separatore). Lo stesso vale per lindirizzo sorgente (che inizia dallo spazio vuoto della terza riga e finisce nella quarta riga). Suggerisco di usare un diagramma meno confuso …
  • Non ' so perché nelle tue risposte gli indirizzi Mac di origine e di destinazione vengono scambiati. Sembra una buona domanda per chi ti ha dato le risposte … Per quanto riguarda il pacchetto IP, ' non capisco perché vorresti rimuovere il checksum delle intestazioni IP ?? Dai diagrammi, ci sono esattamente 12 byte nel pacchetto IP prima del campo " Indirizzo di origine ". Questo corrisponde esattamente alla mia cifra.
  • Il protocollo del livello dellapplicazione è HTTP . I flag sono impostati su 000011000 in binario. Se guardi un elenco di flag , ' vedrai che il quinto e il sesto flag (corrispondenti a set bit) sono ACK e PSH.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *