Ein Port oder eine Portnummer ist in Rechnernetzen eine Netzwerkadresse, mit der das Betriebssystem die Datenpakete eines Transportprotokolls zu einem Prozess zuordnet. Zusammen mit der IP-Adresse ermöglicht der Port die Adressierung eines Servers oder Clients. Durch Angabe von Quell- und Zieladresse, jeweils bestehend aus IP-Adresse und Port, ist es möglich, eine bestehende Verbindung eindeutig zu identifizieren.
Die weit verbreiteten Transportprotokolle Transmission Control Protocol (TCP) und User Datagram Protocol (UDP) verwenden 16 Bit als Port. Daraus ergibt sich ein Portnummernbereich von 0 bis 65.535
Ports dienen zwei Zwecken:
Auf einem Rechner, der an ein Netzwerk angeschlossen ist, können gleichzeitig mehrere Prozesse laufen, die über das Internet mit anderen Prozessen Datenpakete austauschen. Zum Beispiel können gleichzeitig zwei Prozesse in einem Webbrowser aktiv sein. Wie soll der Rechner, auf dem die Prozesse laufen, entscheiden, zu welchem der Prozesse ein ankommendes Datenpaket weitergeleitet werden soll?
Die Identifikation von Prozessen erfolgt mit Hilfe von Portnummern. Wenn beispielsweise ein Browser mit einem Webserver im Internet kommuniziert und ihm eine Anfrage zu einer Webseite schickt, so beschreibt die Zielportnummer die Art der Anwendung (HTTP-Prozess, festgelegt durch Portnummer 80). Als Quellportnummer wird irgendeine zur Zeit noch nicht verwendete Zahl > 49.151, z.B. 51125. Wird ein zweiter HTTP-Prozess gestartet, so wird als Zielportnummer ebenfalls die Zahl 80 festgelegt, als Quellportnummer wird eine andere Zahl, z.B. 51242, verwendet. Antwortet der Webserver dem ersten HTTP-Prozess, so gibt er umgekehrt als Quellportnummer die 80 und als Zielportnummer die 51125an. Der Rechner weiß jetzt, dass die Antwort für genau diesen ersten HTTP-Prozess bestimmt war.
Diese Ports werden auch „well-known Ports“ genannt und sind für Netzwerkdienste vorgesehen. Einige der Portnummern, wie beispielsweise 0 und 1023, sind durch die IANA reserviert und werden nicht vergeben. Neue Zuordnungen erfolgen nur unter Beteiligung der Internet Engineering Task Force (IETF) und setzen die Zustimmung der Internet Engineering Steering Group voraus. Der Antragsteller muss begründen, warum eine Portnummer aus den anderen Bereichen für den Anwendungszweck ungeeignet ist.
Damit man beim Aufbau einer Verbindung nicht immer IP-Adresse und Port angeben muss, sondern den Port weglassen kann, gibt es sogenannte „well known ports“. Diese definieren Standardports für bestimmte Anwendungen bzw. Protokolle. So ist z.B. der Port 80 für Webserver bzw. das http-Protokoll vorgesehen. Dies hat zur Folge, dass ein Benutzer nur die IP-Adresse bzw. den Rechnernamen angeben muss. Der Browser nutzt automatisch Port 80, da er ja weiß, dass er eine Verbindung zu einem Webserver mit Hilfe des http-Protokolls aufbaut.
Ports 1024 bis 49.151 (400hex bis BFFFhex)
Diese Ports sind für registrierte Netzwerkdienste vorgesehen. In diesem Bereich können auf Antrag neue Zuordnungen je nach Verfahren mit oder ohne Beteiligung der IETF erfolgen.
Bei gängigen Betriebssystemen steht dieser Portbereich zur Verwendung durch Client und Server zur Verfügung, sofern die Anwendung den Port explizit anfordert.
Ports 49.152 bis 65.535 (C000hex bis FFFFhex)
Diese Ports sind für eine dynamische Zuweisung durch das Betriebssystem vorgesehen. Die IANA führt in diesem Bereich keine Registrierungen durch.
Microsoft verwendet seit Windows Vista und Windows Server 2008 standardmäßig diesen Bereich für die dynamische Zuordnung an Clientprogramme.[7] Linux verwendet standardmäßig einen davon abweichenden Bereich und vergibt dynamische Ports im Bereich von 32.768 bis 60.999.