A continuación se profundizará en cada parte del protocolo PIM-SM, comenzando por el descubrimiento del vecino. Como se ha señalado anteriormente, consideraremos que el punto de reunión ya se ha elegido. En la última sección se muestra cómo se realiza esta acción. Recuerde que, al estudiar los mensajes de control, como los mensajes de saludo y de unión o eliminación, nos estamos refiriendo a la versión 2 de PIM-SM. Los mensajes de esta versión se encapsulan en paquetes IP con el número de protocolo 103. Los mensajes de la versión 1 se encapsulaban en paquetes del Protocolo de administración de grupos de Internet (IGMP). Para ver el formato de la encapsulación IP o de cualquier mensaje de control, consulte la sección "Mensajes de control" al final de este documento.
Los enrutadores PIM envían de forma periódica mensajes de saludo para descubrir enrutadores PIM vecinos. La multidifusión de los mensajes de saludo se realiza mediante la dirección 224.0.0.13 (grupo ALL-PIM-ROUTERS). Un campo Holdtime (tiempo de conservación) especifica el periodo de validez de la información. Los enrutadores no envían ninguna confirmación de la recepción del mensaje de saludo. Asimismo, a diferencia de otros protocolos como DVMRP, cuando se recibe un mensaje de saludo, su interfaz no se agrega automáticamente a la lista de interfaces salientes para reenviar el tráfico de multidifusión. PIM-SM utiliza un modelo de unión explícito en el que un receptor de dirección descendente debe unirse a un grupo antes de que el tráfico se reenvíe a la interfaz.
Los enrutadores de PIM-SIM reenvían tráfico de multidifusión a todas las interfaces que llevan a los receptores que se han unido explícitamente a un grupo de multidifusión. Los receptores realizan esta acción al enviar un informe de pertenencia al host de IGMP para cada grupo al que pertenecen. Estos mensajes se envían a la dirección del grupo. Tienen un periodo de vida (TTL) IP de 1 y están limitados a la subred local. El enrutador realiza una comprobación de orientación y reenvío de ruta inversa (RPF) antes de reenviar un paquete. El tipo de comprobación de RPF que un enrutador realiza depende de si el árbol es compartido o de ruta de acceso más corta. Si es compartido, la comprobación de RPF utiliza la dirección IP del punto de reunión. Si es un árbol de ruta de acceso más corta, la comprobación de RPF utiliza la dirección del origen. La figura 4 muestra ambos casos.
Figura 4 Comprobaciones de RPF en el árbol compartido y de ruta de acceso más corta
El tráfico de multidifusión del origen 162.10.4.1 utiliza el árbol compartido, lo que significa que el origen lo envía al punto de reunión y no al grupo de multidifusión. El enrutador lo indicaría con una entrada (*, G) en lugar de con una entrada (S, G). Antes de enviar el tráfico, el enrutador 1 comprueba en la tabla de enrutamiento de unidifusión si los paquetes del punto de reunión llegan a la interfaz correcta. En este caso, sí lo hacen correctamente, ya que llegan a la interfaz I1 y se reenvían los paquetes.
El tráfico de multidifusión del origen 162.10.4.2 utiliza el árbol de ruta de acceso más corta. El enrutador lo indicaría con una entrada (S, G) para el origen. En este caso, el enrutador utiliza una dirección IP del origen para realizar la comprobación de RPF y mira la tabla de enrutamiento de unidifusión para comprobar si el tráfico del origen llega a la interfaz correcta. En el ejemplo ocurre así, por tanto, el tráfico se reenvía.
El tráfico que llega a la interfaz correcta se envía a todas las interfaces salientes que conducen a los receptores de dirección descendente si se cumple cualquiera de las siguientes condiciones:
Existe una lista de todas las interfaces salientes para cada entrada (*, G) o (S, G).
Como se ha explicado anteriormente, cuando un host desea unirse a un grupo de multidifusión, envía un mensaje IGMP al enrutador de dirección ascendente, lo que significa que el enrutador puede aceptar el tráfico de multidifusión para el grupo. Para ello, el enrutador debe notificar al punto de reunión que desea unirse al árbol compartido, por lo que envía un mensaje de unión PIM (*, G) al PIM vecino de dirección ascendente, en la dirección del punto de reunión. Los mensajes de unión se difunden salto a salto a la dirección 224.0.0.13, que representa el grupo ALL-PIM-ROUTERS. Esto significa que, en una red de acceso múltiple, todos los vecinos PIM permiten la unión, pero que sólo el PIM vecino de dirección ascendente la realiza. Se utiliza el mismo mensaje tanto para uniones como para eliminaciones (que se tratan en un apartado posterior).
Cuando un enrutador PIM recibe una unión (*, G) de un enrutador de dirección descendente, comprueba si existe el estado (*, G) para el grupo G en la tabla de enrutamiento de multidifusión. Si el estado ya existe, el mensaje de unión ha llegado al árbol compartido y la interfaz desde la que se recibió el mensaje se incluye en la lista de interfaces salientes. Si no existe ningún estado, se crea una entrada (*, G), se incluye la interfaz en la lista de interfaces salientes y se vuelve a enviar al mensaje de unión hacia el punto de reunión.
Cuando se crea el estado (*, G) desde el enrutador de último salto al punto de reunión, el tráfico de multidifusión para G puede llegar al host que se ha unido al grupo. La figura 5 ilustra este proceso.
Figura 5 Ejemplo de una unión PIM
En este ejemplo, el receptor envía al enrutador 2 un mensaje de pertenencia al host IGMP y notifica su intención de unirse al grupo G de multidifusión. Se trata del primer receptor conectado al enrutador 2 que participa en el grupo y, por tanto, el enrutador no tiene ningún estado (*, G). Crea una entrada y agrega I4 a la lista de interfaces salientes. A continuación, reenvía el mensaje de unión al vecino de dirección ascendente, el enrutador 1. Este enrutador tampoco tiene un estado (*, G), por lo que repite el proceso: vuelve a enviar el mensaje de unión al punto de reunión. El proceso continúa hasta que el punto de reunión recibe el mensaje de unión o hasta que un enrutador de dirección ascendente que tiene un estado (*, G) recibe el mensaje. En ambos casos se ha creado un árbol compartido que recorre el camino desde el punto de reunión al receptor. Observe que, hasta que el receptor envía el mensaje IGMP, no ocurre nada. El receptor inicia el proceso de unión.