For two competing TCP connections, each sender's congestion control aims to obtain useful throughput while adapting to shared capacity and avoiding persistent overload. For two comparable, continuously backlogged connections at one bottleneck, the usual fairness objective is approximately half the available capacity each, while keeping the bottleneck productively used. The goal is not for both senders independently to seize the whole link. Unequal delays, implementations, application demands and other bottlenecks mean that equal throughput is not guaranteed.
For two UDP exchanges, there is no corresponding built-in transport congestion control objective: UDP sends datagrams without specifying a congestion response. The applications might implement well-behaved congestion control, rate limiting or no adaptation at all. Consequently two UDP labels alone do not determine either a target share or the resulting allocation. Applications should still manage overload; that responsibility is outside the base UDP service.
For a competing TCP connection and an unresponsive high-rate UDP application sharing an ordinary queue, losses cause the TCP sender to reduce its offered load while the UDP sender continues. The UDP traffic can take much of the bottleneck capacity and severely reduce TCP throughput. If the UDP rate exceeds capacity, it too loses packets; sending more does not guarantee useful delivery. A modest-rate or adaptive UDP application, or a router enforcing fair queueing, gives a different outcome. Thus
Articles by others on the same topic
There are currently no matching articles.