1. 1
MulticastMulticast IPIP
Jean-Louis Rougier
ENST – Dpt. INFRES
rougier@infres.enst.fr
Anthony Busson
IEF – Université Paris Sud
anthony.busson@u-psud.fr
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.
2. 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 groupe
address : 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.
3. 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 ID
28 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
4. 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
5. 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
+ +
+ +
6. 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 H4
Router
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
7. 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 aon 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
Router
Ethernet
H1
H2
H3
H4
ACK
+
+
8. 8
ENST-U-PSUD 1515
MulticastMulticast on aon 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
Router
Ethernet
H1
H2
H3
H4
+
+
IGMPIGMP
Internet GroupInternet Group MembershipMembership ProtocolProtocol
9. 9
ENST-U-PSUD 1717
Internet GroupInternet 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 H4
Router
Switch
IGMP.reply
+
ENST-U-PSUD 1818
Internet GroupInternet 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 H4
Router
Switch
+
10. 10
ENST-U-PSUD 1919
Internet GroupInternet 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 H4
Router
Switch
IGMP.reply
+
ENST-U-PSUD 2020
Internet GroupInternet 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 H4
Router
Switch
+ +
IGM
P.Query
Switch
11. 11
ENST-U-PSUD 2121
Internet GroupInternet 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 H4
Router
Switch
+ +
Protocole IGMPProtocole IGMP
Internet Group managementInternet Group management ProtocolProtocol
Version 2 (RFC 2236)Version 2 (RFC 2236) andand 3 (RFC 3376)3 (RFC 3376)
12. 12
ENST-U-PSUD 2323
IGMPv2IGMPv2 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 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 | Max Resp Time | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Group Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
14. 14
IGMPIGMP SnoopingSnooping
ENST-U-PSUD 2828
IGMPIGMP 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 H4
Router
Switch
+ +
IGM
P.Query
Router ports
24
Port 1 Port 8 Port 24
15. 15
ENST-U-PSUD 2929
IGMPIGMP 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 H4
Router
Switch
IGMP.reply
+ +
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
IGMPIGMP 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 H4
Router
Switch
IGMP.reply
IGMP.reply
+ +
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
16. 16
ENST-U-PSUD 3131
““IGMP SnoopingIGMP Snooping”” : switching (1): switching (1)
H1 H2 H3 H4
Router
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 H4
Router
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.
17. 17
ENST-U-PSUD 3333
«« IGMPIGMP 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
reply
IGMP reply
ENST-U-PSUD 3434
«« IGMPIGMP 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
18. 18
MulticastMulticast IPv6IPv6
MLD (MLD (MulticastMulticast ListenerListener DiscoveryDiscovery))
ENST-U-PSUD 3636
AdressageAdressage 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
FF00
Group ID
112 bits
flags de 4 bits
scope (4 bits)
19. 19
ENST-U-PSUD 3737
MulticastMulticast IPv6 :IPv6 : mappingmapping IPv6IPv6 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
20. 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 unicast
address
MulticastMulticast IP :IP :
routingrouting
22. 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, Eth2
132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1
132.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, Eth2
132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1
132.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.
23. 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, Eth3
225.23.53.34 Eth2, Eth1
245.213.126.12 Eth1, Eth4, Eth0
…
Multicast Routing Table
---------------------------------------------------------------
G Incoming Interface
225.23.53.1 Eth1, Eth2, Eth3
225.23.53.34 Eth2, Eth1
245.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
24. 24
ENST-U-PSUD 4747
DeeringDeering’’ss 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’’ss 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.
25. 25
ENST-U-PSUD 4949
DeeringDeering’’ss 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: TunnelsMbone: Tunnels
– Vision des tunnels en 1996 (source: www.caida.org)
⇐
26. 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
27. 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
28. 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
29. 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) Flag
129.175.237.21 225.23.53.1 Eth0 Eth1, Eth2
132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1
132.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) Flag
129.175.237.21 225.23.53.1 Eth0 Eth1, Eth2
132.134.27.11 225.23.53.1 Eth3 Eth2, Eth1
132.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.
30. 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
SA
SA
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
31. 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
32. 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
33. 33
MulticastMulticast IPIP
ExampleExample:: thethe videovideo inin xDSLxDSL NetworkNetwork
ENST-U-PSUD 6666
DSLAM
IP Network
ATM
Network
BAS
X
X
X
X
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
34. 34
ENST-U-PSUD 6767
DSLAM
IP Network
ATM
Network
BAS
X
X
X
X
• 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
Ethernet
Access
Network
BAS
X
X
X
X
• 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)
35. 35
ENST-U-PSUD 6969
Ethernet/IP
DSLAM IP Network
Ethernet/IP
Access
Network
BAS
X
X
X
X
• 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)
TransportTransport MulticastMulticast
36. 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 implosion
Source multicasts
retransmissions
Problems with the transport multicastProblems with the transport multicast
37. 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)
38. 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
39. 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é.
2
321
8
3
12
3
2
*
_8
p
p
p
p
RTT
sizepacket
Débit
+
+
=
ENST-U-PSUD 7878
AsynchronousAsynchronous LayerLayer 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/s
4kb/s
8kb/s
4kb/s
16kb/s
8kb/s
40. 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
41. 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. Skaria
and 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/s
4kb/s
8kb/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
42. 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