No puedo estrangular la red enviando mis paquetes UDP entre dichos enlaces porque me preocupan las caídas de paquetes y la pérdida de mensajes.
A primera vista, esto suena más como un problema de diseño con la aplicación, no con la red:
- Las redes no son confiables.
- UDP nunca tuvo la intención de transportar mensajes de manera confiable sin agregar detección y retransmisión de pérdida de capa de aplicación.
Si la aplicación requiere mensajes confiables, muchas personas usan TCP (para puntos finales de unidifusión) o TIBCO RV (puntos finales de multidifusión). El diablo siempre está en los detalles y no hay una solución única para todos.
¿Hay alguna forma de detectar de forma instantánea y repetida el ancho de banda disponible entre dos centros de datos, para poder limitarlo con mis paquetes?
Básicamente está preguntando por lo que tradicionalmente se llama QoS .
Una vez que crea reglas para clasificar y priorizar su tráfico, puede usar disciplinas de QoS como CBWFQ y LLQ para priorizar sus clases de tráfico más importantes ante la congestión (es decir, bajo ancho de banda disponible).
Alternativamente, puede usar QoS para configurar ciertas clases de tráfico a una tasa promedio.
En general, las clases de tráfico UDP se consideran más sensibles a las pérdidas que las clases TCP. Siempre hay excepciones a esta regla, por supuesto; por ejemplo, TIBCO RV se basa comúnmente en la multidifusión UDP, pero TIBCO incluye números de secuencia para detectar la necesidad de retransmisión. Dependiendo de las aplicaciones, puede que necesite o no priorizar las clases UDP TIBCO sobre otro tráfico TCP.
No encontré cómo detectar el ancho de banda disponible.
Depende del tipo específico de QoS, pero en general:
- Las clases de QoS monitorean la utilización promedio dentro de la clase de tráfico
- QoS observa las colas de la interfaz en busca de congestión y solo prioriza cuando la interfaz tiene un tamaño de cola distinto de cero (es decir, congestión).
Esta respuesta ilustra un tipo de configuración de QoS.
Notas finales