Aller au contenu principal

4.4. PIM Register Messages (Messages Register PIM)

Lorsqu'une source multicast commence à envoyer des données, le routeur désigné (DR) de la source est responsable d'enregistrer ces paquets de données au Point de Rendez-vous (RP). L'enregistrement s'effectue en encapsulant les paquets de données dans des messages PIM Register et en les envoyant en unicast au RP.

Objectif du mécanisme Register

Le mécanisme Register résout les problèmes suivants:

  • Une source peut commencer à envoyer à tout moment, alors que le RP peut ne pas encore avoir établi d'état de transmission pour ce groupe
  • En envoyant les paquets initiaux au RP, garantit que les récepteurs peuvent immédiatement commencer à recevoir le trafic
  • Permet au RP de décider s'il doit rejoindre l'arbre du chemin le plus court vers la source

4.4.1. Sending Register Messages from the DR (Envoi de messages Register depuis le DR)

Lorsque le DR d'une source reçoit un paquet de données multicast d'une source directement connectée, il effectue les opérations suivantes:

  1. Vérifier si l'enregistrement est nécessaire: Si l'état Register (S,G) est "Join", l'enregistrement est nécessaire
  2. Encapsuler le paquet: Encapsule le paquet de données multicast original dans un message PIM Register
  3. Unicast vers le RP: Envoie le message Register en unicast au RP de ce groupe

Machine à états Register (simplifié):

État: Join (envoi de Register nécessaire)
- Réception de paquet de données de source → Encapsuler et envoyer Register
- Réception de Register-Stop → Transition vers l'état Prune

État: Prune (Register-Stop reçu)
- Temporisateur Register-Stop en cours
- Envoi de Null-Register avant expiration du temporisateur
- Si le RP nécessite du trafic → Retour à l'état Join

État: Join-Pending (attente de réponse du RP)
- Register envoyé, attente de confirmation du RP

Null-Register: Lorsque le DR est dans l'état Register-Stop, avant l'expiration du temporisateur Register-Stop, le DR envoie un message Null-Register sans données pour sonder si le RP n'a toujours pas besoin de ce trafic.

4.4.2. Receiving Register Messages at the RP (Réception de messages Register au RP)

Lorsque le RP reçoit un message Register, il effectue les opérations suivantes:

  1. Décapsuler le paquet: Extraire le paquet de données multicast original du message Register

  2. Vérifier si le trafic est nécessaire:

    • S'il y a des récepteurs en aval (olist non vide) → Transmettre le paquet décapsulé et rejoindre le SPT (S,G)
    • S'il n'y a pas de récepteurs en aval → Envoyer un message Register-Stop au DR
  3. Envoyer Register-Stop: Si le RP n'a pas besoin de ce trafic, envoyer un message Register-Stop au DR, indiquant au DR d'arrêter d'envoyer des Register

Conditions de traitement du Register au RP:

if (Message Register reçu) {
if (Est un Null-Register) {
if (Trafic non nécessaire) {
Envoyer Register-Stop
}
} else {
Décapsuler le paquet
if (Trafic nécessaire AND pas encore rejoint SPT) {
Envoyer Join (S,G) vers la source
Transmettre le paquet décapsulé
} else if (Trafic non nécessaire) {
Envoyer Register-Stop
} else {
Transmettre le paquet décapsulé
}
}
}

Optimisation du tunnel Register

Une fois que le RP a rejoint le SPT (S,G) et commence à recevoir du trafic multicast natif, le tunnel Register devient inutile. À ce moment:

  1. Le RP envoie Register-Stop au DR
  2. Le DR arrête d'encapsuler les paquets
  3. Le trafic atteint le RP via le routage multicast natif
remarque

Pour le format détaillé des messages Register, le traitement du bit Border et les valeurs du temporisateur Register-Stop, veuillez consulter les sections 4.4 et 4.9.3-4.9.4 de la RFC 7761 pour la spécification complète.