Das Transmission Control Protocol (TCP) ist darauf ausgelegt, Multiplexing zu handhaben, indem es Portnummern verwendet, um verschiedene Anwendungen oder Prozesse auf einem einzelnen Computer zu identifizieren. Jeder Anwendung oder jedem Prozess wird eine eindeutige Portnummer zugewiesen, die es der TCP-Schicht ermöglicht, zwischen eingehenden Datenströmen zu unterscheiden und sie an die entsprechende Anwendung weiterzuleiten. So handhabt TCP Multiplexing:
TCP-Portnummern:
- Jede TCP-Portnummer ist eine 16-Bit-Ganzzahl ohne Vorzeichen im Bereich von 0 bis 65535.
- Bekannte Ports (0 bis 1023) sind für Standarddienste und -anwendungen wie HTTP (Port 80), FTP (Port 21) und SMTP (Port 25) reserviert.
- Kurzlebige Ports (über 1023) werden temporären Verbindungen, wie sie beispielsweise von Webbrowsern verwendet werden, dynamisch zugewiesen.
Eingehende Daten multiplexen:
- Wenn Daten an einem TCP-Endpunkt ankommen (Kombination aus IP-Adresse und Portnummer), prüft die TCP-Schicht die Zielportnummer.
- Wenn die Portnummer mit einem bekannten Port übereinstimmt, werden die Daten an den entsprechenden Dienst oder die entsprechende Anwendung weitergeleitet.
- Wenn es sich bei der Portnummer um einen kurzlebigen Port handelt, sucht es in seinen internen Datenstrukturen nach dem Prozess oder der Anwendung, die diesem Port zugeordnet ist, und leitet die Daten entsprechend weiter.
Multiplexing ausgehender Daten:
– Wenn eine Anwendung Daten an eine bestimmte Ziel-IP-Adresse und Portnummer sendet, prüft die TCP-Schicht, ob eine Verbindung zu diesem Endpunkt besteht.
- Wenn eine Verbindung besteht, werden die Daten zum Sendepuffer der Verbindung hinzugefügt.
- Wenn keine Verbindung besteht, wird eine neue TCP-Verbindung hergestellt, indem ein SYN-Paket an die Zieladresse und den Zielport gesendet wird.
- Sobald die Verbindung hergestellt ist, werden die Daten über die hergestellte Verbindung gesendet.
Durch die Verwendung von Portnummern als Kennungen multiplext TCP mehrere Datenströme über eine einzige Netzwerkverbindung und stellt so sicher, dass Daten aus verschiedenen Anwendungen oder Prozessen korrekt weitergeleitet und an die vorgesehenen Empfänger übermittelt werden.