2008-11-01 10 views
6

Recientemente me di cuenta de que existe una distinción entre multidifusión IP (que aparentemente no funciona bien en internet público) y multidifusión de aplicaciones (que aparentemente se usa en IRC y PSYC, por http://en.wikipedia.org/wiki/Multicast).¿El mejor tutorial para multidifusión de aplicaciones?

¿Existe un buen tutorial sobre la implementación de multidifusión a nivel de 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.

Respuesta

3

El propósito de la multidifusión de nivel de 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, está limitado a una subred en particular y un enrutador de 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 cada dirección IP en Internet.

Existen diferentes maneras de pensar en la multidifusión de "nivel de aplicación". Un enfoque es construir un árbol de multidifusión usando las computadoras 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 abandonan la red a un ritmo considerable. Y probablemente no tenga una buena estimación del costo del salto disponible en el nivel de 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 la desventaja de generar más tráfico de red. De hecho, MUCHO más tráfico de red, ya que el tráfico crece con el cuadrado del número de nodos, es decir, O (n ** 2).

2

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

Cuestiones relacionadas