GIT-CERCS-03-02
    Manish Jain, Ravi Prasad, Constantinos Dovrolis,
    The TCP Bandwidth-Delay Product revisited: network buffering, cross traffic, and socket buffer auto-sizing

    TCP is often blamed that it cannot use efficiently network paths with high Bandwidth-Delay Product (BDP). The BDP is of fundamental importance because it determines the required socket buffer size for maximum throughput. In this paper, we re-examine the BDP concept, considering the effects of network buffering and cross traffic on the `bandwidth' and `delay' characteristics of a path. We show that, with careful socket buffer sizing, a bulk TCP transfer can saturate a network path independent of the BDP or the available network buffers. In a non-congested path, there is a certain socket buffer size (which depends on the cross traffic type) that maximizes the throughput of a bulk TCP transfer. In a congested path, the TCP throughput is maximized when the connection is limited by the congestion window, rather than by the socket buffers. Finally, we present an application-layer mechanism (SOBAS) that automatically adjusts the socket buffer size close to its optimal value, based on direct measurements of the maximum received throughput and of the round-trip time, without requiring prior knowledge of the path characteristics.