a high-throughput network, one could
have sent all 10 of the packets in a row
and waited for a confirmation that all
10 arrived, and this could be done in
38ms.
This example along with Figure
2 illustrates what is often called the
bandwidth-delay product, which is a
measure of the capacity of a path in
bits between a source and a destination. Figure 2 shows there may be
usable capacity not being used, illustrated here by the spaces between
packets. If the network were fully utilized, then all of the capacity would
be fully occupied by packets in flight.
When the network is fully occupied
with packets, a bandwidth-delay product of bits will be in flight between a
source and destination. The challenge
is estimating the available capacity at
any given time, as network dynamics
could make this estimate highly variable. If we overestimate the capacity,
too many packets will be pushed into
the network, resulting in congestion.
If we underestimate the capacity, too
few packets will be in flight and performance will suffer.
Optimizing protocols to the available bandwidth-delay product has
been a long-standing problem of interest to the networking community,
resulting in many algorithms for flow
control and congestion control. TCP/
IP, for example, uses acknowledgments
from the receiver to pace the sender,
opening and closing a window of unacknowledged packets that is a measure
of the bandwidth-delay product. If a
packet loss occurs, TCP/IP assumes it
is congestion and closes the window.
Otherwise, it continues trying to open
the window to discover new bandwidth
as it becomes available.
Figure 3 shows how TCP/IP attempts
to discover the correct window size
for a path through the network. The
line indicates what is available, and
this changes significantly with time,
as competing connections come and
go, and capacities change with route
changes. When new capacity becomes
available, the protocol tries to discover
it by pushing more packets into the
network until losses indicate that too
much capacity is used; in that case
the protocol quickly reduces the window size to protect the network from
overuse. Over time, the “sawtooth” re-
Many different
packet formats and
data units are in
use, and the genius
of the internet is
that it has a solution
to make them all
work together.
This interoperability
layer consists
of a packet format
and an address
that is interpreted
by iP routers.
flected in this figure results as the algorithm attempts to learn the network
capacity.
A major physics challenge for TCP/
IP is that it is learning on a round-trip
timescale and is thus affected by distance. Some new approaches based on
periodic router estimates of available
capacity are not subject to round-trip
time variation and may be better in
achieving high throughputs with high
bandwidth-delay paths.
implications for
Distributed systems
Many modern distributed systems
are built as if all network locations
are roughly equivalent. As we have
seen, even if there is connectivity, delay can affect some applications and
protocols more than others. In a re-quest/response type of IPC, such as a
remote procedure call, remote copies
of data can greatly delay application
execution, since the procedure call is
blocked waiting on the response. Early
Web applications were slow because
the original HTTP opened a new TCP/
IP connection for each fetched object,
meaning that the new connection’s estimate of the bandwidth-delay was almost always an underestimate. Newer
HTTPs exhibit persistent learning of
bandwidth-delay estimates and perform much better.
The implication for distributed
systems is that one size does not fit
all. For example, use of a centralized
data store will create large numbers
of hosts that cannot possibly perform
well if they are distant from the data
store. In some cases, where replicas of
data or services are viable, data can be
cached and made local to applications.
This, for example, is the logical role of
a Web-caching system. In other cases,
however, such as stock exchanges, the
data is live and latency characteristics
in such circumstances have significant
financial implications, so caching is
not effective for applications such as
computerized trading. While in principle, distributed systems might be built
that take this latency into account, in
practice, it has proven easier to move
the processing close to the market.
Rules of Thumb to hold
Your own with Physics
Here are a few suggestions that may