How the
Internet works
(Jellybeans in the Park)
Imagine two kids sitting in a park with a length of tube
and a few packs of jellybeans. The different coloured jellybeans represent different
messages. A yellow jellybean means "here's a nice picture of the planet Mars".
A white jellybean means "please send me something". One kid picks up
the tube and sends a white jellybean down it to his friend. His friend gets the
white jellybean, picks up the tube and sends a yellow jellybean back. Hey Presto,
a picture of Mars.
That's the basis of the Internet. In reality the jellybeans
are data packets and the tube is a telephone line. Your computer sends a white
jellybean to, say, www.nasa.gov, and nasa.gov sends a sequence of jellybeans back
that create a picture of Mars on your computer. You send a request, you get a
Web page back in response.
Now lets have five kids in the park, with lots more tubes
and jellybeans. Mum is very organised and sits David in the middle with the others
evenly arranged around him. There are now four tubes, one from David to each of
the other four kids. Charlie want something from Elizabeth, so he picks up a white
jellybean and with a fine pen writes on it "To E from C" (he's very
advanced for his age). He picks up his tube and sends this bean down to David
in the middle. David picks it up, sees it's addressed to E, gets hold of his tube
that leads to Elizabeth and forwards the jellybean to her.
Elizabeth sees the white bean is from Charlie. She picks
up a whole bunch of beans and writes on them "To C from E, first bean",
"To C from E, second bean", and so on. She then sends these down her
tube to David, sitting in the middle. He reads they're for Charlie and sends them
on. Charlie receives a little pile of jellybeans. He picks them up and puts them
in the right order and he's got his message from Elizabeth. It reads "znlpff"
(Elizabeth hasn't quite got the hang of this yet).
Routers
David has become, in Internet terms, a router. All he
does is look at the addresses on the beans and send them on. That's exactly how
the Internet works, a lot of routers in the middle transferring jellybeans from
one place to another.
Lots of other mums think this is a great way to keep their
kids entertained, so they join in. Soon there are fifty kids in an uneven circle
spread around the park, and in the middle of them are another thirty kids doing
David's job, acting as routers. The kids closest to the centre don't have any
direct connection with anybody on the edge of the circle, all their tubes simply
go to another middle kid who's also acting as a router. And the kids fairly near
the edge of the circle have a mix of connections, some to kids on the edge and
some to kids in the middle.
Charlie wants to hear from Elizabeth again and see if
she can send a sensible message this time, but she's way over the other side of
the big circle, so he knows his white bean is going to have to go through a lot
of routers. He also knows that most of the kids in the middle don't know who Elizabeth
is - they've never met her. So this time he writes on his bean, "To E from
C - and by the way, E is sitting in the south-east part of the circle."
He sends this bean down his tube to a kid called Fiona
sitting just inside the edge of the circle, who picks it up and reads it. Fiona
has no idea who Elizabeth is, but knows that south-east is vaguely in that direction
over there, so she sends the bean to the kid sitting roughly south-east of her.
This kid forwards it in turn to whoever is sitting south-east
of him, until it arrives at a kid who is sitting very close to Elizabeth. An important
bit of the system comes into play here, which is that all the router-kids near
the edge definitely know the names of the closest kids on the circumference of
the circle.
So, the kid close to Elizabeth recognises that the bean
is for her, and passes it on. And this time she writes on her first reply bean,
"To C from E, first bean - and by the way, C is sitting at the north-west
of the circle."
Of course Charlie and Elizabeth aren't the only kids communicating
on this primitive form of the Internet. All the other kids on the edge are doing
similar things. So there are hundreds of jellybeans passing through the middle
in all kinds of directions. It's chaotic, but in an organised kind of way, so
that everybody does eventually get the beans that are addressed to them, even
if it takes a while.
Resilience
Now we go one step further. Some of the kids have got
plenty of white beans but want to collect pretty coloured ones. They call themselves
home computers. Other kids have big stacks of multi-coloured beans that they generously
want to give away. These kids call themselves Web servers. Most of the traffic
through the middle is made up of coloured beans sent from Web servers to home
computers in response to white bean requests.
This is pretty much how the Internet works. Lots of home
computers wanting to receive information, and lots of Web servers wanting to supply
it. And in the middle, a host of routers owned by telecom companies and ISPs and
universities and government agencies and other people with technical knowledge.
The jellybeans themselves are packets of digital data.
Of course, amongst all these kids there has to be one
bad apple. There's a fat kid near the middle who reckons this is a stupid game.
When he thinks nobody's looking, he eats the beans instead of sending them through.
He's gobbled down hundreds and won't be able to finish his dinner tonight.
Amazingly, the system copes with this. Remember, the beans
have their order written on them - first bean, second bean, third bean and so
on. So when David puts the beans he's received from Elizabeth in order, he notices
that bean seven is missing. He waits a while, still no bean seven. Finally he
gets out a special pink bean and writes on it "The fat sod in the middle
has eaten bean seven, can you send me another one?"
Elizabeth obliges. The whole transaction is slower than
it should have been, but is eventually completed.
But barely is that little crisis over when something even
worse happens. One of the kids in the middle gets stung by a wasp. He starts bawling
his head off. Mum arrives and takes him in her arms and carries him off to comfort
and safety.
Disaster! We're a router down. What will happen to all
the beans that used to pass through it?
Simple. The kids close to the empty patch of grass where
the wasp sting occurred see that it's pointless using the tubes that lead there,
because the router's gone. So instead they send their beans in a slightly different
direction, maybe west when the bean should really be going south-west, and so
on. The kid to the west then sends the bean off in the right direction again,
south-west, and it's effectively skirted the empty patch of grass. This slows
the mechanisms down a bit, but the beans still get where they're going.
The real Internet was designed to be resilient to something
slightly worse than a wasp sting, it was developed by the military to cope with
nuclear war. The idea was that even if hundreds of routers were wiped out by scores
of bombs, the Internet would still work and important messages would get through.
DNS
We can go a couple of steps further with the jellybean
analogy. Let's imagine that all the kids sitting on the edge of the circle are
French, and all the kids in the middle are Chinese. All the messages on the beans
are written in French and the Chinese kids can't understand them. They don't need
to understand everything that's written on the bean, but for the system to work,
they do need to understand the direction and some of them need to understand the
receiver's name.
So a new set of kids join in as translators. They sit
near the edge of the circle and introduce a system of orange beans. Whenever anybody
wants to send a white bean, they have to send an orange bean first. The routers
know that orange beans must go to a translator, and the translators turn the French
that's written on these into Chinese and send it back. The outer circle kids now
have Chinese script they can write on their white beans (they're very gifted kids).
All the routers can read this and the white bean reaches its destination.
In the real world the translators are called Domain Name
Servers (DNS). On the real Internet they convert the letters of domain names into
numbers, since computers easily understand numbers but the alphabet is a bit of
a mystery to them. The numbers are called IP addresses (Internet Protocol addresses).
The IP address for www.nasa.gov is 198.116.142.34.
Everybody connected to the Internet has an IP address.
It's very similar to a street address and no two are the same. The IP address
effectively incorporates the direction for a jellybean as well as the recipient's
name. For example, the first three numbers in an IP address correspond roughly
(but not exactly) to the recipient's country.
When you type www.nasa.gov into your browser, your first
bean is sent to a Domain Name Server. This translates www.nasa.gov into 198.116.142.34
and sends that information back to you. Now you can address your white bean in
a way the routers can fully understand, and send it off. When the nasa.gov server
sends its coloured beans back, they don't have to go through the DNS system, because
the return address you sent with your white bean was already in numerical format.
Actually, your return address isn't usually determined
by your computer (though it may be if you're using a networked computer at work),
it's allocated by your ISP (Internet Service Provider). When your computer rings
up your ISP to get an Internet connection, you borrow one of your ISP's IP addresses
for your Internet session. The ISP then receives all your jellybeans and forwards
them on to you.
Packets
Perhaps the last useful bit of the jellybean analogy is
the size and nature of the beans themselves. Each jellybean corresponds to an
Internet data packet, and these packets are self-contained and have address information
(and their order) included in their headers, or labels. Inside the packet is some
digital data that your computer can understand. When it strings together the data
from a complete sequence of packets, it finishes up with an HTML page or a graphic
or possibly an email. This then shows up on your screen.
Although jellybeans are fairly consistent in size, Internet
data packets are not. They can even change size as they travel through the routers
of the Internet, which may split them into smaller packets or combine them into
larger ones.
The single white jellybean used in our analogy might start
off in reality as twenty packets sent from your computer, and could have turned
into ten or fifty by the time it reaches the Web server at the other end.
In terms of file size, a sequence of packets is generally
bigger than the data it carries. So a graphic on an HTML page that's 5k in size
might be carried by a sequence of packets totalling 7k altogether. This is partly
because the data may be transformed into a different format before it's put inside
the packets, but mainly because the packets carry header information, including
IP addresses and the order of reassembly, and this content is an overhead. That's
why if you measure the data flowing into your computer through the Internet and
then measure the amount that's showing up on your screen, the two don't correspond.
There's invariably a lot more data coming in than you get to see, and that's mainly
down to data packet overheads.
And that's enough technical mumbo-jumbo. Now I'm going
down to the local park with a giant box of jellybeans and a bag full of plastic
tubes. I've made arrangements for bail.
What
every Web site can find out about you
TinHat.com home
|