Download - Multicast eng

Transcript
Page 1: Multicast eng

1

MulticastMulticast IPIP

Jean-Louis RougierENST – Dpt. [email protected]

Anthony BussonIEF – Université Paris [email protected]

ENST-U-PSUD 22

VocabularyVocabulary

• Unicast:Point to point Transmission

• Broadcast:Global transmission

• Multicast:Transmission to a group (a subset of nodes). Multipoint to Multipoint communication or Point to Multipoint communication.

• Anycast:Point to Point Transmission to a member (not specified by the user) of a group.

Page 2: Multicast eng

2

ENST-U-PSUD 33

MotivationsMotivations

• Network resources optimization.

Source

Unicast

Source

Multicast

Multiplication

3

2

ENST-U-PSUD 44

Multicast problems : first visitMulticast problems : first visit

The previous example shows that we need:

• A new addressing scheme.– What must be the destination address of a multicast

packet? It is necessary to define the notion of groupeaddress : GDA concept (Group Destination Address)

– It is different of the paradigm : “one interface = one address”.

• The capacity “to multiply” the packet (multiplication) in the routers and in the layer 2 devices.

Page 3: Multicast eng

3

ENST-U-PSUD 55

MulticastMulticast AddressesAddresses

• IANA has allocated a prefix for the multicast.– In IPv4, it is the class D, i.e.

224.0.0.0 — 239.255.255.255.– Addresses 224.0.0.0/8 are reserved (« Well-Known Addresses »)

• There is no address allocation algorithm defined. – Possibility of collisions.

1110 Group ID28 bits

ENST-U-PSUD 66

Multicast problems: second visit (1)Multicast problems: second visit (1)

The multicast suffers from scalability issues• States to store:

– It is not possible to store locations of the different group members (too much information). Therefore, the multicast tree must be built without the knowledge of the member locations!!!

• Complexity of the management plane: – Is a Specific control protocol required to build the multicast tree?

Source

Page 4: Multicast eng

4

ENST-U-PSUD 77

TheThe DeeringDeering modelmodel

• The multicast has been introduced by a PhD student named Steven Deering in 1988. The model is the following:– Datagram paradigm « like IP »:

• Connectionless oriented• Best-Effort

– Groups are open. • No knowledge of the group or its member is necessary to transmit to

this group.• Anyone can transmit to the group (even if it is not a member).

– Groups are dynamic.• No registration is necessary to participate to a a group.• There is no centralized management of the groups.• Any host can join a group.

Conclusion: the multicast is open, OK for a campus network but the service model does not fit with the security required in a commercial network (as is the Internet today).

MulticastMulticast in a LANin a LAN

Page 5: Multicast eng

5

ENST-U-PSUD 99

Multicast IP in a LANMulticast IP in a LAN

• LAN technologies has (in general) multicast capabilities. • There are MAC Multicast address:

01 – 00 – 5E Group ID (23bits)

• IANA has defined a very simple algorithm to map an IPv4 multicast address in a MAC multicast address (the last 23 bits of the IP multicast address are mapped in the MAC address):

01–00–5E Group ID (23bits)

1110

Group ID - 28 bits

23 bits

ENST-U-PSUD 1010

MulticastMulticast in an Ethernet LAN (1)in an Ethernet LAN (1)

• There is a link-layer filtering of the multicast frame. • On a bus, multicast frames are broadcasted, and thus received

by all the stations

+ +

+ +

Page 6: Multicast eng

6

ENST-U-PSUD 1111

MulticastMulticast in an Ethernet LAN (2)in an Ethernet LAN (2)

• On a switched network, the switch retransmits the multicast frame on all its ports (except the port on which it receives the frame).

H1 H2 H3 H4Router

Switch

+ +

ENST-U-PSUD 1212

MulticastMulticast andand EthernetEthernet

• [RFC 4541] : When processing a packet whose destination MAC address is a multicast address , the switch will forward a copy of the packet into each of the remaining network interfaces that are in the forwarding state.

Router

H1 H2 H3 H4

+ +

H9 H10

+

H5 H6 H7 H8

Page 7: Multicast eng

7

ENST-U-PSUD 1313

MulticastMulticast et Ethernetet Ethernet

• [RFC 4541] : When processing a packet whose destination MAC address is a multicast address , the switch will forward a copy of the packet into each of the remaining network interfaces that are in the forwarding state.

Router

H1 H2 H3 H4

+ +

H9 H10

+

H5 H6 H7 H8

ENST-U-PSUD 1414

MulticastMulticast on a on a WifiWifi LAN (1)LAN (1)

• The mapping IP multicast address � MAC multicast address is the same (MAC addresses are the same in wifi and Ethernet).

• There are two steps with the multicast frame transmission:– unicast transmission of the frame from station to the access point

Access Point

RouterEthernet

H1

H2

H3

H4

ACK

+

+

Page 8: Multicast eng

8

ENST-U-PSUD 1515

MulticastMulticast on a on a WifiWifi LAN (2)LAN (2)

• The mapping IP multicast address � MAC multicast address is the same (MAC addresses are the same in wifi and Ethernet).

• There are two steps with the multicast frame transmission:– unicast transmission of the frame from station to the base station– multicast transmission (broadcast) from the access point on the Wifi

network and on the Ethernet network.

• Problems:– The frame is sent even if there is members on the Wifi network, – The frame is sent at the lowest data-rate.

Access Point

RouterEthernet

H1

H2

H3

H4

+

+

IGMPIGMPInternet Group Internet Group MembershipMembership ProtocolProtocol

Page 9: Multicast eng

9

ENST-U-PSUD 1717

Internet Group Internet Group MembershipMembership ProtocolProtocol

• IGMP (Internet Group Membership Protocol) : • A host which wants to be member of a multicast group (received packets

transmit on this group) has to inform its router.• This allows the router to know if there are members of a given group on a link

(an interface). – The protocol is based on a polling system:

• The router send periodically IGMP-Query message.• For each IGMP-Query, the Hosts send an answer (IGMP-reply message) for each

multicast group they participate.

H1 H2 H3 H4Router

Switch

IGMP.re

ply

+

ENST-U-PSUD 1818

Internet Group Internet Group MembershipMembership ProtocolProtocol

• IGMP (Internet Group Membership Protocol) : • A host which wants to be member of a multicast group (received packets

transmit on this group) has to inform its router.• This allows the router to know if there are members of a given group on a link

(an interface). – The protocol is based on a polling system:

• The router send periodically IGMP-Query message.• For each IGMP-Query, the Hosts send an answer (IGMP-reply message) for each

multicast group they participate.

H1 H2 H3 H4Router

Switch

+

Page 10: Multicast eng

10

ENST-U-PSUD 1919

Internet Group Internet Group MembershipMembership ProtocolProtocol

• IGMP (Internet Group Membership Protocol) : • A host which wants to be member of a multicast group (received packets

transmit on this group) has to inform its router.• This allows the router to know if there are members of a given group on a link

(an interface). – The protocol is based on a polling system:

• The router send periodically IGMP-Query message.• For each IGMP-Query, the Hosts send an answer (IGMP-reply message) for each

multicast group they participate.

H1 H2 H3 H4Router

Switch

IGMP.repl

y

+

ENST-U-PSUD 2020

Internet Group Internet Group MembershipMembership ProtocolProtocol

• IGMP (Internet Group Membership Protocol) : • A host which wants to be member of a multicast group (received packets

transmit on this group) has to inform its router.• This allows the router to know if there are members of a given group on a link

(an interface). – The protocol is based on a polling system:

• The router send periodically IGMP-Query message.• For each IGMP-Query, the Hosts send an answer (IGMP-reply message) for each

multicast group they participate.

H1 H2 H3 H4Router

Switch

+ +

IGMP.Query

Switch

Page 11: Multicast eng

11

ENST-U-PSUD 2121

Internet Group Internet Group MembershipMembership ProtocolProtocol

• IGMP (Internet Group Membership Protocol) : • A host which wants to be member of a multicast group (received packets

transmit on this group) has to inform its router.• This allows the router to know if there are members of a given group on a link

(an interface). – The protocol is based on a polling system:

• The router send periodically IGMP-Query message.• For each IGMP-Query, the Hosts send an answer (IGMP-reply message) for each

multicast group they participate.

H1 H2 H3 H4Router

Switch

+ +

Protocole IGMPProtocole IGMPInternet Group management Internet Group management ProtocolProtocolVersion 2 (RFC 2236) Version 2 (RFC 2236) andand 3 (RFC 3376)3 (RFC 3376)

Page 12: Multicast eng

12

ENST-U-PSUD 2323

IGMPv2 IGMPv2 OperationsOperations

• The router maintains a table for each interface. This table contains the list of multicast groups for which there is at least one member (on this interface). Example:– Interface eth0: (@multicast , receveir yes/no).– It does not keep the members list nor the number of members.

• Join a group– The router emits periodically an IGMP-Query message on every link.– Upon reception of a IGMP-Query, a Host triggers a timer for each groups it belongs.

The duration of this timer is random.• If this Host receives an IGMP-reply coming from another Host for a group it

belongs, it cancels the corresponding timer and do nothing else.• If this Host has not received an IGMP-reply from another Host at the expiration

of the timer, it send an IGMP-reply. – When a Host join a new group, it has to emit an unsolicited IGMP-reply.

• Leave a group– A Host that do not want to participate to a group send an IGMP-leave message to the

router.– The router MAY send an IGMP-query specific to the group. This allows the router to

verify if there are members for this group.

ENST-U-PSUD 2424

IGMPv2 message FormatIGMPv2 message Format

• The IGMP Message are encapsulated in IP packets: • 4 types are defined:

– 11 - 00001011 – Request to identify if the active groups (Membership Query message =IGMP-Query).

– 12 - 00001100 – Membership report; It is send by an active members (Membership Report = IGMP-reply used in IGMP version 1).

– 16 - 00010000 –Membership report; It is send by an active members (IGMP-reply used in IGMP version 2).

– 17 - 00010001 – Used by an active member to announce that it leaves a group. • Max Resp Time : the active members have to answer before this time. • Group address

– In the router request (Membership Query message ) this field is 0– In the answers from the Hosts (Membership Report or Leave Group message), this

field contains the address of the reported/left group.

0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Type | Max Resp Time | Checksum |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Group Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Page 13: Multicast eng

13

ENST-U-PSUD 2525

IGMPv3 request formatIGMPv3 request format

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Type = 0x11 |Max Resp Code| Checksum |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Group Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Resv |S| QRV | QQIC | Number of Sources (N) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| Source Address [1] |+- -+| Source Address [2] |+- . -+ . .. .. .+- -+| Source Address [N] |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

ENST-U-PSUD 2626

IGMPv3 report formatIGMPv3 report format

0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Type = 0x22 | Reserved | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Reserved | Number of Group Records (M) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . Group Record [1] . . . | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | . . . Group Record [2] . . . | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| . | . . . | . |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| | . . . Group Record [M] . . . | |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Record Type | Aux Data Len | Number of Sources (N) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Multicast Address |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Source Address [1] |+- -+| Source Address [2] | +- -+ . . . . . .. . .+- -+ | Source Address [N] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . . . Auxiliary Data . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Page 14: Multicast eng

14

IGMP IGMP SnoopingSnooping

ENST-U-PSUD 2828

IGMP IGMP snoopingsnooping (1)(1)

• IGMP-snooping: IGMP message are intercepted by the Ethernet switch. – First, IGMP-Query from the router are intercepted. It allows the switch to

maintain a « router ports » table.

H1 H2 H3 H4Router

Switch

+ +

IGMP.Query

Router ports

24Port 1 Port 8 Port 24

Page 15: Multicast eng

15

ENST-U-PSUD 2929

IGMP IGMP snoopingsnooping (2)(2)

• IGMP-snooping: IGMP message are intercepted by the Ethernet switch. – First, IGMP-Query from the router are intercepted. It allows the switch to

maintain a « router ports » table.– The « IGMP Snooping table » indicates on which interfaces IGMP-reply have

been received. The table contains an entry for each active multicast group.

H1 H2 H3 H4Router

Switch

IGMP.re

ply

+ +

Port 1 Port 8 Port 24 IGMP Snooping table

Adresse multicast (Ethernet)liste des ports

01-00-5e-00-00-01 1; 24

Router ports

24

ENST-U-PSUD 3030

IGMP IGMP snoopingsnooping (3)(3)

• IGMP-snooping: IGMP message are intercepted by the Ethernet switch. – First, IGMP-Query from the router are intercepted. It allows the switch to maintain a

« router ports » table.– The « IGMP Snooping table » indicates on which interfaces IGMP-reply have been

received. The table contains an entry for each active multicast group.– IGMP-reply are not retransmitted on all ports in order to receive IGMP-report from all

the active members. • Proxy IGMP: the switch can filter the IGMP-reply and send only one IGMP-reply

for each active group.

H1 H2 H3 H4Router

Switch

IGMP.re

ply

IGMP.repl

y

+ +

Port 1 Port 8 Port 24 IGMP Snooping table

Adresse multicast (Ethernet)liste des ports

01-00-5e-00-00-01 1; 24; 8

Router ports

24

Page 16: Multicast eng

16

ENST-U-PSUD 3131

““IGMP SnoopingIGMP Snooping”” : switching (1): switching (1)

H1 H2 H3 H4Router

Switch

+ +

IGMP Snooping table

Adresse multicast (Ethernet)liste des ports

01-00-5e-00-00-01 1; 24; 8

• Upon reception of a multicast packet, the switch lookup its « IGMP snooping table »,– If there is an entry, it forwards the multicast frame on all the “listed port” and on the

« router ports » except the interface on which it receives the frame,– If there is no entry, it broadcasts the multicast frame on all the ports except the

interface on which it receives the frame.

ENST-U-PSUD 3232

““IGMP SnoopingIGMP Snooping”” : switching (2): switching (2)

H1 H2 H3 H4Router

Switch

+ +

IGMP Snooping table

Adresse multicast (Ethernet)liste des ports

01-00-5e-00-00-01 1; 24; 8

• Upon reception of a multicast packet, the switch lookup its « IGMP snooping table »,– If there is an entry, it forwards the multicast frame on all the “listed port” and on the

« router ports » except the interface on which it receives the frame,– If there is no entry, it broadcasts the multicast frame on all the ports except the

interface on which it receives the frame.

Page 17: Multicast eng

17

ENST-U-PSUD 3333

«« IGMP IGMP SnoopingSnooping »» : Optimal : Optimal treetree

• If all the Ethernet switch implement IGMP snooping , an optimal multicast tree is built for each multicast group.

Router

H1 H2 H3 H4

+ +

H9 H10

+

H5 H6 H7 H8

IGMP reply

IGMP reply

IGMP reply

IGMP replyIGMP rep

ly

ENST-U-PSUD 3434

«« IGMP IGMP SnoopingSnooping »» : Optimal : Optimal treetree

• If all the Ethernet switch implement IGMP snooping , an optimal multicast tree is built for each multicast group.

Router

H1 H2 H3 H4

+ +

H9 H10

+

H5 H6 H7 H8

Page 18: Multicast eng

18

MulticastMulticast IPv6IPv6MLD (MLD (MulticastMulticast ListenerListener DiscoveryDiscovery))

ENST-U-PSUD 3636

Adressage Adressage MulticastMulticast en IPv6en IPv6

• The address range for multicast is FF00::/8• The first byte is 11111111 (0xFF)• The flags (Figure below) must have the first 3 bits equal to 0 (reserved) and the

fourth – equal to 1for temporary addresses (temporary multicast group : videoconference, etc.)– equal to 0 for permanent group (used by a protocol or a determined group)

• The field “scope” defined the address scope:– local – link local– site– organization– global

FF00Group ID112 bits

flags de 4 bits

scope (4 bits)

Page 19: Multicast eng

19

ENST-U-PSUD 3737

MulticastMulticast IPv6 : IPv6 : mappingmapping IPv6 IPv6 �� EthernetEthernet

33-33 Identifiant du groupe (32 bits)

FF00

Group ID - 112 bits

32 bits

ENST-U-PSUD 3838

MLD: MLD: MulticastMulticast ListenerListener DiscoveryDiscovery

• MLDv1 : close to IGMPv2 operations– Polling from the router– Random timer before sending a MLD report message – Leave message from a leaving Host and solicitation from the router for this

group. – etc.

• MLDv2 : close to IGMPv3 operations

IPv6 Header ICMPv6 Header MLD message

@Source: link local

@dest: everybody (FF02::1) or multicast address multicast of a group

Page 20: Multicast eng

20

ENST-U-PSUD 3939

Special AddressesSpecial Addresses

• Solicited multicast addresses are built from the IPv6 address of an Interface.

• They are used, for example, by the ICMP Neighbor Discovery operations.

FF02::1:FF00:0

104 bits are predetermined

xxxx:yyyy:zzzz

The last 24 bits of the unicastaddress

MulticastMulticast IP :IP :routingrouting

Page 21: Multicast eng

21

ENST-U-PSUD 4141

MulticastMulticast IPIP

Router

Router

RouterRouter

Router

+ +

++ +

+

ENST-U-PSUD 4242

MulticastMulticast IPIP

Router

Router

RouterRouter

Router

Page 22: Multicast eng

22

ENST-U-PSUD 4343

Multicast tree implementations : two approaches. Multicast tree implementations : two approaches.

• Number of entries in the routing table:– The routing table size may be huge with source-specific tree. A solution

consists in using a shared tree. There is only one tree whatever the number of sources (emitters).

Source-specific tree. Number of entries: O(S*G)

Shared tree.Number of entries: O(G)

Multicast Routing Table-----------------------------------------------------…( * , 225.23.53.1) Eth0, Eth1…

Multicast Routing Table-----------------------------------------------------…( * , 225.23.53.1) Eth0, Eth1…

Multicast Routing Table-----------------------------------------------------…(S1, 225.23.53.1) Eth0, Eth1(S2, 225.23.53.1) Eth1…

Multicast Routing Table-----------------------------------------------------…(S1, 225.23.53.1) Eth0, Eth1(S2, 225.23.53.1) Eth1…

ENST-U-PSUD 4444

MulticastMulticast routingrouting table: table: SourceSource--specificspecific treetree (1)(1)

Multicast Routing Table-----------------------------------------------------

S G Incoming Interface Outgoing Interface(s)129.175.237.21 225.23.53.1 Eth0 Eth1, Eth2132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1132.134.27.11 245.213.126.12 Eth3 Eth1, Eth4

Multicast Routing Table-----------------------------------------------------

S G Incoming Interface Outgoing Interface(s)129.175.237.21 225.23.53.1 Eth0 Eth1, Eth2132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1132.134.27.11 245.213.126.12 Eth3 Eth1, Eth4

IP Address of the source

Multicast IP Address (the group)

Interface on which packets arrive.

Interfaces on which packets are multiplied/forwarded.

Page 23: Multicast eng

23

ENST-U-PSUD 4545

Multicast routing table: Shared tree (1)Multicast routing table: Shared tree (1)

Multicast Routing Table---------------------------------------------------------------

G Incoming Interface 225.23.53.1 Eth1, Eth2, Eth3225.23.53.34 Eth2, Eth1245.213.126.12 Eth1, Eth4, Eth0

Multicast Routing Table---------------------------------------------------------------

G Incoming Interface 225.23.53.1 Eth1, Eth2, Eth3225.23.53.34 Eth2, Eth1245.213.126.12 Eth1, Eth4, Eth0

Multicast IP address (the group)

List of the Interfaces which belong to the shared tree.

SourceSource--specific tree:specific tree:DVMRP and PIMDVMRP and PIM--DMDM

Page 24: Multicast eng

24

ENST-U-PSUD 4747

DeeringDeering’’s s worksworks

• Deering’s works:– Emulate the broadcast (that exists in link-layer technologies) in IP network.– Definition of the RPF algorithm (Reverse Path Flooding)

1

2

3

�Accepted, � Accepted, � Refused, etc.

ENST-U-PSUD 4848

DeeringDeering’’s s worksworks (2)(2)

• Deering’s works:– Definition of the RPB (Reverse Path Broadcasting) algorithm. The routing

tables of the neighbors are analyzed.• If we are not on the path between a neighbor router and the source,

the packet is not forwarded toward this neighbor. • Note: a distance vector protocol is required.

The RPB algorithm build a spanning tree centered on the source.

Page 25: Multicast eng

25

ENST-U-PSUD 4949

DeeringDeering’’s s worksworks (3)(3)

– Definition of the TRPB algorithm (Truncated Reverse Path Broadcasting).• It uses IGMP information.• A multicast stream is not emitted on an Interface if there is no member

for this group and if there is no neighbor router (RPB algorithm).

The RPB algorithm build a spanning tree centered on the source.

IGMP

ENST-U-PSUD 5050

Mbone: Tunnels Mbone: Tunnels

– Vision des tunnels en 1996 (source: www.caida.org)

⇐�

Page 26: Multicast eng

26

ENST-U-PSUD 5151

MM--BoneBone: : MulticastMulticast sessions managementsessions management

• Multicast sessions: managed by sdr (session directory)– SDP: Session Directory Protocol.– SAP: Session Announcement Protocol.– SIP: Session Initiation Protocol.

ENST-U-PSUD 5252

Example of multicast session in the MExample of multicast session in the M--bonebone

• Progress of a multicast session

�create session and begin to transmit

SDP

RTP

IGMP

Routage

RTP

� join session

� Reception of the stream emitted by �

� launch SDRIGMP

RoutageRTP

SDP

Page 27: Multicast eng

27

SharedShared treetree::PIMPIM--SMSM

ENST-U-PSUD 5454

MulticastMulticast routingrouting: PIM: PIM--SMSM

• PIM-SM: Sparse Mode. RFC 2362.– No periodical broadcast: Definition of control messages (soft-state) to build the

tree.– Two phases:

• Sources discovering. A CBT (Core Based Tree) is built based on a Rendezvous point. The tree is used to discover active sources (packets forwarding as long as the Shortest Path Tree – SPT is built).

• Data transfer. Source-specific tree (and SPT) are built for the data transfer. – Comment:

• RPs are administratively positioned • Groups may be split among several RPs. A hash function is used, and a

subset of the multicast addresses is allocated to a given RP. • Bootstraps of the RPs.

• Acronyms:– CBT: Core Based Tree– SPT: Shortest Path Tree– PIM-SM: Protocol Independent Multicast – Sparse Mode

Page 28: Multicast eng

28

ENST-U-PSUD 5555

MulticastMulticast routingrouting: PIM: PIM--SM (2)SM (2)

• First phase. A CBT tree is built. A branch is built toward the core.• When a router receives a join for a multicast group, it checks if it has an entry

for this group• If yes, it adds the incoming interface (for the join) in the list of the Interfaces in

the corresponding routing table entry.• If no, it creates a new entry in the routing table and

– it adds the incoming interface (for the join) in the list of the Interfaces in the corresponding routing table entry

– It checks in this unicast routing table what is the next hop to join the core, it forwards the join to this next hop and add the corresponding interface in the multicast table entry.

– Join are send periodically (Soft-state protocol).

RP

IGMP

IGMP

Join (*,G)

Join (*,G)

Join (*,G) Join (*,G)

ENST-U-PSUD 5656

MulticastMulticast RoutingRouting : PIM: PIM--SM (3)SM (3)

• Emission on the CBT– The leaf router send a multicast packet encapsulated in an unicast packet

directly to the core via a register message. – A branch is built from the core to the leaf router. It is source-specific

branch. It means that the source will not receive the multicast IP packets from the other sources.

– Reminder: Any Host can send multicast packets on the multicast tree, the source has not to belong to the tree.

Source DRRegister

Page 29: Multicast eng

29

ENST-U-PSUD 5757

MulticastMulticast RoutingRouting : PIM: PIM--SM (4)SM (4)

• Data transfer: A source-specific multicast tree (SPT) is built for each active source. – When a leaf router detects a new active source, it builds a branch to this

source. It uses the same mechanisms that for the CBT except that the core is now the source itself (the DR of the source).

– We prevent the transmission on the CBT branch by the use of « prune(S,G) » message.

RPJoin (S,G)

Join (S,G)

Prune (S,G)Prune (S,G)

Source

ENST-U-PSUD 5858

PIMPIM--SM routing tableSM routing table

• We check if there is a (@S,@G) entry � the packet is forwarded– a flag indicates if this entry is used to forward or to filter.

• If there is no (@S,@G) entry, we check if there is a (*,@G) entry

Multicast Routing Table-----------------------------------------------------

S G Incoming Interface Outgoing Interface(s) Flag129.175.237.21 225.23.53.1 Eth0 Eth1, Eth2132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1132.134.27.11 245.213.126.12 Eth3 Eth1, Eth4

* 245.213.126.12 Eth2 Eth1, Eth2…

Multicast Routing Table-----------------------------------------------------

S G Incoming Interface Outgoing Interface(s) Flag129.175.237.21 225.23.53.1 Eth0 Eth1, Eth2132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1132.134.27.11 245.213.126.12 Eth3 Eth1, Eth4

* 245.213.126.12 Eth2 Eth1, Eth2…

The Interface on which multicast packets are supposed to arrive.

Interfaces on which multicast packets are duplicated.

Page 30: Multicast eng

30

ENST-U-PSUD 5959

MSDP : MSDP : PeeringPeering

• MSDP:– Two RPs communicate with a TCP connection (« MSDP peering »).– The SA (Source Advertisement) are transmitted from RP to RP. – SA are generated after the reception of a « Register » message. – Sa are broadcast by the RPF algorithm, periodically or on request.

Register

MSDP Peering

SASA

SA

�⇒

RP

RP

RP

RP

ENST-U-PSUD 6060

MSDP : Interaction with PIMMSDP : Interaction with PIM--SMSM

• MSDP:– If receivers for a group are present in the AS, they will join the SPT tree

(S,G).

MSDP Peering

�⇒

RP

RP

RP

RP

Page 31: Multicast eng

31

ENST-U-PSUD 6161

Conclusions on routingConclusions on routing

• Today, routing is based on the « ASM » (Any Source Multicast) paradigm– no statistics on the number of receivers (billing, etc.),– No control on the sources (any Host can emit), – The uniqueness of the multicast address is not guarantee. Addresses

duplication is possible. • Weakness of the protocols:

– Security:• Denis of Service (address scanning,…)

– Scalability issues:• MSDP is not a long-term solution (for routing at the Internet scale).

• Remarks: However, Multicast deployment is possible :– The access control (for receivers) may be solved if it is not the receivers

themselves which manage IGMP (for example, IGMP may be controlled by a set-top box).

– Security: Routers can filter multicast packets (for example, only certain sources are permitted)

– Scalability issues : Not a problem within an Intranet, or within an ISP (for multicast session where both receivers and source are in this ISP).

Multicast IP: Multicast IP: toward a controlled Multicast IPtoward a controlled Multicast IP

(SSM: Source Specific Multicast)(SSM: Source Specific Multicast)

SSM

Page 32: Multicast eng

32

ENST-U-PSUD 6363

SSM: architecture presentationSSM: architecture presentation

• Notion of « channel »:– a channel is identified by a multicast IP address G and a Source IP address

S (unicast).

• Benefits of the approach :– Address allocation : no more « collisions »– Access control : only the source S can emit on a channel.– SPT on the Source.

• Implementation– It is necessary to know the IP address of the source– IGMPv3 (source specific Query)– PIM-SSM (PIM-SM extension)– A specific address range has been allocated for SSM. PIM-SM and PIM-SSM

may co-exist.

�⇒

ENST-U-PSUD 6464

Implementation: PIMImplementation: PIM--SSMSSM

• Example of interaction IGMPv3/PIM-SSM

Source DR

�⇒

S

R

Join(S,G)

IGMP.Query (S,G)

R

Emission on (S,G)

Destroy

Page 33: Multicast eng

33

MulticastMulticast IPIPExampleExample: : thethe videovideo in in xDSLxDSL NetworkNetwork

ENST-U-PSUD 6666

DSLAM

IP Network

ATM Network

BAS

X

X

XX

DSL Access Network : Architecture example (1)DSL Access Network : Architecture example (1)

• Case 1: ATM DSLAM, possibilities to establish « Switched VC »(UNI.3.1/4.0/4.1).– IGMP Messages are transmitted from the ‘‘Set-top Box’’ and the BAS

(Broadband Access Server)– Point to Multipoint Switched VC are established by the BAS with regard to the

received IGMP messages.– Problems : great load on the BAS (IGMP Sig. UNI). Response time may be

great when a Host changes its channel (multicast group).

PIM-SMIGMP

Page 34: Multicast eng

34

ENST-U-PSUD 6767

DSLAM

IP Network

ATM Network

BAS

X

X

XX

• Case 2: ATM DSLAM, but the DSLAM listen IGMP messages (IGMP snooping).– The DSLAM listen IGMP messages exchanged between the « Set-top Box » and

the BAS (proprietary solution). – Point to Multipoint Switched VC are established by the BAS with regard to the

received IGMP messages.

IGMP (proxy)

IGMP

PIM-SM

DSL Access Network : Architecture example (2)DSL Access Network : Architecture example (2)

ENST-U-PSUD 6868

Ethernet DSLAM IP Network

EthernetAccess

Network

BAS

X

X

XX

• Case 3: Ethernet DSLAM (deployment since 2005).– IGMP between the ‘‘Set-top Box’’ and the Bas, and « IGMP snooping » for the

DSLAM– Used of multicast Ethernet/IP multicast in the Ethernet Access Network.

IGMP (Proxy)

IGMP

PIM-SM

DSL Access Network : Architecture example (3)DSL Access Network : Architecture example (3)

Page 35: Multicast eng

35

ENST-U-PSUD 6969

Ethernet/IP

DSLAM IP Network

Ethernet/IP

Access

Network

BAS

X

X

XX

• Case 4 : IP-DSLAM.– IGMP between the ‘‘Set-top Box’’ and the DSLAM.– DSLAM implements the routing protocol PIM-SM.– Used of IP multicast in the access network.

PIM-SM

IGMP

PIM-SM

DSL Access Network : Architecture example (4)DSL Access Network : Architecture example (4)

Transport Transport MulticastMulticast

Page 36: Multicast eng

36

ENST-U-PSUD 7171

Technology LayersTechnology Layers

Transport

Routing

Applications

TCP

IP IP Multicast

Network Layers

Application

Reliable Multicast

Unicast Multicast

From Brian Whetten, “Transport and Application level Multicast”, Network Group Communications 2000, Stanford, Palo Alto, USA

ENST-U-PSUD 7272

source

ACKs

source

000

1 1

1 1 1

2 2 33

2

Feedback implosionSource multicasts retransmissions

Problems with the transport multicastProblems with the transport multicast

Page 37: Multicast eng

37

ENST-U-PSUD 7373

Other problems : rate controlOther problems : rate control

• The source does not know the receivers (number, access rate, etc.)• How the source does compute the emission rate?

– If the source chooses the lowest rate• all the receivers are penalized, and• it required a feedback from the receivers (RTT, loss rate, etc.).

– If the source chooses the man or the highest rate• it may cause congestion, and• it required a feedback from the receivers (RTT, loss rate, etc.).

• It is necessary that the source adapts its rate to the network congestion state.

ENST-U-PSUD 7474

IETF StandardsIETF Standards

• Loss recovery– NORM : Negative-acknowledgment (NACK)-Oriented Reliable Multicast

Protocol (RFC 3940). – FEC Forward Error Correction (RFC 3452, 3453, 3695)

• Evaluation and control of the emission rate– TFMCC: TCP-Friendly Multicast Congestion Control (RFC 4654)

– WEBRC: Wave and Equation Based Rate Control (RFC 3738)

Page 38: Multicast eng

38

ENST-U-PSUD 7575

NORM: NORM:

– Approche basée sur des temporisateurs (« timers »)• Ex: SRM (Scalable Reliable Multicast) utilisé dans wb.• Basé sur des temps d’attente aléatoires, avant transmission d ’un NACK.• Les NACKs sont diffusés dans tout le groupe.• Envoie du NACK annulé si un NACK identique est détecté.• Tout nœud peut ré-émettre une information à la réception d’un NACK, s’il

dispose de cette information.• Retransmissions diffusées dans tout le groupe.• Temps d’attente aléatoire avant de ré-émettre.

– Remarques:• Ajustement des temporisateurs délicats.

– Envoyer les NACKs en unicast à la source• NACK envoyés à l’expiration d’un temporisateur• Envoi d’un message de la source qui supprime les NACKs

ENST-U-PSUD 7676

Losses

Multipoint TransportMultipoint Transport

– How it works : Code (n,k)• Original packets can be recovered if at least n packets among n are

properly received.

– Advantages of FEC code (Forward Error Correction):• Preventive control (reduce the number of emitted ACKs) • Curative control (Retransmissions are more efficient)

k RS n

Parity packets

Transmission k RS

n-k

Page 39: Multicast eng

39

ENST-U-PSUD 7777

TFMCC: TFMCC: TCPTCP--FriendlyFriendly MulticastMulticast Congestion ControlCongestion Control

• TCP Friendly: doit effectuer un partage équitable de la bande passante avec les sources TCP (unicast)

• Pour éviter un retour des récepteurs, ce sont les récepteurs qui estiment le débit a appliqué

• Ce débit correspond au débit que l’utilisateur aurait si la source utilisait TCP• Il est estimé à partir du taux de perte « p » et du temps aller retour « RTT »:

• Chaque récepteur calcul son débit théorique maximum• La source émet le plus petit débit qu’on lui annoncé. • Seul les récepteurs ayant des débit aussi faible ou plus faible annoncent leur débit

à la source. Le retour d’information est donc minimisé.

23218

312

32

*

_8

pp

pp

RTT

sizepacketDébit

+

+=

ENST-U-PSUD 7878

AsynchronousAsynchronous Layer Layer CodingCoding

– If the source emits at the lowest rate (adapts its emission to the lowest receiver), congestion is avoided but most of receivers are « damage ».

– Idea: Use several multicast channels with different emission rates. – Receivers join a certain number of channels with regard to their reception

capacity.– Channel are not redundant (coding).

4kb/s4kb/s8kb/s

4kb/s

16kb/s

8kb/s

Page 40: Multicast eng

40

ENST-U-PSUD 7979

WEBRC: WEBRC: WaveWave andand equationequation BasedBased Rate Control (1)Rate Control (1)

• Les récepteurs calcul le débit possible en réception (fonction de la probabilité de perte et du RTT: TCP-Friendly)

• La source émet sur plusieurs canaux (plusieurs adresses multicast)• Chaque récepteur joint un certain nombre de canaux. Ce nombre est

fonction de ses capacités de réception. • Le contrôle de congestion se fait indépendamment pour chaque

récepteur et n’a aucun impact sur la source.

ENST-U-PSUD 8080

WEBRC: WEBRC: WaveWave andand equationequation BasedBased Rate Control (2)Rate Control (2)

• Il y a N canaux (1 de base + N-1 « wave channels »)• Chacun de ces canaux à un débit décroissant avec le temps.• Ce processus se répète de manière cyclique (un cycle dure un certain nombre de

slots)

temps

débit

N slots

Page 41: Multicast eng

41

ENST-U-PSUD 8181

WEBRC: WEBRC: WaveWave andand equationequation BasedBased Rate Control (3)Rate Control (3)

• Soit le débit cible D. Pour garder ce débit constant à la réception, un récepteur joint de manière régulière (tous les slots) un nouveau canal.

• Pour augmenter le débit, le récepteur joint plus de canaux.

Source des figures: Wave and Equation Based Rate Control Using Multicast Round Trip Time. M. Luby, V. Goyal, S. Skariaand G. Horn. Proc. ACM SIGCOMM 2002.

ENST-U-PSUD 8282

Emission de fichiers sur plusieurs canaux (1) Emission de fichiers sur plusieurs canaux (1)

– Si on utilise plusieurs canaux pour envoyer un même fichier il faut éviter d’envoyer les mêmes données en même temps sur les différents canaux.

– Si on reprend l’exemple précèdent:

– Un ordonnancement judicieux des paquets du fichier permet de recouvrir l’intégralité de celui-ci en un minimum de temps.

4kb/s4kb/s8kb/s

C3: 4kb/s

C2: 16kb/s

C1: 8kb/s

0 1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 90 Canal à 8kbit/s

0 1 2 3 4 5 6 7 8 9 Canal à 4kbit/s

Canal à 4kbit/s

C2 C1 et C3

Page 42: Multicast eng

42

ENST-U-PSUD 8383

ÉÉmission de fichiers sur plusieurs canaux (2) mission de fichiers sur plusieurs canaux (2)

– Les paquets sont émis dans des ordres différents d’un canal à l’autre.

0 1 2 3 45 6 7 8 9

1 23 4 5 6 78 9 0 Canal à 8kbit/s

0 1 2 3 4 5 6 7 8 9 Canal à 4kbit/s

Canal à 4kbit/s

C2 C1 C3


Top Related