Comment faire TCP et UDP de détecter les erreurs de transmission?
Je veux savoir comment ces protocoles peuvent détecter qu'une erreur s'est produite lors de la transmission de données?
grâce
OriginalL'auteur user472221 | 2010-12-25
Vous devez vous connecter pour publier un commentaire.
Il y a différentes erreurs qui peuvent se produire:
UDP seulement fournit un mécanisme pour surmonter la corruption de données (qui est une option en IPv4, obligatoire en IPv6).
La Corruption de Données
UDP est seulement résistant à l'encontre de la corruption de données à l'intérieur de paquets, si la somme de contrôle de champ est utilisé dans l'en-tête de chaque paquet. Fondamentalement, il faut l'en-tête, le contenu des paquets et quelques informations supplémentaires (comme les adresses IP), interprète cela comme une longue liste de mots de 16 bits en complément et résume les Checksum UDP.
TCP a une approche similaire pour lutter contre la corruption de données.
Tous les autres problèmes
TCP a soi-disant des numéros de séquence pour chaque paquet. Le numéro de séquence des adresses d'octets, de sorte que si l'expéditeur dit "c'est le paquet avec un numéro de séquence 102", dit-il, que le paquet qu'il a envoyé commence avec l'octet 102 du flux. Le récepteur envoie ensuite et de reconnaissance pour le récepteur. Par exemple, si le paquet a une longueur de 10 octets, le récepteur envoie et accusé de réception avec le numéro de séquence de 112, ce qui signifie "j'attends le prochain paquet à être reçu pour commencer avec le numéro de séquence 112". Chaque paquet a un autre numéro de séquence est soit un doublon (trop faible) ou un paquet s'est perdu (reçu le numéro de séquence est trop élevé) ou c'est un fantôme (total inadéquation de prévu numéro de séquence et un reçu). Dans tous les cas ou de numéro de séquence de discordance, le récepteur sait que quelque chose va mal et peut réagir (diffère de différentes versions de TCP).
L'expéditeur attend pour les accusés de réception du récepteur. S'il n'a pas reçu un accusé de réception pour un certain temps, il retransmet les paquets, parce qu'il suppose que les paquets s'est perdu sur son chemin.
Ce n'est qu'une brève explication. Le sujet est un peu plus gros que décrit ici 😉
OriginalL'auteur Tobi
À la Le protocole IP niveau (sur lequel les deux UDP et TDP), il y a une somme de contrôle qui confirme que le contenu du paquet sont valides. Cependant, il existe des situations où certaines erreurs sont pas détectés par cette somme de contrôle.
Habituellement à un niveau supérieur (comme lors du transfert d'un fichier), il est plus robuste de hachage calculé sur le contenu du fichier. Cela peut être fait sur le fichier complet, ou sur les blocs du fichier d'une certaine taille (généralement beaucoup plus grand qu'un paquet IP).
Je recommande le Protocole de Contrôle de Transmission l'article, ou un bon livre sur le sujet (par exemple. TCP/IP Illustré).
Comme mentionné dans ma réponse ci-dessous, cela dépend de la version du protocole IP. Lorsque le protocole TCP s'exécute sur IPv4, la méthode utilisée pour calculer la somme de contrôle est définie dans tools.ietf.org/html/rfc793
La propriété intellectuelle au niveau de la somme de contrôle vérifie uniquement pour les erreurs dans l'en-tête IP.
OriginalL'auteur Greg Hewgill
Si je me souviens de diverses classes, Greg était à droite avec la somme de contrôle comme l'un des quelques sources de vérification des données. Cependant, UDP (conçu de la façon dont il est) n'est pas toujours fiable à 100%. Ceci le rend parfait pour le streaming de données (webcams, par exemple), la perte d'un cadre n'est pas que les grandes d'un accord. Même si cela peut être considéré comme une erreur dans le protocole TCP (ce qui serait alors avoir à renvoyer l'image, le fait de retarder après les images), UDP ne s'intéressent pas vraiment, sauf s'il est configuré pour.
À condition que toutes les données nécessaires pour être reçu, le protocole en question sur la demande toujours demander pour chaque paquet envoyé, généralement dans l'ordre. Somme de contrôle vient jouer ici, comme chaque partie est ensuite vérifiée pour s'assurer qu'il est correct (petit problème lors de la partie données des erreurs d'un même nombre de fois que la somme de contrôle peut alors jeter un faux positif, mais cela est assez rare). Chaque fois qu'une partie d'échec, il est re-demandé jusqu'à ce qu'il est à la fois reçu et de la somme de contrôle donne un coup de pouce. Comme chaque partie est reçu, le protocole sur le récepteur répond à l'expéditeur que tout est cool. Si l'expéditeur ne reçoit pas de cette réponse dans quelques temps limite, il renvoie le paquet.
OriginalL'auteur Scott S