it-swarm.com.de

Ob TCP ist verbindungsorientiert, warum folgen Pakete unterschiedlichen Pfaden?

Wenn eine Internetanwendung entworfen werden muss, sollten wir meines Wissens entweder einen verbindungsorientierten Dienst oder einen verbindungslosen Dienst verwenden, aber nicht beides.

Der verbindungsorientierte Internetdienst ist TCP und der verbindungslose Dienst ist UDP. Beide Dienste befinden sich in der Transportschicht des Internetprotokollstapels.

Die einzige Netzwerkschicht im Internet ist IP, ein verbindungsloser Dienst. Das bedeutet, dass unabhängig von der von uns entworfenen Anwendung letztendlich IP zur Übertragung der Pakete verwendet wird.

Verbindungsorientierte Dienste verwenden denselben Pfad zum Übertragen aller Pakete, verbindungslose nicht.

Deshalb ist mein Problem

wenn eine verbindungsorientierte Anwendung entworfen wurde, sollte sie die Pakete über denselben Pfad übertragen. IP verstößt jedoch gegen diese Regel, indem es unterschiedliche Routen verwendet. Wie arbeiten also sowohl TCP als auch IP in diesem Sinne zusammen? Das verwirrt mich total.

23
Assasins

Sie, mein Freund, verwechseln die Funktionalität zweier Ebenen.

TCP ist verbindungsorientiert in dem Sinne, dass es einen Verbindungsaufbau zwischen den beiden Enden gibt, wo sie unter anderem verschiedene Dinge wie den Mechanismus der Überlastungskontrolle aushandeln können.
Der allgemeine Zweck der Transportschichtprotokolle besteht darin, die Bereitstellung von Prozess zu Prozess bereitzustellen, was bedeutet, dass sie nichts über Routen kennt. Wie Ihre Pakete das Endsystem erreichen, liegt außerhalb ihres Umfangs. Sie betreffen nur die Art und Weise, wie Pakete zwischen den beiden Endprozessen übertragen werden.

IP, auf der anderen Seite, das Netzwerkschichtprotokoll für das Internet, befasst sich mit der Datenübertragung zwischen den Endsystemen, ist jedoch verbindungslos. Es unterhält keine Verbindung, sodass jedes Paket unabhängig von den anderen Paketen gehandhabt wird.
Wenn Sie Ihr System verlassen, wählt jeder Router den Pfad, den er für jedes Paket für geeignet hält, und dieser Pfad kann sich je nach Verfügbarkeit/Überlastung ändern.

Wie beantwortet das deine Frage?
TCP stellt sicher, dass Pakete den anderen Prozess erreichen, es kümmert es nicht, WIE sie dort ankommen.
IP hingegen kümmert sich nicht darum, ob sie das andere Ende überhaupt erreichen, sondern leitet jedes unterschiedliche Paket einfach weiter, je nachdem, was für ein bestimmtes Paket am besten geeignet ist.

Hinweis:
Nehmen wir an, IP sei verbindungsorientiert, würden Pakete also dem gleichen Pfad folgen? Nicht unbedingt, es hängt davon ab, was das Wort "Verbindung" auf dieser Ebene bedeutet. Wenn Sie bestimmte Optionen im Zusammenhang mit Sicherheit aushandeln möchten, werden möglicherweise alle Ihre Pakete auf verschiedenen Wegen über das Internet weitergeleitet .

EDIT:
Um Sie nicht zu verwirren, bedeuten die meisten verbindungsorientierten Dienste auf der Netzwerkschicht und darunter, dass die Verbindung nach dem Aufbau auch einen virtuellen Pfad aufbaut, dem alle "Pakete" folgen müssen, um weitere Informationen zu erhalten :
Virtuelle Leitungs und Frame Relay-Netzwerke

32
Fingolfin

Dieser Link beantwortet Ihre Frage ziemlich gut http://www.tcpipguide.com/free/t_ConnectionOrientedandConnectionlessProtocols-3.htm

Einige Leute meinen, dies (TCP) sei eine "Simulation" der Leitungsvermittlung in höheren Netzwerkschichten; Dies ist vielleicht eine zweifelhafte Analogie. Obwohl eine TCP -Verbindung verwendet werden kann, um Daten zwischen Geräten hin und her zu senden, werden alle diese Daten tatsächlich immer noch als Pakete gesendet. Es gibt keine echte Verbindung zwischen den Geräten. Dies bedeutet, dass TCP alle potenziellen Fallstricke einer paketvermittelten Kommunikation behandeln muss, wie etwa den Verlust von Daten oder den Empfang von Datenstücken in der falschen Reihenfolge. 

Das TCP -Protokoll behandelt das Problem, dass IP-Pakete nicht in der richtigen Reihenfolge ankommen oder verloren gehen, um Ihnen das Gefühl zu vermitteln, dass sie über einen einzelnen FIFO-Kanal ankommen. Ja, TCP ist intelligent genug, um dies zu tun, es ist kein dedizierter zugrunde liegender Kanal erforderlich.

3
stackoverflower

Das TCP -Protokal wird von den sendenden/empfangenden Maschinen implementiert. Sobald die Pakete die sendende Maschine verlassen, wissen die Router, über die sie reisen, nichts über TCP. Sie verwenden lediglich IP, um die Pakete von der Quelle zum Ziel zu bringen . Dann ist es der Zielcomputer-Job, mithilfe von TCP sicherzustellen, dass alle Pakete ankommen und in der richtigen Reihenfolge ankommen. Das Internet selbst weiß nichts über TCP, es ist nur eine Schicht (oft Software), die eine Verbindung zu einem verbindungslosen Medium (dem Internet) herstellt.

Sobald ein Paket ein Ziel verlässt, kann es einen beliebigen Pfad (meistens) befolgen, solange es die Desintation erreicht, unabhängig vom übergeordneten Protokoll (z. B. TCP oder UDP).

Ich meine, es ist etwas komplizierter als das, aber soweit ich mich erinnern kann, ist dies die allgemeine Idee. 

2
Catlin

der Router arbeitet nur auf drei Ebenen (physisch, Datenverbindung und Netzwerkebene), sodass die Entscheidung nur von den Informationen abhängig ist. der Netzwerkschicht (IP-Protokoll) sind daher keine Informationen über TCP oder UDP am Router verfügbar 

0
Mustafa thamer