ith the proliferation of broadband access, the Internet faces the challenge of distributing rich media content to a worldwide audience of high-speed users. The challenges for streaming media today include the high data rates and...
moreith the proliferation of broadband access, the Internet faces the challenge of distributing rich media content to a worldwide audience of high-speed users. The challenges for streaming media today include the high data rates and significant bandwidth required for the uninterrupted delivery of high-quality music and video. Building a scalable and reliable system for on-demand and live streaming in this environment has proven to be very difficult. By definition, a media-on-demand system allows clients to access the media when they want and play it back without interruption after a given start-up latency. On our system, the outgoing bandwidth from the server is independent of the number of clients, and each client behaves independently of other clients. Furthermore, for each piece of media, the server minimizes the aggregate bandwidth requirement. Even though most codecs tolerate a certain amount of data loss, a high loss rate can significantly affect playback quality. Using an acknowledgment protocol like TCP to ensure reliability is extremely inefficient in one-to-many protocols like multicast. Requests for retransmission of lost packets can easily overwhelm a server, resulting in feedback implosion. Even with router assistance to aggregate acknowledgments, for a sufficiently heterogeneous network and a large enough audience, at least one client will lose almost every packet, requiring retransmission, which causes delays and results in massive reception of duplicate packets. An additional shortcoming with acknowledgment protocols is the delay associated with waiting for the lost packets to be retransmitted. Our MoD system solves these problems by using forward error correction codes to recover lost data. FEC uses the same redundant data to allow multiple clients to recover from different packet loss.