Wednesday, October 27, 2010

Scribe as an Application-Layer Multicast Architecture

The majority of multicast today is done at the application layer, because of routers not supporting multicast at the network layer. Scribe is a P2P architecture that does appication layer multicast. It runs on top of Pastry, a P2P overlay similar to Chord that provides efficient host lookup and routing. Scribe has an architecture similar to other multicast architectures—there are nodes that forward data, there are groups that are composed of a tree-like forwarding hierarchy, and reverse path forwarding is used to create the tree. Scribe and Pastry came from Rice University and Microsoft Research. Based on a paper on Scribe, it is apparent that it has certain disadvantages and advantages over IP-layer multicast.

In any higher-layer multicast system, there is going to be a tradeoff between data duplication and path length. That is, there are two ways a host can send multicast data. One option is to send it to other nodes by duplicating the data prematurely and sending it via the Internet's best-path route to each destination. This will generally decrease the transmission delay and increase transmission overhead. The other option is to send the data to hosts near the destinations, not duplicating the data until necessary. This will reduce the transmission overhead, but it will also increase the length the path the data must travel to reach its destinations. Scribe chooses the latter option, but fortunately Pastry provides an efficient routing scheme, where on average Pastry routes are between 1.5 and 2.2 times the Internet's best route. To recap, Scribe's transmission is 1.5 to 2.2 times longer than IP multicast, but it eliminates transmission overhead.

A significant advantage of scribe over IP-layer multicast is that it balances its load very well, thus allowing a large number of groups and also permits large group size. Pastry provides this advantage. The root of the tree is randomly chosen, and route selection is randomized to allow for data to traverse more nodes than if the optimal path were used.

Another advantage is that, although it only provides best-effort service, it could reasonably be altered to provide reliable end-to-end, ordered delivery. Each link in a tree is a TCP connection. Reliability would most likely be easier to implement in this architecture rather than one at the network layer, although I'm not familiar with every network layer approach.

My only question about Scribe is: Does it work well enough for video conferencing?

No comments:

Post a Comment