Was sind Portnummern und Sockets?
Bei Internetkommunikation wird das Kommunikationsziel nicht allein durch die IP-Adresse vollständig bestimmt.
Eine IP-Adresse ist Information, um den Kommunikationspartner im Netzwerk zu finden. In einem einzelnen Server oder Gerät laufen jedoch mehrere Kommunikationen gleichzeitig, etwa Web, DNS, Mail, Chat-Apps und Cloud-Synchronisierung.
Selbst wenn die IP-Adresse des Ziels bekannt ist, reicht das daher nicht aus, um zu wissen, an welchen Dienst oder welche Anwendung diese Kommunikation gehen soll.
Für diese Unterscheidung werden Portnummern verwendet.
IP-Adressen allein unterscheiden Anwendungen nicht
Eine IP-Adresse zeigt die Position eines Kommunikationspartners im Netzwerk.
Wenn Sie zum Beispiel auf einen Webserver zugreifen, geht die Kommunikation zunächst zur IP-Adresse dieses Servers. Auf dem Server können aber neben dem Webserver auch DNS, Mail, Verwaltungsdienste und API-Server laufen.
Mit der IP-Adresse allein lässt sich dann nicht entscheiden, welcher Dienst auf dem Server die Kommunikation empfangen soll.
Deshalb verwenden TCP, UDP und andere Mechanismen der Transportschicht Portnummern, um das Übergabeziel der Kommunikation zu unterscheiden.
Portnummern unterscheiden Eingänge für Kommunikation
Portnummern sind Nummern, die in TCP- und UDP-Kommunikation verwendet werden.
Oft werden Portnummern als "Eingänge für Kommunikation" erklärt. Das ist grob richtig. Genauer sind Portnummern Kennungen, mit denen das OS Kommunikation an den passenden Prozess oder Dienst verteilt.
Wenn eine Kommunikation zur gleichen IP-Adresse geht, kann zum Beispiel Zielport 443 auf einen HTTPS-Webserver hinweisen, Port 53 auf DNS und Port 25 auf einen Dienst für Mailzustellung.
| Verwendung | Häufige Portnummer | Hauptprotokoll | Erklärung |
|---|---|---|---|
| HTTP | 80 | TCP | Wird häufig für unverschlüsselte Webkommunikation verwendet |
| HTTPS | 443 | TCP / UDP | Normales HTTPS nutzt TCP, HTTP/3 nutzt QUIC über UDP |
| DNS | 53 | UDP / TCP | Normale Anfragen nutzen oft UDP; große Antworten und bestimmte Zwecke auch TCP |
| SMTP | 25 | TCP | Vor allem für Zustellung zwischen Mailservern |
| SMTP Submission | 587 | TCP | Zum Senden vom Mailclient an den Sendeserver |
| IMAPS | 993 | TCP | Für Mailabruf per IMAP, geschützt durch TLS |
Es gibt verbreitete Standard-Portnummern. Portnummern garantieren jedoch nicht absolut die Art des Dienstes.
Port 443 wird häufig für HTTPS verwendet, aber je nach Servereinstellung kann auch eine andere Anwendung Port 443 nutzen. Umgekehrt kann ein Webserver auf einer nicht standardmäßigen Portnummer laufen.
Portnummern sind also starke Hinweise auf den Zweck der Kommunikation, beweisen den Inhalt aber nicht vollständig.
Warum auf einem Server mehrere Dienste laufen können
Durch Portnummern können auf einem einzelnen Server mehrere Dienste gleichzeitig laufen.
Ein Server mit derselben IP-Adresse kann etwa HTTPS, DNS und Mailzustellung bereitstellen, indem jeder Dienst auf einer anderen Portnummer wartet.
| Ziel-IP-Adresse | Zielportnummer | Kommunikationsprotokoll | Beispiel für Ziel |
|---|---|---|---|
| IP-Adresse desselben Servers | 443 | TCP | HTTPS-Webserver |
| IP-Adresse desselben Servers | 53 | UDP / TCP | DNS-Server |
| IP-Adresse desselben Servers | 25 | TCP | Zustelldienst zwischen Mailservern |
| IP-Adresse desselben Servers | 587 | TCP | Submission-Dienst zum Senden von Mail |
IP-Adressen werden verwendet, um den Host des Kommunikationspartners zu finden. Portnummern unterscheiden, an welchen Dienst innerhalb dieses Hosts die Kommunikation geht.
In der Praxis entscheidet man jedoch nicht nur mit "IP-Adresse allein" oder "Portnummer allein". Auch das Kommunikationsprotokoll, also TCP oder UDP, ist wichtig.
Auch bei derselben Portnummer 53 werden UDP 53 und TCP 53 als unterschiedliche Kommunikation behandelt.
Auch ein einzelnes Gerät kann mehrere Apps gleichzeitig kommunizieren lassen
Portnummern werden nicht nur auf der Serverseite verwendet. Auch PCs und Smartphones der Nutzenden verwenden sie.
Nehmen wir an, ein PC öffnet einen Browser, verwendet eine Chat-App, synchronisiert Cloud-Speicher und prüft OS-Updates. Im Gerät entstehen dann mehrere Kommunikationen gleichzeitig.
Das OS muss diese Kommunikationen unterscheiden und zurückkommende Daten an die richtige Anwendung weitergeben.
Dafür wird die Kombination aus Quell-IP-Adresse, Quellportnummer, Ziel-IP-Adresse, Zielportnummer und Kommunikationsprotokoll verwendet.
Kommunikation wird durch fünf Informationen unterschieden
Beim Verstehen von TCP- und UDP-Kommunikation sind folgende fünf Informationen wichtig.
| Information | Bedeutung | Beispiel |
|---|---|---|
| Quell-IP-Adresse | IP-Adresse der sendenden Seite | IP-Adresse des Geräts der nutzenden Person |
| Quellportnummer | Portnummer, die auf der startenden Seite verwendet wird | Temporär auf Geräteseite zugewiesene Nummer |
| Ziel-IP-Adresse | IP-Adresse der empfangenden Seite | IP-Adresse des Webservers |
| Zielportnummer | Portnummer des empfangenden Dienstes | Bei HTTPS etwa 443 |
| Kommunikationsprotokoll | Art wie TCP oder UDP | TCP, UDP |
Diese Kombination aus fünf Informationen wird 5-tuple oder 5-Tupel genannt.
Wenn ein Browser eine Verbindung zu einem HTTPS-Webserver aufbaut, ist die Zielportnummer häufig 443. Die Quellportnummer wird dagegen pro Kommunikation auf dem Gerät der nutzenden Person zugewiesen.
Durch diese Quellportnummer können mehrere Kommunikationen vom selben Gerät zum selben Webserver unterschieden werden.
Zielport und Quellport haben unterschiedliche Rollen
Beim Verstehen von Portnummern ist es wichtig, Zielportnummer und Quellportnummer zu trennen.
| Art | Hauptrolle | Beispiel |
|---|---|---|
| Zielportnummer | Zeigt den Zieldienst | 443 für HTTPS, 53 für DNS |
| Quellportnummer | Unterscheidet, zu welcher Kommunikation die Antwort zurückgehört | Temporär auf Geräteseite zugewiesene Nummer |
Beim Zugriff auf eine Website sendet das Gerät der nutzenden Person häufig an Zielport 443. Um die Antwort zu empfangen, braucht das Gerät aber auch eine Quellportnummer.
Aus Sicht des Servers ist das Antwortziel "IP-Adresse der nutzenden Person und die auf Nutzendenseite verwendete Portnummer".
Dieser Mechanismus ermöglicht es, auf einem Gerät mehrere Kommunikationen gleichzeitig zu behandeln.
Was ist ein Socket?
Ein Socket ist eine Denkweise für einen Ein- und Ausgang zur Netzwerkkommunikation.
In der Programmierung ist ein Socket ein Mechanismus, den eine Anwendung beim OS anlegt, um Netzwerkkommunikation auszuführen. Für das Verständnis der Kommunikationsstruktur ist es jedoch hilfreich, einen Socket als Kommunikationsendpunkt zu betrachten, der durch IP-Adresse, Portnummer und Kommunikationsprotokoll ausgedrückt wird.
Auf Serverseite erstellt ein Webserver zum Beispiel den Zustand "auf TCP-Port 443 warten". Das bedeutet, dass der Server einen Empfangspunkt für HTTPS-Kommunikation bereitstellt.
Auf Clientseite erhält eine Anwendung wie ein Browser beim Start einer Kommunikation eine Quellportnummer vom OS.
| Position | Sicht auf den Socket | Beispiel |
|---|---|---|
| Serverseite | Wartet mit bestimmter IP-Adresse, Portnummer und Protokoll | Wartet auf HTTPS über TCP 443 |
| Clientseite | Verwaltet Verbindung pro Kommunikation über eine Quellportnummer | Browser verbindet sich von einem temporären Quellport |
| Gesamte Kommunikation | Eine Kommunikation wird durch Kombination von Quelle und Ziel unterschieden | Quell-IP, Quellport, Ziel-IP, Zielport, Protokoll |
Streng genommen ändert sich die Bedeutung von Socket je nach Kontext etwas.
Der Begriff kann den Socket meinen, mit dem ein Server auf Verbindungen wartet, oder den Kommunikationsendpunkt nach hergestellter Verbindung. Auch bei verbindungsorientierter Kommunikation wie TCP und verbindungsloser Kommunikation wie UDP wird ein Socket unterschiedlich behandelt.
Als Grundlage reicht jedoch das Verständnis: ein Kommunikationszugang im OS, den Anwendungen für Netzwerkkommunikation verwenden.
Portnummern bedeuten bei TCP und UDP nicht dasselbe
Portnummern werden bei TCP und UDP verwendet, aber die Art der Kommunikation unterscheidet sich.
TCP baut eine Verbindung auf und sendet und empfängt danach Daten. Web-HTTPS, Mailversand, SSH und viele andere Kommunikationen nutzen TCP.
UDP setzt keinen Verbindungsaufbau wie TCP voraus. DNS-Anfragen, QUIC und Echtzeitkommunikation verwenden UDP.
| Punkt | TCP | UDP |
|---|---|---|
| Art der Kommunikation | Kommuniziert nach Verbindungsaufbau | Setzt keinen Verbindungsaufbau voraus |
| Rolle von Portnummern | Wird für Zieldienst und Kommunikationsidentifikation verwendet | Wird verwendet, um den Übergabeort von Daten zu unterscheiden |
| Typische Beispiele | HTTPS, SSH, SMTP, IMAPS | DNS, QUIC, Teile von Echtzeitkommunikation |
Auch bei derselben Portnummer werden TCP und UDP als unterschiedliche Kommunikation behandelt.
TCP Port 443 und UDP Port 443 verwenden zwar dieselbe Zahl "443", aber wegen unterschiedlicher Kommunikationsprotokolle behandeln OS und Netzwerkgeräte sie als verschiedene Dinge.
Portnummern helfen, den Zweck von Kommunikation zu vermuten
Wenn man Portnummern versteht, werden Kommunikationslogs und Netzwerkverhalten leichter lesbar.
Zielport 443 kann zum Beispiel auf Webkommunikation wie HTTPS oder HTTP/3 hindeuten. Zielport 53 kann DNS-Anfragen bedeuten. Zielport 587 kann mit Mailversand zusammenhängen.
Der Inhalt der Kommunikation lässt sich jedoch nicht allein anhand der Portnummer vollständig beurteilen.
Bei verschlüsselter Kommunikation ist der Inhalt schwerer sichtbar. Dienste können außerdem auf nicht standardmäßigen Portnummern laufen. Auf breit erlaubten Ports wie 443 kann auch andere Kommunikation als Web laufen.
Portnummern sind daher Material zur Vermutung des Kommunikationszwecks, aber kein Beweis für den Kommunikationsinhalt selbst.
Portnummern beim Verstehen von Anonymität
, , DNS und HTTPS funktionieren in der Praxis ebenfalls über Kombinationen aus IP-Adresse, Portnummer und Kommunikationsprotokoll.
HTTPS verwendet häufig Port 443. DNS verwendet häufig Port 53. VPNs nutzen je nach Verfahren unterschiedliche Portnummern und Protokolle. Auch bei Tor ändert sich die Sichtbarkeit der Kommunikation je nach Nutzungsumgebung und Ziel.
Bei Anonymität und Privatsphäre ist nicht nur der Kommunikationsinhalt wichtig, sondern auch die außen sichtbare Information der Kommunikation.
Auch wenn der Inhalt verschlüsselt ist, können je nach Beobachtungsposition folgende Informationen sichtbar sein.
| Information, die sichtbar sein kann | Bedeutung | Hinweis |
|---|---|---|
| Ziel-IP-Adresse | Zu welchem Server Kommunikation geht | Bei CDN oder Proxy stimmt sie nicht immer mit dem endgültigen Dienst überein |
| Zielportnummer | Welche Art von Kommunikation wahrscheinlich ist | 443 bedeutet nicht zwingend normales Web-Browsing |
| Kommunikationsprotokoll | TCP, UDP oder Ähnliches | Auch Webkommunikation kann wie HTTP/3 UDP 443 nutzen |
| Datenmenge | Wie viele Daten gesendet und empfangen werden | Auch bei Verschlüsselung kann die Menge beobachtbar sein |
| Kommunikationszeitpunkt | Wann kommuniziert wurde | Kann Material für Verhaltensmuster sein |
Portnummern bestimmen nicht selbst die Anonymität, sind aber wichtige Informationen zum Erfassen der Kommunikationsstruktur.
Wenn man ordnen kann, welche App zu welcher IP-Adresse mit welchem Protokoll und welcher Portnummer kommuniziert, werden auch VPN, Tor, DNS und HTTPS verständlicher.
Hier geht es nur um die Kommunikationsstruktur
Wenn man Portnummern und Sockets versteht, ändert sich der Blick auf Netzwerke stark. Dieser Artikel geht jedoch nicht tief in folgende Themen hinein.
| Nicht behandelte Inhalte | Grund |
|---|---|
| Socket-Programmierung | Implementierungsnah und vom Verständnis der Kommunikationsstruktur entfernt |
| Details temporärer Portnummern | Bereiche und Verhalten unterscheiden sich je nach OS und würden den Rahmen erweitern |
| Details von NAT-Tabellen | Würde in Übersetzung durch Router und Firewalls hineinführen |
| Praktische Portscans | Wäre konkrete Angriffs- oder Diagnosemethodik und nicht Ziel dieses Artikels |
Wichtig ist hier, dass IP-Adressen allein Kommunikation nicht ausreichend unterscheiden und dass Portnummern zusammen mit Protokollen Zustell- und Rückwege verwalten.
Zusammenfassung
Eine IP-Adresse ist Information, um den Kommunikationspartner im Netzwerk zu finden.
In einem einzelnen Gerät oder Server kommunizieren jedoch mehrere Dienste und Anwendungen gleichzeitig. Deshalb reicht die IP-Adresse allein nicht aus, um zu entscheiden, an welche Anwendung oder welchen Dienst Kommunikation gehen soll.
Portnummern werden bei TCP- und UDP-Kommunikation verwendet und dienen dem OS dazu, Kommunikation an passende Dienste oder Anwendungen zu verteilen.
Im Web werden 80 und 443, bei DNS 53 und bei Mail 25, 587 und 993 verwendet. Der Kommunikationsinhalt lässt sich jedoch nicht allein durch die Portnummer vollständig bestimmen.
Kommunikation wird durch die Kombination aus Quell-IP-Adresse, Quellportnummer, Ziel-IP-Adresse, Zielportnummer und Kommunikationsprotokoll identifiziert. Wer diese Kombination versteht, versteht auch, warum mehrere Apps auf einem Gerät gleichzeitig kommunizieren und mehrere Dienste auf einem Server laufen können.
Ein Socket ist ein Kommunikationszugang, den Anwendungen für Netzwerkkommunikation verwenden. Für das Verständnis der Kommunikationsstruktur lässt er sich als Kommunikationsendpunkt aus IP-Adresse, Portnummer und Kommunikationsprotokoll betrachten.
Wenn man Portnummern und Sockets versteht, kann man leichter lesen, wohin Kommunikation geht, welcher Dienst sie empfängt und als welche Kommunikation sie verwaltet wird. Das ist auch eine wichtige Grundlage für HTTPS, DNS, VPN, Tor und ähnliche Kommunikationsstrukturen.
Verwandte Werkzeuge
WhatIsMyIP
Eine externe Ressource zu diesem Artikel. Öffne sie nur, wenn sie zu deiner Situation und deinem Bedrohungsmodell passt.
Warum es hier aufgeführt ist: Sie kann beim Thema des Artikels helfen, liegt aber außerhalb von Anonymity Sense und sollte vor der Nutzung geprüft werden.