practice
Doi: 10.1145/1538788.1538806
Article development led by
queue.acm.org
The laws of physics and the Internet’s routing
infrastructure affect performance in a big way.
BY JonAThAn M. sMi Th
fighting
Physics:
These concepts are not generally understood, however, and even when they
are, they’re sometimes forgotten.
So, what are the basic principles related to speed of light and network hops
that all software developers should be
acquainted with? This article answers
that question by first working out some
quantitative preliminaries with an example, then moving on to the networking implications, and then covering
applications. Finally, it provides some
rules of thumb to keep in mind as applications and architectures evolve in
reaction to new network capabilities
and unchanging physics.
A Tough
Battle
oVer tHe past
several years, software-as-a-service
(SaaS) has become an attractive option for companies
looking to save money and simplify their computing
infrastructures. SaaS is an interesting group of
techniques for moving computing from the desktop to
the cloud. however, as it grows in popularity, engineers
should be aware of some of the fundamental limitations
they face when developing these kinds of distributed
applications—in particular, the finite speed of light.
Consider a company that wants to build a
distributed application that does interprocess
communication (IPC) over the long haul. The obvious
advice is “just say no”—don’t do it. If you’re going
far outside your local networking environment, the
physics of distance and the speed of light, combined
with the delays that come from the Internet’s routing
infrastructure, tell us that it will be much too slow.
The Physics
The speed of light in a vacuum is exactly 299,792,458m/sec. 2 This is as fast as
you can move a bit of data, and according to our current understanding of
physics, it is a fundamental constraint
of the universe in which we live. In fiber, the speed of light is 2. 14 × 108 m/
sec or about 70% of the speed of light
in a vacuum. If a fiber were stretched
in a straight line from New York to San
Francisco, it would be about 4,125km
long, and it would take about 19ms
( 4,125 ÷ 214) for light to make the one-way trip. Assuming an 8,250km length
of fiber was used, you can just double
this time to get an estimate for minimum round-trip time.
At first glance, 19ms might seem
like a short time, certainly on a human
scale. As computer scientists, however,
we are usually concerned with a different time scale, that of the computer.
Here we can calculate the 19ms in terms
of instructions, the fundamental units
of work for computers. As an example,
we can use a 2003-vintage single-core
machine: the Intel Pentium 4 Extreme
Edition, which at a 3.2GHz clock rate
was rated at 9,726MIPS: 9,726 × 0.019
is 184 million instructions—sufficient,
for example, to search through or sort
millions of names.
It is always important to keep in
mind the purpose of computer networking is to interconnect computers,
and that computers operate on very