Y at-il un algorithme pour relever les empreintes digitales de l'algorithme de contrôle de congestion TCP utilisé dans une session capturé?
-
22-08-2019 - |
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.
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!