¿Qué tan comunes son los paquetes descartados en las comunicaciones dentro de un centro de datos?

10

Digamos que tengo 2 máquinas en el mismo centro de datos pero no necesariamente en el mismo rack.

¿Qué tan comunes serían los paquetes descartados cuando se envían utilizando UDP entre estas dos máquinas?

Supongo que, dado que solo hay unos pocos conmutadores como máximo entre las máquinas, los paquetes no se descartarán en absoluto .

¿Qué tan común es la llegada de paquetes fuera de orden dentro del mismo centro de datos? Mi suposición es que solo hay una ruta el 99.9% del tiempo, por lo que esto no puede suceder.

Sin embargo, cada vez que me encuentro pensando en términos absolutos, sé que me falta algo.

¿Qué información de antecedentes necesito para comprender mejor cuándo esperar paquetes descartados, y con qué frecuencia podrían descartarse y llegar fuera de servicio para las máquinas en el mismo centro de datos?

En última instancia, estoy tratando de decidir entre usar UDP de multidifusión o PGM al comunicarme entre diferentes instancias de Linode VPS ubicadas en el mismo centro de datos. La información debe llegar y en orden. ¡Claro, UDP no suena tan bien entonces!

Pero, si uno puede esperar una entrega casi perfecta o perfecta en el mismo centro de datos, entonces está bien. Pero estoy probando esa suposición.

Gracias.

z8000
fuente

Respuestas:

11

No puede confiar en UDP para entregar paquetes en orden porque la especificación no proporciona esas garantías. Incluso suponiendo la situación más ideal, una sola pieza de cable de ethernet entre dos hosts, todavía queda el asunto del sistema operativo, la pila de red, el controlador NIC y la implementación de libc contra la que escribe.

En cada paso de esa cadena, los escritores de ese código habrán elegido NO priorizar el pedido de paquetes UDP, incluso si llegan en orden por la simple razón de que no tienen que hacerlo.

Un ejemplo artificial podría ser la estructura de datos en la que se leen los paquetes entrantes, que podría ser un búfer en anillo. Los paquetes que lleguen en orden, se colocarán, en orden, en el búfer en anillo, pero puede ser más simple para el escritor del controlador volcarlos en las capas superiores del código de red en orden de memoria , por lo tanto, aleatorizando su orden.

Teniendo en cuenta su situación, una máquina virtual se ejecuta en una infraestructura compartida que se ejecutará por volumen, no por rendimiento, luego la probabilidad de predecir el orden en que se recibirán los paquetes UDP será baja.

En resumen, si la especificación dice que no puede confiar en el pedido de paquetes UDP. No puede confiar en él y no puede tratar de modificar el entorno para ofrecer una garantía más sólida que la especificada.

Dave Cheney
fuente
Esto es lo que pensé que debería estar pensando. ¡Gracias por decirlo bastante bien!
z8000
1
Si desea una multidifusión confiable, posiblemente para transmisión, eche un vistazo a en.wikipedia.org/wiki/Real-time_Transport_Protocol
Dave Cheney
0

Si alguien está interesado en experimentar, simplemente use Wireshark. Si alguien realmente entiende nuestro caso de conectividad lenta o paquetes descartados, simplemente duplicamos un puerto en un conmutador, conectamos una computadora portátil con Wireshark y echamos un vistazo.

Webs
fuente
FWIW en Linode, una instancia de VPS no puede entrar en modo promiscuo.
z8000
Debería poder instalar Wireshark localmente en una máquina para capturar los datos que ingresan, o simplemente duplicar el puerto en un conmutador y capturar datos de esa manera. La duplicación de puertos sería más complicada si se realizara para sistemas virtuales que podrían compartir algunos puertos. Pero Wireshark puede filtrar elementos específicos como IP y creo que los nombres de host.
Webs
0

Casi cualquier conmutador provocará el reordenamiento de dos paquetes en cualquier momento y muchos protocolos de red como PGM lo tienen en cuenta.

Una cosa a tener en cuenta es que la mayoría de los centros de datos bloquean datagramas y bloquean la multidifusión para simplificar y reducir la sobrecarga de su infraestructura de red.

El protocolo IP / PGM en sí solo debe usarse si tiene PGM Router Assist habilitado y elementos de red conscientes entre el servidor y los clientes, de lo contrario, quédese con PGM encapsulado dentro de UDP y ahorre la carga de administrar los permisos de la aplicación.

Si utiliza una capa de mensajería como ØMQ, puede diferir la elección de la red de superposición IP / PGM, UDP / PGM o TCP para la implementación y la integración.

Steve-o
fuente
-2

Escribí una aplicación de multidifusión .net simple que puede medir paquetes descartados bajo la presión especificada.

Puede descargarlo aquí: SimpleMulticastAnalyzer .

Disfrutar.

Eran Betzalel
fuente