Aquí tenemos un conmutador de red y podemos pedirle fácilmente que limite el ancho de banda que permite, lo cual es bueno. Sería fantástico si también pudiéramos pedirle que nos genere pérdidas de paquetes; hacer esto con WANem es posible, pero agrega latencias y estamos tratando con aplicaciones en tiempo real, por lo que cualquier latencia que agreguemos es mala para nosotros. ¿Alguien conoce un conmutador de red o un enrutador que permita esto o que pueda piratearse para adaptarlo?
Respuesta1
Todos los conmutadores que tienen limitación de velocidad en el puerto o en la VLAN deberían permitirle "simular" la pérdida de paquetes. Si su aplicación necesita 1 MB de tráfico, establezca el límite justo por debajo de eso y el conmutador debería descartar paquetes.
Recuerda que todos los switch que tengan esta funcionalidad tienen que muestrear para poder limitar. Por ejemplo: el puerto 1 está configurado con un límite de 1 MB. El puerto 1 envía tráfico de 2 MB durante una fracción de segundo. La mayor parte probablemente lo logrará. Esto se debe a que hasta que el conmutador pueda detectar y medir cuánto tráfico llega, no sabrá qué descartar. Dependiendo de su proveedor, esto se puede implementar de muchas maneras: algunos almacenan en buffer y luego descartarán paquetes del buffer, y otros simplemente permitirán la entrada y salida del momento y luego los limitarán.
Si está buscando exactamente cómo responderá su aplicación, le sugeriría configurar una caja BSD justo en frente de la computadora en la que está probando la aplicación. BSD (solo porque los uso para mis firewalls) tiene un comando llamadoipfwque le permitirá controlar directamente una conexión. Entonces supongamos que el siguiente es su escenario actual:
+--------------------+ +----------------+ | Servidor de aplicaciones | ---> | Máquina cliente | +--------------------+ +----------------+
Entiendo que esto sería una simplificación excesiva, pero ilustra el concepto. Lo que puedes hacer es configurar un nat en el medio y tener un límite de velocidad.
+--------------------+ +-----------------------+ +-- --------------+ | Servidor de aplicaciones | ---> | Cuadro de límite de tasa | ---> | Máquina cliente | | 10.0.0.5 | | 10.0.0.6 192.168.1.1 | | 192.168.1.2 | +--------------------+ +-----------------------+ +-- --------------+
Una vez más sé que esto es una simplificación excesiva. Agregué IP para poder mostrarles cuáles serían los comandos en BSD en el cuadro de límite de velocidad. Primero configure BSD para que actúe como un enrutador normal, puede usar pf sense, etc. Luego puede agregar los siguientes comandos cuando se le solicite.
configuración de tubería ipfw 1 bw 101 Kbit ipfw agrega 1 tubería 1 ip de 10.0.0.5 a 192.168.1.2 ipfw agrega 2 tuberías 1 ip de 192.168.1.2 a 10.0.0.5
Esto simularía una conexión de 101 kb hacia y desde el cliente al servidor. Luego puede cambiar el valor 101 a cualquier valor para poder ver qué sucede en varios límites. La verdadera ventaja que esto tiene sobre un conmutador que admite las funciones limitantes es que es barato (una computadora simple con un par de interfaces) y que puede usar Wireshark para capturar el tráfico si es necesario y luego ver qué se está eliminando exactamente y cuánto cuesta. Esta información podría ser muy útil para diseñar una mejor aplicación.
En mi humilde opinión