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).