And so on. The research question here is not so much to design the mechanism, although that can be very challenging, but to argue what mechanism is needed. There are a number of areas in which there is currently debate as to the specific services that are actually needed. Answering these questions requires an interactive exchange between application designers and designers of the infrastructure on which the applications depend. It is an ongoing issue, which will persist for at least another decade or more.
Congestion control is a persistent problem that is central to networking.
Networks depend on the statistics of sharing in order to make efficient use of the underlying transmission facilities. Especially in data networks, the offered load is very bursty, and the aggregation of this bursty traffic from a number of sources is the key to effective utilization of transmission capacity. However, any dependence on the statistics of offered load means that at some moments there will traffic in excess of what can be carried. Further, there will always be parts of the network with relatively smaller capacity, and traffic entering these regions must adapt to the lower supportable rates. Congestion control, the control of offered load when there is insufficient capacity in the network, has been studied for at least two decades, but is still a very difficult problem, only partially solved.