I. Introduction
In a network like the Internet, where a majority of traffic is generated by the transfer of “elastic” documents (files, Web pages, etc.), user-perceived performance depends critically on the way bandwidth is shared between concurrent flows. The objective is generally to use all available bandwidth to the fullest while maintaining a certain “fairness” in the allocations attributed to different flows. The most common understanding of fairness in a network is max–min fairness, as defined, for example, in [2]: rates are made as equal as possible subject only to the constraints imposed by link capacities. In fact, there appears to be no clear economic reason why max–min sharing should be preferred over some other bandwidth allocation. More rational objectives would be to maximize overall utility accounting for costs and perceived value or to minimize the expected response time of any transfer. In this paper, we discuss possible bandwidth-sharing objectives and the design of the flow-control algorithms by which they can be achieved. Although we consider here that the network handles a fixed set of flows, it should be noted that bandwidth sharing is generally performed in the context of randomly varying demands as data transfers begin and end. Preliminary investigations on the impact of this random traffic are described in [17].