¿Existe un algoritmo para la toma de huellas dactilares el algoritmo de control de congestión TCP utilizado en una sesión capturado?
-
22-08-2019 - |
Pregunta
Me gustaría tener un programa para determinar algoritmo de control de congestión TCP del utiliza en una sesión TCP capturado .
El artículo de Wikipedia hace referencia expresa:
TCP New Reno es el más comúnmente implementado el algoritmo, el apoyo es SACO muy común y es una extensión de Reno / Nueva Reno. La mayoría de los otros son propuestas competidoras que aún necesitan evaluación. A partir de la 2.6.8 Linux kernel cambió el valor por defecto aplicación de Reno a BIC. los implementación por defecto fue de nuevo cambiado a cúbico en el 2.6.19 versión.
También:
TCP compuesto es un Microsoft implementación de TCP que mantiene dos ventanas de congestión diferentes al mismo tiempo, con el objetivo de lograr un buen rendimiento en LFN mientras que no perjudique la equidad. Tiene sido ampliamente desplegado con Microsoft Windows Vista y Windows Server 2008 y ha sido portado a Microsoft mayores versiones de Windows, así como Linux.
¿Cuáles serían algunas estrategias para determinar qué algoritmo CC está en uso (de un tercero captura de la sesión)?
Actualizar
Este proyecto ha construido una herramienta para hacer esto:
El Internet ha sido recientemente evolución de la congestión homogénea control de la congestión heterogénea controlar. Hace varios años, Internet tráfico estaba controlada principalmente por la algoritmo estándar TCP AIMD, mientras El tráfico de Internet está ahora controlado por muchos diferentes de control de congestión TCP algoritmos, tales como AIMD, BIC, cúbico, CTCP, HSTCP, HTCP, Hybla, Illinois, LP, STCP, Las Vegas, VENO, Westwood +, y SÍ. Sin embargo, hay muy poca trabajar en el rendimiento y la estabilidad estudio de Internet con control de congestión heterogénea. Uno razón fundamental es la falta de la Información sobre la implementación de los diferentes algoritmos TCP. Los objetivos de este proyecto son:
1) develop tools for identifying the TCP algorithms in the Internet, 2) conduct large-scale TCP-algorithm measurements in the Internet.
Solución
Hay muchos algoritmos de control más congestión que se menciona aquí, la parte superior de la cabeza de la lista incluye:. Rápida y escalable, HSTCP, HTCP, Bic, cúbica, Veno, Vegas
También hay pequeñas variaciones de ellos debido a la corrección de errores en las implementaciones reales y supongo que las implementaciones en diferentes sistemas operativos también se comportan ligeramente diferentes entre sí.
Pero si tengo que tratar de llegar a una idea de que sería para estimar el RTT de la conexión, se puede tratar de mirar el tiempo que se tardó entre el tercer y el cuarto paquetes, como el primer y segundo paquetes puede ser contaminado por ARP y otros algoritmos de descubrimiento de la ruta.
Después de tener una estimación de RTT se podría tratar de refinarlo en el camino, no estoy muy seguro de cómo se puede hacer eso sin embargo. Sin embargo, no se requiere una especificación completa para el programa, sólo ideas: -)
Con el RTT descubierto se puede tratar de poner los paquetes en los contenedores de RTT y contar el número de paquetes de datos en vuelo en cada bandeja. De esta manera usted será capaz de "trama"-Cwnd estimado (número de paquetes en bin) a tiempo y probar algunos de coincidencia de patrones allí.
Una alternativa sería la de ir a lo largo de la traza y tratar de "funcionamiento" en su cabeza los diferentes algoritmos de control de congestión y ver si la decisión en cualquier punto que coincide con la decisión que habría hecho. Se requerirá algunos intervalos de indulgencia y precisión.
Esto definitivamente suena como una tarea interesante y desafiante!