The Battle of the Internet Protocols

The Battle of the Internet Protocols
Protocols can be categorized as either congestion notification responsive
or congestion notification unresponsive. The slow start algorithm
characterizes the Transmission Control Protocol (TCP) as being responsive
to congestion situations since when a TCP flow fails to get an
acknowledgement that a packet was received, it throttles back its send
rate and then slowly ramps up.
On the other hand, the User Datagram Protocol (UDP) is unresponsive
to congestion notification. Unless there are acknowledgements at a
higher layer, a UDP stream will continue to transmit at the same rate
despite packet drops. If the traffic is a mixture of TCP and UDP, then TCP
is polite and UDP is usually the spoiler. The unresponsiveness of UDP
applications can be the detriment of not only other impolite UDP
streams but also well-behaved TCP sessions.

NOTE
Advanced queuing mechanisms (basically, anything except FIFO) work to
schedule which of the packets waiting in queue will be next to go out
the interface. Thus, advanced queuing mechanisms really do not come
into play unless there is congestion. If there are no packets waiting in
queue, then as soon as a packet comes into the router, it goes directly
out of the interface, and the queuing works essentially the same as FIFO.
Therefore, CBWFQ does not kick in until congestion starts.