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.