Je klikt op ‘verstuur’ en binnen een seconde hoor je bij de collega die tegenover je zit het welbekende geluidje dat je e-mail is ontvangen. Je gebruikt het elke dag, maar hoe werkt het nu echt: wat is de weg van een e-mail?
Het internet, wanneer ik me er een voorstelling van probeer te maken, zie ik een ingewikkeld netwerk voor me, met heel veel vertakkingen en enorme datacenters. En als ik me inlees over hoe een e-mail verstuurd wordt, verdwaal ik in lastige termen en raak ik totaal de weg kwijt. Maar zo ingewikkeld hoeft het volgens Aiko Pras, emeritus hoogleraar Internet Security van de Universiteit Twente, niet te zijn. “Computerwetenschappers willen graag alles heel exact uitleggen, en voor elk stapje zijn tien varianten mogelijk. Dan verzand je al snel in de details.”
Om dit te voorkomen heeft hij een vriendelijk ogende schematische tekening met legoblokjes gemaakt van de weg die een e-mail aflegt als ik via mijn NEMO Kennislink-account een bericht verstuur naar zijn adres bij de Universiteit Twente. Hij geeft er meteen een waarschuwing bij: “Dit is een versimpeling; er zijn vele alternatieven. Maar in grote lijnen zijn dit de belangrijkste stappen.”
De rode laag: SMTP
Ik schrijf een e-mail op mijn computer met mijn NEMO Kennislink-account. Zodra ik op ‘verzend’ klik, stuurt mijn computer de mail eerst naar de mailserver van NEMO Kennislink. Dat gaat via SMTP, Simpel Mail Transfer Protocol: een standaardmanier voor het versturen van email. Vergelijk het met een brief versturen: naam en adres gegevens gaan in het midden van de envelop, de postzegel in de rechterbovenhoek. De mail gaat dus via SMTP naar de server van NEMO Kennislink, en dan weer via SMTP naar de mailserver van de Universiteit Twente. Daar staat de mail in afwachting van het moment waarop Aiko Pras zijn e-mail gaat bekijken. Zodra Pras zijn mailprogramma opent, wordt er een ander protocol gebruikt, IMAP (Internet Messaging Access Protocol), om de mail binnen te halen.
In dit voorbeeld bekijken we e-mail, maar het zou ook over gamen kunnen gaan of surfen op het web. De rode laag, de applicatielaag, vervang je dan door een andere, maar de lagen eronder blijven gelijk.
De blauwe laag: TCP
De berichtjes die je over het internet verstuurt, mogen niet te groot zijn. Mocht je iets willen versturen groter dan 1500 karakters, wat al snel het geval is, dan zorgt het zogeheten TCP-protocol (Transmission Control Protocol) ervoor dat het in stukjes wordt geknipt en naar de mailserver van NEMO Kennislink wordt gestuurd. Eenmaal daar wordt het bericht weer netjes in elkaar geplakt. Vervolgens regelt dat TCP-protocol dat de mail van de NEMO Kennislink-server opnieuw in stukjes wordt geknipt en naar de server van de Universiteit Twente wordt gestuurd. “TCP hakt in stukjes en zorgt aan de ontvangende kant dat het weer netjes in elkaar wordt geplakt.”
Omdat de netwerklaag eronder niet altijd betrouwbaar is, raken er wel eens informatieblokjes kwijt. Daarom geeft TCP aan elk blokje een volgordenummertje. Aan de ontvangende kant kijkt TCP vervolgens of hij alles wel heeft binnengekregen. Mocht er iets verloren zijn, dan geeft hij een seintje: stuur het nog een keer.
De netwerklaag
Tussen mijn computer en de mailserver van NEMO Kennislink zit misschien iets van honderd meter, maar tussen de server van NEMO Kennislink en de Universiteit Twente zijn dat wel honderden kilometers. Er is geen rechtstreekse verbinding van de mailserver van NEMO Kennislink naar de Universiteit Twente. Daar zitten verschillende routers tussen, verschillende knooppunten. Is er een manier om te zien hoe een bericht van mijn computer naar die van Pras nu echt loopt? “Ja hoor, eenvoudig. Open maar een terminal”, antwoordt Pras enthousiast.
Nu wordt het leuk! Het is al heel wat jaar geleden dat ik mijn computer voor iets anders dan tekstverwerking gebruikte, dus het duurt even voor ik het vertrouwde terminalschermpje waarmee je rechtstreeks commanda’s aan je computer kunt geven en kunt programmeren, in beeld krijg. Op de aanwijzing van Pras typ ik in ‘traceroute smtp.utwente.nl’, de naam van de server van de Universiteit Twente. De computer is even aan het nadenken, en dan volgt stapje voor stapje de route die een informatiepakketje aflegt van mijn computer naar de universiteit.
In acht stapjes, opgeteld 0,76 seconde, is mijn berichtje bij de universiteit aangekomen. Maar als ik nog een pakketje verstuur, kan het een heel andere route nemen. Welke route hij neemt, maakt niet uit, als hij maar op het juiste adres terechtkomt.
Die netwerklaag werkt met IP-adressen (Internet Protocol). “Maar dat zijn lastige rijen van getallen, vergelijkbaar met telefoonnummers. Vandaar dat we ze namen hebben gegeven”, legt Pras uit. “Www.utwente.nl, dat kun je onthouden.” Er is dus een vertaalslag nodig tussen die getallen met puntjes ertussen die de netwerklaag gebruikt, en wat mensen kunnen onthouden. “Dat wordt gedaan met DNS: Domain Name Service. Eigenlijk een soort telefoonboek.”
Handelswapen
Zodra ik mijn gevonden route deel met Pras, val ik meteen door de mand. “Ha, ik zie er geen Cloudflare bij staan, dus je bent niet op kantoor aan het werk.” Inderdaad! Pras heeft vanaf zijn computer contact gelegd met de NEMO Kennislink-server en die bleek via Cloudflare te lopen, een Amerikaans bedrijf dat internetdiensten levert. “SMTP, TCP en DNS zijn allemaal open protocollen. Er is een organisatie, de IETF (Internet Engineering Task Force) die regelmatig overlegt over dit soort standaarden. Als je zelf een server zou willen bouwen, dan kun je de standaarden op de website opzoeken en aan de slag gaan. We hebben het nu over standaard open protocollen, maar je kunt ook bij bepaalde bedrijven diensten afnemen, zoals bij Cloudflare. Dat kan makkelijk zijn. Daar staat dan wel weer tegenover dat je afhankelijk bent van een bedrijf wat onder de Amerikaanse wet valt en waarvan je dus moet uitgaan dat de veiligheidsdienst daar wel naar kijkt.”
Bij open protocollen, zoals in het lego-plaatje, weet iedereen precies hoe het in elkaar steekt en wat er met de data gebeurt. “Maar”, waarschuwt Pras, “bij dit soort diensten weet je het niet. Exchange van Microsoft is heel handig, QUIC van Google ook. Het werkt goed, maar alles is versleuteld en niemand weet wat er gebeurt.” Alles uitbesteden heeft dus ook minder positieve kanten. “We moeten niet al onze kroonjuwelen weggeven. Zolang de verhoudingen goed zijn met de VS, is alles geweldig. Maar er hoeft maar een keer een idioot aan het hoofd te staan, en het kan totaal omslaan. ICT wordt nu nog niet gebruikt als handelswapen, maar in de toekomst zal het wel als wapen gebruikt worden.”