diagnosing network speed bottlenecks [SOLVED]

Ben Scott dragonhawk at gmail.com
Thu Oct 1 09:40:36 EDT 2009


On Wed, Sep 30, 2009 at 9:47 PM, Greg Rundlett (freephile)
<greg at freephile.com> wrote:
> Sorry, I was misreading Comcast service as being measured in megaBytes
> (big B) while it's actually stated in megabits (little b).

  Be aware there's no standard symbol for bytes, bits, or octets.  The
"B = byte, b = bit" convention used by some is by no means universal.
When dealing with communications, I always spell out "byte" or "bit",
for this reason.

  In communications technology, speeds are almost always given in bits
per second.  Further, prefixes like "mega" and "kilo" are almost
always the actual SI prefixes, not the "binary prefixes".  In other
words, one kilobit/sec is 1000 bits per second, not 1024 bits per
second.

  For those interested in history, there is a technical reason for
this difference:

  Computers don't process bits, they process machine words (e.g., on
i386, a word is 32 bits).  Storage devices generally store blocks.
For example, IDE and SATA hard disks work with blocks of 512 octets.
So the machine is actual incapable of working with "10 bytes" or "1000
bytes" as unit quantities.  If you want 1000 octets of SATA disk, the
computer had to work with two blocks totaling 1024 octets.  So working
in bytes, with unit quantities based on multiples of 2, makes sense.

  (Which is why computer scientists adopted a bastardized version of
the SI prefixes: They needed prefixes.  SI already had a system of
prefixes, in base ten.  The base ten multiples weren't useful, but the
prefix names were handy.  In retrospect, that was a bad move, as the
double meaning of the prefixes has caused endless confusion since.
It's not always clear by context even when everyone is being honest.
And salesmen always use the meaning that makes their product sound
better.)

  Communications equipment, on the other hand, is almost always serial
in nature.  You send a bit, then another bit, then another bit.  It's
up to higher levels in the communications stack to impose framing.
With dial-up modems, you have to tell the system how many bits are in
a byte, and how many stop bits come after each byte, because those
concepts don't exist in the serial data stream itself.  In the world
of cable modems, that's all handled by the DOCSIS specs, but on the
wire, it's still fundamentally a serial data stream.

  So the transceiver works in bits per second.  There's no "byte" at
that level.  "1024 bits" isn't anything in particular.  "1000 bits"
isn't anything in particular, either, but the SI system uses multiples
of ten, so that's what the telecom world adopted.  (And the telecom
world was already using "bits per second" for voice encoding back when
the computer world was just getting started -- there was no standard
for word and byte size back then.  If they could have seen into the
future, they might have picked the "binary prefix" system instead,
just to be consistent with the major application.)

-- Ben


More information about the gnhlug-discuss mailing list