The current Internet provides a single class of best-effort service while many applications have quality of service requirements. Expanding the current service model involves fundamental changes to the Internet that have proven difficult to realize. An alternate approach of adding enhanced functionality to applications in order to achieve certain quality of service requirements may well be more likely to see wide deployment.
In this thesis, we study realtime and priority data transfer over the best-effort Internet, emphasizing application-level approaches using TCP, the most prevalent transport protocol in the Internet. Our approach requires no support from the network or changes to TCP.
We first investigate the performance of using TCP for multimedia streaming. Using analytic models that are validated though both simulation and experiments over the Internet, our study shows that despite the possibility of large delays due to the backoff and retransmission in TCP, TCP generally provides satisfactory streaming performance when the achievable TCP throughput rate is roughly twice the media bitrate, with only a few seconds of startup delay. We then develop application-level algorithms for a so-called low-priority service, which consumes network bandwidth only when it would not otherwise be used by TCP-based applications. Simulation results demonstrate that these algorithms work almost as well as a transport layer approach. Finally, we consider applications that involve one data sink and multiple data sources at geographically distributed locations. We solve this problem by a novel application-layer multipath technique. Using a combination of analysis and simulation, we show that a carefully designed application-level approach using TCP performs close to the optimal algorithm.