Transcript CBT
CBT
•
Arquitectura definida en “Core Based Trees (CBT) Multicast Routing Architecture”, RFC 2201, septiembre 1997.
•
Especificación detallada:
–
“Core Based Trees (CBT version 2) Multicast Routing -- Protocol Specification
–
--”, RFC 2189, septiembre 1997.
“Core Based Trees (CBT version 3) Multicast Routing -- Protocol Specification --”, Internet Draft,
IP Multicast - 1999 [email protected]
1
CBT: Generalidades
•
Características
–
Diseño orientado a la simplicidad y escalabilidad
–
Arbol de distribución compartido bidireccional con raíz en un nodo “core”
–
Esquema de pertenencia explícito
–
Adaptable a grupos dispersos
IP Multicast - 1999 [email protected]
2
CBT: Funcionalidad
• – – – – –
Funcionalidad del protocolo
–
Descubrimiento de cores
– –
Joining Envío de datos
•
desde un host en una red miembro del grupo
•
desde un host en una red no miembro del grupo Poda del árbol Mantenimiento del árbol Operación en vínculos multiacceso Interoperabilidad Operación interdominio
IP Multicast - 1999 [email protected]
3
•
CBT
Joining (simplificado)
– – –
JOIN-REQUESTs por parte de los DR con hosts miembros del grupo Creación de estado transitorio en cada router Creación de estado definitivo (on-tree) al recibir el JOIN-ACK correspondiente M (*,G) i2 (i0, i1) 1 i0 R3 5 2 i3 R1 i0 i1 4 3 i2 12 13 (*,G) C (i0 , i1) CO RE i0 i1 8 9 (*,G) i2 (i0) i1 i2 R2 i0 7 10 i1 6 i1 i2 (*,G) i0 (i3) LEAF i0 i2 R4 i1 i3 11 R5 i0 (*,G) i1 (i0) LEAF (*,G) i2 (i0) LEAF Paquete multicast Paquete unicast Paquete de control M S
IP Multicast - 1999 [email protected]
M
4
•
CBT
Envío de datos (simplificado)
– –
No se realiza chequeo RPF Un datagram recibido por una interfaz es reenviado por las demás pertenecientes a la entrada
–
Un emisor en una red no miembro encapsula el paquete y envía unicast al core (*,G) C (i0 , i1) M (*,G) i2 (i0, i1) 4 i0 R3 3 i3 R1 i0 i1 i2 CO RE i0 i1 2 3 i1 i2 (*,G) i0 (i3) LEAF i0 i2 R4 i1 i3 1 (*,G) i2 (i0) LEAF 4 i1 i2 R2 i0 (*,G) i2 (i0) 5 i1 R5 6 i0 (*,G) i1 (i0) LEAF M S Paquete multicast Paquete unicast Paquete de control M
IP Multicast - 1999 [email protected]
5
•
CBT
Poda del árbol (simplificado, no se tiene en cuenta vínculos unidireccionales)
–
QUIT-NOTIFICATION al parent cuando lista child vacía M CO RE (*,G) i2 ( i0 , i1) i3 i2 R1 i0 i1 2 1 i0 R3 i2 i1 (*,G) i2 ( i0) LEAF R4 M S R2 R5 M Paquete multicast Paquete unicast Paquete de control
IP Multicast - 1999 [email protected]
6
•
CBT: Vínculos unidireccionales
Interfaz podada: establece vínculos unidireccionales en el árbol compartido (hojas hacia core).
•
Flujo de información:
–
El router puede recibir información a través de la interfaz.
–
El router NO puede propagar información por la interfaz.
•
Creación de una interfaz podada
– –
A través de un JOIN-REQUEST unidireccional.
A través de un QUIT-NOTIFICATION.
•
Eliminación de una entrada en un router
– –
Si todas sus interfaces child están podadas y No existe entrada menos específica con alguna interfaz no podada.
•
Utilizadas por los border routers para mejorar performance
IP Multicast - 1999 [email protected]
7
CBT: interfaces podadas
•
Unidireccionalidad:
– –
BR1 no recibe información para grupo G1 BR1 envía datagrams para G1 en modo multicast (sin encapsular) D1 Dominio CBT D2 C R2 D3 Dominio sin miembros para G1 BR R2 BR Emisores para G1 R1 EG1 MG1 MG1 Vínculo del árbol compartido Flujo de información del grupo G1
IP Multicast - 1999 [email protected]
8
CBT: Entradas de diferentes granularidades
•
Soporte adicional de entradas por emisor (S,G). (Además de (*,Core) y (*,G) ).
•
Objeto: mejor performance en dominios CBT de tránsito. Un BR puede hacer un join o prune específico según se lo notifique el otro dominio.
•
Entradas (S,G) sólo generadas por un BR.
•
Estado instanciado sólo en los routers entre BR y Core.
•
No se crea un árbol por emisor, sólo un envío selectivo por emisor en el árbol compartido.
IP Multicast - 1999 [email protected]
9
CBT: MFC y reenvío
•
MFC (Multicast Forwarding Cache): Tabla consultada para reenvío de datagrams.
•
PFC (Private Forwarding Cache) : Utilizada por CBT.
•
SFC (Shared Forwarding Cache) : En BRs, compartida por los protocolos operando en el BR.
•
Entradas:
– – –
(*,Core) :
–
Cada interfaz (downstream-list) lleva indicación de podada o no.
IP Multicast - 1999 [email protected]
10
CBT: MFC y reenvío
•
Reenvío
–
Buscar mejor (longest) matching por S y G en MFC (incluidas (*,Core) ).
• •
Si no hay matching, descartar el paquete.
Si hay matching:
–
Si el paquete fue recibido multicast por interfaz on-tree, reenviar por las demás no podadas de la entrada.
–
Si el paquete fue recibido multicast por interfaz no on-tree,
–
descartarlo.
Si el paquete fue recibido encapsulado, enviarlo (multicast desencapsulado) por todas la interfaces on-tree no podadas de la entrada.
IP Multicast - 1999 [email protected]
11
CBT: Encabezamiento común a las PDUs
Vers (4) Tipo (4) Long direc (8) Checksum (16) PDUs encapsuladas en IP: Número de protocolo 7.
Vers: Indica versión corriente del protocolo (3) Tipo: Indica tipo de la PDU: 0 : HELLO: Elección de DR en redes multiacceso.
1 : JOIN-REQUEST: conexión al árbol.
2: JOIN-ACK: conexión al árbol.
3 : QUIT-NOTIFICATION: poda del árbol.
4 : ECHO-REQUEST: monitoreo entre parent y child.
5 : ECHO-REPLY: monitoreo entre parent y child.
6: FLUSH-TREE: desarmado del árbol.
7: BOOTSTRAP (opcional): difusión de cores.
8 : CANDIDATE-CORE-ADVERTISMENT (opcional): difusión de cores.
Long. Direc.: Longitud en bytes de las direcciones (unicast o multicast) que lleva el paquete.
Checksum: El complemento a uno de la suma del complemento a uno de los grupos de 16 bits del paquete
IP Multicast - 1999 [email protected]
12
CBT: Formato de PDUs tipos 0 a 6
Numero de grupos (8) Encabezamiento de control CBT (32) Numero de opciones (8) Reservado (16) Dirección de grupo o Core 1 (Variable) Dirección de grupo 2 (Variable) Tipo de opción 1 (8)
. . .
Tipo de opción n (8)
. . .
Dirección de grupo n (Variable) Longitud de opción 1 (8)
. . .
Valor de opción 1 (variable)
. . .
Longitud de opción n (8) Valor de opción n (variable) Número de grupos: Número de grupos o conjuntos de grupos consecutivos incluidos en la PDU Número de opciones: Cantidad de opciones incluidas en la PDU.
Direc. de grupo i: Dirección de grupo (multicast) o dirección de Core (unicast).
Tipo de opción i: identifica la opción incluida en la PDU.
Longitud de opción i: Longitud para la opción.
Valor de opción i: Valor para la opción, con longitud en bytes dada por el campo anterior.
IP Multicast - 1999 [email protected]
13
CBT: lista de opciones
•
Tipo 1: Preferencia en Hello, long 1 byte.
•
Tipo 2: Uni-direccional, aplicable a joins.
•
Tipo 3: Lista de inclusión, permite anunciar un conjunto de grupos contiguos a los que se aplica la PDU.
•
Tipo 4: Lista de exclusión, permite anunciar un conjunto de grupos contiguos a los cuales se excluye de la aplicación de la PDU.
•
Tipo 5: Información (S,G), Permite que una PDU (join, quit, flush) haga referencia a información específica de un emisor (S).
IP Multicast - 1999 [email protected]
14
CBT: Proceso de integración al árbol
•
Solicitud de un nodo para integrarse a un árbol de distribución
–
Originado por un leaf router (con miembros directamente conectados).
–
Originado por un Border Router en el inicio (entrada (*,Core) ).
–
Soporte para joinings bidireccionales o unidireccionales.
–
Soporte para joinings de diferente granularidad ( (*,Core), (*,G), (S,G) ).
–
Proceso realizado nodo a nodo hacia el core.
–
PDUs: JOIN-REQUEST y JOIN-ACK.
IP Multicast - 1999 [email protected]
15
CBT: Integración al árbol
•
Envío de JOIN-REQUEST
–
Determinar próximo nodo (upstream) hacia el core del grupo.
– – –
Crear información transitoria:
Si es el router origen del J-R, activar timer para reintentos [RTX_INTERVAL]
– –
Si es el router origen del J-R, activar timer para desistir [JOIN_TIMEOUT] Reintentos:
• •
Router leaf: Reporte IGMP BR: JOIN_TIMEOUT * 3
IP Multicast - 1999 [email protected]
16
CBT: Integración al árbol
•
Recepción de JOIN-REQUEST
–
Determinar si el router tiene estado (transitorio o permanente) para el J-R
– – –
Si existe estado y el JR es recibido por la interfaz parent (upstream), descartarlo.
Si tiene estado transitorio, no reenviar el J-R.
Si tiene estado permanente, generar el JOIN-ACK adecuado e incorporar la interfaz de arribo del J-R a la entrada.
–
Si no se tiene estado y el nuevo upstream es diferente al de la interfaz de arribo del JR, crear estado transitorio y activar timer p/eliminación [TRANSIENT_TIMEOUT].
•
Determinación de estado para el JOIN-REQUEST:
– –
Si existe entrada, no se propagará el JOIN-REQUEST Existe entrada si:
• •
Existe entrada igual o menos específica y Alguna de sus interfaces child está sin podar
IP Multicast - 1999 [email protected]
17
•
Creación de entradas
CBT: Integración al árbol
d a d c a b Arbol (*,Core) b c d c a b Arbol (*,G) 1 - Entrada: (*,Core) a d(NP) 2- Recepción JR para (*,G) por interfaz c 3 - Creación: (*,G) a d(NP) c(NP) 4 - Recepción JR para (S,G) por interfaz b 5 - Creación: (S,G) a d(NP) c(NP) b(NP) Reenvío: en base al longest match.
d c a b Arbol (S,G)
IP Multicast - 1999 [email protected]
18
CBT: Poda
• • • • •
Proceso que permite a un nodo desvincularse del árbol de distribución.
• •
Solicitado desde el router child (downstream) al parent (upstream).
El parent puede recibir información vía una interfaz podada El parent no propaga información a través de una interfaz podada.
La distinción entre una interfaz podada y una no podada se deja a la implementación.
Podas implementadas a través de QUIT-NOTIFICATION.
Granularidades (*,core), (S,G) y (*,G).
IP Multicast - 1999 [email protected]
19
• • •
CBT: Poda
QUIT-NOTIFICATION
–
Puede referenciar podas de diferentes granularidades.
–
Disminuye la demora en dejar un grupo en los routers leaf.
– – –
Permite a un BR no recibir tráfico de un dominio CBT.
No es confirmado (no ACK).
Envío de [MAX_RTX] QUIT-NOTIFICATIONs cada [HOLDTIME] seg.
Envío de QUIT-NOTIFICATION
–
Un router genera un QUIT-NOTIFICATION si:
•
Todos las interfaces child de una entrada están podadas y
•
No existe entrada menos específica con alguna interfaz no podada.
Recepción de QUIT-NOTIFICATION
–
Si no existe entrada, crearla y generar un QUIT-NOTIFICATION upstream.
– –
Si existe entrada, marcar la interfaz de arribo como podada.
Si todas las interfaces child de una entrada están podadas y no existe entrada menos específica con child no podada
•
Eliminar la entrada.
•
Generar un QUIT-NOTIFICATION upstream.
IP Multicast - 1999 [email protected]
20
CBT: Poda
1 - Entrada en R: (*, Core) a b(NP) c(NP) 2 - Q-N (*,G1) recibido por b 3 - Agregado entrada (*,G1) a b(P) c(NP) 4 - 5 - Q-N (*,G1) recibido por c 5 - Modificación entrada (*,G1) a b(P) c(P) b R c a 1 - R3 realiza un Join (*,G1) vía R4, R1, Core R3: (*,G1) a L R4: (*,G1) c a R1: (*,G1) a b C: (*,G1) Null b 2 - BR realiza un join (*,core) via R4, R1, Core BR: (*,core) a X R4: (*,core) c b R1: (*,core) a b C: (*,core) Null b BR realiza un Q-N (S,G1) R4: (S,G1) c b(P) a
IP Multicast - 1999 [email protected]
b a C b R1 c R4 b a a a BR b R2 a b a R3 S
21