Algorithme de Nagle
L'algorithme de Nagle est un algorithme important pour le fonctionnement de TCP défini par John Nagle dans la RFC 896 (RFC 896[1]).
L'algorithme de Nagle est un algorithme important pour le fonctionnement de TCP défini par John Nagle dans la RFC 896 (RFC 896[1]).
L'objectif de cet algorithme est d'améliorer l'efficacité du protocole en réduisant le nombre de paquets nécessaires à un transfert. En effet, les paquets TCP/IP étant dotés d'un en-tête de 40 octets, l'efficacité des plus petits paquets est extrêmement limitée : par exemple, 1 octet unique de données envoyé dans un paquet TCP, représente finalement un paquet de 41 octets. Le rendement est alors de 2,4 %. Cette situation a lieu par exemple lors de l'utilisation de Telnet, où chaque appui sur une touche entraîne généralement l'envoi immédiat du caractère correspondant. Beaucoup de données seront alors envoyées pour peu de données utiles. Si on envoie au contraire, par exemple, 20 caractères de données dans le même paquet, le rendement passe à 33 %.
Pour optimiser les échanges de données et éviter ainsi la congestion éventuelle du réseau due à une telle situation, l'application de l'algorithme de Nagle va provoquer l'empilement des nouvelles données à envoyer dans un tampon (buffer) tant que les précédentes données envoyées n'ont pas été confirmées (acquittement) ou tant que ce buffer n'est pas plein. Cet algorithme évite donc que des paquets dont la charge utile est très faible ne soient envoyés à la file.
On peut résumer son fonctionnement ainsi :
- Le premier octet reçu par TCP est envoyé immédiatement ;
- Tant que l'accusé de réception n'a pas été reçu, les octets à envoyer sont stockés dans un tampon. Après l'acquittement du premier octet, les données du tampon sont envoyées en un seul paquet (si la taille du tampon atteint la taille maximale d'un paquet, l'envoi des données a lieu) ;
- On stocke de nouveau les données dans le tampon en attendant l'acquittement.
Généralement, les implémentations TCP permettent la désactivation de l'algorithme de Nagle (correspondant typiquement à l'option TCP_NODELAY).
Notes et références
Liens externes
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.