Les différences entre TCP et UDP sont : 1. UDP est sans connexion, TCP est orienté connexion ; 2. UDP est une transmission peu fiable, TCP est une transmission fiable 3. UDP est orienté transmission de messages, TCP C'est le cas ; orienté vers la transmission de flux d'octets.
Comparaison :
(Recommandation vidéo d'apprentissage : tutoriel vidéo Java)
UDP
Le nom complet du protocole UDP est User Datagram Protocol. Dans le réseau, il est utilisé pour traiter les paquets de données comme le protocole TCP. Dans le modèle OSI, la quatrième couche, la couche transport, est la couche supérieure du protocole IP. UDP présente l'inconvénient de ne pas permettre le regroupement, l'assemblage et le tri des paquets de données. Autrement dit, une fois qu'un message est envoyé, il est impossible de savoir s'il est arrivé complètement et en toute sécurité.
Il présente les caractéristiques suivantes :
1. Orienté sans connexion
Tout d'abord, UDP n'a pas besoin d'effectuer une négociation à trois avant d'envoyer des données pour établir une connexion. comme TCP. Envoyez des données pour commencer l'envoi. Et il ne s'agit que d'un porteur de paquets de données et n'effectuera aucune opération de fractionnement ou d'épissage sur les paquets de données.
Plus précisément :
À l'extrémité d'envoi, la couche application transmet les données au protocole UDP de la couche transport. UDP ajoutera uniquement un en-tête UDP aux données. le Transmis à la couche réseau. À la réception, la couche réseau transmet les données à la couche de transport. UDP supprime uniquement l'en-tête IP et le transmet à la couche application sans aucune opération d'épissage
2. Là. sont unicast et multicast, la fonction de diffusion
UDP prend non seulement en charge la transmission un-à-un, mais prend également en charge un-à-plusieurs, plusieurs-à-plusieurs et plusieurs-à-un. UDP fournit des fonctions de monodiffusion, de multidiffusion et de diffusion.
3. UDP est orienté message
L'UDP de l'expéditeur transmet le message à l'application, et après avoir ajouté l'en-tête, il est transmis à la couche IP. UDP ne fusionne ni ne divise les paquets transmis par la couche application, mais conserve les limites de ces paquets. Par conséquent, l'application doit choisir un message de taille appropriée
4. Manque de fiabilité
Tout d'abord, le manque de fiabilité se reflète dans le manque de connexion. Il n'est pas nécessaire d'établir une connexion pour la communication. Vous pouvez envoyer quand vous le souhaitez. Une telle situation n'est certainement pas fiable.
Et les données seront transférées au fur et à mesure de leur réception, et les données ne seront pas sauvegardées lors de l'envoi de données, il ne se souciera pas de savoir si l'autre partie a reçu les données correctement.
De plus, l'environnement réseau est bon et mauvais, mais UDP enverra toujours les données à une vitesse constante car il n'y a pas de contrôle de congestion. Même si les conditions du réseau ne sont pas bonnes, le débit d'envoi ne sera pas ajusté. L'inconvénient de cette implémentation est qu'elle peut entraîner une perte de paquets lorsque les conditions du réseau ne sont pas bonnes, mais les avantages sont également évidents dans certains scénarios avec des exigences élevées en temps réel (comme les conférences téléphoniques), UDP doit être utilisé à la place. TCP.
5. La surcharge d'en-tête est faible et elle est très efficace lors de la transmission de messages de données.
TCP
Lorsqu'un ordinateur souhaite communiquer avec un autre ordinateur, la communication entre les deux ordinateurs doit être fluide et fiable, afin d'assurer l'envoi et la réception corrects des données. Par exemple, lorsque vous souhaitez afficher une page Web ou consulter votre courrier électronique, vous souhaitez voir la page Web dans son intégralité et dans l'ordre sans perdre aucun contenu. Lorsque vous téléchargez un fichier, vous espérez obtenir le fichier complet, pas seulement une partie du fichier, car si les données sont perdues ou en désordre, ce n'est pas le résultat souhaité, donc TCP est utilisé.
Le nom complet du protocole TCP est Transmission Control Protocol. Il s'agit d'un protocole de communication de couche de transport fiable, orienté connexion et basé sur le flux d'octets, défini par la RFC 793 de l'IETF. TCP est un protocole de streaming fiable et orienté connexion. Un flux fait référence à une structure de données ininterrompue. Vous pouvez le considérer comme de l'eau qui coule dans un tuyau d'évacuation.
1. Processus de connexion TCP
Première poignée de main
Le client envoie un segment de demande de connexion au serveur. Ce segment de message contient son propre numéro de séquence initial de communication de données. Une fois la demande envoyée, le client entre dans l'état SYN-SENT.
Deuxième poignée de main
Une fois que le serveur a reçu le segment de demande de connexion, s'il accepte la connexion, il enverra une réponse, qui comprendra également son propre numéro de séquence initial pour la communication des données. la transmission est terminée, il entre dans l'état SYN-RECEIVED.
Troisième poignée de main
Lorsque le client reçoit la réponse d'approbation de connexion, il envoie également un message de confirmation au serveur. Une fois que le client a envoyé ce segment de message, il entre dans l'état ESTABLISHED. Une fois que le serveur a reçu cette réponse, il entre également dans l'état ESTABLISHED. À ce stade, la connexion est établie avec succès.
Vous avez peut-être une question ici : Pourquoi TCP nécessite-t-il trois poignées de main pour établir une connexion, au lieu de deux ? En effet, cela permet d'éviter que des segments de demande de connexion non valides soient reçus par le serveur, ce qui entraînerait des erreurs.
2. TCP se déconnecte
TCP est en duplex intégral et les deux extrémités doivent envoyer FIN et ACK lors de la déconnexion.
Première poignée de main
Si le client A pense que l'envoi des données est terminé, il doit envoyer une demande de libération de connexion au serveur B.
Deuxième poignée de main
Après avoir reçu la demande de libération de connexion, B demandera à la couche application de libérer le lien TCP. Ensuite, un paquet ACK sera envoyé et l'état CLOSE_WAIT sera entré. Cela indique que la connexion de A à B a été libérée et que les données envoyées par A ne seront plus reçues. Mais comme la connexion TCP est bidirectionnelle, B peut toujours envoyer des données à A.
La troisième poignée de main
B continuera à envoyer s'il reste encore des données inachevées à ce moment-là. Une fois terminé, il enverra une demande de libération de connexion à A, puis B entrera dans le DERNIER. -État ACK.
La quatrième poignée de main
Après avoir reçu la demande de libération, A envoie une réponse de confirmation à B. À ce moment, A entre dans l'état TIME-WAIT. Cet état durera 2 MSL (durée de vie maximale du segment, qui fait référence à la durée pendant laquelle le segment de message survit dans le réseau, et sera rejeté après l'expiration du délai. S'il n'y a pas de demande de renvoi de B pendant cette période, il entrera dans l'état FERMÉ). État. Lorsque B reçoit la réponse de confirmation, il entre également dans l'état FERMÉ.
3. Caractéristiques du protocole TCP
Orienté connexion
Orienté connexion, ce qui signifie qu'une connexion doit être établie aux deux extrémités avant d'envoyer des données. La méthode d'établissement d'une connexion est la « poignée de main à trois », qui peut établir une connexion fiable. L'établissement d'une connexion constitue la base d'une transmission fiable des données.
Prend uniquement en charge la transmission unicast
Chaque connexion de transmission TCP ne peut avoir que deux points de terminaison et ne peut effectuer que la transmission de données point à point. Les méthodes de transmission multidiffusion et de diffusion ne sont pas prises en charge.
Orienté vers les flux d'octets
TCP ne transmet pas les messages indépendamment comme UDP, mais les transmet dans un flux d'octets sans conserver les limites des messages.
Transmission fiable
Pour une transmission fiable, la perte de paquets et les erreurs sont déterminées par le numéro de segment TCP et le numéro de confirmation. Afin de garantir la fiabilité de la transmission des messages, TCP attribue à chaque paquet un numéro de séquence. Dans le même temps, le numéro de séquence garantit également que les paquets transmis à l'entité finale réceptrice sont reçus dans l'ordre. L'entité réceptrice renvoie ensuite un accusé de réception correspondant (ACK) pour les octets reçus avec succès ; si l'entité émettrice ne reçoit pas l'accusé de réception dans un délai aller-retour raisonnable (RTT), alors les données correspondantes (supposées perdues) seront retransmises. .
Assurer un contrôle de la congestion
Lorsque le réseau est encombré, TCP peut réduire le débit et la quantité de données injectées dans le réseau et atténuer la congestion
TCP fournit une communication en duplex intégral
TCP fournit une communication en duplex intégral
TCP permet aux applications des deux côtés de la communication d'envoyer des données à tout moment, car il existe des caches aux deux extrémités de la connexion TCP pour stocker temporairement les données pour une communication bidirectionnelle. Bien sûr, TCP peut envoyer un segment de données immédiatement, ou il peut le mettre en cache pendant un certain temps pour envoyer plus de segments de données à la fois (la taille maximale du segment de données dépend du MSS) Recommandations associées :
formation php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!