Jak możemy ręcznie czytać i poprawnie interpretować pakiety bez używania wireshark?

Teraz z nagłówka Ethernet Wiem, że docelowy adres MAC powinien znajdować się na piątym bajcie (po konwersji bitów / bajtów). Na podstawie tych danych pomyślałem, że będzie to 4a wzwyż. Jednak w rzeczywistości jest to 00:17:f2:d0:4c:82.

To samo dotyczy miejsca docelowego adresu IP. Na przykład źródło powinno mieć 13-16 bajtów. Zgodnie z odczyty, wydaje mi się, że powinno być 0800 dalej. Ale w rzeczywistości jest na 0a 32 e7 85, ale nie rozumiem dlaczego? Nie wiem, jak poprawnie interpretować te dane, a może niepoprawnie rozumiem ogólną strukturę nagłówka.

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

Odpowiedź

Domyślam się, że to, co widzisz, to ramka Ethernet poziomu 2, a zatem brakuje preambuły. Brakuje również sumy kontrolnej Ethernet. W tym przypadku wszystko wydaje się być wyrównane (typ pakietu wewnątrz ramki Ethernet, wersja IPv4, długość pakietu IPv4, typ pakietu, tj. TCP, wewnątrz pakietu IP, …). Następnie „czytasz swój pakiet jak na obrazku.

pakiet

Ładunek TCP to

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

i dekoduje do:

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

co jest spójne z faktem, że docelowy port to 80.

Komentarze

  • Ponieważ omyłkowo zamieniłem etykiety na źródło i miejsce docelowe. Mój błąd. Zaktualizowałem obrazek. Nie ma sumy kontrolnej, ponieważ nagłówki IPv4 mówią, że pakiet IPv4 ma 152 bajty, czyli kończy się dokładnie na końcu twoich danych. Możesz łatwo zobaczyć, że wszystkie ostatnie bajty są część ładunku według ich zdekodowanej wersji (jest to ' żądanie HTTP GET).
  • Nie ' nie wiem, skąd ' otrzymujesz te numery. Ładunek Ethernet (pakiet IPv4) zaczyna się od 15. bajtu. Patrz: pl .wikipedia.org / wiki / Ethernet_frame . W ramach I Pakiet Pv4, jego długość jest w 3 i 4 bajcie. Zobacz: en.wikipedia.org/wiki/IPv4#Packet_structure . Dlatego długość wynosi 0x0098 (szesnastkowo), czyli 152 bajty. To jest długość całego pakietu IPv4 (pole z niebieską obwódką na obrazku).
  • Zrozumiałem, skąd ' otrzymujesz numery z: źle czytasz diagram, który zamieściłeś! Długość adresu docelowego w sieci Ethernet nie wynosi 32 bity! To ' 48 bitów = 6 bajtów … na schemacie " Docelowy adres MAC " nie kończy się na końcu drugiej linii, ale trwa również w trzeciej linii (w białej przestrzeni, aż do " | " separator). To samo dotyczy adresu źródłowego (który zaczyna się od pustego miejsca w trzecim wierszu i kończy w czwartym wierszu). Proponuję użyć mniej zagmatwanego diagramu …
  • Nie ' nie wiem, dlaczego w twoich odpowiedziach źródłowe i docelowe adresy MAC są zamienione. To brzmi jak dobre pytanie dla każdego, kto udzielił Ci odpowiedzi … Jeśli chodzi o pakiet IP, nie ' nie rozumiem, dlaczego chcesz usunąć sumę kontrolną nagłówków IP? Z diagramów wynika, że pakiet IP zawiera dokładnie 12 bajtów przed polem " Adres źródłowy ". To dokładnie odpowiada mojej figurze.
  • Protokół warstwy aplikacji to HTTP . Flagi są ustawione binarnie na 000011000. Jeśli spojrzysz na listę flag , ' zobaczysz, że piąta i szósta flaga (odpowiadająca ustawieniu bity) to ACK i PSH.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *