Congestion Control in Distributed Media Streaming Lin Ma School of Computing National University of Singapore malin@comp.nus.edu.sg Wei Tsang Ooi School of Computing National University of Singapore ooiwt@comp.nus.edu.sg Abstract— Distributed media streaming, which uses multiple senders to collaboratively and simultaneously stream media content to a receiver, poses new challenges in congestion control. Such approach establishes multiple flows within a session. Since conventional congestion control only aims to make each of these flows TCP-friendly, selfish users can increase the number of flows to grab a larger share of the bandwidth, introducing more congestion and degrading the overall network performance. To address this issue, we propose the idea of task-level TCP- friendliness, which enforces TCP-friendliness upon a set of flows belonging to a task instead of upon individual flow. We design DMSCC, a congestion control scheme, to achieve task-level TCP-friendliness in distributed media streaming. By observing shared congestion, DMSCC identifies the set of flows experiencing congestion and dynamically adjusts those flows such that their combined throughput is TCP-friendly. To achieve this goal, DMSCC addresses two issues: (i) given a β (β< 1), how to control a flow using AIMD such that it consumes β-times the throughput of a TCP flow, and (ii) how to identify the set of flows that share a bottleneck. In our simulations, DMSCC can effectively regulate the throughput of flows on every bottleneck, resulting in a TCP-friendly combined throughput. I. I NTRODUCTION The term distributed media streaming, coined by Nguyen and Zakhor [1], refers to a new model in media streaming in which a client receives a media stream from multiple servers simultaneously. This new framework can be applied to several settings. In media-on-demand services, media content can be mirrored by different CDN servers, and a client can stream concurrently from these servers. In peer-to-peer file sharing applications, a receiver can stream from multiple peers that seed the same media file. There are two main advantages in streaming from multiple senders concurrently. First, it improves robustness. By exploit- ing path-diversity among the senders, the receiver experiences average loss and congestion behavior of the paths. Careful selection of senders and allocation of packets to different senders lead to significant reduction in bursty loss [2]. In peer-to-peer settings with transient peers, the receiver can still receive and play parts of the media stream when one of the sending peer fails [3]. Second, distributed media streaming allows aggregation of bandwidth among peers. Most home computers have asym- metric Internet connections, where the down-link data rate is higher than the up-link data rate. Such asymmetry limits the ability of a peer to stream to another peer at full quality. For instance, a peer might request for a 128Kbps audio, but few peers would be able to, or willing to, dedicate this amount of bandwidth to serve another peer. A more likely situation is for, say, four peers, each contributing 32Kbps, to serve the requesting peer. Streaming from multiple senders simultaneously poses many new research challenges. Existing work in the literature has studied issues such as rate allocation [1], allocation of packets [4], and selection of senders [3]. The existence of multiple senders has brought a new dimension to classic problems in media streaming as well. For instance, we recently studied error recovery via retransmission of loss packets in the context of distributed media streaming [5]. In this paper, we investigate another fundamental issue in media streaming – TCP-friendly congestion control. Congestion control in media streaming with one sender is an important and well studied problem (e.g., see the survey by Widmer et al. [6] and references therein). In distributed media streaming, however, the problem of congestion control is more complicated than the single sender scenario. A distributed media streaming session contains multiple media flows (called DMS flows) from different senders. These flows may or may not pass through the same bottleneck. Ensuring TCP-friendliness of each DMS flow is not sufficient: their combined throughput is larger than the other TCP flows on the same bottleneck. This unfairness encourages abuse by selfish users — by increasing the number of concurrent flows, a user can grab larger bandwidth share at the bottlenecks. We need a different type of congestion control – one that controls the aggregate throughput of the DMS flows such that their combined throughput is TCP-friendly. We call such aggregate congestion control as task-level congestion control. Aggregate congestion control methods exist in the literature [7]–[10], but do not apply to distributed media streaming. In distributed media streaming, the flows from multiple senders converge on their way to the receiver, forming a reverse tree (see Fig. 1 for an example). The DMS flows only share parts of their links, so they may experience different delay and congestion. The existing methods of aggregate congestion control, however, assume that the flows traverse through the same path and share the same bottleneck. We now illustrate the problem of congestion control in distributed media streaming through an example (see Fig. 1). A host R requests for some media content from senders S i . DMS flows (f i ) from the senders travel through different IP- level paths and join each other at routers A and B. We term 0743-166X/07/$25.00 ©2007 IEEE This full text paper was peer reviewed at the direction of IEEE Communications Society subject matter experts for publication in the IEEE INFOCOM 2007 proceedings. 1397