In the last
few years there has been considerable research toward extending the Internet
architecture to provide quality of service guarantees for the emerging
real-time multimedia applications. QoS provision is a rather controversial
endeavor. At one end of the spectrum there were proposals for reservations and
per-flow state in the routers. These models did not flourish due to the
network's heterogeneity, the complexity of the mechanisms involved, and
scalability problems. At the other end, proposals advocating that an
overprovisioned best effort network will solve all the problems are not quite
convincing either. The authors believe that more control is clearly needed for
protecting best effort service. An important requirement is to prevent
congestion collapse, keep congestion levels low, and guarantee fairness.
Appropriate control structures in a best effort service network could even be
used for introducing differentiation. This could be achieved without
sacrificing the best effort nature of the Internet or stressing its
architecture beyond its limits and original design principles. In this article
we revisit the best effort service model and the problem of congestion while
focusing on the importance of cooperative resource sharing to the Internet's success,
and review the congestion control principles and mechanisms which facilitate
Internet resource sharing.