Netwerkprotocollen: Zo communiceren computers

Een webpagina bezoeken of een e-mail versturen, het gaat allemaal erg snel en het lijkt zo vanzelfsprekend. Onderliggend zijn er echter heel wat netwerkprotocollen in de weer. Daarover lees je hier meer.

Elkaar de hand schudden of een diepe buiging maken: elke cultuur heeft zo haar eigen afspraken voor allerlei communicatievormen. Wil je efficiënt communiceren, dan kun je je maar best aan die regels houden. Tussen computers die met elkaar communiceren bestaan er net zo goed regels, heel strikte zelfs. Om op brede schaal communicatie mogelijk te maken zijn deze regels doorgaans goed gestandaardiseerd in regelsets oftewel netwerkprotocollen en die worden vastgelegd door erkende en onafhankelijke organisaties als het ISO (International Standardization Office) of het ITU (International Telecommunication Union).

De standaarden die voor het internet in gebruik zijn, vind je in detail beschreven in genummerde rcf’s (requests for comment). Nr 791 bijvoorbeeld behandelt IP (45 blz.), nr. 793 heeft het over TCP (85 blz.). Je vindt hier ook de datum waarop de rfc’s het laatst werden aangepast. Sommige zijn intussen behoorlijk verouderd en deze zijn vaak ook niet langer in gebruik.

Open Systems Interconnection

Hoe communicatie tussen (twee applicaties op) computers verloopt, kunnen we verduidelijken aan de hand van een eenvoudige metafoor: een (telefoon)gesprek tussen een Chinese en een Nederlandse politicus die elk alleen hun eigen taal spreken. Een boodschap van de Chinese politicus loopt dan bijvoorbeeld over een tolk Chinees-Engels, waarna die via een tolk Engels-Nederlands tot bij de Nederlandse politicus belandt – en omgekeerd.

Communicatie binnen een netwerkomgeving is uiteraard nog complexer, wat zich vertaalt in een structuur die uit meerdere lagen is opgebouwd. Die werd overigens al in 1983 in het osi-model gevat (Open Systems Interconnection). Dit model is een hiërarchisch opgebouwde protocolstack (stack betekent stapel) die uit een 7-tal lagen bestaat, waarbij elke volgende laag voortbouwt op de uitvoer van de vorige – vergelijkbaar dus met de ‘stack’ van onze twee politici.

Aan elke zijde doorlopen de data de diverse lagen in een welbepaalde volgorde: aan de kant van de zender vanaf de applicatie naar de fysieke laag, aan de kant van de ontvanger in omgekeerde volgorde, tot de data ook daar bij de juiste applicatie toekomen. Telkens wordt hierbij laag-specifieke informatie toegevoegd (zender) dan wel weer ‘afgepeld’ (ontvanger). De afbeelding boven dit artikel beeldt het osi-model uit.

Overigens is het wel zo dat communicatie over het internet op een vereenvoudigd osi-model steunt: het tcp/ip-model (zo genoemd omwille van de centrale rol van tcp en ip). Dit model bevat slechts vier lagen, maar zoals je in de afbeelding merkt is de structuur verder wel gelijk aan die van het osi-model.

TCP/IP

In een aankomend vervolg van dit artikel gaan we nader in op enkele protocollen uit diverse lagen van het osi-model, met speciale aandacht voor de lagen waarin het tcp- en ip-protocol opereren. Een degelijke kennis van de stack stelt ons namelijk beter in staat een en ander te optimaliseren, mogelijke kwetsbaarheden te begrijpen en eventuele verdedigingsmechanismen efficiënter in te zetten.

Het hoeft trouwens weinig te verbazen dat een tcp/ip-gebaseerd netwerk met heel wat kwetsbaarheden – en dus hacks en exploits – te verduren heeft. De basis van het internet ligt namelijk in het (D)Arpanet, een ontwerp onder de auspiciën van het Amerikaanse ministerie van defensie dat met het oog op een potentiële nucleaire aanval in eerste instantie een fouttolerant netwerk wilde opzetten.

Het toenmalige scenario uit 1969 voorzag echter geen grootschalig en interactief internetgebruik en dat verklaart mede waarom heel wat beveiligingsmechanismen eenvoudigweg als een soort add-on losjes bovenop bestaande protocollen werden geïmplementeerd.

Wireshark de netwerksniffer

Om goed inzicht te krijgen in de werking van een aantal protocollen kun je nauwelijks buiten een netwerksniffer alias protocolanalyzer. Een van de beste en tevens gratis tools is Wireshark. Tijdens de installatie (onder Windows) laat je tevens de recentste versie van WinPcap mee installeren, een bibliotheek met een driver om datapakketten ‘live’ te onderscheppen tot in de datalink-laag. In een notendop ga je hier als volgt mee aan de slag.

Media has no description

© PXimport

Allereerst selecteer je in het Capture-menu de gewenste netwerkinterface, bij voorkeur in de zogenoemde promiscue modus, waarna je de sessie start. Met Ctrl+E beëindig je de sessie weer. De data worden chronologisch gepresenteerd, met in het middenpaneel meer details over het pakket dat je bovenaan hebt geselecteerd (inclusief ip- en tpc-headers) en onderaan de inhoud van het datapakket in hex en ascii.

De data laten zich op twee manieren filteren. Zo kun je een actieve ‘capture filter’ instellen (via Capture, Capture Filters), bijvoorbeeld met een filterstring als host 149.210.181.106 and tcp port 8080, maar je kunt net zo goed (ook) een weergavefilter instellen. Dat kan via de Filter-balk bovenaan of met behulp van de Expression-knop (bijvoorbeeld tcp.srcport==80; bevestig met Apply).

Binnenkort gaan we wat dieper in op enkele veelgebruikte protocollen van vandaag de dag.

Tekst: Toon van Daele

Deel dit artikel
Voeg toe aan favorieten