Y at-il un algorithme pour relever les empreintes digitales de l'algorithme de contrôle de congestion TCP utilisé dans une session capturé?

StackOverflow https://stackoverflow.com/questions/528733

Question

Je voudrais un programme pour déterminer le utilisé dans une session TCP capturé .

L'article de Wikipédia référencé indique:

  

TCP New Reno est le plus souvent   algorithme mis en oeuvre, le support est SACK   très courante et est une extension   Reno / New Reno. La plupart des autres sont   propositions concurrentes qui doivent encore   évaluation. A partir de la 2.6.8   Linux noyau activé par défaut   la mise en œuvre de reno à BIC. le   la mise en œuvre par défaut a été à nouveau   changé à la 2.6.19 Cubic   la version.

Aussi:

  

composé TCP est un Microsoft   la mise en œuvre du protocole TCP qui maintient   deux fenêtres de congestion différentes   en même temps, dans le but de   réaliser une bonne performance sur LFN   tout en ne nuisant pas à l'équité. Il a   été largement déployée avec Microsoft   Windows Vista et Windows Server 2008   et a été porté à Microsoft plus   versions de Windows ainsi que Linux.

Quelles seraient les stratégies pour déterminer quel algorithme CC est utilisé (d'un tiers capturant la session)?

Mise à jour

Ce projet a construit un outil pour faire ceci:

  

L'Internet a récemment été   l'évolution de la congestion homogène   le contrôle de la congestion hétérogène   contrôle. Il y a quelques années, Internet   le trafic est principalement contrôlée par la   algorithme standard TCP AIMD, alors que   Le trafic Internet est maintenant contrôlé par   beaucoup de différents contrôle de congestion TCP   algorithmes, tels que AIMD, BIC, Cubic,   CCPC, HSTCP, HTCP, Hybla, ILLINOIS,   LP, STCP, VEGAS, VENO, WESTWOOD +, et   OUAIS. Cependant, il y a très peu   travailler sur la performance et la stabilité   étude de l'Internet avec   contrôle hétérogène de la congestion. Un   raison fondamentale est le manque de   Informations sur le déploiement de différents   algorithmes TCP. Les objectifs de cette   projet sont:

1) develop tools for identifying the TCP algorithms in the Internet,
2) conduct large-scale TCP-algorithm measurements in the Internet.
Était-ce utile?

La solution

Il existe de nombreux algorithmes de contrôle plus de congestion que vous mentionnez ici, du haut de ma tête la liste comprend:. FAST, évolutive, HSTCP, HTCP, bic, cubique, veino, Vegas

Il y a aussi de petites variations d'entre eux en raison de corrections de bugs dans les implémentations réelles et je suppose que les implémentations dans les différents systèmes d'exploitation se comportent un peu différent les uns des autres.

Mais si je dois essayer de trouver une idée qu'il serait d'estimer la RTT de la connexion, vous pouvez essayer de regarder le temps qu'il a fallu entre le troisième et le quatrième paquets, comme les premier et deuxième paquets peut être contaminé par d'autres algorithmes et ARPs de découverte le long de la route.

Une fois que vous avez une estimation pour RTT, vous pouvez essayer d'affiner le long du chemin, je ne sais pas exactement comment vous pourriez le faire bien. Mais vous ne souhaitez pas une spécification complète du programme, à quelques idées: -)

Avec la RTT a compris que vous pouvez essayer de mettre les paquets dans les poubelles et RTT compter le nombre de paquets de données dans de vol dans chaque bac. De cette façon, vous serez en mesure de-cwnd estimée « parcelle » (nombre de paquets dans bin) à temps et essayer un certain modèle correspondant là.

Une alternative serait d'aller le long de la trace et essayer de « courir » dans votre tête les différents algorithmes de contrôle de congestion et de voir si la décision à tout moment correspond à la décision que vous auriez fait. Il faudra des intervalles de clémence et de précision.

Cela semble certainement une tâche intéressante et stimulante!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top