This document describes a technique for implementing TCP-friendly flow control for unicast applications which do
not utilize TCP at the transport layer. Novice programmers might wish to avoid considering the effects their
applications can have on the network and on other applications in the network. However, there are severe
consequences to competing unfairly with TCP. Under heavy loads, TCP will back off, reducing its bandwidth
utilization. (In future work we will quantify more precisely exactly the damage that a UBR flow can do to TCP, by
driving up the packet drop rate, say, to twice the packet drop rate that a TCP would have if it got the same bandwidth
in the same conditions.) In addition, applications which do not seriously consider congestion issues can contribute to
widespread congestive collapse in the Internet. For these reasons it is vitally important that all applications implement
some form of congestion control.