Wie können wir Pakete ohne Wireshark manuell richtig lesen und interpretieren?
Jetzt aus dem Ethernet-Header Ich weiß, dass die Ziel-MAC-Adresse im 5. Byte liegen sollte (nach dem Konvertieren von Bits / Bytes). Aufgrund dieser Daten dachte ich, dass es 4a sein würde. In Wirklichkeit ist es jedoch 00:17:f2:d0:4c:82
.
Gleiches gilt für das IP-Quellziel. Beispielsweise sollte die Quelle 13-16 Byte betragen Ich denke, die Messwerte sollten 0800
sein. Aber in Wirklichkeit ist es 0a 32 e7 85
, aber ich verstehe nicht warum? Ich bin nur verwirrt darüber, wie diese Daten richtig interpretiert werden sollen, oder ich verstehe die allgemeine Header-Struktur möglicherweise falsch.
https://ntquan87.wordpress.com/2015/08/17/reading-packet-hex-dumps-manually-no-wireshark/
Antwort
Ich vermute, dass Sie einen Level 2-Ethernet-Frame sehen und daher Die Präambel fehlt. Auch die Ethernet-Prüfsumme scheint zu fehlen. In diesem Fall scheint alles in einer Linie zu stehen (der Pakettyp innerhalb des Ethernet-Frames, die IPv4-Version, die IPv4-Paketlänge, der Pakettyp, d. H. TCP, innerhalb des IP-Pakets, …). Dann würden Sie Ihr Paket wie auf dem Bild lesen.
Die TCP-Nutzdaten sind
474554202f20485454502f312e300d0a 557365722d4167656e743a2057676574 2f312e31312e340d0a4163636570743a 202a2f2a0d0a486f73743a207777772e 696574662e6f72670d0a436f6e6e6563 74696f6e3a204b6565702d416c697665 0d0a0d0a
und werden dekodiert in:
GET / HTTP/1.0 User-Agent: Wget/1.11.4 Accept: */* Host: www.ietf.org Connection: Keep-Alive
was mit der Tatsache übereinstimmt, dass der Zielport 80 ist.
Kommentare
- Weil ich die Beschriftungen fälschlicherweise gegen Quelle und Ziel getauscht hatte. Ich habe das Bild aktualisiert. Es gibt keine Prüfsumme, da die IPv4-Header besagen, dass das IPv4-Paket 152 Byte lang ist, dh genau am Ende Ihrer Daten endet. Sie können leicht erkennen, dass alle letzten Bytes vorhanden sind Teil der Nutzdaten durch ihre dekodierte Version (es ist ' eine HTTP-GET-Anforderung).
- Ich habe ' nicht Ich weiß nicht, woher Sie ' diese Nummern beziehen. Die Ethernet-Nutzlast (IPv4-Paket) beginnt mit dem 15. Byte. Siehe: en .wikipedia.org / wiki / Ethernet_frame . Innerhalb des I. Pv4-Paket, seine Länge liegt im 3. und 4. Byte. Siehe: en.wikipedia.org/wiki/IPv4#Packet_structure . Daher beträgt die Länge 0x0098 (hexadezimal), dh 152 Byte. Dies ist die Länge des gesamten IPv4-Pakets (das Feld mit dem blauen Rand im Bild).
- Ich habe verstanden, woher Sie ' die Nummern beziehen: Sie lesen das Diagramm, das Sie falsch gepostet haben! Die Länge der Ethernet-Zieladresse beträgt nicht 32 Bit! Es ' s 48 Bit = 6 Bytes … im Diagramm die " Ziel-MAC-Adresse " endet nicht am Ende der zweiten Zeile, sondern wird auch in der dritten Zeile fortgesetzt (im Leerraum bis zum " | " Trennzeichen). Gleiches gilt für die Quelladresse (die am leeren Platz der dritten Zeile beginnt und in der vierten Zeile endet). Ich schlage vor, ein weniger verwirrendes Diagramm zu verwenden …
- Ich ' weiß nicht, warum in Ihren Antworten die Quell- und Ziel-Mac-Adressen vertauscht werden. Das klingt nach einer guten Frage für jeden, der Ihnen die Antworten gegeben hat … In Bezug auf das IP-Paket verstehe ich ' nicht, warum Sie die Prüfsumme für IP-Header entfernen möchten? In Ihren Diagrammen befinden sich genau 12 Bytes im IP-Paket vor dem Feld " Quelladresse ". Dies entspricht genau meiner Abbildung.
- Das Protokoll der Anwendungsschicht lautet HTTP . Die Flags werden binär auf 000011000 gesetzt. Wenn Sie sich eine Liste von Flags ansehen, sehen Sie ', dass das 5. und 6. Flag (entsprechend gesetzt) Bits) sind ACK und PSH.