aboutsummaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2020-01-11 15:12:15 +0100
committerDimitri Staessens <dimitri@ouroboros.rocks>2020-01-11 15:12:15 +0100
commit612e99161f4faf415eeeaf70908f416debfa291e (patch)
treea3c524ff0328cec6536650f418d238cc24993383 /content
parentda32d3f2cabace86ca1d19bd06ba8fe05020f8ca (diff)
downloadwebsite-612e99161f4faf415eeeaf70908f416debfa291e.tar.gz
website-612e99161f4faf415eeeaf70908f416debfa291e.zip
content: Split OSI overview to different section
Diffstat (limited to 'content')
-rw-r--r--content/en/docs/Concepts/problem_osi.md80
1 files changed, 80 insertions, 0 deletions
diff --git a/content/en/docs/Concepts/problem_osi.md b/content/en/docs/Concepts/problem_osi.md
new file mode 100644
index 0000000..845de5e
--- /dev/null
+++ b/content/en/docs/Concepts/problem_osi.md
@@ -0,0 +1,80 @@
+---
+title: "The problem with the current layered model of the Internet"
+author: "Dimitri Staessens"
+
+date: 2019-07-06
+weight: 1
+description: >
+ The current networking paradigm
+---
+
+{{<figure width="40%" src="/docs/concepts/aschenbrenner.png">}}
+
+Every computer science class that deals with networks explains the
+[7-layer OSI model](https://www.bmc.com/blogs/osi-model-7-layers/).
+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. \ No newline at end of file