Why is congestion control on the Internet hard? Because it operates at the transport layer, it is impossible for TCP to always do “the right thing” for every network segment. By measuring only the round-trip time (RTT) and packet loss, it is very difficult to optimally adapt the transmission rate of the sender when the path to the receiver is a chain of technologies (e.g. WLAN, Ethernet, satellite, 3G). TCP cannot make any form of link technology-specific decision. This problem is compounded by well-known TCP issues like e.g. its inability to distinguish between congestion losses and losses that are due to link impairments. TCP’s end-to-end congestion control also does not scale well in several dimensions:

  • The diameter of the network. The effectiveness of any congestion control scheme will deteriorate with increasing network diameter. TCP maximizes this effect because it operates in “rounds” based on the round-trip time. This is particularly problematic in high bandwidth networks where the capacity does not become a limit, especially with short flows that are common in web traffic.
  • The number of flows. When multiple flows traverse a path, they compete for the available bandwidth, pushing up the queues and creating delay and loss. Jointly controlling them as a group can lead to much better behavior and enable precise prioritization between flows.
  • The bottleneck link capacity. TCP often poorly saturates high-capacity links due to its linear increase in standard TCP’s congestion avoidance phase. This has been addressed approximately a decade ago; now, the most prominent solution is the CUBIC congestion control mechanism that is used by default in Linux hosts.

What about RINA networks? RINA can solve all of the Internet congestion problems by 1) breaking up the long control loop into shorter ones, 2) controlling flow aggregates inside the network, and 3) enabling the deployment of arbitrary congestion control mechanisms per DIF.

The main achievement of RINA is that the series of hacks and patches found in the Internet, with its problems that we have discussed in the case of congestion control, are not required. RINA is therefore an ideal vehicle for investigating drastic changes to how congestion control, and in-network resource pooling as another example, could be done, and it provides a suitable framework with many promising dimensions for future research. Congestion control in RINA “naturally” exhibits properties of various improvements that have been made to (or at least proposed for) the Internet, without inheriting the problems that come from imposing these mechanisms on an architecture that was not made for them (all the problems that PEPs – Performance Enhancing Proxies – have).

Do you want to learn more?