Multicast 1
IP Multicast
September 20, 2001
IP Multicast September 20, 2001 Multicast 2 Overview - - PowerPoint PPT Presentation
Multicast 1 IP Multicast September 20, 2001 Multicast 2 Overview applications models host APIs LAN (IGMP, LAN switches) intra-domain routing inter-domain routing address allocation Additional references (some are
Multicast 1
September 20, 2001
Multicast 2
Overview
➤ applications ➤ models ➤ host APIs ➤ LAN (IGMP, LAN switches) ➤ intra-domain routing ➤ inter-domain routing ➤ address allocation Additional references (some are dated!):
September 20, 2001
Multicast 3
Partially drawn from http://www-scf.usc.edu/˜dbyrne/960223.txt (D. Estrin) September 20, 2001
Multicast 4
Broadcast and multicast
broadcast: all hosts on (small, local) network directed broadcast: all hosts on remote network multicast: multiple recipients (group)
September 20, 2001
Multicast 5
Applications for Multicast
September 20, 2001
Multicast 6
Multicast trees
spanning tree ≡ tree that connects all the vertices (hosts/routers) shared tree: single tree for all sources S
per-source tree: build independently for each source ➠ many variations!
Multicast 7
Steiner Tree
Minimizes the total number of links for all sinks
traffic flows
Multicast 8
Finding MST via Prim’s Algorithm
September 20, 2001
Multicast 9
Connection-oriented multicast
– 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
September 20, 2001
Multicast 10
ST-II
September 20, 2001
Multicast 11
Host group model
Deering, 1991:
September 20, 2001
Multicast 12
Local multicast
Some local networks are by nature multi/broadcast: Ethernet, Token Ring, FDDI, . . . Ethernet, Tokenring:
ATM: point-to-point links ➠ need ATM multicast server
September 20, 2001
Multicast 13
IP multicast
September 20, 2001
Multicast 14
Administrative Scoping
September 20, 2001
Multicast 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);
September 20, 2001
Multicast 16
IGMP
Multicast for local (broadcast) networks, between router and hosts
R
(Ethernet, FDDI, Tokenring, ...) multicast-capable medium
H H H R
querier Internet non-querier 128.59.27.35 128.59.27.17
(ttl=1), maybe repeat
September 20, 2001
Multicast 17
group-specific query ➠ reduce bandwidth consumption
September 20, 2001
Multicast 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.
September 20, 2001
Multicast 19
IGMPv2 packet
version
16 32 24 8 4 12
16-bit checksum 8 bytes IGMP 32-bit group address (class D IP address) (2) type (1,6,7) response time
$ netstat -g Group Memberships Interface Group RefCnt
lo0 ALL-SYSTEMS.MCAST.NET 1 le0 224.2.127.255 1 le0 ALL-SYSTEMS.MCAST.NET 1
September 20, 2001
Multicast 20
IGMPv3
and the sources listed
another host – accounting – avoid Ethernet switches having to remove “outbound” IGMP reports to fool hosts – for efficiency, single membership report can list multiple groups Note: IPv6 defines new protocol, Multicast Listener Discovery (MLD)
September 20, 2001
Multicast 21
Reverse path flooding
iif: incoming interface; oif: outgoing interface
September 20, 2001
Multicast 22
Multicast forwarding
First packet (truncated broadcast)
S R
host message no member
not shortest path x
September 20, 2001
Multicast 23
Reverse path broadcasting
➠ reduce duplicates
September 20, 2001
Multicast 24
Multicast routing
September 20, 2001
Multicast 25
Multicast forwarding with truncation
September 20, 2001
Multicast 26
Multicast forwarding
With pruning:
S R
prune 2nd message
September 20, 2001
Multicast 27
Distance Vector Multicast Routing Protocol (DVMRP)
September 20, 2001
Multicast 28
Multicast Open Shortest Path First (MOSPF)
September 20, 2001
Multicast 29
PIM-DM
September 20, 2001
Multicast 30
Problems
➠ compromise on optimal trees
September 20, 2001
Multicast 31
Protocol Independent Multicast (PIM-SM)
traffic
September 20, 2001
Multicast 32
PIM-SM: RP election
September 20, 2001
Multicast 33
PIM-SM: shared tree
September 20, 2001
Multicast 34
PIM-SM: source-specific tree
September 20, 2001
Multicast 35
PIM-SM
C prune prune Join A! Join
R3
E D
RP S R1 R2
F A I B H G
September 20, 2001
Multicast 36
Sparse Mode Problems
September 20, 2001
Multicast 37
Interdomain sparse multicast routing: CBT
→ send to all interfaces participating in group
+: no source specific state −: path lengths, traffic concentration
join messages from R’s router to root of tree
September 20, 2001
Multicast 38
MBONE
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
September 20, 2001
Multicast 39
Mbone
encapsulated 192.1.2.3 193.1.1.1 non-multicast router multicast-capable router 128.3.5.6 Mbone router (workstation)
September 20, 2001
Multicast 40
Inter-domain multicast
– short term: MSDP = distribution of sender information – longer term: BGMP = shared inter-domain tree
September 20, 2001
Multicast 41
Multicast Source Discovery Protocol (MSDP)
September 20, 2001
Multicast 42
MSDP Operation
September 20, 2001
Multicast 43
MSDP Operation
sender BGP peer SA messages MSDP peer MSDP peer SA message
(S.224.2.0.1,RP(A))
RP RP RP RP RP RP AS A S RP RP
September 20, 2001
Multicast 44
Border Gateway Multicast Routing Protocol (BGMP)
September 20, 2001
Multicast 45
BGMP
AS1 AS2 BGMP M-IGP AS3 AS4 AS5 BGMP M-IGP BGMP M-IGP B G M P M
G P BGMP M-IGP B G M P M
G P BGMP M-IGP BGMP M-IGP B G M P M
G P BGMP M-IGP BGMP M-IGP BGMP M-IGP
1 2 3 4 5 6 7 8 9 10 11 12
September 20, 2001
Multicast 46
Multicast address allocation
hierarchical, with different time scales:
bypass inter domain: assign 233/8 for per-AS static allocation
September 20, 2001
Multicast 47
Multicast Address Allocation
MADCAP AAP MASC
AAP
AS AS AS AS MASC
AAP
AAP
MADCAP
September 20, 2001
Multicast 48
Multicast Address Dynamic Client Allocation Protocol: MADCAP
RFC 2730
September 20, 2001
Multicast 49
MADCAP
DISCOVER ACK ACK REQUEST ACK RELEASE ACK multicast unicast CLIENT MAAS1 MAAS2 September 20, 2001
Multicast 50
AAP: Multicast Addresses within AS
AAP Multicast Group
Autonomous System
ASA ASA ACLM AIU AITU ASRP MASC MAAS MASC router
September 20, 2001
Multicast 51
AAP
reclaiming by others via ACLM
September 20, 2001
Multicast 52
MASC
September 20, 2001