Jan 07 2008

Introduction to Networking

Published by Dougal at 9:20 pm under Computing, Networking

The fault is all mine. I have started learning more about networking, and so I want to start talking more about networking. But most people, they don’t know about networking. So there’s only one way to solve this problem. Order them to order large books from Amazon! Okay, that’s probably not very effective. The other way is to write about networking myself.

Consider this either a simplified introduction to networking, or a means of cementing my knowledge. You don’t properly know it until you’ve explained it to someone else. This does leave me with a small problem: I can’t actually tell if you’ve had it explained to you, or just told to you. So if there are any unclear bits please let me know.

Forget everything you know

Like most things in computing, the key to understanding networking is to understand that (a) it’s very complicated and (b) you shouldn’t try to think of it all at once. To this end, to discuss networking we must think in terms of strict areas of responsibility. Most of the time we must just assume that Gizmo B does Addressing or Security or similar, and not enquire further. To hold everything in your head at once would be like riding a bicycle while thinking of sub-atomic effects of the bike’s structure and maintaining your balance and safe road use and where you’re going all while taking in the glorious scenery. It can’t all be done at once.

In this first post I won’t try to explain any of the details. I just want to get across the feel of the problem, so that different layers of responsibility seem well motivated. Don’t think of computer networks but of the postal service. You write messages in envelopes, which can travel to the other side of the world. Each person who handles the delivery will only know a small part of the route, and who to pass on to for the next step in the journey.

It would be silly to assume that your local postman walks all the way to your uncle’s house in Australia or your sister’s house in Canada: that would be grossly impractical (and the poor postie would get very sore feet). Each person would have to know every delivery point in the whole world. This is no more practical for computer messages than it is for paper ones.

Layers of Abstraction

Instead of ‘complete’ knowledge of all the world’s addressees, the post office only have to know who has responsibility for International Post or Local Post or a particular post code. There is a hierarchy, like a whole tree of responsibility, and all each particular point in the hierarchy needs to know is

  • What am I responsible for?
  • What are my neighbours responsible for?
  • Where do we send packages that we can’t deal with?

The postman is responsible for a number of streets. If the address is not within his catchment, he can pass the parcel (so to speak) to the sorting office, who will decide which catchment the addressee is in. If the sorting office doesn’t recognise the address, they will send the letter to a larger office, where it might go to another town — or even another country. And then the reverse process happens, each point narrowing down the catchment area until a single person is responsible for the delivery of that parcel.

A red post box

“More than my job’s worth…”

At each step of the process, each person involved is completely ignorant of the eventual outcome. The people in the sorting office don’t need to open and read your letter to deliver it. The lorry driver who takes the post bags to the airport and the captain of the mail plane can remain entirely ignorant of it all. Each little cog in the machine can perform the job properly with almost no information.

This is very useful for computer networks, because computers which deal with complex information are difficult to fix when something goes wrong. So we separate out the responsibilities so that each step can be performed independently of other steps. For example, your browser works identically whether you use wireless or wired internet access. One may be slower, or less reliable, than the other, but the functionality is identical. It merely “assumes” that all is well with the rest of the networking process, and presents the same interface to you.

It is like your interface to the postal service — the little red pillar box at the end of the road. You write a letter, pop it in the box, and it’s out of your hands. Next time, I’ll look at what happens in more detail, so that the metaphorical “red pillar box” is not where your knowledge ends.

Comments Off

Comments are closed at this time.