Maison >Problème commun >Quel est le protocole de couche transport qui assure une transmission fiable ?
Le protocole de couche transport qui assure une transmission fiable est TCP. TCP (Transmission Control Protocol) est un protocole de communication de couche de transport fiable, orienté connexion et basé sur des flux d'octets ; il est spécialement conçu pour fournir des flux d'octets de bout en bout fiables sur des réseaux de transport Internet peu fiables.
L'environnement d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.
Dans la suite de protocoles TCP/IP, il existe deux protocoles de transmission différents : TCP (Transmission Control Protocol) et UDP (User Datagram Protocol). Le protocole TCP est un protocole orienté connexion. Il est relativement fiable, sécurisé et stable, mais il n'est pas efficace et consomme beaucoup de ressources. Le protocole UDP est un protocole sans connexion. Il est très efficace, rapide et consomme peu de ressources. Cependant, son mécanisme de transmission n'est pas fiable et doit s'appuyer sur des algorithmes auxiliaires pour compléter le contrôle de la transmission.
Par conséquent, Le protocole de couche transport qui assure une transmission fiable est TCP.
TCP est conçu pour s'adapter à une hiérarchie de protocoles en couches qui prend en charge les applications multi-réseaux. TCP est utilisé pour fournir des services de communication fiables entre des paires de processus dans un ordinateur hôte connecté à des réseaux de communication informatiques différents mais interconnectés. TCP suppose qu'il peut obtenir des services de datagramme simples, voire peu fiables, à partir de protocoles de niveau inférieur. En principe, TCP devrait être capable de fonctionner sur une variété de systèmes de communication, depuis les connexions câblées jusqu'aux réseaux à commutation de paquets ou de circuits.
TCP Transmission Control Protocol est un protocole de transmission spécialement conçu pour fournir des flux d'octets fiables de bout en bout sur des réseaux Internet peu fiables.
Fonctions principales :
Lorsque la couche application envoie un flux de données représenté par des octets de 8 bits pour la transmission inter-réseau à la couche TCP, TCP divise le flux de données en segments de message de longueur appropriée, le segment de transmission maximal. La taille (MSS) est généralement limitée par l'unité de transmission maximale (MTU) de la couche liaison de données du réseau auquel cet ordinateur est connecté. TCP transmet ensuite le paquet de données à la couche IP, qui le transmet via le réseau à la couche TCP de l'entité réceptrice.
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é de réception 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. .
En termes d'exactitude et de légalité des données, TCP utilise une fonction de somme de contrôle pour vérifier si les données comportent des erreurs. La somme de contrôle doit être calculée lors de l'envoi et de la réception en même temps, l'authentification md5 peut être utilisée pour crypter les données.
Pour garantir la fiabilité, des mécanismes de retransmission de délai d'attente et de confirmation de ferroutage sont adoptés.
Pour le contrôle de flux, le protocole de fenêtre glissante est adopté. Le protocole stipule que les paquets non confirmés dans la fenêtre doivent être retransmis.
En termes de contrôle de congestion, l'algorithme de contrôle de congestion TCP largement acclamé (également appelé algorithme AIMD) est utilisé. L'algorithme comprend principalement quatre parties principales :
(1) Démarrage lent
Chaque fois qu'une connexion TCP est établie ou qu'une connexion TCP expire et retransmet, la connexion entre dans la phase de démarrage lent. Après avoir entré le démarrage lent, l'entité TCP initialise la taille de la fenêtre de congestion à un segment, soit : cwnd=1. Après cela, chaque fois qu'un accusé de réception (ACK) d'un segment de message est reçu, la valeur cwnd augmente de 1, c'est-à-dire que la fenêtre d'encombrement augmente de façon exponentielle. Lorsque la valeur cwnd dépasse la valeur seuil de démarrage lent (ssthresh) ou qu'un segment est perdu et retransmis, la phase de démarrage lent se termine. Le premier entre dans la phase d’évitement des embouteillages et le second entre à nouveau dans la phase de démarrage lent.
(2) Évitement de la congestion
Dans la phase de démarrage lent, lorsque la valeur cwnd dépasse la valeur d'interprétation du démarrage lent (ssthresh), le processus de démarrage lent se termine et la connexion TCP entre dans la phase d'évitement de la congestion. Dans la phase d'évitement de congestion, la valeur cwnd est incrémentée de 1 après que chaque segment de message cwnd envoyé ait été entièrement accusé de réception. A ce stade, la valeur cwnd augmente linéairement.
(3) Retransmission rapide
La retransmission rapide est une amélioration par rapport à la retransmission avec délai d'attente. Lorsque la source reçoit trois accusés de réception en double pour le même message, elle détermine qu'un segment de message a été perdu et retransmet donc immédiatement le segment de message perdu sans attendre l'expiration du temporisateur de retransmission (RTO). Cela réduit les temps d’attente inutiles.
(4) Récupération rapide
La récupération rapide est une amélioration du mécanisme de récupération perdue. Après une retransmission rapide, il entre directement dans la phase d'évitement de congestion sans passer par le processus de démarrage lent. À chaque fois après une retransmission rapide, définissez ssthresh=cwnd/2, ewnd=ssthresh+3. Après cela, chaque fois qu'une confirmation en double est reçue, la valeur cwnd est augmentée de 1 jusqu'à ce que la confirmation accumulée du segment de message perdu et de plusieurs segments de message suivants soit reçue, cwnd=ssthresh soit défini et la phase d'évitement de congestion soit entrée.
Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !
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!