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