4.2. Data Packet Forwarding Rules (Règles de transmission des paquets de données)
Cette section décrit comment un routeur PIM-SM transmet les paquets de données multicast. Le principe de base est que les paquets ne sont transmis que lorsque le routeur possède un état de transmission approprié.
Règles de base pour la transmission des paquets
Lorsqu'un paquet de données multicast arrive sur une interface de routeur, le routeur effectue les vérifications suivantes:
- Vérification RPF (Reverse Path Forwarding Check): Vérifie que le paquet arrive de la bonne interface (c'est-à-dire l'interface vers la source)
- Vérification de la liste d'interfaces sortantes (Outgoing Interface List, olist): Détermine vers quelles interfaces le paquet doit être transmis
- Vérification du seuil TTL: Vérifie que le TTL du paquet est suffisant
État de transmission
PIM-SM utilise les états de transmission suivants pour déterminer comment traiter les paquets:
- État (*,G): Utilisé pour la transmission sur l'arbre partagé
- État (S,G): Utilisé pour la transmission sur l'arbre du chemin le plus court spécifique à la source
- État (S,G,rpt): Utilisé pour exclure des sources spécifiques sur l'arbre partagé
Algorithme de transmission
if (DirectlyConnected(S) == TRUE AND iif == RPF_interface(S)) {
olist = olist(*,G) (+) olist(S,G) (-) olist(S,G,rpt)
forward packet on all interfaces in olist
} else if (iif == RPF_interface(S) AND SPTbit(S,G) == TRUE) {
olist = olist(S,G) (-) olist(S,G,rpt)
forward packet on all interfaces in olist
} else if (iif == RPF_interface(RP(G)) AND SPTbit(S,G) == FALSE) {
olist = olist(*,G) (-) olist(S,G,rpt)
forward packet on all interfaces in olist
} else {
drop packet
}
4.2.1. Last-Hop Switchover to the SPT (Basculement du dernier saut vers le SPT)
Lorsque le routeur du dernier saut d'un récepteur commence à recevoir du trafic d'une source spécifique pour la première fois, il peut recevoir ce trafic via l'arbre partagé (RPT). Si le débit de trafic est suffisamment élevé, le routeur du dernier saut peut décider de basculer vers l'arbre du chemin le plus court spécifique à la source (SPT).
La décision de basculement est basée sur un seuil configuré. Une fois la décision prise de basculer:
- Le routeur envoie un Join (S,G) vers la source
- Lorsque les données commencent à arriver via le SPT, le routeur envoie un Prune (S,G,rpt) vers le RP
4.2.2. Setting and Clearing the (S,G) SPTbit (Définition et effacement du SPTbit (S,G))
Le SPTbit est utilisé pour indiquer si le routeur transmet le trafic d'une source spécifique via le SPT ou via le RPT.
Définition du SPTbit: Lorsque l'une des conditions suivantes est remplie:
- Un paquet correspondant à l'état de transmission (S,G) est reçu et la vérification RPF réussit
- Un Join (S,G) est envoyé et le trafic est attendu via le SPT
Effacement du SPTbit: Lorsque la transmission spécifique (S,G) n'est plus nécessaire, par exemple:
- Tous les récepteurs en aval partent
- L'état (S,G) expire
Pour les règles de transmission détaillées, le pseudocode et la gestion des cas limites, veuillez consulter la section 4.2 de la RFC 7761 pour la spécification complète.