Cum putem citi și interpreta manual pachetele corect fără a folosi wireshark?

Acum din antetul Ethernet Știu că adresa MAC de destinație ar trebui să fie la al 5-lea octet (după conversia biților / octeților). Deci, din aceste date, am crezut că va fi 4a în continuare. Cu toate acestea, în realitate este „s 00:17:f2:d0:4c:82.

Același lucru este valabil și pentru destinația sursei IP. De exemplu, sursa ar trebui să fie la 13-16 octeți. Conform citirile, cred că ar trebui să fie 0800 în continuare. Dar, în realitate, este pe 0a 32 e7 85, dar nu am de ce? Sunt doar confuz cu privire la modul de interpretare corectă a acestor date sau poate înțeleg structura antetului general în mod incorect.

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

Răspuns

Cred că ceea ce vedeți este un cadru Ethernet de nivel 2 și, prin urmare, preambulul lipsește. De asemenea, suma de control Ethernet pare să lipsească. În acest caz, totul pare să se alinieze (tipul de pachet din cadrul Ethernet, versiunea IPv4, lungimea pachetului IPv4, tipul de pachet, adică TCP, în pachetul IP, …). Apoi v-ați citi pachetul ca în imagine.

pachet

Sarcina utilă TCP este

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

și decodifică la:

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

ceea ce este coerent cu faptul că portul de destinație este 80.

Comentarii

  • Pentru că am schimbat greșit etichetele pentru sursă și destinație .. . Rău. Am actualizat imaginea. Nu există nicio sumă de verificare deoarece antetele IPv4 spun că pachetul IPv4 are 152 de octeți, adică se termină exact la sfârșitul datelor dvs. Puteți vedea cu ușurință că toți ultimii octeți sunt o parte din sarcina utilă după versiunea lor decodificată (este ' o cerere HTTP GET).
  • Nu ' Nu știu de unde ' primiți aceste numere. Sarcina utilă Ethernet (pachetul IPv4) începe de la al 15-lea octet. A se vedea: ro .wikipedia.org / wiki / Ethernet_frame . În cadrul I Pachet Pv4, lungimea acestuia este în al 3-lea și al 4-lea octet. A se vedea: en.wikipedia.org/wiki/IPv4#Packet_structure . Prin urmare, lungimea este 0x0098 (în hexazecimal), adică 152 octeți. Aceasta este lungimea întregului pachet IPv4 (caseta cu chenarul albastru din imagine).
  • Am înțeles de unde ' primiți numerele de la: citești diagrama pe care ai postat-o într-un mod greșit! Lungimea adresei de destinație Ethernet nu este de 32 de biți! ' are 48 de biți = 6 octeți … în diagramă, " adresa MAC de destinație " câmpul nu se termină la sfârșitul celei de-a doua linii, dar continuă și pe a treia linie (în spațiul alb, până la " | " separator). Același lucru este valabil pentru adresa sursă (care începe din spațiul gol al celei de-a treia linii și se termină în a patra linie). Vă sugerez să folosiți o diagramă mai puțin confuză …
  • Nu ' știu de ce în răspunsurile dvs. sunt schimbate adresele Mac sursă și destinație. Sună ca o întrebare bună pentru oricine v-a dat răspunsurile … În ceea ce privește pachetul IP, nu ' nu primesc de ce ați dori să eliminați suma de control antetelor IP ?? Din diagramele dvs., există exact 12 octeți în pachetul IP înainte de câmpul " Adresă sursă ". Acest lucru se potrivește exact cu cifra mea.
  • Protocolul stratului de aplicație este HTTP . Semnalizatoarele sunt setate la 000011000 în binar. Dacă vă uitați la o listă de steaguri , ' veți vedea că steagurile 5 și 6 (corespunzătoare setului biți) sunt ACK și PSH.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *