UDP
Die wichtigsten Befehle zum Merken
ss -uan— alle UDP-Sockets numerisch untersuchen.ss -uapn— soweit erlaubt die zugehörigen Prozesse ergänzen.
Befehle und Optionen
| Option | Bedeutung |
|---|---|
-u |
UDP-Sockets auswählen. |
-a |
Verbundene und unverbundene Sockets einbeziehen. |
-n |
Adressen und Ports numerisch anzeigen. |
-p |
Verfügbare Prozessnamen, PIDs und Dateideskriptoren anzeigen. |
Das sind lesende Momentaufnahmen, keine UDP-Zustelltests.
Die entscheidenden Konzepte
1. UDP sendet einzelne Datagramme
UDP, das User Datagram Protocol, sendet einzelne Nachrichten, sogenannte Datagramme, zwischen IP-Adressen und Ports. Anders als ein TCP-Bytestrom erhält es Nachrichtengrenzen: Die Anwendung empfängt ein Datagramm statt eines beliebigen Ausschnitts eines fortlaufenden Stroms.
Ein zu kleiner Empfangspuffer kann ein Datagramm abschneiden. UDP zerlegt große Anwendungsnachrichten nicht automatisch in bequem einzeln zuverlässig zugestellte Nachrichten.
2. Senden bestätigt keine Zustellung
UDP hat keinen TCP-artigen Handshake, Bestätigungsstrom, Wiederholungsmechanismus oder Reihenfolgegarantie. Datagramme können verloren gehen, doppelt oder umgeordnet ankommen. Erfolgreiches Senden bedeutet meist nur, dass der lokale Stack die Daten angenommen hat.
Das darüberliegende Protokoll entscheidet über den Umgang damit: alte Aktualisierungen ignorieren, Anfragen wiederholen, Sequenznummern vergeben oder zuverlässige Ströme aufbauen. QUIC ist ein Beispiel für einen umfangreicheren Transport über UDP.
3. Verbindungslos bedeutet nicht überall zustandslos
Eine Anwendung kann einen UDP-Socket mit einem bestimmten Peer verbinden. Unter Linux legt das ein Standardziel fest und beschränkt empfangenen Verkehr auf diesen Peer. Es findet kein Transport-Handshake mit der entfernten Anwendung statt.
Auch Firewalls und NAT-Geräte können UDP-Flows verfolgen und deren Zustand nach Inaktivität entfernen. Fehlender UDP-Verbindungsaufbau bedeutet nicht, dass jedes Gerät jedes Datagramm völlig unabhängig behandelt.
4. Weniger eingebaute Mechanismen bedeuten mehr Anwendungsverantwortung
UDP ist hilfreich für nachrichtenorientierten Austausch oder eine eigene Wiederherstellungsstrategie. Es ist nicht bei jeder Arbeitslast automatisch schneller und verschlüsselt selbst nicht.
Anwendungen brauchen trotzdem ein überlastbewusstes Verhalten. Große Datagramme können Paketgrößengrenzen überschreiten und auf Fragmentierung oder Zurückweisung treffen. Eine fehlende Antwort kann Filterung, Verlust, einen fehlenden Empfänger oder ein Protokoll bedeuten, das diese Nachricht nicht beantwortet.
Ein kleines Beispiel
Optional: Führe die Befehle in einem Linux-Terminal aus. Administratorrechte und Testserver sind nicht erforderlich.
ss -uan
ss -uapn
Lies Local Address:Port und Peer Address:Port. Ein Wildcard-Peer bedeutet, dass kein einzelner Peer festgelegt ist. UNCONN ist dafür normal und kein Zeichen eines fehlgeschlagenen TCP-artigen Handshakes. Ein verbundener UDP-Socket kann ohne Handshake ESTAB anzeigen.
Die zweite Sicht ergänzt erlaubte Prozessinformationen. Eine leere Liste bedeutet, dass in diesem Namespace gerade keine passenden Sockets vorhanden waren. Warteschlangenwerte beschreiben lokale Puffer, keine Anwendungsbestätigungen oder erfolgreiche entfernte Zustellung.
Es wird kein Datagramm gesendet und kein Dienst gestartet. Aufräumen ist nicht erforderlich.
Merke dir: UDP erhält einzelne Nachrichten. Das darüberliegende Protokoll entscheidet über Verlust, Reihenfolge und Erfolg.