TCP friendliness is an attempt to describe, in a somewhat simplified way, a complicated set of features that applications and their network traffic can possess. Madahvi and Floyd define it as “maintaining the arrival rate to at most some constant over the square root of the packet loss rate” (1999). In an earlier paper (1997) they specifically delineate the behaviors an application might exhibit that are TCP-unfriendly and the consequences thereof, from TCP backing off and underutilizing available bandwidth to congestive collapse, a condition that most of us would see as catastrophic.

In one interview Floyd (2001) gives the hopeful “possibility is that the typical congestion encountered by Internet traffic will become less severe as pricing mechanisms come into play and the available bandwidth increases faster than the demand.” However, many have noted that not all IP applications are well-behaved. So when we speak of TCP Friendliness we are generally referring to the need that applications do some sort of congestion control and that they not cause TCP to back off or collapse. How this should best be achieved is still a subject of much research and discussion but it is clear that it can and must be done. A great many applications today simply rely on TCP as a transport, so implementing anything that doesn't which adversely impacts TCP is potentially disastrous.

It remains important that applications implement TCP friendliness. Floyd's prediction of widespread high bandwidth is coming true in many environments but this will only buy time. Traffic expands to fill available bandwidth so it is crucial that applications implement sensible congestion control algorithms. The implementation and tuning of these will probably remain an important field of study and engineering for the foreseeable future as it is critical that we not adversely impact TCP as much as possible. Many of the proposals and algorithms look a lot like TCP's implementation in fact but keeping that work out of TCP proper allows software and network engineers the freedom to tune parameters like fallback ratios and bandwidth estimating constants without adversely affecting TCP which remains the bulk of all internet traffic due to the many applications that use it (CAIDA, 2010).


CAIDA (2010) Analyzing UDP Usage in Internet Traffic [Online]. Available from: http://www.caida.org/research/traffic-analysis/tcpudpratio/ (Accessed: 24 October, 2010)


Floyd (2001) Interview in “Computer Networking: A Top Down Approach Featuring the Internet” [Online]. Available from: http://netlab.ulusofona.pt/rc/book/3-transport/3_09-interview/index.htm (Accessed: 24 October, 2010)


Mahdavi, J. & Floyd, S. (1997) TCP Friendly Unicast Rate-Based Flow Control [Online]. Available from: http://www.psc.edu/networking/papers/tcp_friendly.html (Accessed: 24 October, 2010)


Mahdavi J. & Floyd, S. (1999) TCP-Friendly [Online]. Available from: http://www.psc.edu/networking/projects/tcpfriendly/ (Accessed: 24 October, 2010)