Quelle est la différence entre TCP et UDP
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser les protocoles PHP et UDP pour implémenter la communication asynchrone Dans les applications Internet modernes, la communication asynchrone est devenue une méthode très importante. En utilisant la communication asynchrone, les demandes des utilisateurs peuvent être traitées simultanément sans bloquer le thread principal, améliorant ainsi les performances du système et la vitesse de réponse. En tant que langage de programmation back-end populaire, PHP, comment utiliser le protocole UDP pour réaliser une communication asynchrone ? Cet article expliquera comment utiliser le protocole UDP en PHP pour implémenter une communication asynchrone simple et joindra des exemples de code spécifiques. 1. Introduction au protocole UDPU

Comment réinitialiser le protocole TCP/IP dans Win10 ? En fait, la méthode est très simple. Les utilisateurs peuvent entrer directement dans l'invite de commande, puis appuyer sur la combinaison de touches ctrl+shift+enter pour effectuer l'opération, ou exécuter directement la commande de réinitialisation pour configurer. aux utilisateurs une introduction détaillée sur la façon de réinitialiser la pile de protocoles TCP/IP dans Windows 10. Méthode 1 pour réinitialiser la pile de protocole TCP/IP dans Windows 10. Autorisations d'administrateur 1. Nous utilisons la touche de raccourci win+R pour ouvrir directement la fenêtre d'exécution, puis saisissons cmd et maintenons la combinaison de touches ctrl+shift+enter enfoncée. 2. Ou nous pouvons rechercher directement l’invite de commande dans le menu Démarrer et cliquer avec le bouton droit

Les numéros de port UDP courants sont 53, 69, 161, 2049, 68 et 520. UDP utilise des numéros de port pour réserver ses propres canaux de transmission de données pour différentes applications : 1. Network File System (NFS), le numéro de port est 2049 ; 2. Simple Network Management Protocol (SNMP), le numéro de port est 161 ; System (DNS), le numéro de port est 53 ; 4. Simple File Transfer System (TFTP), le numéro de port est 69 ; 5. Dynamic Host Configuration Protocol (DHCP), le numéro de port est 68. le numéro de port est 520, etc.

Client TCP Un exemple de code client qui utilise le protocole TCP pour établir un dialogue continu : importationsocket#Configuration du client HOST='localhost'PORT=12345#Créez un socket TCP et connectez-vous au serveur client_socket=socket.socket(socket.AF_INET,socket . SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#Get user input message=input("Veuillez saisir le message à envoyer :&

Le « orienté connexion » mentionné ici signifie que vous devez établir une connexion, utiliser la connexion et libérer la connexion. L'établissement d'une connexion fait référence à la célèbre négociation à trois voies TCP. Lors de l'utilisation d'une connexion, les données sont transmises sous la forme d'un envoi et d'une confirmation. Il y a aussi la libération de la connexion, qui est notre TCP commun à quatre ondes.

TCP est un type de protocole de communication sur réseau informatique et un protocole de transmission orienté connexion. Dans le développement d'applications Java, la communication TCP est largement utilisée dans divers scénarios, tels que la transmission de données entre client et serveur, la transmission audio et vidéo en temps réel, etc. Netty4 est un cadre de programmation réseau hautes performances, hautement évolutif et performant qui peut optimiser le processus d'échange de données entre le serveur et le client pour le rendre plus efficace et fiable. Les étapes de mise en œuvre spécifiques de l'utilisation de Netty4 pour la communication TCP sont les suivantes : Introduction

Pourquoi existe-t-il ce blog sur l'utilisation d'une seule connexion TCP pour envoyer plusieurs fichiers ? J'ai lu récemment des choses connexes. Il n'y a aucun problème à simplement utiliser Socket pour la programmation, mais cela n'établit que quelques concepts de base. On ne peut toujours rien faire pour résoudre le véritable problème. Lorsque j'ai besoin de transférer des fichiers, il me semble que je viens d'envoyer les données (données binaires), mais certaines informations sur le fichier sont perdues (l'extension du fichier). Et chaque fois que je ne peux utiliser qu'un seul Socket pour envoyer un fichier, il n'y a aucun moyen d'envoyer des fichiers en continu (car je compte sur la fermeture du flux pour terminer l'envoi des fichiers, ce qui signifie que je ne connais pas la longueur du fichier, donc je ne peux utiliser qu'une seule connexion Socket qui représente un fichier).

UDP (User Datagram Protocol) est un protocole réseau léger sans connexion couramment utilisé dans les applications sensibles au temps. Il permet aux applications d'envoyer et de recevoir des données sans établir de connexion TCP. Un exemple de code Java peut être utilisé pour créer un serveur et un client UDP, le serveur écoutant les datagrammes entrants et répondant, et le client envoyant des messages et recevant des réponses. Ce code peut être utilisé pour créer des exemples concrets tels que des applications de chat ou des systèmes de collecte de données.