Hvordan kan vi manuelt læse og fortolke pakker korrekt uden brug af wireshark?
Nu fra Ethernet-overskriften Jeg ved, at Destination MAC-adressen skal være ved 5. byte (efter konvertering af bits / bytes). Så fra disse data troede jeg, at det ville være 4a og fremefter. I virkeligheden er det “s 00:17:f2:d0:4c:82
.
Det samme gælder IP-kildedestinationen. F.eks. Skal kilden være 13-16 bytes. Ifølge aflæsningerne, antager jeg, at det skal være 0800
og fremad. Men i virkeligheden er det på 0a 32 e7 85
men jeg kan ikke forstå hvorfor? Jeg er bare forvirret over, hvordan man fortolker disse data korrekt, eller måske forstår jeg den generelle headerstruktur forkert.
https://ntquan87.wordpress.com/2015/08/17/reading-packet-hex-dumps-manually-no-wireshark/
Svar
Mit gæt er, at det du ser er en niveau 2 Ethernet-ramme og derfor indledningen mangler. Også Ethernet-kontrolsummen synes at mangle. I dette tilfælde ser alt ud til at være på linje (pakketypen inde i Ethernet-rammen, IPv4-versionen, IPv4-pakkelængden, pakketypen, dvs. TCP, inden i IP-pakken, …). Derefter læste du din pakke som på billedet.
TCP-nyttelasten er
474554202f20485454502f312e300d0a 557365722d4167656e743a2057676574 2f312e31312e340d0a4163636570743a 202a2f2a0d0a486f73743a207777772e 696574662e6f72670d0a436f6e6e6563 74696f6e3a204b6565702d416c697665 0d0a0d0a
og dekoder til:
GET / HTTP/1.0 User-Agent: Wget/1.11.4 Accept: */* Host: www.ietf.org Connection: Keep-Alive
hvilket er sammenhængende med, at destinationsporten er 80.
Kommentarer
- Fordi jeg fejlagtigt havde byttet etiketterne til kilde og destination .. Min dårlige. Jeg har opdateret billedet. Der er ingen kontrolsum, fordi IPv4-overskrifterne siger, at IPv4-pakken er 152 byte lang, dvs. den slutter nøjagtigt i slutningen af dine data. Du kan let se, at alle de sidste byte er en del af nyttelasten ved deres dekodede version (det ' er en HTTP GET-anmodning).
- Jeg don ' t ved, hvor du ' får disse numre fra. Ethernet-nyttelasten (IPv4-pakke) starter fra den 15. byte. Se: da .wikipedia.org / wiki / Ethernet_frame . Inden for I Pv4-pakke, dens længde er i 3. og 4. byte. Se: da.wikipedia.org/wiki/IPv4#Packet_structure . Derfor er længden 0x0098 (i hexadecimal), dvs. 152 bytes. Dette er længden på hele IPv4-pakken (feltet med den blå kant på billedet).
- Jeg forstod, hvor du ' får fat i tallene fra: du læser diagrammet du sendte på den forkerte måde! Længden af Ethernet-destinationsadressen er ikke 32 bit! Det ' er 48 bits = 6 byte … i diagrammet er " Destination MAC-adresse " -feltet slutter ikke i slutningen af anden linje, men det fortsætter også på den tredje linje (i det hvide mellemrum, indtil " | " separator). Det samme gælder for kildeadressen (der starter fra det tomme rum i den tredje linje og ender i den fjerde linje). Jeg foreslår, at du bruger et mindre forvirrende diagram …
- Jeg ved ikke ' hvorfor i dine svar byttes kilde- og destinations-mac-adresser. Det lyder som et godt spørgsmål til den, der gav dig svarene … Med hensyn til IP-pakken, kan jeg ikke ' ikke forstå, hvorfor du vil fjerne IP-headers kontrolsum ?? Fra dine diagrammer er der nøjagtigt 12 byte i IP-pakken før " Kildeadresse " -feltet. Dette svarer nøjagtigt til min figur.
- Applikationslagsprotokollen er HTTP . Flagene er indstillet til 000011000 i binær. Hvis du ser på en liste over flag , vil du ' se at det 5. og 6. flag (svarende til sæt bit) er ACK og PSH.