Die Transportschicht verbindet Anwendungsendpunkte über ein IP-Netzwerk. TCP und UDP verwenden beide 16-Bit-Portnummern, stellen Anwendungen jedoch unterschiedliche Kommunikationsmodelle und Garantien bereit.
Netzwerkgrundlagen · Lektion 6
Transportschicht
Lerne, wie TCP und UDP Ports sowie unterschiedliche Zustellungssemantiken zwischen Anwendungsendpunkten verwenden.
Ports und Sockets
Ein Zielport hilft dem Betriebssystem, Datenverkehr an einen lauschenden Socket zuzustellen. Eine Verbindung oder ein Datenstrom wird durch mehr als einen Port identifiziert: Protokoll, Quell- und Zieladressen sowie Quell- und Zielports sind alle relevant. Derselbe Serverport kann deshalb viele gleichzeitige Clients bedienen.
Wie kann ein TCP-Serverport mehrere Clients gleichzeitig bedienen?
TCP-Byteströme
TCP stellt einen geordneten, zuverlässigen Bytestrom bereit, solange die Verbindung funktionsfähig bleibt. Es verwendet Sequenznummern, Bestätigungen, erneute Übertragung, Flusskontrolle und Überlastungskontrolle. TCP bewahrt keine Nachrichtengrenzen der Anwendung: Ein Schreibvorgang kann über mehrere Lesevorgänge eintreffen, oder mehrere Schreibvorgänge können von einem Lesevorgang zurückgegeben werden. Anwendungen definieren ihre eigene Rahmung.
Zuverlässigkeit bedeutet keine absolute Zustellung. Eine Verbindung kann das Zeitlimit überschreiten, zurückgesetzt werden oder fehlschlagen, und eine Bestätigung beweist nicht, dass eine Anwendung die Daten dauerhaft gespeichert hat.
Was geschieht in TCP mit Nachrichtengrenzen der Anwendung?
Der TCP-Handshake
Eine normale TCP-Verbindung beginnt mit einem Drei-Wege-Handshake:
- Der Initiator sendet
SYNmit seinen anfänglichen Sequenzinformationen. - Der lauschende Endpunkt antwortet mit
SYN-ACK, eigenen Sequenzinformationen und einer Bestätigung. - Der Initiator sendet
ACKzurück.
Dies richtet in beiden Endpunkten Transportzustand ein. Es authentifiziert weder den Anwendungsserver noch beweist es, dass der angeforderte Anwendungsvorgang erfolgreich sein wird.
Was ist die normale Reihenfolge des TCP-Drei-Wege-Handshakes?
UDP-Datagramme
UDP bewahrt Datagrammgrenzen und bietet prüfsummenbasierte Fehlererkennung, aber keinen TCP-artigen Verbindungszustand, keine Reihenfolge, erneute Übertragung, Flusskontrolle oder Überlastungskontrolle. Eine Anwendung kann benötigte Zuverlässigkeit oder Überlastungssteuerung selbst ergänzen. UDP ist nicht automatisch schneller; die Leistung hängt von Protokollentwurf, Arbeitslast, Pfad und Implementierung ab.
Welche Eigenschaft stellt UDP Anwendungen bereit?
Transportendpunkte untersuchen
Verwende ss, um lauschende und verbundene Sockets zu untersuchen, ohne sie zu verändern:
$ ss -lntup
$ ss -tn state established
Prozessdetails können erhöhte Berechtigungen erfordern. Ein lauschender Socket beweist lokale Bereitschaft nur an der Transportgrenze; Firewall, Routing, Adressfamilie, TLS und Anwendungszustand benötigen weiterhin geeignete Tests.
Was belegt ein lauschender TCP-Socket?
Lektion abgeschlossen
Sie haben Transportschicht abgeschlossen
Du kannst das TCP-Stromverhalten nun vom UDP-Datagrammverhalten unterscheiden.
Identifiziere einen Datenstrom anhand von Protokoll, Adressen und Ports.
Behandle TCP als zuverlässigen geordneten Bytestrom ohne Nachrichtengrenzen.
Erkenne, was der TCP-Handshake beweist und was nicht.
Behandle UDP-Zuverlässigkeit und Überlastungsverhalten als Entscheidungen des Anwendungsentwurfs.
Überprüfe den Anwendungszustand über den lokalen Socketzustand hinaus.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen