Grundlagen: So funktionieren TCP/IP und IPv6

Die Grundlage des Internets ist TCP/IP, das eine weltweite Kommunikation zwischen unterschiedlichsten Systemen ermöglicht. Wir erläutern den Aufbau der Protokollsuite und geben einen Einblick in das Protokoll IPv6.

19 Nebenstellen: Protocols, Ports und Sockets

Sind die Daten am Zielrechner angekommen, müssen diese noch an den richtigen Anwendungsprozess ausgeliefert werden. Beim Transport der Daten durch die einzelnen TCP/IP-Schichten benötigt man einen Mechanismus, der die Übergabe der Daten an das jeweilige richtige Protokoll sicherstellt. Das Zusammenlegen von Daten aus mehreren Quellen zu einem einzigen Datenstrom nennt man Multliplexen.

Ankommende Daten aus dem Netz muss IP also demultiplexen. Dazu kennzeichnet IP die Transportprotokolle mit Protokollnummern. Die Transportprotokolle selber nutzen Portnummern zur Identifizierung von Anwendungen. Einige dieser Protokoll- und Portnummern sind so genannte "Well-known services" - reservierte Nummern für Standardservices wie FTP oder Telnet. Also Dienste, die im gesamten Internet verbreitet sind.

Die IP-Protokollnummer steht in einem Byte im dritten Wort des Datagramm-Headers. Dieser Wert bestimmt die Übergabe an das jeweilige Protokoll in der Transportschicht, beispielsweise "6" für TCP oder "17" für UDP. Das Transportprotokoll muss nach Empfang der Daten diese an den richtigen Anwendungsprozess übergeben. Anwendungsprozesse werden anhand einer 16-Bit langen Portnummer identifiziert. Im ersten Wort jedes TCP- und UDP-Headers sind sowohl die "Source Port"-Nummer als auch die "Destination Port"-Nummer enthalten.

TCP und UDP können dabei die selben Portnummern vergeben. Erst die Kombination aus Protokoll und Portnummer ist eindeutig. Somit ist die Portnummer 53 in TCP nicht identisch mit der Portnummer 53 in UDP.Man unterscheidet zwischen unterschiedlichen Port-Typen:

  • Well-known ports: Bei diesem Typ handelt es sich um reservierte und standardisierte Port-Nummern zwischen 1 und 1023. Dies vereinfacht den Aufbau einer Verbindung, weil sowohl Absender und Empfänger bereits wissen, dass Daten für einen bestimmten Prozess an einen bestimmten Port gesendet werden müssen. So nutzen beispielsweise alle Systeme für Telnet den Port 23.

  • Dynamically allocated ports: Diese dynamisch zugewiesenen Ports werden nicht vorab vergeben, sondern erst, wenn ein Prozess einen Port benötigt.

Die Kombination aus IP-Adresse und Port-Nummer wird als Socket bezeichnet. Ein Socket kann einen einzelnen Netzwerkprozess innerhalb des gesamten Internets eindeutig identifizieren. Zwei Sockets, einer für den Ausgangs- und einer für den Zielrechner, definieren eine Verbindung für verbindungsorientierte Protokolle wie TCP/IP.

Die Liste der aktuell vergebenen Portnummern wird von der IANA verwaltet.