J'ai fait quelques recherches sur l'algorithme de Nagle par curiosité inactive. Je comprends le concept de base derrière cela (les paquets TCP contiennent une quantité importante d'overhead en particulier quand il s'agit de petites charges utiles), mais je ne suis pas sûr d'avoir une bonne implémentation. Je lisais this article sur Wikipedia, mais je ne sais toujours pas comment cela fonctionne. Prenons l'exemple d'une connexion Telnet. La connexion est établie et je commence à taper. Disons que je tape trois caractères (cat
, par exemple) et appuyez sur retour. Maintenant nous parlons cat\r\n
qui est encore seulement 5 octets. Je pense que cela ne serait pas envoyé jusqu'à ce que nous mettions en file d'attente assez d'octets pour envoyer - et pourtant, il est envoyé immédiatement (du point de vue de l'utilisateur), puisque cat
est immédiatement exécuté au retour de retour.Pas clair sur l'algorithme de Nagle
Je pense que j'ai un malentendu fondamental ici sur le fonctionnement de l'algorithme, en particulier en ce qui concerne le bit où "si des données non confirmées sont encore dans le tube, enqueue, sinon envoyer immédiatement".
L'article parle de sessions Telnet étant un problème, donc il l'enverrait immédiatement. – cloudhead