Zurück zum Inhaltsverzeichnis des Manuskripts verteilte Systeme

4.2 Portnummern

Anwendungsadressierung im Internet

Im Internet verschafft sich ein Anwendungsprogramm, das Daten an eine andere Anwendung übertragen will, Zugriff auf den lokalen Transportdienst, indem es einen Socket einrichtet. Da es im Internet zwei Transportdienste (UDP und TCP) gibt, gibt es auch zwei Socketarten, nämlich Datagramm- und Stream-Sockets. Ihre praktische Benutzung ist bereits im Abschnitt 2.2 (Sockets) behandelt worden.

Bei der Einrichtung eines Sockets, wird der zugehörigen Anwendung durch die Programmierung direkt, zum Beispiel als Parameter, oder indirekt eine positive, ganze, 16 Bits große Zahl (max. 65.535) zugeordnet. Sie heißt Portnummer oder kurz Port und dient als Adresse dieser Anwendung auf dem jeweiligen Rechner. Die Protokollsoftware enthält eine rechnerlokale Portverwaltung, die eine Portbelegungstabelle führt und von der eine Anwendung eine freie Portnummer anfordern kann. Portnummern gibt es je einmal für jedes der beiden Transportprotokolle. Das heißt, dass, um eindeutig zu sein, zu der Angabe einer Portnummer auch das verwendete Transportprotokoll mit angegeben werden muss, außer es ist im jeweiligen Kontext unverwechselbar. Zwischen rechnerlokalen Anwendungen und Portnummern gibt es folgende Beziehungen:

  1. Zu jeder positiven ganzen Zahl, die kleiner als 65.535 ist, gibt es entweder gar keine zugeordnete lokale Anwendung oder genau eine. Mit anderen Worten: Es gibt höchstens eine. Es ist also nicht möglich, dass eine Portnummer zwei oder mehr Anwendungen adressiert.

  2. Auf der anderen Seite kann es jedoch zu einer lokalen Anwendung mehr als eine Portnummer geben. Eine Anwendung kann auf dem lokalen Rechner mehrere Adressen haben.

Portnummer 0

Die Portnummer 0 spielt eine besondere Rolle. Wendet sich eine Anwendung an die Portverwaltung ihres Transportdienstes mit der Aufforderung, ihr die Portnummer 0 zuzuweisen, dann interpretiert das Transportsystem dies als Wunsch, der Anwendung irgendeine freie Portnummer zu geben. Das heißt, dass es keinen Socket am Port 0 geben kann. Und das gilt für beide Transportprotokolle.

Einteilung der Portnummern

Die Internet Assigned Numbers Authority (IANA), eine Abteilung der Internet Corporation for Assigned Names and Numbers (ICANN), hat den Wertebereich der Portnummern, die ungleich Null sind, für beide Transportprotokolle einheitlich in drei Bereiche eingeteilt:

(1) System Ports, die oft auch Well Known Ports genannt werden, umfassen die Nummern von 1 bis 1.023 (einschließlich) und sind den Standard-Internetdiensten zugeordnet. Es bedarf Administratorrechte, um hier Änderungen vornehmen zu können. Systemverwalter können allerdings von den Voreinstellungen abweichen und beispielsweise einen Web-Server an einem anderen als seinem Well Known Port (er hat die Nummer 80 (TCP)) warten lassen. Dann kann er nur von Clients erreicht werden, die diesen Port kennen. Die Verbindung zwischen Standard-Internetdiensten und Portnummern ist in einer Konfigurationsdatei festgehalten. Unter Unix/Linux ist das die Datei

/etc/services

Oft genutzte Well Known Ports sind beispielsweise

(2) User Ports liegen in dem Zahlenbereich zwischen 1.024 und 49.151 (einschließlich). Sie werden oft auch Registered Ports genannt, weil Hersteller von Internet-Tools ihre Produkte bei der IANA registrieren lassen können und von dort feste Portnummern erhalten. Aus diesem Bereich werden von der Portverwaltung des Transportdienstes freie Portnummern vergeben, wenn eine Anwendung die Portnummer 0 anfordert. Auch die meisten Programmbeispiele zu der Lehrveranstaltung benutzen Portnummern aus diesem Bereich, da keine Gefahr besteht, mit irgendeinem registrierten Produkt in Konflikt zu geraten.

(3) Alle Portnummern über 49.151 bis einschließlich 65.535 heißen private oder dynamic Ports. Ihre Verwendung ist nicht festgelegt, d.h. sie können von jedermann frei benutzt werden.



Zurück zum Inhaltsverzeichnis des Manuskripts verteilte Systeme