  Due to the presence of buffers in the inner network nodes, each congestion
event leads to buffer queueing and thus to an increasing end-to-end delay. In
the case of delay sensitive applications, a large delay might not be acceptable
and a solution to properly manage congestion events while maintaining a low
end-to-end delay is required. Delay-based congestion algorithms are a viable
solution as they target to limit the experienced end-to-end delay.
Unfortunately, they do not perform well when sharing the bandwidth with
congestion control algorithms not regulated by delay constraints (e.g.,
loss-based algorithms). Our target is to fill this gap, proposing a novel
congestion control algorithm for delay-constrained communication over best
effort packet switched networks. The proposed algorithm is able to maintain a
bounded queueing delay when competing with other delay-based flows, and avoid
starvation when competing with loss-based flows. We adopt the well-known
price-based distributed mechanism as congestion control, but: 1) we introduce a
novel non-linear mapping between the experienced delay and the price function
and 2) we combine both delay and loss information into a single price term
based on packet interarrival measurements. We then provide a stability analysis
for our novel algorithm and we show its performance in the simulation results
carried out in the NS3 framework. Simulation results demonstrate that the
proposed algorithm is able to: achieve good intra-protocol fairness properties,
control efficiently the end-to-end delay, and finally, protect the flow from
starvation when other flows cause the queuing delay to grow excessively.
