Multicast Outline Multicast revisited Protocol Independent Multicast - SM Future Directions.
Multicast - field is being used for creating static contents
Transcript of Multicast - field is being used for creating static contents
![Page 1: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/1.jpg)
1
Multicast
![Page 2: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/2.jpg)
2
Overview
➤ applications
➤ models
➤ host APIs
➤ LAN (IGMP, LAN switches)
➤ intra-domain routing
➤ inter-domain routing
➤ address allocation
➤ the MBONE
Additional references (some are dated!):
� Stephen A. Thomas,IPng and the TCP/IP protocols, Wiley, 1996.
![Page 3: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/3.jpg)
3� Christian Huitema,Routing in the Internet, Prentice Hall, 1995.
� Crowcroft/Handley/Wakeman,Internetworking Multimedia, 2000.
Partially drawn from http://www-scf.usc.edu/˜dbyrne/960223.txt (D. Estrin)
![Page 4: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/4.jpg)
4
Broadcast and multicast
broadcast: all hosts on (small, local) network
directed broadcast: all hosts on remote network
multicast: multiple recipients (group)
![Page 5: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/5.jpg)
5
Applications for Multicast
� audio-video distribution (1-to-many) and symmetric (all-to-all)
� distributed simulation (war gaming, multi-player Doom,. . . )
� resource discovery (where’s the next time server?)
� file distribution (stock market quotes, new software,. . . )
� network news (Usenet)
![Page 6: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/6.jpg)
6
Multicast trees
spanning tree� tree that connects all the vertices (hosts/routers)
shared tree: single tree forall sourcesS
� minimum-cost spanning (MST) tree (where cost = hops, delay, $,. . . )
� does not minimize length ofS to individual destination
� all traffic concentrated on tree➠ reservation failures
per-source tree: build independently for each source➠ many variations!
������������
������������
![Page 7: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/7.jpg)
7
Steiner Tree
Minimizes the total number of links for all sinks
������������
������������
N-P complete (travelling salesman), unstable: small additions! large changes intraffic flows
������������
������������
Add one node:
������������
������������
![Page 8: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/8.jpg)
8
Finding MST via Prim’s Algorithm
� centralized, finds MST forG = (V;E)
� U : set of vertices connected, start with one
� add lowest-cost edge(u; v) with u 2 U andv in V � U .
� T T [ (u; v)
� U U [ v
![Page 9: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/9.jpg)
9
Connection-oriented multicast
� enumerate sources explicitly➠ source-based trees
� examples:
– ATM ➠ explicitly add each end point
– ST-II ➠ enumerate end points in setup message
– ATM, ST-II: end nodes attach themselves to tree
– enumeration of end points in packet
� only connection-oriented (packet header size!)
� source needs to know destinations$ resource discovery, dynamic groups difficult
� but: natural transition from unicast to multicast
![Page 10: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/10.jpg)
10
ST-II
� IEN 199: ST➠ ST-II: RFC 1190 (1990)➠ ST-II+: RFC 1819 (1995)
� hard state
� combines building tree with resource reservation
� first Internet resource allocation protocol
� sender-initiated tree➠ receiver-initiated joins ST2+
![Page 11: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/11.jpg)
11
Host group model
Deering, 1991:
� senders need not be members;
� groups may have any number of members;
� there are no topological restrictions on group membership;
� membership is dynamic and autonomous;
� host groups may be transient or permanent.
![Page 12: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/12.jpg)
12
Local multicast
Some local networks are by nature multi/broadcast: Ethernet, Token Ring, FDDI, . . .
Ethernet, Tokenring:
� broadcast: all ones
� multicast: 01.xx.xx.xx.xx.xx
� adapter hardware can filter dynamic list of addresses
ATM: point-to-point links➠ need ATM multicast server
![Page 13: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/13.jpg)
13
IP multicast
� host-group model
� network-level; data packets same, only address changes
� need help of routers
� special IP addresses (class D): 224.0.0.0 through 239.255.255.255
� 28 bits➠ 268 million groups (plus scope)
� 224.0.0.x: local network only➠ 224.0.0.1: all hosts; 224.0.0.2: all routers
� some pre-assigned (224.0.1.2: SGI Dogfight)
� others dynamic (224.2.x.x for multimedia conferencing)
� map into Ethernet: 01.00.5E.00.00.00 + lower 23 bits
� ttl value limits distribution: 0=host, 1=network
![Page 14: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/14.jpg)
14
Administrative Scoping
� address-based
� 239.255/16: IPv4 local scope
� 239.192/14: organization local scope
� relative addresses (from top) for common applications within scope
![Page 15: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/15.jpg)
15
Multicast programming
UDP, not TCP (obviously. . . )
struct sockaddr_in name;struct ip_mreq imr;
sock = socket(AF_INET, SOCK_DGRAM, 0);imr.imr_multiaddr.s_addr = htonl(groupaddr);imr.imr_interface.s_addr = htonl(INADDR_ANY);setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,
&imr, sizeof(struct ip_mreq));name.sin_addr.s_addr = htonl(groupaddr);name.sin_port = htons(groupport);bind(sock, &name, sizeof(name));recv(sock, (char *)buf, sizeof(buf), 0);
![Page 16: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/16.jpg)
16
IGMP
Multicast for local (broadcast) networks, between router and hosts
R
(Ethernet, FDDI, Tokenring, ...)multicast-capable medium
H H H
Rquerier
Internet
non-querier
128.59.27.35 128.59.27.17
� router listens to all multicast packets on all interfaces
� hosts sends IGMP report for first process to join group to that multicast group(ttl=1), maybe repeat
� router multicasts query to all hosts (224.0.0.2)� every 125 seconds or on start-up
� host waits and listens for others; if nobody else, send response for groups it’s in
![Page 17: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/17.jpg)
17� if “responsible” for group, notify “all router” group➠ querier sends
group-specific query➠ reduce bandwidth consumption
� random interval determined by router (< 10 seconds)
� really appropriate for today’s switched Ethernet?
![Page 18: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/18.jpg)
18
IGMPv2 timing
General query (GQ)
Membership report (MR)
Leave group (LG)
Group-specific query (GSQ)
all routers all systems
10 sec.
querier host
1 sec.
group
host joins group
host leaves group
MR
GQ
GSQ
LG
MR 10 sec.
![Page 19: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/19.jpg)
19
IGMPv2 packet
version16 322484 12
16-bit checksum8 bytes
IGMP
32-bit group address (class D IP address)
(2) type (1,6,7)response
time
$ netstat -gGroup MembershipsInterface Group RefCnt--------- -------------------- ------lo0 ALL-SYSTEMS.MCAST.NET 1le0 224.2.127.255 1le0 ALL-SYSTEMS.MCAST.NET 1
![Page 20: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/20.jpg)
20
IGMPv3
� adds source filtering to IGMPv2
� Membership Report includes lists of sources to include or exclude
� Group-and-Source-Specific Query asks whether anybody cares about the groupand the sources listed
� unlike IGMPv2, host no longer suppresses membership reports if it hears fromanother host
– accounting
– avoid Ethernet switches having to remove “outbound” IGMP reports to foolhosts
– for efficiency, single membership report can list multiple groups
Note: IPv6 defines new protocol, Multicast Listener Discovery (MLD)
![Page 21: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/21.jpg)
21
Reverse path flooding
iif: incoming interface; oif: outgoing interface
� if iif is on shortest path to sourceS
� forward to all other oifs (RPF check) towards receiversR in groupG
� avoids forwarding duplicates
![Page 22: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/22.jpg)
22
Multicast forwarding
First packet (truncated broadcast)
S R
-
router
host
message
no memberon local net
not shortest path
x
![Page 23: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/23.jpg)
23
Reverse path broadcasting
� do RPF check as before
� exchange unicast routing info to establish “parentage”
� restrict oifs to child nodes
➠ reduce duplicates
![Page 24: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/24.jpg)
24
Multicast routing
� link-state based
� dense mode
� sparse mode
![Page 25: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/25.jpg)
25
Multicast forwarding with truncation
� flood with RPF check
� pruning: leaves of tree send “prune” if no members below
� receivers tell routers of membership
� routers know whether to forward to LAN or prune
� prune state must time out➠ periodic broadcast
� trade-off: join latency$ bandwidth
� add: explicit “graft” to cancel prune:➠ join latency#
� still need occasional broadcast for topology changes
![Page 26: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/26.jpg)
26
Multicast forwarding
With pruning:
S R
prune
2nd message
-
➠ router needs to keep “negative” list for groups
![Page 27: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/27.jpg)
27
Distance Vector Multicast Routing Protocol (DVMRP)
� flood + RPF check
� pruning: time out 1 minute
� routers may sendgraftsupstream
� only send to children
� maintain routing information (DV)
� used in!MBone
![Page 28: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/28.jpg)
28
Multicast Open Shortest Path First (MOSPF)
� link-state based
� include membership info in link-state advertisements
� compute tree for eachS;G pair ➠ oifs
� can create shortest-path trees even with asymmetric links
� cannot afford to recompute trees with each LS change
![Page 29: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/29.jpg)
29
PIM-DM
� use unicast routing table
� DVMRP: include only oif that use this router to reach source
� PIM-DM: forward to all outgoing interfaces
![Page 30: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/30.jpg)
30
Problems
� “multicast storms”
� MOSPF: broadcast of membership to off-tree areas
� DVMRP: occasional broadcast of packets➠ bad for WANs
� prune state in routers for sparse groups
� multicast routing vs. unicast routing: reverse path with asymmetric links
� hierarchical routing?
� few “big” senders, lots of background mumbling
➠ compromise on optimal trees
![Page 31: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/31.jpg)
31
Protocol Independent Multicast (PIM-SM)
� uses unicast routing
� supports SPTs and shared trees (rooted at “rendezvous point” RP), depending ontraffic
1. group-specific RP-rooted shared tree
2. source-based tree
![Page 32: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/32.jpg)
32
PIM-SM: RP election
� RP selected by hash ofG
� bootstrap router (BSR) candidate sends list of candidate RPs
� candidate BSRs, configured with priority
� multicast candidacy locally (ttl = 1), then flood
� elected routers periodically sends bootstrap message with RPs
� fcandidate BSRg � fcandidate RPg
� candidate-RP sends message to BSR
![Page 33: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/33.jpg)
33
PIM-SM: shared tree
� send packet via unicast in “register” message, encapsulated, to RP
� RP forwards message down shared tree
� receivers send “join” to RP to join shared tree
� joins stop when reaching tree, install(�; G) state
![Page 34: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/34.jpg)
34
PIM-SM: source-specific tree
1. bypass encapsulation
� RP sends “join” towardsS
� nodes recognize destination and forward based onG
2. receivers join
3. and prune shared tree forS
![Page 35: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/35.jpg)
35
PIM-SM
C
prune
prune
Join A!Join
R3
E D
RP
S
R1 R2
F
A
I B
H G
![Page 36: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/36.jpg)
36
Sparse Mode Problems
� single point of failure
� hot spot
� non-optimal path
� complexity
![Page 37: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/37.jpg)
37
Interdomain sparse multicast routing: CBT
� core-based trees: bidirectional center-based shared trees routed atcore
� receivers send join messages to core
� senders send data to core, but can be short-cut�! send to all interfacesparticipating in group
� no SPTs
� hard-statewith acknowledged join from core or first on-tree router
+: no source specific state
�: path lengths, traffic concentration
� explicit joining (vs. implicit join and explicit prune)join messages fromR’s router to root of tree
� not much implementation
![Page 38: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/38.jpg)
38
MBONE
� MBONE� multicast backbone
� overlay network over Internet, up to 10,000 routes
� difficulty of limiting fan-out
� needed until deployment of multicast-capable backbone routers
� IP-in-IP encapsulation➠ tunneling:
4(IP)
17
(UDP)192.1.2.3 128.3.5.6
193.1.1.1 224.2.0.1 UDP RTP audio/video data
source: 193.1.1.1; group: 224.2.0.1; MBONE tunnel: 192.1.2.3 to 128.3.5.6
IP header
IP header
� limited capacity, resilience
![Page 39: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/39.jpg)
39
Mbone
encapsulated192.1.2.3
193.1.1.1
non-multicast router
multicast-capable router
128.3.5.6
Mbone router (workstation)
![Page 40: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/40.jpg)
40
Inter-domain multicast
� one RP per AS
� Multicast Source Discovery Protocol (MSDP)
� avoid third-party dependencies
� designated party (RP) announces membership to others
� flood information to other ASs
![Page 41: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/41.jpg)
41
Multicast Source Discovery Protocol (MSDP)
� join together PIM-SM regions (“AS”)
� discover sources in other regions (to send them PIM “join” requests)
� peering with fellow RPs
� send “source active” to peer RPs
� flood “source active” message in BGP style
� works reasonably well only when few senders
![Page 42: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/42.jpg)
42
MSDP Operation
BGP peer
SA messages
MSDP peer
MSDP peer
SA message
sender
RP
RP
RP
RP
RP
RP
RP
RP
![Page 43: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/43.jpg)
43
Border Gateway Multicast Routing Protocol (BGMP)
� bidirectionalshared tree for each group
� TCP connections between routers (external BGP peers)
� root domain
� distribute “routes” to AS hosting core
� packets can bypass BGMP core
� packet forwarding similar to PIM-SM RP
![Page 44: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/44.jpg)
44
BGMP
AS1
AS2
BGMP
M-IGP
AS3 AS4
AS5BGMP
M-IGP
BGMP
M-IGP
BG
MP
M-IG
P BG
MP
M-I
GP B
GM
P
M-IG
P
BGMP
M-IGP
BG
MP
M-I
GP
BG
MP
M-IG
P BG
MP
M-I
GP
BGMP
M-IGP
BGMP
M-IGP
1
2
34
5
67
8
9
10
11
12
![Page 45: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/45.jpg)
45
Multicast address allocation
hierarchical, with different time scales:
1. clients contact MAAS server in domain via MADCAP
2. MADCAP gets it via Multicast Address Allocation Protocol (AAP)
� MASC routers multicast availability to the MAAS
� multicast claims
3. MASC for inter-AS for large blocks
233/8 for per-AS static allocation
![Page 46: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/46.jpg)
46
Multicast Address Allocation
MADCAP
AAP
MASC
AAP
AS AS
AS
AS
MASC
AAP
AAP
MADCAP
![Page 47: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/47.jpg)
47
MADCAP
� UDP-based request-response (similar to DHCP)
� one or more local servers
� may request addresses in the future
� specify maximum delay
� can request specific address
� discover scopes via INFORM
� multicast request via DISCOVER
� server hands out, client confirms via REQUEST
� expires or via RELEASE
![Page 48: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/48.jpg)
48
MADCAP
DISCOVER
ACK
ACK
REQUEST
ACK
RELEASE
ACK
multicast
unicast
CLIENT MAAS1 MAAS2
![Page 49: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/49.jpg)
49
AAP: Multicast Addresses within AS
AAP Multicast Group
AutonomousSystem
ASAASA
ACLM
AIU AITU
ASRP
MASC
MAAS
MASCrouter
![Page 50: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/50.jpg)
50
AAP
� send ACLM to claim addresses
� object to claims and announce own via AIU
� MAAS can preallocate addresses (ACLM) or “Adress Intent to Use” (AITU), withreclaiming by others via ACLM
� report periodically on address space use
![Page 51: Multicast - field is being used for creating static contents](https://reader036.fdocuments.us/reader036/viewer/2022071600/613d2ff0736caf36b75a59d9/html5/thumbnails/51.jpg)
51
MASC
� top of hiearchy: inter-domain
� BGP model: TCP peering relationships
� also allows customer-provider relationships
� send time-limited claim for range, wait a few days and then use
� send “prefix managed” to children