Hur kan vi manuellt läsa och tolka paket ordentligt utan att använda wireshark?
Nu från Ethernet-rubriken Jag vet att Destination MAC-adressen ska vara vid 5: e byten (efter konvertering av bitar / byte). Så från denna data trodde jag att det skulle vara 4a och framåt. I själva verket är det ”s 00:17:f2:d0:4c:82
.
Samma sak gäller IP-källedestinationen. Till exempel bör källan vara 13-16 byte. Enligt avläsningarna antar att det ska vara 0800
och framåt. Men i verkligheten är det på 0a 32 e7 85
men jag förstår inte varför? Jag är bara förvirrad över hur jag ska tolka dessa data korrekt eller kanske förstår jag den allmänna rubrikstrukturen felaktigt.
https://ntquan87.wordpress.com/2015/08/17/reading-packet-hex-dumps-manually-no-wireshark/
Svar
Min gissning är att det du ser är en Ethernet-ram på nivå 2 och därför ingressen saknas. Även Ethernet-kontrollsumman verkar saknas. I det här fallet verkar allt stämma överens (packetypen inuti Ethernet-ramen, IPv4-versionen, IPv4-paketlängden, packetypen, d.v.s. TCP, inuti IP-paketet, …). Då läste du ditt paket som på bilden.
TCP-nyttolasten är
474554202f20485454502f312e300d0a 557365722d4167656e743a2057676574 2f312e31312e340d0a4163636570743a 202a2f2a0d0a486f73743a207777772e 696574662e6f72670d0a436f6e6e6563 74696f6e3a204b6565702d416c697665 0d0a0d0a
och avkodas till:
GET / HTTP/1.0 User-Agent: Wget/1.11.4 Accept: */* Host: www.ietf.org Connection: Keep-Alive
vilket överensstämmer med det faktum att destinationsporten är 80.
Kommentarer
- Eftersom jag felaktigt hade bytt ut etiketterna för källa och destination .. Jag är dålig. Jag har uppdaterat bilden. Det finns ingen kontrollsumma eftersom IPv4-rubrikerna säger att IPv4-paketet är 152 byte långt, dvs. det slutar exakt i slutet av dina data. Du kan lätt se att alla de sista byten är del av nyttolasten med deras avkodade version (den ' är en HTTP GET-begäran).
- Jag don ' t vet var du ' hämtar dessa nummer från. Ethernet-nyttolasten (IPv4-paketet) börjar från den 15: e byten. Se: sv .wikipedia.org / wiki / Ethernet_frame . Inom I Pv4-paket, dess längd ligger i 3: e och 4: e byten. Se: en.wikipedia.org/wiki/IPv4#Packet_structure . Därför är längden 0x0098 (i hexadecimal), det vill säga 152 byte. Detta är längden på hela IPv4-paketet (rutan med den blå kanten på bilden).
- Jag förstod var du ' hämtar siffrorna från: du läser diagrammet du publicerade på fel sätt! Längden på Ethernet-destinationsadressen är inte 32 bitar! Det ' s 48 bitar = 6 byte … i diagrammet, " Destination MAC-adress " -fältet slutar inte i slutet av den andra raden, men det fortsätter också på den tredje raden (i det vita utrymmet tills " | " separator). Detsamma gäller för källadressen (som börjar från det tomma utrymmet på den tredje raden och slutar i den fjärde raden). Jag föreslår att du använder ett mindre förvirrande diagram …
- Jag vet inte ' varför i dina svar byts käll- och destinations-mac-adresser. Det låter som en bra fråga för den som gav dig svaren … När det gäller IP-paketet förstår jag inte ' varför du vill ta bort IP-rubrikens kontrollsumma ?? Från dina diagram finns det exakt 12 byte i IP-paketet före fältet " Källadress ". Detta matchar exakt min siffra.
- Applikationslagerprotokollet är HTTP . Flaggorna är satt till 000011000 i binär. Om du tittar på en flagglista ser du ' att den femte och sjätte flaggan (motsvarande set bitar) är ACK och PSH.