Il n’existe pas de garantie unique de livraison des paquets dans le modèle de réseau Internet au mieux. Au lieu de cela, une livraison fiable est obtenue grâce à divers protocoles et mécanismes qui visent à *augmenter* la probabilité d'une transmission réussie, mais ils n'offrent pas de garanties absolues. Voici une répartition :
* TCP (Protocole de contrôle de transmission) : TCP est la bête de somme pour un transfert de données fiable. Il utilise plusieurs techniques pour garantir une livraison fiable :
* Numéros de séquence : Chaque paquet est numéroté, permettant au récepteur de détecter les paquets manquants ou dans le désordre.
* Remerciements (ACK) : Le destinataire renvoie des ACK à l'expéditeur, confirmant la réception des paquets. Si un ACK n'est pas reçu dans un délai d'expiration, l'expéditeur retransmet le paquet.
* Contrôle de flux : TCP gère le débit de transmission des données pour empêcher l'expéditeur de surcharger le destinataire.
* Contrôle des embouteillages : TCP ajuste le taux de transmission en fonction de la congestion du réseau pour éviter une surcharge du réseau.
Même avec TCP, les garanties absolues restent insaisissables. Des événements extrêmement rares comme des pannes réseau catastrophiques ou des partitions réseau prolongées peuvent toujours entraîner une perte de paquets.
* UDP (Protocole de datagramme utilisateur) : UDP est un protocole sans connexion qui ne garantit pas la livraison. C'est plus rapide que TCP car il n'inclut pas la surcharge des mécanismes de fiabilité. Les applications qui peuvent tolérer une certaine perte de paquets (comme le streaming vidéo ou les jeux en ligne) utilisent souvent UDP. La fiabilité, si nécessaire, est mise en œuvre au niveau de l'application.
* Mécanismes au niveau de l'application : Les applications peuvent créer leurs propres mécanismes de fiabilité au-dessus d'UDP ou même de TCP pour améliorer encore la fiabilité. Cela peut impliquer des choses comme :
* Protocoles de retransmission : Similaire au mécanisme de retransmission de TCP, mais géré par l'application.
* Sommes de contrôle et codes de correction d'erreur : Ceux-ci aident à détecter et parfois à corriger les erreurs dans les paquets reçus.
En résumé :Bien que TCP et divers mécanismes au niveau des applications améliorent considérablement la probabilité de livraison des paquets, aucun protocole réseau ne fournit une garantie à 100 %. Des facteurs externes tels que des pannes de réseau, des pannes d'équipement et des attaques malveillantes peuvent toujours perturber la transmission. La fiabilité est une question de probabilité et d’atténuation, et non de certitude absolue.
|