Internet paths can have widely varying characteristics, including transmission delays, available bandwidths, congestion levels, reordering probabilities, supported message sizes or loss rates.
The same Internet path can have very different conditions over time. Consequently, applications that may be used on the Internet must ensure they do not make assumptions about specific path characteristics. They must instead use protocol mechanisms that let them operate safely under very different path conditions. Typically, this requires conservatively probing the current conditions of the Internet path they communicate over to establish a transmission behavior that it can sustain and that is reasonably fair to other traffic sharing the path.
The IETF has designed a set of transports protocols that provide congestion control. These are TCP [RFC0793], SCTP [RFC4960] and SCTP-PR [RFC3758], and DCCP [RFC4340] (which allows a range of different congestion control types). These transport protocols also have built-in capacity-probing and awareness of the maximum transmission unit supported by the path (PMTU) results in efficient data transmission that quickly compensates for the initial connection setup delay, for transfers that exchange more than a few segments.