So werden mehrere Verbindungen mit einem einzigen Port aufrechterhalten

So werden mehrere Verbindungen mit einem einzigen Port aufrechterhalten

Nachdem ich etwas über Paket- und Leitungsvermittlung gelesen hatte, habe ich gelernt, dass Server mehrere Verbindungen mit einem Port aufrechterhalten, indem sie eine hergestellte Client-Verbindung an einen untergeordneten Prozess weitergeben. Außerdem haben alle an der Verbindungsroute beteiligten Knoten eine Verbindungs-ID-Tabelle verwaltet, damit Pakete korrekt an den nächsten Knoten weitergeleitet werden können.

Ein paar Fragen habe ich hierzu allerdings noch:

  • Benötigen Pakete außer einer Verbindungs-ID-Nummer noch weitere Header-Daten, wenn eine Verbindung mit einem anderen Programm hergestellt wurde?

  • Nachdem eine Verbindung beispielsweise über Port 80 hergestellt wurde, werden die Daten weiterhin über diesen Port übertragen oder wurde durch die erstellte Verbindungs-ID ein neuer offener Port für die weitere Kommunikation angegeben?

  • Im Briefwechsel mitmeine Frage hier; Gibt es eine tatsächliche physische Trennung zwischen verschiedenen Verbindungen? Oder ist sie rein theoretisch/virtuell?

Antwort1

Sie scheinen das Konzept der Leitungsvermittlung mit TCP/IP zu verwechseln.

Die Rede von Port 80 deutet auf das HTTP-Protokoll über TCP und IP hin. Bei TCP/IP müssen die Zwischenknoten (Router) keine „Verbindungs-IDs“ im Auge behalten. Zum Weiterleiten von Paketen werden dynamisch verwaltete Routing-Tabellen von IP-Adressbereichen verwendet. Es ist nicht notwendig, dass aufeinanderfolgende Pakete demselben Pfad folgen.

Der Server verfolgt TCP-Verbindungen anhand der IP-Adresse und TCP-Portnummer des Clients sowie der Portnummer des Servers (und der Server-IP-Adresse, Server können mehrere IP-Adressen haben). Eine Verbindung wird durch die Kombination dieser vier Informationen identifiziert. Die Client-Portnummer wird normalerweise pseudozufällig vom Client gewählt.

Beachten Sie, dass UDP verbindungslos ist. Es gibt kein Konzept einer UDP-Verbindung. Viele Protokolle der Internetanwendungsschicht verwenden UDP als Protokoll der Transportschicht.

Benötigen Pakete außer einer Verbindungs-ID-Nummer noch weitere Header-Daten, wenn eine Verbindung mit einem anderen Programm hergestellt wurde?

TCP-Header und IP-Header in TCP/IP-Paketen enthalten keine „Verbindungs-IDs“ als solche.

Nachdem eine Verbindung über beispielsweise Port 80 hergestellt wurde, werden die Daten dann immer noch über diesen Port weitergeleitet?

Ja.

oder hat die hergestellte Verbindungs-ID einen neuen offenen Port für die weitere Kommunikation angegeben?

Wie ich oben sagte, gibt es in TCP/IP keine Verbindungs-IDs als solche. Manchmal stellt ein Protokoll höherer Ebene die Kommunikation über andere Ports her (z. B. die Kontroll- und Datenports von FTP).

In Übereinstimmung mit meiner Frage hier: Gibt es eine tatsächliche physische Trennung zwischen verschiedenen Verbindungen?

Normalerweise nicht. Ein Server kann mehrere Netzwerkkarten haben, die verschiedene Clientgruppen bedienen.

Oder ist es rein theoretisch/virtuell?

Portnummern und dergleichen sind lediglich Zahlen in den Paketheadern.

Antwort2

Nachdem ich etwas über Paket- und Leitungsvermittlung gelesen hatte, habe ich gelernt, dass Server mehrere Verbindungen mit einem Port aufrechterhalten, indem sie eine hergestellte Client-Verbindung an einen untergeordneten Prozess weitergeben. Außerdem haben alle an der Verbindungsroute beteiligten Knoten eine Verbindungs-ID-Tabelle verwaltet, damit Pakete korrekt an den nächsten Knoten weitergeleitet werden können.

Dieser Absatz ist wirklichverwirrend. Zuerst beziehen Sie sich auf das Umschalten auf der Netzwerkschicht. Dann beziehen Sie sich auf Verbindungen, die auf der Transportschicht hergestellt werden. Dann kombinieren Sie sie irgendwie miteinander, obwohl es sich eigentlich um unterschiedliche Schichten handelt. Bedenken Sie, dass Leitungsvermittlung nur eine Idee sein könnte und in der Vergangenheit vielleicht verwendet wurde oder auch nicht. Wenn Sie sich jedoch auf Ports beziehen, beziehen Sie sich auf TCP/IP, das überhaupt keine Leitungsvermittlung verwendet...

Benötigen Pakete außer einer Verbindungs-ID-Nummer noch weitere Header-Daten, wenn eine Verbindung mit einem anderen Programm hergestellt wurde? Gehen die Daten nach dem Herstellen einer Verbindung über beispielsweise Port 80 immer noch über diesen Port oder wurde durch die hergestellte Verbindungs-ID ein neuer offener Port für die weitere Kommunikation angegeben?

Du meinst eine Verbindung mit einem Programm, das TCP/IP-Ports verwendet. In diesem Fall wurde dem Paket keine Verbindungs-ID angehängt. Bei Circuit-Switching wäre dies jedoch notwendig.

Gibt es eine tatsächliche physische Trennung zwischen verschiedenen Verbindungen? Oder ist sie rein theoretisch/virtuell?

Alles läuft über dasselbe Kabel, es kann also eher als virtuell denn als physisch betrachtet werden.

Eine hergestellte Verbindung ist lediglich ein Mittel, um zu sagen: „Ich werde über diesen Post an diese Adresse kommunizieren.“ Ja, eine Verbindung ist einfach ein IP-Adress- und Portpaar …


Verwenden Sie Wikipedia nicht ausschließlich, um Erkenntnisse zu diesem Thema zu gewinnen, sondern versuchen Sie, tiefer in ein Buch über Computernetzwerke einzutauchen ...

verwandte Informationen