+ All Categories
Home > Documents > 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

Date post: 01-May-2015
Category:
Upload: sebastiano-bernardi
View: 249 times
Download: 2 times
Share this document with a friend
33
1 Unicast vs Multicast Host Router Unicast Host Router Multicast
Transcript
Page 1: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

1

Unicast vs Multicast

Host

Router

Unicast

Host

Router

Multicast

Page 2: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

2

IGMPIGMP

Rete IP multicast

Sorgente multicast

I Router della rete multicast hanno il compito di gestire il protocollo per la creazione dell’albero di distribuzione e il forwarding dei pacchetti multicast

I router di accesso gestiscono le richieste di connessione ai gruppi da parte degli host (IGMP)

Se gli host non sono collegati tramite una rete broadcast (i.e. ethernet), le operazioni di replica possono essere particolarmenti pesanti (tipicamente hw based); se si pensa ad apparati di accesso Internet si possono avere anche decine di migliaia di host

Page 3: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

3

Indirizzi multicast

• Gruppo di indirizzi IP riservato per identificare i gruppi multicast

–224.0.0.0–239.255.255.255

• Indirizzi di classe D;–I bit più alti sono: “1110”

• Sottogruppo di indirizzi multicast riservati: 224.0.0.0–224.0.0.25:

–224.0.0.1 Tutti gli host di una sottorete–224.0.0.2 Tutti i router di una sottorete–224.0.0.5|6 OSPF

Page 4: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

4

Mapping tra indirizzi multicast e ethernet

0 1 0 0 5 E 00 A 0 0 0 1

1110 0000 0000 1010 0000 0000 0000 0001

224 10 0 1

Ind. Ethernet

Ind. mcast

224-239 1381

2^5 = 32 ind. Mcast mappati sullo stesso ind. ethernet

Prefisso 24 bit IEEE dedicato al multicast

Riservato usi futuri

23 bit utilizzati per il mapping

Page 5: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

5

IGMP Fa parte del protocollo IP 3 messaggi

Membership Query Il router designato invia query verso 224.0.0.1 (tutti gli host della rete) con timetolive = 1 (il messaggio non va oltre la rete locale) Su una LAN c’è un solo router “designato” “Query interval” viene scelto considerando le necessità di interazione (tempo di zapping) e di limitazione del traffico di segnalazione

Membership Report Inviato dagli host (prima di inviare una risposta gli host aspettano un tempo casuale: se si accorgono che un altro host ha già inviato un report, desistono) Il report può essere “spontaneo”; ciò accade quando l’host si connette ad un gruppo multicast la prima volta

Leave

Page 6: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

6

Pacchetti IGMPv2

Type: 0x11 = Membership Query 0x12 = Membership Report (v.1) 0x16 = Membership Report (v.2) 0x17 = Leave

Max. Resp. Time tempo max entro cui il router si aspetta una risposta viene usato dagli host come limite max nella scelta random del tempo di risposta (Default = 10 secs)

Group Address: Indirizzo del gruppo multicast (0.0.0.0 indica una query di tipo generale…any group)

7 15 31

Max. Resp. Time

Checksum

Group Address

Type

Page 7: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

7

H2

Join asincrona

• H2 effettua una join asincrona• Invia un report senza aver ricevuto una query• Riduce la latenza (query cicliche)• Rtr-a mantiene attivo il gruppo fino allo scadere di un timer che

viene resettato da successivi nuovi report

H2224.1.1.1

Report

1.1.1.1

H1 H3

1.1.1.10 1.1.1.11 1.1.1.12

rtr-a

Page 8: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

8

Meccanismo di elezione

IGMPv2

1.1.1.11.1.1.2

H1 H2 H3

1.1.1.10 1.1.1.11 1.1.1.12

• Inizialmente tutti i router inviano query

Query Query

• Ogni router legge le query inviate dagli altri host

IGMPQuerier

• Il router con l’IP più basso viene eletto (gli altri non inviano più query)

IGMPNon-Querier

rtr-artr-b

• Se scade un time-out (router eletto non ha inviato query) riparte il processo di elezione (meccanismo di recovery)

Page 9: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

9

Soppressione delle risposte

• Il router invia query periodiche• Gli host settano un timer tra [0,max resp timer]• Se scade il timer invia il report; se invece riceve un report sopprime il

timer e non invia alcun report• Nella figura, H1 e H3 non inviano report

Query1.1.1.1

1.1.1.10 1.1.1.11 1.1.1.12

224.1.1.1

Report

224.1.1.1

SuppressedX

224.1.1.1

SuppressedX

H1 H2 H3

Page 10: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

10

Leave

• H2 lascia il gruppo; manda un messaggio Leave relativo al gruppo 224.1.1.1 a tutti i router della rete (224.0.0.2)

• Il router manda una query specifica verso tutti gli host che sono in ascolto su 224.1.1.1

• H3 che è ancora in ascolto manda un report su 224.1.1.1• Il router continua ad inviare traffico sul gruppo 224.1.1.1

1.1.1.1

H1 H2 H3

1.1.1.10 1.1.1.11 1.1.1.12

H2

Leave to224.0.0.2

224.1.1.1

#1

Group SpecificQuery to 224.1.1.1

#2

Report to224.1.1.1

224.1.1.1

#3

rtr-a

Page 11: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

11

Leave …continua

• L’ultimo host attivo sul gruppo manda un Leave

• Il router invia una query specifica

• Scade il max-resp-timer

• Il router cancella il gruppo

H1 H31.1.1.11 1.1.1.12H3

Leave to224.0.0.2

224.1.1.1

#1

Group SpecificQuery to 224.1.1.1

#2rtr-a

H2

Page 12: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

12

IGMP v3

Source = 1.1.1.1Group = 224.1.1.1

H1

R1

R3

R2

Source = 2.2.2.2Group = 224.1.1.1

• H1 vuole ricevere il gruppo da S = 1.1.1.1 ma non da S = 2.2.2.2

• R3 può effettuare il prune della sorgente S = 2.2.2.2

IGMPv3:Join 1.1.1.1, 224.1.1.1Leave 2.2.2.2, 224.1.1.1

Page 13: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

13

Flooding del traffico multicast su apparati di livello 2 (e.g. switch)

• Gli apparati di livello 2 tipicamente non sanno come trattare il traffico multicast e si limitano ad effettuare un broadcast verso tutte le interfacce.

Multicast M

PIM

Page 14: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

14

• Gli apparati di livello 2 (e.g. switches) devono essere “IGMP” aware.

• I pacchetti IGMP vengono intercettati da hardware specializzato ASICs (IGMP snooping)

• Lo switch deve esaminare i messaggi IGMP Report e Leave associandogli alle specifiche porte

• Inoltre deve effettuare il “Proxy” dei messaggi verso il router ( possibilmente filtra i messaggi, join successivo al primo, leave quando ci sono altri host in ascolto sul gruppo)

IGMP

IGMP

PIM

Trattamento del traffico multicast su apparati di livello 2 (e.g. switch)

Page 15: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

15

Algoritmi di routing multicast

• Flooding: inoltrno dei pacchetti ricevuti su tutte le interfacce quando il pacchetto è ricevuto per la prima volta– Non prevede l’utilizzo di alcun protocollo di instradamento– Non utilizza le informazioni sull’attività degli host– Richiede di tener traccia di tutti i pacchetti ricevuti

• Spanning tree– Consente di trasmettere il traffico multicast senza incorrere in loop– Non utilizza le informazioni sull’attività degli host– Utilizzo non ottimizzato della rete

• Reverse Path Forwarding (spiegato in dettaglio in seguito)• Shortest path tree

Page 16: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

16

Protocolli multicast

• Prevedono lo scambio di opportuni messaggi tra i router; tali messaggi forniscono le informazioni necessarie al trattamento dei pacchetti multicast agli algoritmi di instradamento

• Tipi di protocollo multicast: PIM (Protocol Indipendent Multicast)

•Indipendent perché utilizza le informazioni di routing fornite da protolli di unicast esterni qualsiasi•PIM Dense Mode

•PIM Sparse Mode

• I concetti su cui si basa sono:–Multicast Distribution Trees

–Multicast Forwarding

Page 17: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

17

Multicast Distribution Trees

Shortest Path o Source Distribution Tree

Receiver 1

B

E

A D F

SourceNotation: (S, G) S = Source G = Group

C

Receiver 2

Page 18: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

18

Multicast Distribution TreesShared Distribution Tree

Ricevitore 1

B

E

A D (Shared Root) F

Sorgente 1 Notation: (*, G) * = All Sources G = Group

C

Ricevitore 2

Sorgente 2

Page 19: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

19

Forwarding Multicast

Logica inversa rispetto al Routing UnicastRouting Unicast analizza IP_DestinazioneRouting Multicast analizza IP_Source e applica il “Reverse Path Forwarding”:

IP_source è l’indirizzo da cui proviene la trasmissione multicastIP_destinazione è il gruppo multicast RPF: consente di evitare le duplicazioni scegliendo l’interfaccia da cui ricevere il traffico multicast (su tutte le altre è scartato); l’interfaccia scelta è quella che si userebbe per inviare traffico verso la sorgente (tabella di routing unicast)

Page 20: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

20

Mcast Dist. Tree

RPF

Pacchetti Mcast

RPF Check Fallisce: il traffico è scartato

Sorgnte mcast151.10.3.21

E0

S1

S0

S2Router con comportamento anomalo

Page 21: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

21

RPF Check Fails!

Multicast Route TableNetwork Interface151.10.0.0/16 S1198.14.32.0/24 S0204.1.16.0/24 E0

Check RPF che fallisce

Pacchetto arrivato da una interfaccia sbagliata (verrà scartato)

E0

S1

S0

S2

Pacchetto multicast con IP sorgente 151.10.3.21

X

Page 22: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

22

Check RPF che ha successo

Multicast Route TableNetwork Interface151.10.0.0/16 S1198.14.32.0/24 S0204.1.16.0/24 E0

E0

S1

S0

S2

Il pacchetto arriva dall’interfaccia corretta e viene forwardato su tutte le altre interfacce (distribution tree)

Pacchetto multicast con IP sorgente 151.10.3.21

Page 23: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

23

Tipi di protocollo multicast• Differiscono dal modo in cui costruiscono e gestiscono il distribution

tree (DT)

• Dense-mode (si assume un’alta densità di ricevitori) Inizialmente effettua il flooding, i router non interessati chiedono di essere rimossi dal DT (prune)

quando un ramo viene tagliato viene più inviato traffico dopo un tempo prestabilito, il ramo tagliato riceve nuovamente traffico e il router deve eventualmente richiedere il prune

• Sparse-mode (si assume che solo alcune zone saranno interessate alla trasmissione)

I router interessati devono fare richiesta esplicita (join) per essere aggiunti al DT Usa lo shared distribution tree ma al superamento di soglie prefissate i router possono comandare la costruzione di un source distribution tree

Page 24: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

24

Pacchetti PIM Join/PruneSia il DM sia lo SP usano pacchetti di segnalazione per aggiungere o togliere dei rami dal distribution tree; tali pacchetti contengono un elenco di gruppi multicast (multicast group) ciascuno dei quali contiente a sua volta una lista di sorgenti su cui fare Join o Prune

Gruppo n

JOIN ( Sorgente 1, Sorgente 2,…) ----- (S;G)

Gruppo k

PRUNE ( *, RP) ---- (*,G)

Gruppo m

JOIN (*, RP) ---- chiede che la Join venga propagata fino

allo shared root/rendevouz point

(per default sarebbe propagata fino alla sorgente)

Page 25: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

25

PIM DM: flooding

“rtr-a” inoltra il traffico (S, G) su tutte le interfacce (tranne quella da cui lo ha ricevuto)

Pacchetto multicast(128.9.160.43, 224.2.127.254)

S0

rtr-a

rtr-b

S1

E1

S0

S3

A questo punto su rtr-a esistono due entry: per (*, G) e (S, G)

• (*, 224.2.127.254) con interfacce di uscita S1 e S3

• (128.9.160.43, 224.2.127.254) con interfacce di uscita S1 e S3

La entry, (*, G) è creata appena si riceve un pacchetto da qualsiasi sorgente per G opprure quando si riceve una richiesta di connessione al gruppo (JOIN IGMP) da un host locale

Page 26: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

26

PIM DM: pruneS0

rtr-a

rtr-b

S1

E1

S0

S3

Rtr-b non ha ricevitori, quindi invia un messaggio di prune (S,G)

A questo punto su rtr-a nella entry (128.9.160.43, 224.2.127.254) l’interfaccia S0 viene messa in stato di prune; ma è solo sospesa per un tempo fissato (e.g 3 min) dopo di che ritorna in stato di forward

Prune (S,G)

Page 27: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

27

PIM DM: Grafting

E0

S0

rtr-b

Pacchetti (S,G)

A

• A invia una JOIN per il gruppo G.1

IGMP Join 1

• “rtr-b” invia un messaggio PIM Graft per il gruppo (S,G) verso rtr-a

2

PIM Graft2

• “rtr-a” invia un riscontro (PIM Graft-Ack)3

PIM Graft-ACK3

• “rtr-a” inizia a tramettere il traffico per (S,G).4

rtr-c

4

E0

E1

E0

E1

rtr-aS1

Page 28: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

28

PIM SM: Forwarding

E0

S0

rtr-a

rtr-b

Shared Tree Pacchetti Multicast

(128.9.160.1, 224.1.1.1)

S1

E0

E1

• Nel protocollo Sparse mode il check RPF usa:• l’indirizzo del RP, nel caso di shared trees

• l’indirizzo sorgente nel caso di shortest-path tree

Source Tree Pacchetti Multicast

(128.9.160.43, 224.1.1.2)

RP(10.1.5.1)

Tabella di routing unicast

Route Intfc10.1.5.0/2410.1.5.0/24 S0 10.1.2.0/24 E0128.9.0.0/16128.9.0.0/16 S1

Page 29: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

29

PIM SM: Forwarding Quando un router riceve un pacchetto multicast per il gruppo G lo inoltra su un’altra interfaccia se:

ha ricevuto un pacchetto di JOIN PIM per il gruppo G su quella interfaccia da un router adiacente un host su quella interfaccia ha inviato una richiesta IGMP per il gruppo G

Al contrario del dense mode, i router PIM-SM assumo che non ci sono ricevitori interessati al gruppo in assneza di JOIN esplicite

Al contrario del DM, i router a valle del RP rispetto alla sorgente non si devono preocuppare dell’indirizzo sorgente dei pacchetti multicast perché tutto il traffico passa per i RP (infatti il check RFP è fatto sull’indirizzo IP del RP)

I router a valle del RP mantengono lo stato (*,G)

I router tra la sorgente e il RP mantengono lo stato (S,G)

Page 30: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

30

PIM SM: costruzione del distribution tree(caso in cui il ricevitore si registra per primo su RP)

RS

R2

RP

R1

R3

R4

RECEIVER

Il ricevitore chiede di ascoltare il gruppo (*,G) tramite messaggio IGMP;

Il router sorgente invia il primo pacchetto multicast che riceve in un pacchetto unicast di registrazione verso RP (register);

RP chiede di costruire il DT join(S,G)

R4 invia una join (*,G) verso RP

I router sul percorso S-RP intercettano la join e creano le entry (S,G) mettendo in stato di forward l’interfaccia da cui è arrivata la join I router R3, R2 intercettano

le join e creano le entry (*,G) mettendo le interfacce da cui ricevono la join in stato di forward

R4 crea l’entry (*,G) e mette in forward l’interfaccia verso RCR

Quando RP riceve il primo pacchetto multicast completa il processo di registrazione

S

Page 31: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

31

PIM SM: creazione del distribution tree(caso in cui la sorgente si registra per prima su RP)

RS

R2

RP

R1

R3

R4

Receiver

S3. RP non ha uno stato (*,G) e quindi scarta il pacchetto

1. S invia il primo pacchetto mcast

2. RS crea lo stato (*,G) e (S,G) e incapsula il pacchetto mcast in un messaggio unicast PIM register verso RP

Fino a questo momento RS ha attivato lo stato (S,G) è in stato “registering” e non ha interfacce di forward attive poiché non ha ricevuto nessuna join

4 RP manda un messaggio prune (S,G) verso R1 (che però lo ignora in quanto anch’esso non ha il gruppo G attivo

5 RP invia un msg register stop a RS6 RS riceve il register stop e non inoltra

più i pacchetti mcast ricevuti da S in pacchetti unicast di register (RS non è più nello stato di registering)…cancella lo stato (S,G)

In questo momento R1 vede attivo il gruppo (S,G) perché ha ricevuto un prune da RP ma non ha interfacce attive, anche RP ha il gruppo (S,G) ma non interfacce attive (non ci sono ricevitori connessi)

7 RP riceve un PIM join (*,G) da R4 (RCR ha chiesto il gruppo G)8 RP cerca tutte le entry (S,G) e invia un PIM join verso tutte le sorgenti trovate

R2-R3,R4 intercettano la join e creano il distribution tree

Page 32: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

32

RS

R2

RP

R1

R3

R4

Receiver

S

PIM SM: pruning del distribution tree

R4 ha un solo ricevitore attivo sul gruppo G

RCR lascia il gruppo G (leave IGMP); R4 cancella l’interfaccia verso RCR dal ouil del gruppo G.

Poiché R4 non ha altre interfacce attive per il gruppo G, invia un messaggio di prune (*,G) verso il RP

Rec. 2

R3 intercetta il messaggio prune e rimuove l’ interfaccia dal DT

Poiché non ha altre interfacce attive inoltra il messaggio di prune verso RP

R2 intercetta il messaggio, rimuove l’interfaccia dal DT ma non inoltra il messaggio

Page 33: 1 Unicast vs Multicast Host Router Unicast Host Router Multicast.

33

Source Specific Multicast

• Utilizzato quando le sorgenti sono poche e ben definite (e.g. head end di trasmissioni TV)

• Prevedono l’utilizzo del protocollo IGMP v3

• Permette una notevole semplificazione dei processi dei router


Recommended