The standard method of transferring files from a file server to clients in the Internet is through TCP connections. The whole file is transferred separately to each client via a unicast connection. It often happens that clients are downloading the same file concurrently within a certain time interval. During this interval, the server transfers multiple copies of the same data. This creates redundant data transfers in the network. In this thesis we present the CacheCast file server, which removes these redundant data transfers by utilizing the newly developed CacheCast mechanism. This mechanism removes redundancy from single source multiple destination transfers.
In order to benefit from the CacheCast mechanism, the same data chunk must be transferred to multiple clients within a short time frame. CacheCast caches payloads on routers in the network, such that equal payloads are transferred only once over each link. In a live streaming system, all clients consuming the same video or voice stream are receiving the same data synchronously. Thus, live streaming systems can greatly benefit from CacheCast. In a file server, the clients are not synchronized per se. CacheCast support in a file server therefore requires a special system design. The key idea in the CacheCast file server is to reorder the file blocks before transmission, such that the same file block is transferred to multiple clients. CacheCast is then able to remove the redundant data transfers.
This thesis includes the design, implementation and evaluation of the CacheCast file server. The system is implemented in the ns-3 network simulator, in order to perform experiments in a network with dozens of clients. Three major aspects of the system are evaluated, namely the effects on the bandwidth consumption in the network, the impact on the download time experienced by the clients, and the fairness among concurrently connected clients. The performance of the CacheCast file server is compared against the performance of an FTP server.
The evaluation has revealed that the CacheCast file server performs significantly better than an FTP server, which transfers the files using TCP. It delivers the files faster to the receivers, and reduces the total bandwidth consumption in the network. In our experiments, the download time is reduced by a factor of 10 and the bandwidth consumed is 89 % less then when using an FTP server. These performance gains are attributed to the CacheCast support in the file server. The evaluation also shows that the CacheCast file server ensures fairness among competing clients.