We've been learning that computers and computer traffic are shared experiences. Gone are the days when we directly connect devices together and the reasons for this are fairly simple: too many devices need to be connected to too many people over the same roads - there are only a limited number of data highways that are practical to send info over.
To effectively and safely travel these roads computers break down large amounts of data into multiple smaller enclosures called packets (there are also frames but we're just focusing on this very broad view). These packets are then sent scurrying along their routes together with other packets in the same way cars might be seen driving down the freeway. Each car has a destination in mind and each driver of the car can take the route she thinks is best to arrive at the final destination. Not all cars get to the same place using the same route, but in the end they all get there.
So, why in the world do we go to all the trouble of breaking apart our information into these packets? Here's a glimpse at a decision tree the first designers probably faced.
Let's imagine you want to connect together two schools, each on one end of the state and each with 100 computers.
Your first task is to connect your 100 computers together locally so you string a wire from building to building to connect everyone together, but how do these computers share this one wire? You also need to connect the two schools together without owning your own cable. You choose the telephone company which has the same problem you do - many people accessing each other over a shared wire - but at least they have a wire.
Your designers figure a way to share the wire with 10 computers at once. If more than 10 want to get on they have to wait. But what happens if the 10 users all try and send big files at the same time? It won't take long before the system will suffer major traffic jams, collisions, stalled traffic, blocked roads, construction zones, frustrated users and wait times on both ends of the connection that are awful. Not a great solution and what happens if the phone company disconnects you or has a hiccup in the connection between the two schools?
So then someone has a bright idea. Instead of trying to send big files all at once, hogging all the available space, what if we broke down big files into many little files? And, better still, all the little files were the same size, making sure that the traffic we send over our network was identical. Instead of tying up the roads with long dedicated convoys that stopped everyone else from traveling (big single files) we only use identical "small cars" traveling at the same speed and the only differences between cars are the passengers in the cars. If we did this, then we could allow as many people as necessary to get onto the shared wire at the same time - and because everyone is sending the same size bits of data, it wouldn't matter what they were sending - big files, little files, all share the road equally as needed.
If the phone company had a hiccup the other school would know some of the little files were missing and ask for them to be sent again. This is a much better solution than asking for the entire file back!
These identical cars are called packets and the different people in the cars are called the payload (the actual data we want).
Tomorrow we figure out how to get them sorted out.