web-dev-qa-db-fra.com

TCP vs UDP - Qu'est-ce qu'une connexion TCP?

Qu'est-ce qu'une connexion TCP? Je comprends qu'il n'y a pas de connexion physique du client au serveur. Cette connexion est-elle uniquement le socket du client lié au nouveau socket créé par le serveur après la Par la suite, une fois la "connexion" établie, les sockets à chaque extrémité de la connexion savent alors où envoyer leurs paquets.

En quoi cela diffère-t-il de la façon dont UDP fonctionne autre que la prise de contact initiale avec TCP? Est-ce que chaque socket de serveur n'a qu'un seul client qui envoie des paquets à ce socket particulier?

Quels sont les avantages possibles d'avoir une connexion dédiée entre les hôtes? Ma compréhension de TCP et UDP est encore très basique, donc de larges généralisations devraient suffire.

52
Cheese

Décomposons cela en plusieurs parties. Tout d'abord, le résea est basé sur IP, qui est un protocole qui attribue une adresse à chaque nœud du réseau, et qui vous permet d'envoyer de petites quantités de données (généralement jusqu'à 64 Ko, mais généralement seulement 1500B ) d'un nœud à un autre.

En soi, cela ne vaut pas grand-chose, car nous ne pouvons pas vérifier que les données sont réellement arrivées et qu'elles sont arrivées dans le bon ordre. Si nous voulons qu'un mécanisme abstrait transmette des quantités arbitraires de données et s'assure qu'elles arrivent, nous avons besoin d'un autre protocole au-dessus du réseau qui gère cette "transmission" ". Et c'est le but de TCP.

Cependant, en parallèle à TCP, il existe un autre protocole de "transmission" qui ne fait aucune vérification et n'a aucune fiabilité, UDP. UDP est juste une enveloppe mince autour des paquets IP bruts, qui ajoute un peu de métadonnées (comme un numéro de port ).

UDP est toujours utile, cependant, car il existe de nombreuses situations dans lesquelles l'intégrité des données est déjà transférée à un protocole encore plus élevé, il n'y a donc pas besoin d'un protocole de transmission complexe. Ceci est par exemple utilisé dans les services de réseau virtuel, où une autre instance de TCP/IP est généralement exécutée sur un canal UDP. (Faire en sorte que le canal utilise un protocole fiable comme TCP peut en fait avoir des conséquences désastreuses dans ce cas en raison du renvoi des cascades.)

Ainsi, le terme "connexion TCP" fait référence à l'application du protocole TC. Le protocole est naturellement dynamique et se déroule généralement dans une séquence SYN-ACK-data-FIN, ou SYN/RST en cas de transmission rejetée; les deux pairs conservent un état de la connexion (prise de contact, établie, fermeture, fermée.) TCP introduit également les termes "serveur" et "client", le serveur étant l'homologue qui listen() s pour une connexion entrante.

44
Kerrek SB

La principale différence entre TCP et les sockets UDP est que UDP est sans connexion et n'utilise aucune confirmation que l'autre extrémité a reçu les données.

Le TCP (Transmission Control Protocol) est l'un des principaux protocoles d'Internet Protocol Suite. TCP est l'un des deux composants originaux de la suite, complétant le protocole Internet (IP), et donc la suite entière est communément appelée TCP/IP. TCP fournit la livraison fiable et ordonnée d'un flux d'octets d'un programme sur un ordinateur à un autre programme sur un autre ordinateur. TCP est le protocole utilisé par les principales applications Internet telles que le World Wide Web, le courrier électronique, l'administration à distance et le transfert de fichiers comptent. D'autres applications, qui ne nécessitent pas un service de flux de données fiable, peuvent utiliser le protocole UDP (User Datagram Protocol), qui fournit un service de datagramme qui met l'accent sur la latence réduite par rapport à la fiabilité.1

3
Hasteur