¿Cómo puedo falsificar paquetes perdidos (o hacerlos fallar)?

Fondo

Uno de nuestros clientes sufre de un problema intermittant con su Internet donde dejará caer los paquetes cuando un usuario descarga un archivo grande (su TI está mirando en el problema).

Tengo una aplicación que consiste en un servidor web con Windows 2008 R2 IIS7.5, y un cliente que ejecuta Windows 7, Chrome, que utiliza una larga ejecución XMlHttpRequest para transferir "mensajes" desde el servidor al cliente.

El problema.

Mi aplicación debe ser debe ser bastante inmune a estas pérdidas de paquetes, pero en la práctica no lo es.

Quiero probar la aplicación bajo varios escenarios diferentes de problemas de red, por ejemplo, pérdida aleatoria de paquetes de 1%, y pérdida de paquetes explosiva – digamos pérdida completa de paquetes de 4000 ms, y así sucesivamente.

Estoy buscando una solución que me permite "reproducir" un escenario y probar mi aplicación. Podría usar 3G, o desconectar y desenchufar el cable de red, pero los efectos no son muy reproducibles.

La pregunta.

¿Hay una aplicación / controlador que puedo instalar en mi máquina para imitar "dudoso" conexiones a Internet? O tal vez un dispositivo o servidor proxy que puedo utilizar en la red para burlarse de estos escenarios?

Supongo que no es muy fácil de hacer en una computadora moderna, porque espero que la mayoría de la pila de TCP se descarga a la tarjeta de red, pero habría pensado que esto era una cosa bastante popular para tratar de hacer, sin embargo no lo he Tuvimos suerte en google. Soy más proficiente en Windows, pero una solución que utiliza Linux, ya sea como cliente, o proxy sería bienvenida.

2 Solutions collect form web for “¿Cómo puedo falsificar paquetes perdidos (o hacerlos fallar)?”

Un simple router linux en el medio podría hacer esto para usted sin problemas. Sólo haz algo de lectura en netem . Puede replicar todo lo que incluye paquetes perdidos, paquetes reordenados, paquetes dañados e incluso latencia. Lo uso yo mismo para simular enlaces basados ​​en satélites.

He utilizado TMNetSim para realizar esto. Proxies cualquier puerto que desee, por lo que podría ser utilizado para la mayoría de las aplicaciones.

http://www.tmurgent.com/Tools.aspx

Es posible que desee realizar una captura de paquetes correlacionados en el lado del cliente y del servidor y determinar si el cliente recibe un paquete RST. Si es así, es que viene de su servidor. Y se produce en tiempos predecibles, como después de cinco minutos de inactividad.

  • ¿Qué significan todos los parameters de la pestaña DNS de Propiedades TCP / IP avanzadas?
  • ¿Qué es el modelo OSI y cómo se aplica a las redes actuales?
  • ¿Puede un puerto estar en estado de escucha y estar cerrado?
  • Comportamiento de Solaris tcp stack con RTT relativamente alta y el tráfico de ráfaga
  • host uWSGI TCP / IP: puerto vs socket Unix
  • ¿Existen conexiones keepalives a socket?
  • Cómo configurar la interfaz de networking preferida en linux
  • ¿Cómo puedo falsificar packages perdidos (o hacerlos fallar)?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.