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, , marzo 1998.

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) : (*,G) : (S,G) :

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: 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

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