The TCP protocol permits every application to manage the collective congestion on the Internet. TCP uses packet loss as a congestion detection method. When packets are lost due to congestion, TCP reduces the data rate of the application to prevent further congestion. TCP attempts to achieve fairness among competing data flows, so that all suffer equally when facing the weak part of the network. With a few notable exceptions, nearly every P2P protocol uses TCP to regulate congestion.