Network BASICs

Computer networks and the internet are incredibly complicated systems.  But underlying all of that complexity are a few really easy to understand basic ideas.  Once a person has a firm grasp of these few things, it becomes easy to decide which, if any, of the complexities might be worth exploring further.

One of the things that the Information Superhighway folks did that was not just spot on, but actually truly brilliant, was to define a simple model for describing networks.  They called it the OSI Seven Layer Model, or sometimes just the OSI Model.

I provided the link, but don't go there.  It's a nice Wikipedia article that dives right into the complexity.  Also, it is my opinion that the article's many authors have missed the forest for the trees.   In fact, it has been my experience that most network engineers make the same mistake.  So let's keep things simple and look at the big picture.

It's really simple.  We start with a piece of wire, or a radio wave.  Then we add stuff one piece at a time until the magic happens.  We do this in seven easy steps starting with that wire or radio wave.  And that really is all there is to it. 

 

But as they say, the devil is in the details, and there are several really nasty details in the way things work at the moment.  One of my personal long term goals is to raise social awareness of those details to a sufficient point that the political and capitalist economic processes (i.e. markets) are bought fix them.  That will make for a better world.

Let's start with those wires and radio waves.  They are called Layer 1, or the Physical Layer, or sometimes just the PHY.  Layer 1 has everything necessary to cause a little tiny blip or deformation in a wave.  The wires can be copper or filaments of glass.  The electronics sets up a wave in the air, or on the copper, or shines some light down the glass fiber.  Then it oscillates it in a some wave.  A nice uniform wave is all zeros.  Induce a little deformation, such as making it early, or late, taller or lower, and you have a 1.  Some clever engineers have managed to put two distortions on one hump and get two values, such as 00, or 01, or 10, or 11.  Other clever engineers working with light and make different distortions in each of several colors.

 

One particular invention dealing with fiber optics is worth mentioning, because that, more than anything else, created the world of network ubiquity (the ability to connect from almost anywhere, and at super low prices).  That one invention has the name Dense Wave Division Multiplexing (DWDM). 

 

The standard telling of the history of the 1999 dot com bubble and collapse of the price of many tech stocks has it that the key event was the turn in valuations that started late in the day on March 10, 2000.  The Wikipedia article linked here is not wrong in the sense that everything in the article is true.  But in my mind the real triggering events occurred during during the last few months of 1999 when the first DWDM backbone routers and switches started to be deployed.  Literally, overnight, the world went from a condition of backbone network scarcity to overcapacity.  Network construction, in terms of demand response, was suddenly about three years ahead of schedule, and the highly leveraged companies that were dependent on the price-point budgets for selling the use of that capacity in the near term, were suddenly and unexpectedly bankrupt.  This is instructive. 

 

An invention in applied physics a decade earlier, that slowly led to the development of practical applications had a profound and unexpected global impact.  I would compare this to the invention of the rifled barrel, the atomic bomb, and the 2009 development of affordable tertiary crude oil recovery.  The day the product manifestations these inventions became practical, the world changed literally overnight.  This sort of thing will happen again.

Layer 2 is the Data Link Layer.  Here we decide what those distortions mean just enough to shake hands and say "hello."  Once we are nice and friendly like that, we can create a language and have a conversation.  Now here is an important idea.  In each layer we create an ability to do something in the next layer up. but engineers are not known for being clever with the English language - quite the opposite I'm afraid.  So they will say things that aren't quite right because they just assume that even though they are being sloppy with their language, that others will understand.  And the engineers do tend to understand each other, but because they are being sloppy with their language, it can be really hard to figure out what they heck they mean, and it is easy to think they are saying something they are not.  And as one might expect when sloppy habits develop, people occasionally start thinking about what they are doing inaccurately as well.  Sloppy thinking about engineering details that matter is part of the reason that the internet is such an awful mess.  We'll see this in several other areas.

Now part of saying hello to someone and making nice is having a way to address or refer to each party to the conversation.  And, it helps if there is some sort of naming convention as opposed to just saying the equivalent of "hey you."   Now this is a problem with the whole seven layer model.  Is the naming convention part of layer 1, 2, or 3?  A good argument can be made for each, although I think the strongest argument is for layer 2.  That said, when network equipment manufacturers build their stuff, they include an attempt to provide these unique names with the equipment.  So maybe they are layer 1.  These things look like serial numbers, and there are at least three common systems - two in the world of telephone networks and one that is used for most other things.  The best English word for them is probably "identifier" although the phone people often call them either an electronic serial number or a mobile ID (EID or MeID - don't ask), and they have others as well.  Most network capable the computer equipment use the Media Access Control (MAC) serialized ID system.  Bur for some reason, network folks call these addresses.  A MAC is not an address and in any common definition of the word, but that's what they call them, so one sort of has to roll with that.  Like I said, they are super sloppy with their language, and caution is warranted.

Layer 3 is the Network Layer.  Here where we decide on our first bits of language, and it's also where network engineers introduce their second bit of really sloppy misuse of the English language.  This second bit will become important when we start to talk about how to fix the internet's many challenges with privacy and security (two very different, but closely related things).

Occasionally you will hear network folks talk about a "Layer 2 Network."  But hey, we just said that networks are created in layer 3, and so they are.  What the network engineers are really saying is that they create their own little private layer 3 system, and use their own private little language so no one else can mess with them.  And, since they do that using the tools provided by layer 2, and in the layer 3 used by everyone else, the activities of the network engineers can't be seen nor even detected, they just call their thing a layer 2 network.  It's wrong, but it works for them.  And now you know what they mean.

The really big thing that happens in the layer 3, the network layer, is that we introduce systems of addresses and a whole bunch of rules for how to work with them.  In the world of the internet, this is where the Internet Protocol is introduced, along with its two commonly used IP address systems.  There is a fantastically complicated world hidden below the surface of IP addresses, but for right now we can ignore all of that.  Suffice it to say that this is where we provide instructions that enable packets of data to transit the net and get to where they are intended to go.

For the benefit of those who simply must know right now what that hidden complexity is about, it is something called "ephemeral ports" which are normally hidden from view, even when we see a super long and fantastically complicated web address.  If the true full address were shown, those long addresses that take up three and four lines of text would require something more like six or seven lines.  A quick hint at what ephemeral ports are about can be seen when you open several browser tabs to the same location.  A web address looks the same in each tab, but obviously it can't be.  Something has to direct inbound data to the right tab.  That something is an ephemeral port assignment, and in any one comlink there can be a great many hidden bits of ephemeral port addressing shorthand.

Layer 4 is the Transport Layer.  This is where we setup the rules for how to add data to packets, which is the stuff we care about.  Think of it as the rules the post office has for what sort of envelopes and boxes they want you to use for various things, and how to properly seal them to survive the trip.  In the case of your network packets, there are also some rules that allow a bunch of data to be broken up into multiple packets and later properly reassembled at their destination.

Let's skip layers 5 and 6 for now.  We're rattled on way too much as it is.  Let's do mention Layer 7, but only a little.  This is the Application Layer.  It is where things like your web browser can do things that are unique to using the web, or your email client can do things that are only about email, most streaming media apps can do their special thing, and so on.  

With that we have enough of the basics to talk about the projects I worked on in the Boeing IT central architecture organization.