Aller au contenu principal

4.5. PIM Join/Prune Messages (Messages Join/Prune PIM)

Les messages PIM Join/Prune sont utilisés pour construire et maintenir les arbres de distribution multicast. Ces messages sont envoyés par les routeurs pour:

  • Demander à rejoindre l'arbre multicast (Join)
  • Demander à quitter une branche de l'arbre multicast (Prune)
  • Remplacer les messages Prune d'autres routeurs

Types de messages Join/Prune

PIM-SM utilise trois types de messages Join/Prune:

  1. (*,G) Join/Prune: Utilisé pour l'arbre partagé (arbre RP)
  2. (S,G) Join/Prune: Utilisé pour l'arbre du chemin le plus court spécifique à la source
  3. (S,G,rpt) Join/Prune: Utilisé pour élaguer des sources spécifiques sur l'arbre partagé

4.5.1. Receiving (,G) Join/Prune Messages (Réception de messages Join/Prune (,G))

Lorsqu'un routeur reçoit un message Join ou Prune (,G) sur une interface, il met à jour l'état en aval (,G) de cette interface.

Traitement du Join (*,G):

  • Transition de l'état (*,G) de l'interface vers "Join"
  • Réinitialisation du temporisateur d'expiration Join/Prune
  • Si cela entraîne un changement dans la liste d'interfaces sortantes, il peut être nécessaire d'envoyer un Join en amont

Traitement du Prune (*,G):

  • Sur un LAN multi-accès, démarrage du temporisateur Prune-Pending pour permettre aux autres routeurs de remplacer
  • Si non remplacé, transition de l'état vers "NoInfo"

4.5.2. Receiving (S,G) Join/Prune Messages (Réception de messages Join/Prune (S,G))

Le traitement des messages Join/Prune (S,G) est similaire à (*,G), mais pour une paire source-groupe spécifique.

Différences clés:

  • L'état (S,G) est maintenu indépendamment de l'état (*,G)
  • Le Join (S,G) est utilisé pour construire le SPT
  • Peut déclencher un Join en amont vers la source

4.5.3. Receiving (S,G,rpt) Join/Prune Messages (Réception de messages Join/Prune (S,G,rpt))

Les messages Prune (S,G,rpt) sont utilisés pour exclure le trafic de sources spécifiques sur l'arbre partagé.

Scénario typique:

  1. Le récepteur rejoint l'arbre partagé via (*,G)
  2. Pour une source S spécifique, le récepteur ne veut pas son trafic
  3. Envoi d'un Prune (S,G,rpt) pour élaguer cette source

4.5.4. Sending (,G) Join/Prune Messages (Envoi de messages Join/Prune (,G))

Le routeur envoie périodiquement des messages Join (*,G) vers le RP pour maintenir l'état de l'arbre partagé.

Machine à états amont (*,G) (simplifié):

État NotJoined(*,G):
- Condition: JoinDesired(*,G) == TRUE
- Action: Envoyer Join(*,G), transition vers Joined(*,G)

État Joined(*,G):
- Envoi périodique de Join(*,G) (rafraîchissement)
- Condition: JoinDesired(*,G) == FALSE
- Action: Envoyer Prune(*,G), transition vers NotJoined(*,G)

Cycle Join: 60 secondes par défaut Holdtime: 3.5 × cycle Join = 210 secondes

4.5.5. Sending (S,G) Join/Prune Messages (Envoi de messages Join/Prune (S,G))

Les messages Join (S,G) sont utilisés pour construire l'arbre du chemin le plus court vers une source spécifique.

Conditions déclenchant un Join (S,G):

  • Un récepteur local demande une source spécifique via IGMPv3
  • Basculement de l'arbre partagé vers le SPT (débit de trafic dépassant le seuil)
  • En tant que RP, besoin d'arrêter de recevoir des messages Register

4.5.6. (S,G,rpt) Periodic Messages (Messages périodiques (S,G,rpt))

Les messages Prune (S,G,rpt) sont généralement envoyés avec les messages Join (*,G) pour indiquer: "Je veux le trafic du groupe G, mais pas le trafic de la source S".

Exemple de combinaison de messages:

Join(*,G) + Prune(S,G,rpt)
→ "Rejoindre l'arbre partagé, mais exclure la source S"

4.5.7. State Machine for (S,G,rpt) Triggered Messages (Machine à états pour les messages déclenchés (S,G,rpt))

La machine à états (S,G,rpt) gère les situations de remplacement des messages Prune d'autres routeurs sur un LAN.

Mécanismes clés:

  • Override Timer: Utilisé pour randomiser l'envoi des messages de remplacement
  • Prune-Pending: Retarde la prise d'effet du Prune pour permettre le remplacement
remarque

Pour les définitions détaillées de la machine à états, les valeurs de temporisateur et les formats de messages, veuillez consulter la section 4.5 de la RFC 7761 pour la spécification complète. Les diagrammes de machine à états et le pseudocode sont détaillés dans le document original.