
Abstract
Legacy congestion controls including TCP and its variants
are known to not perform well over cellular networks due to
highly variable capacities over short time scales, self-inflicted
packet delays, and packet losses unrelated to congestion. To
handle these challenges, we present Verus, an end-to-end
congestion control protocol that uses delay measurements
to react to the capacity changes in cellular networks without
explicitly attempting to predict the cellular channel dynamics.
The key idea of Verus is to continuously learn a
delay profile that captures the relationship between end-to-end
packet delay and outstanding window size over short
epochs and use this relationship to increment or decrement
the window size based on observed short-term packet delay
variations. While the delay-based control is primarily for
congestion avoidance, Verus uses standard TCP features including
multiplicative decrease upon packet loss and slow
start. Through a combination of simulations, empirical evaluations
using cellular network traces, and real-world evaluations
against standard TCP flavors and state of the art protocols
like Sprout, we show that Verus outperforms these protocols
in cellular channels. In comparison to Cubic, Verus
achieves an order of magnitude (> 10x) reduction in delay
over 3G and LTE networks while achieving comparable
throughput (sometimes marginally higher). In comparison to
Sprout, Verus achieves a much higher throughput especially
under channel contention but does experience an increase in
end to end delay by 15-70% depending on the level of contention
(still 8-10x lower than Cubic).
Materials