Schauen wir uns ein vollständigeres Beispiel an.
In diesem Beispiel initiiert Host A eine Sitzung mit dem Quellport von 1024 an einem Zielport
von 23, also Telnet.
Host A sendet 10 Bytes Daten und eine Anfangssequenznummer von 10.
Host B bestätigt den Empfang der 10 Bytes, indem er eine
Bestätigungsnummer an A von 11 zurücksendet.
Host B setzt in diesem Beispiel auch seine anfängliche Sequenznummer auf 5.
Bitte beachten Sie auch, dass die Portnummern vertauscht sind Der Quellport für den Verkehr von B nach A ist 23 und der Zielport 1024.
In diesem Beispiel, weil wir ein Schiebefenster verwenden,
A kann beispielsweise 250 Byte Daten senden.
Beachten Sie, dass die Sequenznummer auf 260 erhöht wird.
In den vorherigen Beispielen haben wir einfache Zahlen mit der Fenstergröße
1 oder der Fenstergröße 3 verwendet. Beachten Sie jedoch, dass sich die Fenstergrößen in der
Realität auf die Datenmenge einstellen, die in Byte übertragen werden kann.
Daher ist dies möglicherweise nicht so einfach zu lesen wie die Folgen 1, 2 und 3.
Empfang der Daten bis zur Sequenz 5 und damit Bestätigung der Sequenznummer 6.
Die Quellports werden erneut ausgetauscht, der
Quellport ist also 1024 und der Zielport ist 23.
Nun bestätigt Host B für die Sequenznummer 261, dass sich A 10 Bytes
und die 250 Bytes erinnern, also 260 Bytes
Daten.
B sendet die Sequenznummer 6 und erneut werden die Portnummern umgekehrt.
Es ist sehr wichtig, dass Sie wissen, wie Quell- und Ziel-Ports
funktionieren. In diesem Sinne gibt es nichts Besseres, als Ihnen anhand von Wireshark ein Beispiel aus der realen Welt zu zeigen.
Ich werde also den Datenverkehr in
meinem Netzwerk erfassen und dann zum Beispiel zu google gehen. com mit meinem Webbrowser.
Ich gehe zurück zu Wireshark und stoppe die Aufnahme. Ein Beispiel ist die DNS-Abfrage.
Wir haben also Host 10. 0 0 1 Dies ist
mein Computer, ein Dell-Laptop, der den DNS-Server abfragt.
Auf Layer 2 können Sie sehen, dass die Quelle mein Dell-Computer zu meinem Cisco-Router ist.
Dies ist ein Ethernet 2-Frame und bitte das Typenfeld beachten.
In der Schicht 2 gibt das Typfeld wie erwähnt das Protokoll in der Schicht 3 an.
In diesem Fall gibt 0x0800 im Hexadezimalwert an, dass das Protokoll der Schicht 3 IPv4 ist.
Auf Schicht 3 können Sie die Quell-IP-Adresse und die Ziel-IP-Adresse sehen.
Mein PC und der DNS-Server können Sie sehen, dass dies IPv4 ist. Sie können sehen,
dass die Headerlänge 20 Byte beträgt.
DSCP oder Differentiated Services Codepunkte werden in dieser Beispielnachricht ECN
nicht verwendet, die sich auf explizite Überlastungsbenachrichtigung bezieht. Ich habe
dies kurz erwähnt, wenn ich über den TCP-Header spreche. 42 Ich möchte, dass Sie hier sehen, dass das Protokoll auf Schicht
4 UDP ist und die Werte im Hexadezimalwert sind. 11 im Hexadezimalwert ist also 17,
die Protokollnummer für UDP wiederum 17.
In Schicht 4 sehen wir also, dass das User Datagram Protocol oder UDP verwendet wird.
Der Quellport ist 62249, mit anderen Worten ein dynamischer oder kurzlebiger Port,
der zu einem Zielport von 53, also DNS, geht.
Wir können die Portnummern noch einmal sehen. Wenn Sie die DNS-Abfrage öffnen, sehen Sie, dass
es sich um eine Abfrage handelt, die nach einer bestimmten Hostadresse sucht.
Hier haben wir eine DNS-Antwort vom DNS-Server an meinen Host.
Also noch einmal, sehr schnell können Sie in Schicht 2 sehen, dass das Typfeld
das Protokoll in Schicht 3 angibt.
Auf Layer 3, dem Protokollfeld, wird angegeben, welches Protokoll auf Layer 4 verwendet wird.
Hier eine weitere DNS-Abfrage von meinem Host an den DNS-Server.
Wenn wir die DNS-Abfrageinformationen öffnen, können Sie feststellen, dass es sich um
eine Abfrage für Google handelt. com und es ist
eine Host-Abfrage, Benachrichtigungstyp A, der DNS-Server antwortet und in der Antwort wird angegeben, es
gibt uns die IP-Adresse von Google. com Nun ist
der Drei-Wege-Handshake zwischen meinem Computer und Google.
Beachten Sie, dass die Quelle 10 ist. 0 0 1
und das Ziel ist diese IP-Adresse, die Google ist.
Beachten Sie, dass der Quellport 58313 ist und 80 Ziele ich öffne also eine Webverbindung zu einem Webserver.
Wenn Sie das öffnen, können Sie erneut die Quell- und Zielportnummern sehen. Beachten Sie
jedoch, dass hier das Flag SYN gesetzt ist.
Wenn Sie also das öffnen, können Sie
sehen, dass alle anderen Flags oder Bits mit Ausnahme des
SYN-Bits auf 0 gesetzt sind. Wenn Sie das öffnen, können Sie sehen, dass wir versuchen, eine Verbindung
zum Server herzustellen Nachricht an den Server.
Es werden keine anderen Flags gesetzt. Beachten Sie, dass die ursprüngliche Fenstergröße 8192
ist. Wenn Sie die Optionen öffnen, sehen Sie, dass die MSS oder Maximum Segment Size auf 1460 Byte eingestellt ist.
Die Antwort von Google an meinen Computer in Schicht 4 zeigt, dass der Quellport 80 und
der Zielport 58313 ist.
Wenn Sie das öffnen, beachten Sie, dass die gesetzten Flags SYN ACK sind, so dass es
sich um einen zweiten Teil des Dreiwege-Handshakes handelt.
Beachten Sie, dass das Bestätigungsbit gesetzt ist und das Synchronisationsbit gesetzt
ist, um dieses zu öffnen. Sie können sehen, dass es sich um eine Verbindungsbestätigung von Google handelt.
Beachten Sie, dass die Anforderung für die Fenstergröße 5720 lautet. Wenn Sie hier die Option "Optionen" öffnen,
beträgt die maximale Segmentgröße 1430.
Wenn Sie den letzten Teil des Drei-Wege-Handshakes betrachten, wenn
mein Computer mit Google beim Öffnen
von TCP spricht, können Sie sehen, dass die gesetzten Flags nur das Bestätigungsbit und die angeforderte Fenstergröße 64350 sind 85 und betrachten Sie die Sequenzbestätigungsanalyse
und stellen Sie fest, dass es sich um eine
Bestätigung handelt.
Wenn Sie zum ersten Schritt der Dreiwege-Handshake zurückkehren, stellen
Sie fest, dass die ursprüngliche Sequenznummer von meinem Computer zu Google auf 0 gesetzt ist.
Beachten Sie die laufende Nummer 0, um zum eigentlichen TCP-Header zu gelangen.
Googles antworten als Sequenznummer 0 und die Bestätigung von 1.
Wie Sie auch hier sehen können.
Sie lassen uns also wissen, dass das nächste Segment, das sie erwarten werden, Segment 1 ist.
Wir bestätigen ihnen, dass wir die Folgenummer 1 senden und
die Folgenummer 1 bestätigen.
Dies ist das, was wir besprochen haben.
Später, wenn HTTP empfangen wird, erhalten wir Informationen von Google
an seinen Rechner, TCP, und hier ist
dies ein TCP-Segment der wieder zusammengesetzten Protocol Data Unit.
Mit anderen Worten ist dies ein Fragment.
Beim TCP sehen wir die Quellen HTTP und das Ziel ist unsere Portnummer.
Mit anderen Worten: Google sendet
an uns Verkehr. Beachten Sie,
dass die Folgenummer 2861 ist, die nächste Folgenummer
3798 und die Bestätigungsnummer 944.
Die nächste Sequenznummer ist also 3798 und der
nächste Teil der
Erfassungsbenachrichtigung. Die Sequenznummer ist hier 3798 und die nächste Sequenznummer ist 5228.
Und es gibt eine Bestätigung von Google,
dass wir erwarten, 5228 zu erhalten.
Und schon beim nächsten Capture kann die Sequenznummer 5228
von Google an uns gesendet werden.
Die nächste Folgenummer ist 6658, was das nächste erhaltene Stück ist.
Hinweis 6658 ist die Sequenznummer, die empfangen wurde. 114 Unser Host bestätigt, dass dies der
Fall ist, und sagt, dass das nächste zu empfangende Datenelement 7894 ist, das
zum nächsten Capture geht. Sie können sehen, dass die Sequenznummer die von Google an uns gesendete ist.
Nun, ohne Sie langweilig zu machen, hoffe
ich, dass Ihnen dieses Capture einen kleinen Einblick in die
tatsächlichen Abläufe auf dem Draht gibt.
Wirehark erinnert sich an eine kostenlose Anwendung, die Sie herunterladen können. Suchen Sie einfach danach
im Internet. Ich
schlage vor, dass Sie etwas Verkehr auf Ihrem
Computer erfassen, sodass Sie tatsächlich sehen können, was im Hintergrund passiert.
Also, was haben wir behandelt?
In diesem Abschnitt betrachten wir die 2 Hauptprotokolle auf Schicht 4.
UDP oder User Datagram Protocol und TCP oder Transmission Control Protocol.
Ich habe Portnummern erklärt und welche Portnummern in welchen Szenarien verwendet werden.
Ich erklärte den TCP-Dreiwege-Handshake,
ich erläuterte das Fenster und die Folgenummern.
Danke fürs Zuschauen!