Title: CBT
1CBT
- 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, ltdraft-ietf-idmr-cbt-spec-v3-00.txtgt,
marzo 1998.
2CBT 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
3CBT 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
4CBT
- 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
5CBT
- 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
6CBT
- Poda del árbol (simplificado, no se tiene en
cuenta vínculos unidireccionales) - QUIT-NOTIFICATION al parent cuando lista child
vacía
7CBT 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
8CBT interfaces podadas
- Unidireccionalidad
- BR1 no recibe información para grupo G1
- BR1 envía datagrams para G1 en modo multicast
(sin encapsular)
9CBT 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.
10CBT 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) ltdir_core, upstream, downstream-listgt
- (,G) ltdir_grupo, másc, upstream,
downstream-listgt - (S,G) ltdir-emisor. másc, dir-grupo, másc,
upstream,downstream-listgt - Cada interfaz (downstream-list) lleva indicación
de podada o no.
11CBT 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.
12CBT Encabezamiento común a las PDUs
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
13CBT Formato de PDUs tipos 0 a 6
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.
14CBT 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).
15CBT 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.
16CBT Integración al árbol
- Envío de JOIN-REQUEST
- Determinar próximo nodo (upstream) hacia el core
del grupo. - Crear información transitoria ltgrupo, origen,
upstream, downstreamgt - Armado y envío de JOIN-REQUEST por la interfaz
upstream. - 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
17CBT 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
18CBT Integración al árbol
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.
19CBT 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).
20CBT 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.
21CBT 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)
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