Abstract
The basic function of the Internet is to forward messages hop-by-hop towards their destination hosts. A single message has only one destination and the network does not provide a mechanism for delivering a message to multiple hosts. Therefore, in order to transmit the same message to multiple destinations, a host sends the message to each destination separately. This, however, leads to inefficient use of the Internet resources because packets carrying the same message traverse multiple times the same several first hops from the source. In this thesis we propose CacheCast - a system for single source multiple destination data transfer. CacheCast does not change the host-to-host communication model. It is based on a link layer caching technique that removes redundant transfers of the same data. CacheCast consists of two elements: distributed architecture of link caches and server support. The link caches are designed to work independently. A single link cache consists of two elements that operate on the link end-points. The cache management unit located at the link entry removes from packets data that is already present in the cache store unit located at the link exit. The cache store unit reconstructs the packets from the local cache and passes them to a router for further processing. The server support provides a mechanism for an application to transmit the same data over multiple connections in the CacheCast manner. The resulting packets carrying the data are annotated with information that simplifies redundancy detection and removal. This, in turn, greatly reduces the storage and complexity requirements of link caches. The CacheCast system is incrementally deployable. It preserves the end-to-end relationship between communicating hosts thus it can operate with firewalls or NATs. The CacheCast deployment requires minimal changes in the network operation and the minimum amount of resources. The thesis evaluates three aspects of the CacheCast system. Firstly, it assesses the efficiency in terms of network bandwidth consumption during single source multiple destination transfer. It shows through analysis and simulations that CacheCast achieves near perfect multicast efficiency. Secondly, the thesis studies impact of the link caches on the network traffic. Simulations performed in the ns-2 network simulator indicate that CacheCast does not violate current understanding of “fairness” in the Internet. Thirdly, the thesis evaluates the computational complexity of the server support and link cache elements. The server support is implemented as a system call in Linux. The detailed measurements of the system call execution show that it outperforms the standard send system call when transmitting data to multiple destinations. The link cache is evaluated in the context of the Click router. Even though, the link cache elements consume the router processing capacity, the CacheCast router can forward much larger traffic volumes than a standard router. Finally, the thesis includes an example of a live streaming application that uses the CacheCast system to transmit audio stream to thousands of clients.