Pregunta

Recientemente me he dado cuenta de que hay una distinción entre la multidifusión IP (que aparentemente no funciona tan bien en la Internet pública) y la multidifusión de aplicaciones (que aparentemente se usa en IRC y PSYC, por http://en.wikipedia.org/wiki/Multicast ).

¿Existe un buen tutorial sobre cómo implementar la multidifusión a nivel de la aplicación?

Pensé que el objetivo de la multidifusión era reducir el ancho de banda para los segmentos de red comunes, por lo que es difícil para mí entender qué hace la multidifusión a nivel de aplicación.

¿Fue útil?

Solución

El propósito de la multidifusión de nivel IP es reducir el ancho de banda para los segmentos de red comunes donde muchos usuarios desean recibir el mismo tráfico. Por lo general, se limita a una subred en particular y un enrutador IP no propagará la multidifusión más allá de la subred. Esto se hace por razones de escalabilidad: no sería una buena idea permitir que un host origine paquetes de multidifusión que se propagan a todas las direcciones IP en Internet.

Hay diferentes maneras de pensar en " nivel de aplicación " multidifusión. Un enfoque es construir un árbol de multidifusión utilizando los equipos host que participan en la multidifusión. El algoritmo de Dijkstra podría usarse para hacer esto (Wikipedia tiene una descripción razonable de esto). Sin embargo, mantener la lista de computadoras participantes, y mantener el árbol actualizado, puede ser una buena cantidad de trabajo si los hosts se unen y dejan la red a una velocidad considerable. Y es probable que no tenga una buena estimación del costo del salto disponible en el nivel de la aplicación.

Otro enfoque que debe revisar es el algoritmo de inundación utilizado en el protocolo de enrutamiento de consultas de la red Gnutella. (Wikipedia también tiene una buena descripción de esto). Este enfoque alivia la necesidad de construir un árbol de multidifusión, pero tiene el inconveniente de generar más tráfico de red. De hecho, mucho más tráfico de red, ya que el tráfico aumenta con el cuadrado del número de nodos, es decir, O (n ** 2).

Otros consejos

Otro ejemplo de multidifusión de aplicaciones es usar JGroups en Amazon EC2 o Google App Motor , ya que no admiten la multidifusión IP, pero los desarrolladores desean utilizar la funcionalidad de multidifusión.

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