A Comparison of *cast. Unicast: A packet is intended for only a particular receiver.Broadcast: A packet is intended for all receivers.Multicast: A packet is intended for multiple receivers.Anycast: A packet is intended for only and any one receiver that can provide a desired service. . The Concep
1. Multicast Routing, Error Control, and Congestion Control
2. A Comparison of *cast Unicast: A packet is intended for only a particular receiver.
Broadcast: A packet is intended for all receivers.
Multicast: A packet is intended for multiple receivers.
Anycast: A packet is intended for only and any one receiver that can provide a desired service.
3. The Concept of a Multicast Group A multicast group consists of senders and receivers.
A multicast group is associated with an IP multicast address.
Senders send packets with the destination address field set to this address.
Receivers request routers to forward packets with this address to them.
Packets sent from a sender will be received by all receivers. (The job of multicast routing.)
4. Multicast Groups May Have Various Properties Open v.s. close
Open: Any one (either sender or receiver) can join
Close: Only restricted ones can join
Some hosts may join as both a sender and a receiver
Some hosts may join only as a receiver.
Want to deliver a packet to only a particular set to receivers v.s. Want to receive packets from only a particular set of senders.
At any time, only one sender can send it packets out v.s. every sender can send its packets out. (In a video conference, you probably do not want more than one person to speak at the same time ?)
5. The Job of Multicast Can be Divided into the Following Problems Discover the set of current multicast groups
Before joining a group, you must first know its existence.
Express the interest in receiving packets from a group
Discover the set of receivers in a group
So that a packet can be delivered to every member.
Deliver packets to every member of the group.
Efficiently to save bandwidth consumption
Error control for reliable multicast
Congestion control for competing with TCP traffic
6. Why Multicasting ? (I) Save bandwidth
On a shared media link, instead of using N unicast to send a packet to N receivers, we can use only one multicast to do the same job.
On a WAN, instead of using N unicast to send a packet to N receivers, a multicast tree can be constructed so that each packet only needs to be transmitted on a link once.
7. Why Multicasting ? (II) Discover Resource/Service
Hosts that provide a particular service S can be configured to pick up packets with multicast address B as their addresses.
Clients, looking for any host that provides service S, can send their requests or queries to multicast address B. (using a tree)
Clients thus do not need to know the IP addresses of the many hosts that provide service S.
Can use broadcast to do the same job. But broadcasting is too costly. (see next slide)
8. Layer-2 Multicast Take advantage of the broadcast property of a shared media
Send once and everyone can receive it
Do not want to use the IP broadcast address because that would bother every host on the LAN.
Require a hardware interrupt and a software interrupt
Instead, use an IP multicast address to send a packet to only those hosts that use the same multicast address to receive packets.
Hosts that are not using the same multicast address will immediately discard the packets at the hardware level.
Hosts that are using the same address will pick up the packet. (Require a hardware and a software interrupt)
9. Mapping between Layer 2 and 3’s Multicast Address 32 different layer-3 (IP) multicast addresses will map to the same multicast address at layer 2.
10. How to Receive Multicast Packets on a Host? Suppose that on a host there is an application program that want to receive packets with the multicast address A1.
The host maps A1 to the Ethernet’s corresponding multicast address B.
The host configures the Ethernet asking it to pick up packets with B as their layer-2 addresses.
Because A1 and A2 may both map to B, a packet picked up by the Ethernet still needs to be examined by the OS. If the packet is for A2, it will be discarded.
Because on a host there may be multiple multicast application programs, an Ethernet interface needs to keep a list of layer-2 multicast addresses that it should watch.
11. Actually Layer-2 Multicast Is Not Cheap Now As more and more LANs are using switches, a multicast packet will need to be sent out on each port of switches. (even though there is no receiver on that port)
Sometimes using multiple unicasts may be more efficient than using one multicast.
Most switches or routers today limit the percentage of multicast and broadcast traffic to only 10~20% because they may consume too much bandwidth.
12. The Job of Layer-3 Multicast Is to Build a Multicast Tree to Deliver Packets Any spanning tree will do, but shortest-path tree is preferred.
13. Dimensions to Consider When Designing a Layer-3 Multicast Routing Protocol Number of sources
One ? hundred, thousand, or million?
Per-source multicast tree or a shared tree for all source?
Number of receivers
One ? hundred, thousand, or million?
If normally there is only a few (e.g., less than 10) receivers, unicast can solve the problem.
14. Dimensions to Consider When Designing a Layer-3 Multicast Routing Protocol Amount of data
If the needed bandwidth is small, unicast can solve the problem.
Lifetime of a multicast group
If this is a very short time, is it worth the overhead of creating a tree.
Length of quiet period
Is it worth keeping the state about a tree during quiet period? Or should a new tree is created for the next active period?
Number of simultaneous group expected
How many groups is a router likely to need to support simultaneously?
15. Dimensions to Consider When Designing a Layer-3 Multicast Routing Protocol Denseness of members
If almost every router is a member of a group, flooding can solve the problem.
If only 5 routers that are very far away from each other are in a group, flooding the whole network should not be done.
Volatility of membership
How frequently do members join and leave a group?
16. Internet Group Management Protocol A host on a LAN uses IGMP report messages to let a router know it is interested in receiving a multicast group’s packets.
A router uses IGMP query messages to know which hosts on a LAN is interested in receiving a multicast group’s packets.
Once a router knows that there is at least one receiver for a multicast group’s packets, it will start forwarding that group’s multicast packets on the LAN.
17. IGMP Query/Reply Mechanism to Avoid Sudden Congestion The router broadcasts a query on the LAN.
Each host that is interested in the group sets a timer to a random value and replies when the timer expires.
The reply is broadcast to the LAN.
Other hosts cancel their timers when they see the reply.
18. Centralized v.s. Decentralized Multicast Centralized (ATM-style)
A central node manages the group.
A central node can control who joins.
A central node can know the membership and thus the size of the group.
The solution seems simpler and requires less overhead
No central node. Members can join and leave without permission.
There is no single point of failure.
There maybe groups that are so large that a single node can not handle all membership in any one place
19. ATM’s Multicast Tree Construction Each group has one node N in charge.
When a host E wants to become a member, it sends a message to node N.
Node N then sends a “add member” control message toward the host E.
The links and routers on the way become part of the multicast tree.
20. IP Method 1: Flooding and Pruning Do not need to build a multicast tree.
Flood the multicast packets from the source to all routers.
The same one used in Link-State Routing
If there is no receiver on the LAN attached to a router, uses “prune” message to cut the flooding tree.
A reasonable solution when most routers of a network participate in the multicast group
21. Problems of Flooding A router may receive duplicate packets.
From multiple paths
A router need to store an identifier for every packet it received in the past, so that it can identify duplicate packets and won’t forward them.
This is very expensive both in router memory and CPU cycles.
22. Reverse-Path Forwarding Solves the Forwarding Duplicates Problem. A router forwards a packet from a source S to all of its interfaces if and only if the packets arrive on the interface that corresponds to the router’s shortest path to S.
Save storage in routers but still receive duplicates.
23. Extended Reverse-Path Forwarding Further Reduces Duplicates A router R should send a packet to a downstream router only if the shortest path from the downstream router to the source includes R.
May have problem when a downstream route has multiple equal-length paths to a source. E.g., node E in Fig. 11.25 may receive no packets.
24. A Packet Still Needs To Reach Every Router In Extended Reverse-Path Forwarding, In extended reverse-path forwarding, a router will not receive duplicates.
However a packet will still reach every router even though they do not need to participate in the multicast (e.g., node B and C)
25. Pruning Is Needed to Cut the Flooding Tree Suppose that the there is not interested receiver on the LAN attached to node C, C can send a “prune” message to B saying that “No need to forward multicast packet to me.”
Node B then also sends a “prune” message to A asking it to stop forwarding packets to B.
26. IP Method 2: Constructing a Multicast Tree to Deliver Packets In extended reverse-path forwarding, each router needs to know its shortest path to the source and the shortest paths of its neighbor nodes to the source. (Actually knowing the next hop of the shortest path is good enough)
This information is available from the unicast routing protocols:
From its own DV, a node know the next hop of its shortest path to a source.
From the DV received from a neighbor node I, a node knows the next hop of the shortest path of node I to the source.
Because each node has the whole topology of the network, each node can compute this information.
27. Multicast-Bone (Mbone) Is An Overlay on the Internet Not every router in the Internet supports multicast.
Multicast-capable routers form the nodes of the Mbone network.
If there is multicast-incapable routers between two multicast-capable routers, a tunnel is set up between them to “unicastly” forward multicast packets between them.
28. DVMRP and MOSPF Are Two IP Multicast Routing Protocols Because not every router is on the Mbone, the shortest path information reported from unicast routing protocols cannot be used. E.g., in figure 11.27, the shortest path from A to E is via F, not via C.
Thus multicast routing protocols should run on Mbone and have their own protocols:
DVMRP (Distance Vector for Multicast Routing Protocol)
MOSPF (Multicast Open Shortest Path First)
Use LSP to flood the information to all other routers that there is a receiver on a particular subnet.
Every node computes its own per-source per-group pruned shortest path tree.
29. Problems of DVMRP and MOSPF DVMRP’s problems:
Periodic flooding and pruning
Need to store per-source, per-group prune records at each router.
LSP database size grows a lot.
Computation required at each router grows a lot.
30. Core –Based Tree (CBT) Define core routers that coordinate multicasts.
When a router discovers that one host wants to receive packets from a multicast group, it sends a “join” message toward the core.
Each router along the path to the core, on seeing this request, marks the interface on which the request arrives as the interface on which to forward packets for that group.
31. Core –Based Tree (CBT)
32. Advantages and Disadvantages of CBT Advantages:
Routers that are not members of the multicast tree never know of its existence.
Flooding expense thus can be saved.
Not Like MSOPF, no need to compute shortest paths
CPU cycles expense thus can be saved.
If the core goes down, every multicast group that goes through it also goes down.
33. Protocol-independent Multicast (PIM) Dense mode
Use improved CBT. Node B detects that arriving packets are not from the node E, which is on the its shortest path to the source E, it can send a join message directly to E.
34. Error Control for Reliable Multicasts Multicast can be used for reliable transfer or unreliable transfer. For example:
Reliable: Microsoft program patch distribution.
Unreliable: Video conferencing
Packets may be dropped or corrupted on their ways to every receiver.
Error control needs to be done to provide reliable transfer.
This better be done in a distributed and multicast way.
Otherwise, if all receivers send back their ACK packets (either negative or positive) to the single sender, the single sender will suffer the “ACK implosion” problem.
35. Congestion Control To be TCP’s Friend In the one-to-multipoint multicast situation, the single source’s data sending rate determines the sending rate of data to every receiver.
However, not every receiver has the same amount of available bandwidth between it and source. What should the sender do? Keep decreasing the sending rate until there is no packet drop due to congestion for every receiver?
Also, the congestion control for a multicast should be TCP-friendly. But how to implement? The TCP congestion control only works when there is a single receiver!
36. Still an Active Research Area Most people agree that multicast is the right way to go.
Many issues still need to be studied. For example, what is the appropriate definition of fairness for multicast traffic?
Should a multicast sender that has N receivers uses only 1/N times of the bandwidth achieved by a unicast TCP sender?