6 votes

Quelle est la taille initiale de la fenêtre de réception TCP dans Android ?

Cela peut être assez similaire à la question aquí Cependant, je pense qu'il était soit au mauvais endroit, soit pas assez clair, et qu'il n'a donc pas atteint le bon public. C'est pourquoi je l'ai reformulé ici :

Intro :

El TCP Receive Window est la taille du tampon à l'extrémité de réception d'une connexion TCP. D'après ( RFC7323 - Section-1.1 ) la norme TCP a un 16-bit pour indiquer la taille ( 2^16 = 65,536 Bytes max ). Cependant, on a constaté que cela limite les performances dans les réseaux à forte latence (RFC7323). Ainsi, un champ a été inclus dans les options/extensions TCP appelé "Window Scale" ( RFC7323 - Section-2 ) afin d'améliorer les performances en augmentant la taille de la fenêtre de réception en la multipliant par un facteur d'échelle, donc Scaling Factor = 2 ^ Window Scaling Factor Value . Ainsi, en substance, le TCP Receive Window Size = TCP Receive Window Value * (2 ^ Window Scaling Factor Value) (Je n'ai pas entièrement compris comment le facteur d'échelle fonctionne réellement, donc cela pourrait ne pas être tout à fait exact).

Question :

L'essence de cette question est, selon RFC7323 - Section 2.1 Il semble que la pile TCP implémentée dans les différents systèmes d'exploitation ait une valeur initiale par défaut différente. Quelle est la taille initiale par défaut de la fenêtre de réception TCP dans Android ? A-t-elle changé au cours des différentes versions ?

Références :

RFC 7323 - https://www.rfc-editor.org/rfc/rfc7323

3voto

the structure Points 71

Je peux vous répondre sur les champs TCP WINDOW SIZE et TCP WINDOWSCALE tels qu'ils apparaissent dans l'en-tête TCP.

La taille initiale de la fenêtre TCP devrait être 0x3908 = 14600, du moins c'est ce que j'ai trouvé jusqu'à présent en utilisant plusieurs versions.

(Sur la plupart des distro Linux que j'ai utilisées, c'est exactement le double 0x7210 = 29200).

L'échelle de la fenêtre a des valeurs différentes selon la version, les plus anciennes sont réglées sur 6, les plus récentes sur 8, du moins pour ce que j'ai expérimenté jusqu'à présent.

Vous pouvez vérifier ces deux valeurs avec cette application : https://play.google.com/store/apps/details?id=be.ac.ulg.mobiletracebox Il vous les montrera dans la première ligne 0: youraddress ... TCP::Window (0xXXXX) ... TCP::WindowScale (0xXX) Les valeurs sont hexadécimales.

Pour la taille de la fenêtre, utilisez la sonde Syn ordinaire.

Pour l'échelle de la fenêtre, utilisez la sonde de l'échelle de la fenêtre.

(Si aucune valeur n'est indiquée pour Window, elle doit être la valeur maximale (0xffff=65535). Si votre appareil est enraciné, vous devez définir le mode sur basé sur le serveur).

PS Je ne sais pas si parler d'une application est autorisé ici, sinon je suis prêt à modifier mon commentaire.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X