The problem with the current layered model of the Internet
Every computer science class that deals with networks explains the 7-layer OSI model. Open Systems Interconnect (OSI) defines 7 layers, each providing an abstraction for a certain function that a network application may need.
From top to bottom, the layers provide (roughly) the following functions:
The application layer implements the details of the application protocol (such as HTTP), which specifies the operations and data that the application understands (requesting a web page).
The presentation layer provides independence of data representation, and may also perform encryption.
The session layer sets up and manages sessions (think of a session as a conversation or dialogue) between the applications.
The transport layer handles individual chunks of data (think of them as words in the conversation), and can ensure that there is end-to-end reliability (no words or phrases get lost).
The network layer forwards the packets across the network, it provides such things as addressing and congestion control.
The datalink layer encodes data into bits and moves them between hosts. It handles errors in the physical layer. It has two sub-layers: Media access control layer (MAC), which says when hosts can transmit on the medium, and logical link control (LLC) that deals with error handling and control of transmission rates.
Finally, the physical layer is responsible for translating the bits into a signal (e.g. laser pulses in a fibre) that is carried between endpoints.
This functional layering provides a logical order for the steps that data passes through between applications. Indeed, existing (packet) networks go through these steps in roughly this order (however, some may be skipped).
However, when looking at current networking solutions in more depth, things are not as simple as these 7 layers seem to indicate. Consider a realistic scenario for a software developer working remotely. Usually it goes something like this: he connects over the Internet to the company Virtual Private Network (VPN) and then establishes an SSH tunnel over the development server to a virtual machine and then establishes another SSH connection into that virtual machine.
We are all familiar enough with this kind of technologies to take them for granted. But what is really happnening here? Let’s assume that the Internet layers between the home of the developer and his office aren’t too complicated. The home network is IP over Wi-Fi, the office network IP over Ethernet, and the telecom operater has a simple IP over xDSL copper network (because in reality operator networks are nothing like L3 over L2 over L1). Now, the VPN, such as openVPN, creates a new network on top of IP, for instance a layer 2 network over TAP interfaces supported by a TLS connection to the VPN server.
Technologies such as VPNs, tunnels and some others (VLANs, Multi-Protocol Label switching) seriously jumble around the layers in this layered model. Now, by my book these counter-examples prove that the 7-layered model is, to put it bluntly, wrong. That doesn’t mean it’s useless, but from a purely scientific view, there has to be a better model, one that actually fits implementations.
Ouroboros is our answer towards a more complete model for computer networks.