It has been recognized that standard multicast is inadequate for VOD applications. Patching addresses this drawback by supplementing each multicast stream with patching streams. In this subsection, we consider a new communication paradigm called Range Multicast (RM) .
The Range Multicast technique employs software routers placed at strategic locations on the wide-area network (WAN), and interconnected using unicast paths to implement an overlay structure to support the range multicast paradigm. As a video stream passes through a sequent of such software router nodes on the delivery path, each caches the video data into a fixed-size FIFO buffer. Before it is full (i.e., the first frame is still resident), such a buffer can be used to provide the entire video stream to subsequent clients requesting the same video.
A range multicast example is given in Figure 31.11. The root node is the front-end note for the server to communicate with the rest of the overlay network. We assume that each node has enough buffer space to cache up to 100 video blocks for the video stream passing through. The label on each link indicates the time stamp of a particular service requested by some client. For instance, label "0" indicates that Client C1 requests the video at time 0. For simplicity, we assume that there is no transmission delay. Thus, C1 can make a request at time 0 and receive the first block of the data stream instantaneously. Figure 31.11 illustrates the following scenario. At time 0, a node C1 requests a video v. Since no node currently caches the data, the root has to allocate a new stream to serve C1. As the data go toward C1, all the non-root nodes along the way, R1 and R2, cache the data in their local buffer. At time 70, client C2 requests the same video v. At this time R1 has not dropped the first video block from its buffer, and can serve C2. All the nodes along the path from the serving node R1 to C2 (i.e., R4, R7, and R6) are asked to cache the video. Similarly, client C3 requesting video v at time 80 can receive the service from node R2 which still holds the first video block. At time 101, R1 and R2 cast out the first video block in their cache. Nevertheless, client C4 can still join the multicast group at time 110 by receiving the full service from node R4 which still has the first block of the video. In this example, four clients join a range multicast at different times, but still receive the entire video stream. This is achieved using only one server stream. This characteristic is not possible with traditional multicast.
Figure 31.11: A range multicast example.
Range Multicast is a shift from conventional thinking about multicast where every receiver must obtain the same data packet at all times. In contrast, the data available from a range multicast at any time is not a "data point," but a contiguous segment of the video. In other words, a sliding window over the video is multicast to a range of receivers. This unique characteristic is important to video-on-demand applications in two ways:
Better service latency: Since clients can join a multicast at their specified time instead of the multicast time, the service delay is zero.
Less demanding on server bandwidth: Since clients can join an existing range multicast, the server does not need to multicast as frequently to save server resources.
Server bandwidth often dictates the performance of a VOD system. Range multicast enables such a system to scale beyond the physical limitation of the video server.