web-dev-qa-db-fra.com

Si TCP la connexion est-elle orientée, pourquoi les paquets suivent-ils des chemins différents?

À ma connaissance, si une application Internet doit être conçue, nous devrions utiliser un service orienté connexion ou un service sans connexion, mais pas les deux.

Le service orienté connexion d'Internet est TCP et le service sans connexion est UDP. Ils sont tous deux situés dans la couche de transport de la pile de protocole Internet.

La seule couche réseau d’Internet est IP, qui est un service sans connexion. Cela signifie donc que quelle que soit l'application que nous concevons, elle utilise finalement IP pour transmettre les paquets.

Les services en mode connexion utilisent le même chemin pour transmettre tous les paquets, mais sans connexion.

Donc mon problème est

si une application orientée connexion a été conçue, elle devrait transmettre les paquets en utilisant le même chemin. Mais IP brise cette règle en utilisant différentes routes. Alors, comment TCP et IP fonctionnent-ils ensemble dans ce sens? Cela me déroute totalement.

23
Assasins

Vous, mon ami, vous confondez la fonctionnalité de deux couches différentes.

TCP est orienté connexion dans le sens où il existe une connexion, entre les deux extrémités, où ils peuvent négocier des choses différentes, telles que le mécanisme de contrôle de congestion.
Le but général des protocoles de la couche de transport est de fournir une livraison de processus à processus, ce qui signifie qu’elle ne sait rien des itinéraires; la manière dont vos paquets atteignent le système final dépasse leur portée, ils se préoccupent uniquement de la façon dont les paquets sont transmis entre les deux processus PROCESSES.

IP, en revanche, le protocole de couche réseau pour Internet, concerne la transmission de données entre les systèmes d'extrémité mais sans connexion, il ne maintient aucune connexion, de sorte que chaque paquet est traité indépendamment des autres paquets.
En quittant votre système, chaque routeur choisira le chemin qu’il jugera approprié pour CHAQUE paquet, et ce chemin peut changer en fonction de la disponibilité/de la congestion.

Comment cela répond-il à votre question?
TCP s'assurera que les paquets atteignent l'autre processus, il ne se souciera pas de savoir comment ils sont arrivés là.
IP, d’autre part, ne se souciera pas du tout d’atteindre l’autre extrémité, il transmettra simplement chaque paquet différent en fonction de ce qu’il juge le plus approprié pour un paquet particulier.

Remarque:
Supposons que l’IP soit orienté connexion, est-ce que cela signifie que les paquets suivraient le même chemin? Pas nécessairement, cela dépend de la signification de la "connexion" du mot sur cette couche. Par exemple, si vous négociez certaines options liées à la sécurité, il se peut que tous vos paquets soient toujours transférés via Internet. .

EDIT:
Pour ne pas vous embrouiller, la plupart des services orientés connexion situés au niveau de la couche réseau et au-dessous impliquent que la connexion, une fois établie, établit également un chemin virtuel que tous les "paquets" doivent suivre. Pour plus d'informations, consultez :
Circuit virtuel et réseaux à relais de trames

32
Fingolfin

Ce lien répond assez bien à votre question http://www.tcpipguide.com/free/t_ConnectionOrientedandConnectionlessProtocols-3.htm

Certaines personnes considèrent cela (TCP) comme une «simulation» de commutation de circuits au niveau de couches de réseau supérieures. c'est peut-être une analogie douteuse. Même si une connexion TCP peut être utilisée pour envoyer des données entre périphériques, toutes ces données sont toujours envoyées sous forme de paquets; il n'y a pas de circuit réel entre les appareils. Cela signifie que TCP doit faire face à tous les pièges d'une communication à commutation de paquets, tels que le risque de perte de données ou de réception d'éléments de données dans un ordre incorrect. 

Le protocole TCP traite le problème des paquets IP arrivant dans l’ordre ou perdus, afin de vous donner l’impression qu’ils arrivent par un seul canal FIFO. Oui, TCP est suffisamment intelligent pour le faire. Aucun canal sous-jacent dédié n’est nécessaire.

3
stackoverflower

Le protocole TCP est mis en oeuvre par les machines émettrices/réceptrices. Dès que les paquets quittent la machine émettrice, les routeurs qu'ils empruntent ne connaissent plus le protocole TCP. Ils utilisent simplement IP pour récupérer les paquets de la source à destination. . Ensuite, c’est le travail de la machine de destination qui consiste, à l’aide de TCP, à s’assurer que tous les paquets arrivent et s’ils arrivent dans le bon ordre. Internet lui-même ne sait rien du TCP, c'est juste une couche (souvent un logiciel) qui permet la connexion à un support sans connexion (Internet).

Ainsi, lorsqu'un paquet quitte une destination, il peut emprunter n'importe quel chemin (la plupart du temps) tant qu'il arrive à la description, quel que soit le protocole de niveau supérieur (tel que TCP ou UDP).

Je veux dire, c'est un peu plus compliqué que ça, mais autant que je puisse m'en souvenir, c'est l'idée générale. 

2
Catlin

le routeur ne fonctionne que sur trois couches (couche physique, liaison de données et couche réseau). Les routeurs prendront donc la décision en fonction des informations. de la couche réseau (protocole IP) donc aucune information disponible sur son TCP ou UDP au niveau du routeur 

0
Mustafa thamer