¿Existe un algoritmo para la toma de huellas dactilares el algoritmo de control de congestión TCP utilizado en una sesión capturado?

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

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.
¿Fue útil?

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!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top