Protocole de couche de transport
1. Protocole TCP et UDP
TCP/IP协议族的传输层协议
TCP(Transmission Control Protocol)传输控制协议
UDP(User Datagram Protocol)用户数据报协议
-
Protocole TCP: protocole de contrôle de transmission, transmission stable et fiable
-
TCP est un protocole de communication de processus à processus fiable et orienté connexion. TCP fournit des services duplex intégral, c'est-à-dire que les données peuvent être transmises dans les deux sens en même temps. Chaque TCP dispose d'un tampon d'envoi et d'un tampon de réception pour stocker des données.
-
Protocole UDP: protocole de datagramme utilisateur, efficacité de transmission plus élevée
-
Le protocole UDP est un protocole de couche de transport fiable et sans connexion. L'expéditeur ne se soucie pas de savoir si les données envoyées arrivent à l'hôte cible, si les données sont erronées, etc. L'hôte qui reçoit les données ne dira pas à l'expéditeur s'il a reçu les données. Sa fiabilité est garantie par le protocole de couche supérieure. Transférez les données plus rapidement et plus efficacement.
Le protocole réseau orienté connexion fait référence à l'établissement d'une connexion entre les parties communicantes avant de communiquer. Par exemple, lors d'un appel, les deux interlocuteurs doivent établir une connexion avant de parler.
Le protocole de réseau sans connexion signifie que les parties de communication n'ont pas besoin d'établir une ligne de communication à l'avance, mais d'envoyer chaque paquet avec l'adresse de destination à la ligne de réseau, et le système sélectionne indépendamment la route pour la transmission. Par exemple, qq, WeChat envoie des informations.
Deux paquets TCP
TCP将若干个字节构成一个分组,叫报文段
TCP报文段封装在IP数据报中 10部分
- Numéro de port source: le numéro de port correspondant au processus émetteur.
- Numéro de port de destination: correspond au numéro de port du processus du côté récepteur.
- Numéro de séquence: l'expéditeur numérotera chaque octet pour faciliter le réassemblage correct du récepteur.
- Numéro de confirmation: utilisé pour confirmer les informations de l'expéditeur. Ceci est utilisé pour indiquer à l'expéditeur que les segments de données avant le numéro de séquence ont été reçus. Si le numéro de confirmation est N, cela signifie que les N-1 premiers segments de données ont été reçus.
- Longueur d'en-tête: utilisez-la pour déterminer la longueur d'octet de la structure de données d'en-tête TCP. Dans des circonstances normales, l'en-tête TCP est de 20 octets, mais la longueur de l'en-tête peut être étendue à 60 octets au maximum.
- Réservé: comme bit d'extension, non utilisé actuellement.
Bit de contrôle:
URG | Bit d'urgence | Bit efficace du pointeur d'urgence, utilisé avec le pointeur d'urgence |
---|---|---|
ACK | Bit de confirmation | Lorsque ACK = 1, le champ du numéro de séquence de confirmation est valide, lorsqu'il est 0, il est invalide |
PSH | Urgence | Lorsque le bit indicateur est 1, le récepteur doit envoyer le segment de données à la couche application dès que possible |
RST | Réinitialiser le bit | Lorsque la valeur RST est 1, il est notifié de rétablir la connexion TCP |
SYN | Bit de synchronisation (connexion) | Bit de numéro de séquence de synchronisation, définissez cette valeur sur 1 lorsque TCP doit établir une connexion |
FIN | Off peu | Lorsque TCP termine la transmission des données et doit se déconnecter, la partie qui propose de se déconnecter définit cette valeur sur 1. |
-
Taille de la fenêtre: indique le nombre de segments de données qui peuvent être acceptés localement. La taille de cette valeur est variable. Lorsque le réseau est débloqué, l'extrémité de réception répond au message pour augmenter cette valeur de fenêtre pour accélérer la vitesse de transmission. Lorsque le réseau est instable, la réduction de cette valeur peut garantir une transmission fiable des données du réseau , le trafic dans TCP Control est obtenu en modifiant la taille de la fenêtre. Par exemple, la vitesse de téléchargement augmente progressivement de quelques Ko à quelques Mo au début. Utilisé pour contrôler la vitesse du réseau.
-
Somme de contrôle: utilisée pour le contrôle des erreurs. La portée de l'inspection sur le terrain comprend deux parties: l'en-tête et les données. Le segment de données sera vérifié et calculé lorsqu'il sera envoyé et lorsqu'il atteindra la destination. Si les valeurs ne sont pas cohérentes, les données seront considérées comme corrompues et le destinataire les rejettera.
-
Pointeur d'urgence: utilisé en conjonction avec URG, valide lorsque URG = 1.
-
Option: L'en-tête TCP peut contenir jusqu'à 40 octets d'informations facultatives. Par exemple, la longueur maximale du segment MSS (Maximum Segment Size). MSS dit à l'autre partie TCP: Le champ de données du segment de message que ma mémoire tampon peut recevoir est jusqu'à MSS octets.
3. Processus de prise de contact à trois
-
PC1 veut établir une connexion avec PC2, envoyer d'abord un message SYN (SYN = 1) pour demander l'établissement d'une connexion PC1seq numéro de séquence x
-
Une fois que PC2 l'a reçu, il envoie des paquets SYN et ACK, c'est-à-dire que (ACK = 1) confirme et aussi (SYN = 1) demande d'établir une connexion. PC2seq est y, Ack = x + 1, cet Ack est le numéro de confirmation , ce qui signifie que le x de PC1 a été Roger que.
-
PC1 reçoit la demande de PC2 d'établir une connexion, et confirme également (ACK = 1), et répond avec seq = x + 1, Ack = y + 1 signifie que y de PC2 a été reçu.
Quatre. Processus en quatre vagues
-
PC1 veut se déconnecter de PC2, envoyer d'abord (FIN = 1) pour demander la déconnexion et (ACK = 1) confirmation.
-
PC2 répond (ACK = 1) et accepte de se déconnecter. À ce stade, PC1 ne peut plus se connecter à PC2, mais PC2 peut toujours envoyer des données à PC1.
-
Ensuite, PC2 veut également se déconnecter de PC1, envoyer (FIN = 1) et confirmer (ACK = 1).
-
PC1 (ACK = 1) confirme la déconnexion.