Une connexion TCP a deux points de terminaison

Établissement d'une connexion

Envoi et Réception de données

Le client envoie un segment avec un numéro de séquence de 101, un numéro d'accusé de réception de 501, un bit d'ACK de 1, un bit SYN de zéro, et huit octets de données dans la partie données du segment. Les bits SYN ACK et ne changent pas pour le reste de la connexion. Le serveur reconnaît avoir reçu les 8 octets de données par l'envoi d'un segment avec un numéro de séquence de 501 et un numéro d'accusé de réception de 109. La portion de données de ce segment de mai aussi contenir les nouvelles données doivent être envoyés au client, que le client reconnaît dans un autre segment. Les segments envoyés au moment d'établir une connexion peut inclure des données aussi bien. Lorsque cela se produit, la destination doit contenir les données reçues jusqu'à ce que la connexion est établie.

Une poignée de main avec succès raconte l'ordinateur source que les données sont arrivées à la couche TCP de l'ordinateur de destination. Il ya encore place à l'erreur, toutefois, parce que la poignée de main ne peut pas garantir que le processus désigné à l'ordinateur de destination reçu les données de la couche TCP. Donc, pour être absolument sûr que l'application de la destination a reçu les données, vous avez besoin d'un protocole à la couche application afin de permettre la reconnaissance.

Fermeture d'une connexion

Fermeture d'une connexion nécessite également handshaking. Pour fermer une connexion complètement, chaque ordinateur envoie un segment avec le bit de contrôle FIN fixé à 1 pour indiquer que l'ordinateur n'a plus de données à envoyer. Chaque destinataire doit accuser réception de la FIN. Réseau de l'article 5.5 montre un exemple:

  

1. Le client envoie un segment avec le bit de contrôle FIN fixé à 1. Cela indique que le client va envoyer plus de données sur cette connexion. Le client mai continuer à recevoir du serveur.

2. Le serveur envoie un segment en reconnaissant la FIN reçues. Si le serveur n'a plus de données à envoyer, il définit son bit FIN à 1. Sinon, le serveur continue à envoyer des données et définit le bit FIN à 1 lorsque toutes les données ont été communiquées.

3. Le client envoie un segment en reconnaissant la FIN reçues. La connexion est maintenant terminée.

Bien sûr, il est possible que l'un des ordinateurs va se planter ou être retirés du réseau avant de la poignée de main de clôture se termine. Dans ce cas, l'autre ordinateur mai sa décision après un temps d'envisager la connexion fermée et libérer les ressources allouées à la connexion.

Flow Control

Un processus d'envoi de mai ont de multiples segments prêt à envoyer à une destination. Avant d'envoyer chaque segment, le processus d'envoi pouvait attendre un accusé de réception pour le segment précédent. Mais ce n'est pas le moyen le plus efficace pour transférer des données si la destination a de place pour stocker les données dans plus d'un segment.

Pour les transferts plus efficaces, le processus d'envoi peut utiliser un en-tête a reçu le champ fenêtre pour aider à déterminer la quantité de données à envoyer sans attendre un accusé de réception. La destination peut ajuster la taille en fonction de son état actuel en changeant le contenu du champ de la fenêtre au besoin dans les en-têtes qu'il envoie. Un certain nombre ont reçu la reconnaissance de l'expéditeur indique que la destination a reçu toutes les données avec un nombre pouvant aller jusqu'à un segment inférieur le numéro de validation. Si l'expéditeur ne reçoit aucun accusé de réception, il peut renvoyer les données. Typiquement, sur envoi d'un segment, la source stocke temporairement les données du segment dans une file d'attente de retransmission et démarre une minuterie. Sur réception d'un accusé de réception, la source de supprimer les données de la file d'attente de retransmission. Si la source ne reçoit pas d'accusé au moment où le temps compte à rebours, la source suppose que la destination n'a pas reçu le segment et renvoie, en utilisant les données de la file d'attente de retransmission. La quantité de temps à attendre avant de renvoyer peuvent varient avec le réseau. hôtes utilisent souvent le cycle moyen-retour du temps pour une transmission dans la détermination d'une valeur de délai d'attente.

Amélioration des performances

Au fil du temps, plusieurs méthodes sont venus dans le langage populaire pour aider à rendre les données TCP transferts plus efficaces. Les méthodes de limiter la quantité de données d'un expéditeur peut envoyer dans certaines situations, et mai également éliminer la nécessité d'attendre un délai d'attente avant de retransmettre. Les méthodes sont Slow Start, Congestion Avoidance, Fast retransmettre, et Fast Recovery. RFC2581: TCP congestion documents de contrôle des méthodes. Les méthodes ont toutes à voir avec précisant le nombre de segments d'une source peut transmettre avant de recevoir un accusé de réception. Si une source attend la reconnaissance de la première étape avant d'envoyer le segment suivant, la source est conforme aux exigences des normes approuvées et proposées. Un système embarqué qui transfère des données rarement pouvez utiliser cette simple, si moins efficace, approche.

Charge le protocole TCP dans les systèmes embarqués

Charge le protocole TCP dans un système embarqué est plus compliqué que d'appuyer UDP. En plus d'ajouter et de supprimer en-têtes et en soutenant la propriété intellectuelle, l'ordinateur doit exécuter le 3-way handshake "de se connecter à un hôte distant, de maintenir numéros de séquence et la reconnaissance lors de l'échange de données, poignée de main lors de la fermeture d'une connexion, et répondre aux erreurs détectées. Pour envoyer un message en utilisant le protocole TCP, un ordinateur dans un réseau Ethernet doivent effectuer les opérations suivantes:

• Établir une connexion en utilisant le 3-way handshake ".

• Utilisez la taille de la fenêtre a reçu pour déterminer la quantité de données de l'ordinateur distant ne peut accepter.

• Placez la source et les numéros de port de destination, numéro de séquence, le numéro de reconnaissance, la longueur en-tête, taille de la fenêtre source, et de contrôle dans les endroits appropriés dans l'en-tête TCP. Le calcul de la somme de contrôle nécessite de connaître les adresses IP source et destination.

• Placer les données à envoyer dans la partie données du segment.

• Placer le segment TCP dans la partie données d'un datagramme IP. Le datagramme IP nécessite des adresses IP source et destination et le calcul d'un checksum sur l'en-tête.

• Réussir le datagramme IP au chauffeur du contrôleur Ethernet pour l'envoi sur le réseau et lancer un timer timeout.

• Attendez de recevoir un numéro d'acquittement qui indique que l'ordinateur distant reçu les données. Si la reconnaissance ne sont pas arrivés avant un délai d'attente, renvoyer le segment. Pour recevoir un datagramme utilisant le protocole TCP, un ordinateur dans un réseau Ethernet doivent effectuer les opérations suivantes:

• Établir une connexion en utilisant le 3-way handshake ".

• Recevoir un datagramme IP à partir de pilote du contrôleur Ethernet.

• Bande de l'en-tête IP du datagramme. Calculer la somme de contrôle et les comparer avec la valeur reçue.

• Si les sommes match, bande de l'en-tête du segment TCP. Calculer le checksum et le comparer à la valeur reçue.

• Examiner le numéro de validation a reçu pour savoir si le segment est accusé de réception de données déjà envoyé et si oui, supprimez les données de la file reconnu de retransmission.

• Comparez le numéro de séquence reçu à la valeur attendue. Si le nombre de match, définissez le nombre accusé de réception à retourner à l'expéditeur dans un segment TCP.

• Utiliser le numéro de port de destination pour décider où passent les données. En outre, à tout moment, l'un des ordinateurs mai demande de fermer ou de réinitialiser la connexion et l'autre ordinateur devrait reconnaître la demande et mai demande de fermer ou de réinitialiser la connexion à partir du autre extrémité, le cas échéant.

Comme les exemples au début de la mise en réseau tutoriel a montré, si vous utilisez un module avec le support TCP, les détails de la création des segments et de traiter les sommes et des numéros de séquence et d'acquittement sont manipulés pour vous.

un article présenté par Daniel R.


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Une connexion TCP a deux points de terminaison» a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 333 users browsing the articles directory