IP Multicast
Download
Report
Transcript IP Multicast
Multicasting
CSE 6590
13 April 2015
1
Internet Multicast Service Model
128.59.16.12
128.119.40.186
multicast
group
226.17.30.197
128.34.108.63
128.34.108.60
Multicast group concept: use of indirection
• a host “sends” IP datagrams to multicast group.
• routers forward multicast datagrams to hosts that have “joined”
that multicast group.
2
Multicast Groups
Class D Internet addresses reserved for multicast:
Host group semantics:
o anyone can “join” (receive from) multicast group.
o anyone can send to multicast group.
o no network-layer identification to hosts of members.
Needed: infrastructure to deliver multicast-addressed
datagrams to all hosts that have joined that multicast group.
3
Multicast Addressing
• Class D address (see next slide)
• Source: unicast IP address S
Receivers: multicast group ID G, a class-D address
• Each group is identified by (S, G)
• Ethernet broadcast address (all 1’s)
• 2 ways of doing IP multicast at the link layer:
– Link-layer (Ethernet) broadcast
– Link-layer (Ethernet) multicast
Both cases need filtering at IP layer.
4
IPv4 Address Formats
5
Multicast Addressing (2)
1. Link-layer (Ethernet) broadcast
•IP multicast packet is encapsulated in an Ethernet broadcast frame and
transmitted on the bus.
•Every host picks up the Ethernet frame and does filtering at the IP layer to
decide whether to keep or discard the frame.
•Redundant reception by many hosts.
2. Link-layer (Ethernet) multicast
•Requires a mapping of IP multicast address to an Ethernet multicast address
(see next slide).
•There are up to 32 IP class-D addresses mapped to the same Ethernet
multicast address.
•The IP module still has to filter out packets for non-member hosts.
6
Mapping from Class D IP adress to Ethernet
multicast adress
7
Multicast Protocols
Transport layer
• UDP
• Real-time Transport Protocol (RTP): for multimedia
content
• ReSerVation Protocol (RSVP): for bandwidth
reservation in a multicast distribution
8
Multicast Protocols (2)
Routing, delivery
• On a local network (join/leave):
– Internet Group Management Protocol (IGMP)
– Multicast Listener Discovery (MLD): similar to IGMP but for
IPv6
• Intra-domain (routing):
– MOSPF, PIM, DVMRP
• Inter-domain (routing):
– Multicast Border Gateway Protocol (MBGP)
9
Joining a multicast group: 2-step process
• Local: host informs local multicast router of desire to join
group: IGMP (Internet Group Management Protocol)
• Wide area: local router interacts with other routers to receive
multicast datagram flow
– many protocols (e.g., DVMRP, MOSPF, PIM)
IGMP
IGMP
wide-area
multicast
routing
IGMP
10
IGMP
Internet Group Management
Protocol (IGMP)
• RFC 3376 used to exchange multicast group
information between hosts & routers on a LAN
• hosts send messages to routers to subscribe to (join)
and unsubscribe from (leave) multicast group
• routers check which multicast groups are of interest
to which hosts
• IGMP currently at version 3
IGMP (2)
• Router: sends IGMP query at regular intervals
– hosts belonging to a multicast group must reply to query if
wishing to join or stay in the group.
• Host: sends IGMP report (reply) when application wishes to
join a multicast group.
– IP_ADD_MEMBERSHIP socket option
– hosts need not explicitly “unsubscribe” when leaving
query
report
13
IGMP (3)
• Router: broadcasts Host
• Group-specific Query
Membership Query
• Leave Group message
message on LAN.
– Last host replying to
• Host: replies with Host
Query can send explicit
Membership Report
Leave Group message
message to indicate group
– Router performs groupmembership
specific query to see if any
– randomized delay
hosts left in group
before responding
– Introduced in RFC 2236
– may send multiple times
• IGMP v3: current version
– implicit leave via no
reply to Query
14
Operation of IGMP v1 and v2
• IGMPv1
– hosts could join group
– routers used timer to
unsubscribe members
• IGMPv2 enabled hosts to
unsubscribe
• operational model:
– receivers have to subscribe
to groups
– sources do not have to
subscribe to groups
– any host can send traffic to
any multicast group
Problems:
• spamming of multicast
groups
• establishment of
distribution trees is
problematic (source
location unknown)
• finding globally unique
multicast addresses difficult
(duplicate addresses)
IGMP v3
• addresses weaknesses by:
– allowing hosts to specify list from which they want
to receive traffic
– blocking traffic from other hosts at routers
– allowing hosts to block packets from sources that
send unwanted traffic
IGMP Message Formats
Membership Query
• sent by multicast router
• three subtypes: general query, group-specific query, groupand-source specific query
Membership Query Fields
type
max response time
checksum
group address
S flag
QRV (querier's robustness variable)
QQIC (querier's querier interval code)
number of sources
source addresses
IGMP Message Formats
Membership Report
IGMP Message Formats
Group Record
IGMP Operation - Joining
• IGMP host wants to make itself known as group
member to other hosts and routers on LAN
• IGMPv3 allows hosts to specify wanted or unwanted
sources (filtering capabilities)
– EXCLUDE mode – all sources except those listed
– INCLUDE mode – only from sources listed
to join send IGMP membership report message
•
•
•
•
address field multicast address of group
sent in IP datagram
current group members receive & learn new member
routers listen to all IP multicast addresses to hear all reports
IGMP Operation –
Keeping Lists Valid
routers periodically issue
IGMP general query
message
• in datagram with allhosts multicast address
• hosts must read such
datagrams
• hosts respond with
report message
router doesn’t know every
host in a group
• needs to know at least one
group member still active
• each host in group sets timer
with random delay
• host hearing another report
cancels own
• if timer expires, host sends
report
• only one member of each
group reports to router
IGMP Operation - Leaving
• host leaves group by sending a leave group message
to the all-routers static multicast address
– sends a membership report message with EXCLUDE option
and null list of source addresses
• router determines if have any remaining group
members using group-specific query message
Group Membership with IPv6
• IGMP defined for IPv4
– uses 32-bit addresses
• IPv6 internets need the same functionality.
• IGMP functions included in Internet Control
Message Protocol v6 (ICMPv6).
– ICMPv6 has functionality of ICMPv4 & IGMP.
• ICMPv6 includes group-membership query
and group-membership report messages as
IGMP.
IGMP: Summary
• For membership management.
• Between a host on a subnet (Ethernet) and the router for the
subnet.
• The router periodically broadcast an IGMP host-membership
query message on its subnet.
• A host subscribes to a group replies by multicasting a hostmembership report message.
– Note: feedback implosion uses a random timer.
• The report is sent 3 times (for reliability).
• IGMP-1: hosts send no report leaving the group
IGMP-2: hosts send explicit host-membership leave messages
to reduce leave latency.
IGMP-3: filtering and blocking
25
Multicast Routing
Reverse Path Forwarding
• Building a loop-free broadcast tree
• No knowledge of group membership
27
Reverse Path Forwarding (2)
rely on routers knowledge of unicast shortest path
from it to sender
each router has simple forwarding behavior:
if (multicast datagram received on incoming link on
shortest path back to sender)
then flood datagram onto all outgoing links
else ignore datagram
28
Reverse Path Forwarding: Example
A
B
c
F
E
D
G
29
Spanning-Tree Broadcast
A
B
c
F
A
E
B
c
D
F
G
(a) Broadcast initiated at A
E
D
G
(b) Broadcast initiated at D
30
Internet Multicasting Routing: DVMRP
• DVMRP: distance vector multicast routing protocol,
RFC1075.
• Flood and prune: reverse path forwarding, sourcebased tree.
– initial datagram to multicast group is flooded
everywhere via RPF
– routers not wanting the multicast data: send
prune messages to upstream neighbors
31
DVMRP Example
S: source
LEGEND
R1
1
2
R4
R2
3
R3
router with attached
group member
5
4
R6
router with no attached
group member
R5
6
R7
i
link used for forwarding,
i indicates order link
added by algorithm
32
How DVMRP Fits into Multicasting
• IGMP - used for discovery of hosts in multicast
groups, messages exchanged between
neighbors
• DVMRP - routes multicast datagrams within an
AS
• MBGP (Multicast BGP) - routes multicast
datagrams between ASs
DVMRP Details
• Soft state: DVMRP router periodically (1 min.) “forgets” that
branches are pruned:
– multicast data again flows down unpruned branches.
– downstream routers: reprune or else continue to receive
data.
• Routers can quickly re-graft to tree following an IGMP join at
a leaf router by sending a “graft” message upstream.
• Deployment:
– commonly implemented in commercial routers.
– Mbone routing done using DVMRP.
• Works well in small autonomous domains.
34
DVMRP Prune
• Sent from routers receiving multicast traffic
for which they have no downstream group
members
• “Prunes” the tree created by DVMRP
• Stops needless data from being sent
DVMRP Graft
• Used after a branch has been pruned back
• Sent upstream by a router that has a host that joins a
multicast group
• Goes from router to router until a router active on the
multicast group is reached
• Sent for the following cases
–
–
–
–
A new host member joins a group
A new dependent router joins a pruned branch
A dependent router restarts on a pruned branch
If a Graft Ack is not received before the timeout
DVMRP Graft ACK
• Used to acknowledge receipt of Graft message
• Allows sending downstream router to know
upstream router has received and processed
its request
• If not received within 5 sec. Graft message
sent again
DVMRP Issues
• Hop count used as metric
• Scalability issues
– Performs periodic flooding
– Maintains its own routing table
• Older versions lack pruning
• Even though it is a main part of MBone,
MBone is being phased out
DVMRP: Summary
• Distance Vector Multicast Routing Protocol
• Leaf router sends a prune message to neighbouring routers
when there is no group member on the subnet.
• Intermediate routers perform pruning whenever possible.
• Flooding and pruning are repeated periodically, when the
current state times out.
• Between flooding rounds, a leaf router can re-join a group by
sending a graft message upstream.
• Intermediate routers propagates the graft message upstream
until the path is re-connected.
39
Shortest Path Tree
• Multicast cast forwarding tree: tree of shortest path routes
from source to all receivers.
– Dijkstra’s algorithm.
S: source
LEGEND
R1
1
2
R4
R2
3
R3
router with attached
group member
5
4
R6
router with no attached
group member
R5
6
R7
i
link used for forwarding,
i indicates order link
added by algorithm
40
MOSPF
• Extends OSPF for multicasting.
• Every router has the complete topology of its own network.
• A receiver joins a multicast group G by exchanging IGMP
messages with its end-router R.
• The end-router R broadcasts its group membership to the
whole network in the form (G, R).
• Every router in the network maintains a group membership
table with each entry being a tuple [S, G, <R1, R2, …>].
• A sender simply sends data packets as they are available.
• Each router uses the network topology, the group
membership table, and the multicast group ID in the data
packets to compute the route(s) to the destination(s).
41
Multicast Routing Approaches
• Minimum cost trees
– Steiner trees
• Shortest path trees
– Source-based trees
– Core-based trees
…we first look at basic approaches, then specific protocols
adopting these approaches
42
Steiner Trees
• Steiner Tree: minimum cost tree connecting all routers with
attached group members.
• Problem is NP-complete.
• Excellent heuristics exist.
• Not used in practice:
– computational complexity.
– information about entire network needed.
– monolithic: rerun whenever a router needs to join/leave.
43
Shortest Path Tree
• Multicast cast forwarding tree: tree of shortest path routes
from source to all receivers.
– Dijkstra’s algorithm.
S: source
LEGEND
R1
1
2
R4
R2
3
R3
router with attached
group member
5
4
R6
router with no attached
group member
R5
6
R7
i
link used for forwarding,
i indicates order link
added by algorithm
44
Core-Based Trees
• For many-to-many multicast.
• Protocols: CBT, PIM-SM, PIM-DM (Protocol Independent
Multicast, sparse/dense mode)
• Purpose: to reduce the amount of routing info stored at
routers when a multicast group has a large number of
members and multiple senders.
• A multicast group requires a core (rendez-vous point).
• Receivers “join” the (shortest-path) tree rooted at the core
only one tree per multicast group (used for multiple senders).
• Sources send multicast data to the core, which then
multicasts the data to the tree.
45
MBone
• Multicast backbone of the Internet.
• Not all routers support multicast routing protocols and IGMP.
• Connecting multicast-capable routers using (virtual) IP
tunnels.
• Was a long-running experimental approach to enabling
multicast between sites through the use of tunnels.
• No longer operational.
46
Reading
• Section 19.1, Stallings
More references:
• Multicasting on the Internet and Its Applications, Sanjoy Paul,
Kluwer Academic Publishers, 1998, chapters 2, 4, 5.
• Computer Networking: A Top-Down Approach, 5th edition,
Kurose and Ross.
47