An extension to TCP is generally provided that allows TCP to handle heterogeneous applications, especially those with delay and smoothness-sensitive contents, and wireless transmission media having noisy, fading radio channels. The TCP extension decouples reliability control from rate control, sacrificing reliability for delay control (transmission rate and retransmission decision) that may be suitable for delay and smoothness-sensitive contents. Furthermore, the TCP extension may select TCP variants and modifications to the TCP variants based on one or more of application needs, channel conditions, or local observables such as loss and delay to better adapt to different types of applications and physical layers.