The Internet is a complicated infrastructure, which is taking over our lives. Users should have some understanding of how this works, so that they better understand regulation or commercial impact of (new) measures. Most articles trying to explain the Internet make things very complex, and they don’t need to. There are only two concepts that you need to know to understand networking: layers and adaptations. Once you understand these concepts, you can fit them together to form a full networking stack. This explains how we do networking on the Internet, but also on other current, and future networks.
Computer Networks and Post Packages
Communication between computer applications on the network is done in small messages called packets. Each packet has some information attached to it (the infamous metadata) describing where it must go to and where it came from.
A computer networking packet is actually very similar to a package that you send through the mail. A package has a label on it, so that the post office knows where it should go to. At the local post office, many packages are stored together before they are collected by a delivery truck and brought to the nearest sorting center.
In this case the package must be sent internationally across the ocean. Since vans can’t cross the ocean that quickly, the post office puts a few packages together in a container, which is then shipped by airplane. At the other side of the ocean, the container is opened up, and the individual packages are loaded again into different delivery trucks. Finally the delivery man can see by the label on the package where it must be delivered to.
How the post compares to computer networking
In this scenario we can also see different examples layering and adaptations in action. The thing you want to send is prepared for sending by ‘adapting‘ it into a box with a label. This is similar to what happens when you want to send a data package on your local network: your computer takes the data, and wraps it into package with clearly defined ‘headers’ and possibly ‘footers’. These ‘headers’ contain similar information to a post-office label.
A layer is the way that you package something, you can, for example, put a letter either in an envelope or in a package. A letter is dropped into the letterbox and collected into satchels, whereas packages are just dropped at the post-office and handled individually most of the time. So you could say that boxes and envelopes are different layers. Similarly, a letter and a van are also different layers, but both can be used in the transportation of mail.
Once a package is at a post office, you could say that it is again wrapped or ‘adapted’ into a delivery truck, together with many similar packages. In networking too you can collect different packages together and adapt them into a new networking layer. 1
At the sorting center the packages are de-adapted from the delivery truck, the labels on the packages are examined, and then adapted again into a different transmission format: the container to fit on the airplane. This container is like a new packet, and also has a new collective label on it to send it to the right sorting center on the other side.
In networking this also happens when packets are transferred from one technology to another. DSL lines are based on telephony transmission standards which are different than most exchange points use for the transmission of data. So a DSL provider takes your packets, de-adapts them and adapts them again into a different networking layer.
At the other end of the ocean the process is reversed, and finally the thing you want to send is finally de-adapted or unpacked by the recipient to complete the delivery.
These basic concepts of layers and adaptations with labels are all that you need to understand networking on the Internet. TCP/IP actually has 5 different layers, which serve different purposes using special behavior and metadata on the labels of the packets.
The application layer is where the actual data to be sent comes from. A user can use an email application or web browser to transmit data across the internet. The data is converted from text to bits, with extra information on which mail server or web server the message should go to.
The transport layer examines the email address or the web server address of the upper layer and translates that to the actual Internet addresses, and then prepares the packet for transmission on the Internet.
The networking layer is like the delivery trucks, it takes what is handed to it, in whatever form and transmits the data locally across the network. Like the delivery truck it transfers data from one sorting-point to another, where it is again de-adapted and can be again adapted into another delivery truck.
The physical layer is how data is physically translated from bits on a computer to signals on a cable (either electronically or optically). The adaptation happens on both ends so that the transmitted data can be examined by the layer above.
Many Internet users use networking tunnels from time to time. An example of this is a VPN to your office, or to your home. As the name suggests, a VPN is a Virtual Private Network so it uses the network to create a virtual tunnel between you and the office network. It is like wrapping a package in a package, and asking the recipient to mail it again.
If we look at the computer network layering performed in this way, we are using a full TCP/IP stack, and instead of the application layer, we stack another set of networking and transport layer on top of it, before we get to the application.
TCP/IP versus OSI
Many computer networking textbooks use the standard OSI model to explain networking. The OSI model is a very old model which has been developed at the same time as TCP/IP. The OSI model describes 7 layers with different functions that a network protocol stack must implement to perform reliable and consistent networking. There was an actual implementation of the OSI protocol stack, but it never became as popular as the TCP/IP stack and it quickly withered into oblivion.
The theoretical model of the OSI stack still lives on as a way of teaching networking. I see no reason for this, as the OSI model does not fit neatly with the TCP/IP model. It is easy to see that 5 != 7, but even the layers of each model do not fit well with each other.
The model of a full networking stack should also be abandoned as a teaching tool, as it is becoming increasingly common to have tunneling. Either in a VPN, SSH or different ways of tunneling IPv6 traffic over IPv4 networks. The basic concepts of layers and adaptations are enough to explain networking stacks. They can still be used to explain new technologies such as Content Centric Networking, OpenFlow or RINA.
- In computer networking a package can also be fragmented into smaller packets where necessary. ↩