Explaining How the Internet Works Without Giving You a Big Headache, Making You Sad, or Yelling at You


Explaining How the Internet Works Without Giving You a Big Headache, Making You Sad, or Yelling at You

Now listen up before I get angry!

Drawing by author

This was originally at my old business site (without the joking) and has been extensively updated for publication here.

I once had to explain TCP/IP to a non-technical person. What follows is basically what I came up with, though it doesn’t have any of the hand waving, pointing or any of the other dramatic gestures and facial expressions I used to fill in the gaps.

Think about the early telegraphs and Morse code. Press the telegraph key in the right pattern and that means the letter “A” to the person at the other end of the line. Morse code is just patterns of “on” and “off”.

And sore fingers.

Technically speaking, that’s arguable. Morse code is digital, but it has five elements so it isn’t just “on” and “off”. But it can be represented digitally, so you can argue that side too.

It doesn’t matter anyway. The internet doesn’t work like that.

The internet uses patterns of “on” and “off” too. In Morse code, it’s “dahs” and “dits”; on the internet we call it 0’s and 1’s. Same idea, different words. “Dah” and “0” are “off”, “dit” and “1” are “on”.

Obviously “dahs” and “dits” are easier to understand. When NASA was first planning to provide the astronauts with ship to ship communication, I suggested that, but they rejected my idea and went with the zeros and ones.

Some people say it wasn’t NASA. Yeah, and some people say Trump beat Biden. You figure it out. Follow the money. DARPA was never a player in this game.

There is one important difference. Morse code is variable length. An “A” is “dit-dah” and a “B” is “dah-dit-dit-dit”. Internet bytes are always eight units long. An “A” is “01000001” and a “B” is “01000010”.

Which is ridiculous. I pointed this out in a letter to President Carter: “01000001” looks nothing like an A. Neither does “dit-dah”, but “dah-DIT-dah” certainly does, especially if you raise your voice a little for the ‘DIT”.

My letter was intercepted and Carter never read it until it was declassified last year, so NASA went with their scheme.

With that in place, if my computer wants to send “ABABAB” to your computer, it sends “01000001-01000010-01000001-01000010-01000001-01000010”. Simple enough, right? 1,2, ABABAB.

Unbearably long, though, and nobody could remember that, so I came up with the idea of just sending “A” as a musical note. Brilliant! But they shot that down too.

Routers look at the address and send the packets toward the next router that is able to get closer and so on until the packet reaches its destination.

And along the way awful things happen.

The NASA scheme gets more complicated. There are a lot of computers out there: yours, mine, a few at Google, IBM, Yahoo.. if I want to send “ABABAB” to Google, how does it get there?

Well, duh, the telegraph, but because they stupidly tore down all those lines, I suggested using the railroads. The tracks are there, they go everywhere, and they conduct electricity! It would have saved us billions, but no, Ma Bell bribed a bunch of politicians and NASA went with the phone company.

And then the postal lobby got involved, saying that those foolishly long messages needed to be in an envelope or a package so they could be addressed properly.

It’s all wrapped in a “packet”. Some people like to explain this as an “envelope” and they talk about writing the address on the envelope, but it’s just more 0’s and 1’s and it’s always eight at a time. Those eight zero’s and ones are a “byte” and some of the bytes in the packet say where it’s going and some say where it is coming from. It takes more than one byte for an address: originally four was enough, but that underestimated how fast the internet would grow. We still use four bytes now, but IPV6 will eventually completely replace all that with sixteen byte addresses.

How silly. Google has a perfectly good postal address — which the postal lobby should have known, but NASA gave Google a number instead and made up DNS to let you look up the number.

I was beside myself with anger. We have telephone books! Google is in those books. Google has numbers already, but NASA gave them new numbers. And DNS, which they call the Domain Name System and I call the Dumb Name System!

Let’s pretend that there were only a few computers in the world and that mine was number one and yours was number two. Our packet to send “ABABAB” might start with “1” spelled out in eight units, so “00000001” . That says it’s coming from me. We follow that with a byte that means “2”, or “00000010”. Then we send the whole “00000001-00000010–01000001–01000010–01000001–01000010–01000001–01000010”.

With my scheme, I could have just gone down to the train tracks with my tuning forks and sent an “A”. No stupid computers at all and no electricity.

In actuality we send a lot more wrapped around the “ABABAB” but it’s all the same idea. Your data always is wrapped in bytes that say where it came from and where it is going to (and a lot more). And of course there are a lot of computers in the world, so one byte isn’t enough to contain addresses.

Which means these packets get unbelievably long and nobody knows what they mean.

Without getting into all that, there is one more thing I want you to notice. That “0100001” that I said was an “A” is also just the number “65”. Inside the packet, if we’re looking at the part that has the address of the computer the packet came from, the bytes always mean just that: where it came from.

But the data, the “01000001–01000010–01000001–01000010–01000001–01000010” part, might not mean “ABABAB”. It might mean 65, 66, 65, 66, 65, 66. Or it might mean a color or a sound — it depends on how the other end interprets it. Paul Revere said “one if by land, two if by sea”. You can’t really know what “ABABAB” means unless you know what it is supposed to mean.

Which was exactly why I wanted to use musical notes. Notes mean what they mean. Music is the universal language, the language of love, of poets, of raves. Why can’t it be the language of business as well? You can READ music, but you cannot read binary bytes without a decoder ring.

There are other problems. The biggest number you can fit in eight zeros and ones is 255. Did NASA think we’d never need larger numbers? This is why computers break.

But no, NASA had it their way and we are all stuck with it. I tried, I really tried, but NASA, Ma Bell, and the post office won.

I hope my explanation helped. If not, put your questions in the comments or, if you have subscribed to receive these posts by email, you can respond privately from your mailbox.

Content Index


Popular posts from this blog

I Owe an Apology to Anyone Using Voice Over

Apple Has Fixed More of My Gripes and One of Them is Really Funny

My Great-Grandfather’s Toy Cannon