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

cette question a déjà une réponse ici:

qu'est-ce qu'une connexion TCP? Je comprends qu'il n'y a pas de connexion physique entre le client et le serveur. Est-ce que cette connexion est seulement la socket du client étant lié avec le nouveau socket créé par le serveur après la poignée de main à trois? Ensuite, une fois la" connexion " établie, les sockets situés aux deux extrémités de la connexion savent où envoyer leurs paquets.

en quoi cela diffère-t-il de la façon dont fonctionne UDP autre que la poignée de main initiale avec TCP? Est-ce que chaque socket de serveur a seulement un client qui envoie des paquets à cette socket particulière?

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.

49
demandé sur Sorangwala Abbasali 2011-11-16 21:49:37

2 réponses

séparons ça en morceaux. Tout d'abord, le réseau est basé en IP, qui est un protocole qui assigne une adresse à chaque noeud réseau, et qui vous permet d'envoyer de petites quantités de données (généralement jusqu'à 64kB, mais généralement seulement 1500B) d'un noeud à l'autre.

que par lui-même ne vaut pas beaucoup encore, parce que nous ne pouvons pas faire des vérifications que les données sont réellement arrivées, et qu'il est arrivé dans le bon ordre. Si nous voulons un résumé mécanisme pour transmettre arbitraire quantités de données et de s'assurer qu'ils sont arrivés, nous avons besoin d'un autre protocole au sommet du réseau qui gère cette "transmission". Et C'est le but de TCP.

cependant, en parallèle à TCP, il y a un autre protocole de "transmission" qui ne fait aucune vérification et n'a aucune fiabilité, UDP. UDP n'est qu'un habillage fin des paquets IP bruts, qui ajoute un peu de méta-données (comme un port ) ).

UDP est toujours utile, cependant, car il existe de nombreuses situations dans lesquelles l'intégrité des données est déjà transmise à un protocole encore plus élevé, de sorte qu'il n'y a 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 typiquement exécutée sur un canal UDP. (L'utilisation d'un protocole fiable comme TCP peut avoir des conséquences désastreuses en cette affaire à cause de resend cascades.)

ainsi le terme" connexion TCP " se réfère à l'application du protocole TC. Le protocole est stateful, naturellement, et se déroule typiquement dans une séquence SYN-ACK-data-FIN, ou SYN/RST en cas de transmission rejetée; les deux pairs maintiennent un État de la connexion (poignée de main, établie, fermeture, fermée).) TCP introduit également les Termes "server" et "client", le serveur étant le Pair que listen() s pour une connexion entrante.

40
répondu Kerrek SB 2011-11-16 17:54:59

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

le protocole de contrôle de Transmission (TCP) est l'un des protocoles de base de la suite de protocoles Internet. 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 offre une fiabilité, commandé un flux d'octets à partir d'un programme sur un ordinateur à un autre programme sur un autre ordinateur. TCP est le protocole sur lequel reposent les principales applications Internet telles que le World Wide Web, le courrier électronique, l'administration À Distance et le transfert de fichiers. D'autres applications, qui ne nécessitent pas de service fiable de flux de données, peuvent utiliser le protocole de datagramme utilisateur (UDP), qui fournit un service de datagramme qui met l'accent sur la latence réduite plutôt que la fiabilité. 1

3
répondu Hasteur 2018-07-09 02:31:23