1. inleiding Misschien zonder het te beseffen, maak je dagelijks gebruik van computernetwerken. Of je nu WhatsApp gebruikt om je vrienden een bericht te sturen of Google Chrome om iets op te zoeken, je zult ervoor toegang moeten hebben tot een netwerk. Bij WhatsApp op je telefoon is dat typisch een draadloos netwerk, bij een browser op een PC kan het of een draadloos of een draadnetwerk zijn. Kortom netwerken zijn overal en we maken er dagelijks gebruik van. Daarom is het handig om er iets van af te weten. Welkom bij de module computernetwerken. We gaan het in deze module hebben over datacommunicatie en computernetwerken en de rol die ze spelen in de maatschappij?
Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding – NietCommercieel – GelijkDelen 3.0 Unported licentie
2. datacommunicatie Om te snappen hoe netwerken zijn opgebouwd en waarom, is het belangrijk te weten hoe apparatuur communiceert. De film geeft op een hoog niveau aan hoe het internet werkt. In werkelijkheid is het complexer en we gaan in deze module ook iets dieper in op de materie. Het internet is een prima voorbeeld van een netwerk omdat het veel gebruikt wordt en complex is zodat alle aspecten van netwerken er in gebruikt worden. In de film komen een aantal concepten aan bod die voor het netwerk zelf niet echt belangrijk zijn zoals server, client, webpagina en ISP. Maar er worden ook begrippen genoemd die wel heel belangrijk zijn zoals protocol, IP adres, pakketten, routers, en layers (lagen). Om te kunnen communiceren moeten apparaten weten welke "taal" ze moeten spreken. Dit is vastgelegd in zogenaamde protocollen. Je kunt dit vergelijken met communicatie tussen mensen. Als we naar Engeland op vakantie gaan dan weten we dat ze daar Engels spreken en nauwelijks Nederlands. Het is daarom handig om Engels te leren voor we op vakantie gaan zodat we ons verstaanbaar kunnen maken. Een natuurlijke taal zoals Engels of Nederlands is feitelijk niets meer dan een verzameling afspraken. Er is afgesproken hoe je woorden moet schrijven, wat woorden betekenen en hoe je er zinnen mee maakt. Voor protocollen geldt hetzelfde. Protocollen zijn verzamelingen regels en afspraken waaraan apparatuur zich moet houden om te kunnen communiceren. In de film heb je al een protocol gezien, namelijk IP (Internet Protocol). Dit is een zeer belangrijk protocol omdat alle apparatuur in een computernetwerk een uniek IP adres moet hebben. Deze film geeft een andere kijk op het internet met de nadruk op protocollen en waarom ze belangrijk zijn. Er bestaan een heleboel protocollen zoals je kunt zien in Figuur 1 en wat je daar ziet is slechts een klein gedeelte van alle protocollen.
Figuur 1: een ordening van protocollen1
1
technet.microsoft.com/en-us/library/cc786900%28v=ws.10%29.aspx -2-
Om alles overzichtelijk te houden heeft men besloten protocollen te verdelen over lagen (layers). Iedere laag heeft zijn eigen verantwoordelijkheid binnen het communicatieproces. Lagen worden hiërarchisch geordend in zogenaamde protocol stacks. In Figuur 1 zien we de TCP/IP stack (al spreken we ook van TCP/IP model en TCP/IP protocol suite zoals in het figuur te zien is). Het TCP/IP model wordt veel gebruikt binnen populaire besturingssystemen. We zien ook dat er binnen een laag meerdere protocollen kunnen zitten. We zien bijvoorbeeld dat IP en IPsec in dezelfde laag staan. Beide hebben dezelfde verantwoordelijkheid maar doen op detail niveau iets anders. Zo is IPsec de veilige (secure) versie van IP. Het stapelen van lagen is bewust gedaan en de belangrijkste doelen zijn het scheiden van de verantwoordelijkheden en hardware abstractie. Dit is een moeilijke term voor het afschermen van de gebruiker voor wat er in detail gebeurt in de hardware en het netwerk. Het fysieke netwerk zit onder de onderste laag en de gebruiker, vaak een programmeur, ziet applicaties die boven de bovenste laag zitten. Als je aan het browsen bent op het internet gebruik je hiervoor een webbrowser en die gebruikt het HTTP (HyperText Transfer Protocol) uit de Applicatie Laag.
3. het TCP/IP model In deze paragraaf bespreken we het TCP/IP model. In de film zie je de lagen van het TCP/IP model en hoe data wordt gesegmenteerd (segmentation) en ingekapseld (encapsulation). Door het segmenteren wordt data in segmenten, pakketten, frames en bits opgedeeld. De bits worden uiteindelijk door routers en switches via een netwerk, bijvoorbeeld het internet, doorgegeven. Het woord pakket ben je al in eerdere films tegengekomen, maar wat is een pakket nu precies en waarom horen we de term zo vaak? In Tabel 1 zie je een overzicht van de TCP/IP stack met de namen van de lagen, de verantwoordelijkheden per laag en de eenheid van data. Bij de Internet Laag zie je als eenheid het pakket staan. Zoals je verderop leert, werken routers ook op de Internet Laag en daarom met pakketten. Dat is de reden dat de pakketten zo vaak worden genoemd in films.
-3-
Tabel 1: overzicht van TCP/IP lagen
laag 4 Applicatie
eenheid
verantwoordelijkheden
data
toegang voor gebruikersapplicaties
tot stand brengen van end-to-end verbindingen
3
segment
Transport
2
pakket
Internet 1 Netwerktoegang
frame/bit
opdelen in en samenvoegen van pakketten
(optioneel) foutherstel
flow control
logische adressering
bepalen van pakketpaden (load balancing)
fysieke adressering
fysieke versturing (zenden van bits)
Over het aantal lagen en de namen van de lagen in het TCP/IP model bestaat veel discussie. Zo wordt de Internet Laag ook wel Netwerk Laag2 genoemd en de Netwerktoegang Laag3 ook wel Link Laag. Het aantal lagen varieert tussen de 3 en 5. Volgens de originele IETF standaard zijn er echter 4 lagen. De meeste implementaties bestaan ook uit vier lagen en dat is de reden dat we in deze module ook spreken van 4 lagen. Om een TCP/IP stack te implementeren, heb je minimaal de protocollen nodig die je in Tabel 2 ziet. Software, die gebruik maakt van een TCP/IP stack, kan direct gebruik maken van TCP of UDP, daarom hoeven er geen protocollen in de Applicatie Laag te zitten. Omdat internetten één van de meest gebruikte toepassing is, staat HTTP echter ook in de tabel. Zoals je in andere figuren kunt zien, wordt ICMP ook wel eens in de Transport Laag gezet en ARP in de Link Laag. Tabel 2: TCP/IP stack en minimale protocollen
laag
protocollen minimaal nodig
Applicatie
DHCP, DNS, HTTP
Transport
TCP, UDP
Internet
IP
Netwerktoegang IEEE 802.x
2 3
Network Layer Network Access/Interface Layer -4-
4. protocollen Je hebt intussen al redelijk wat protocollen de revue zien passeren. Gelukkig hoef je alleen de relevantste te kennen en die gaan we hier kort bespreken.
IP(sec) IP staat voor Internet Protocol. Dit protocol zorgt ervoor dat pakketten over een netwerk, bijvoorbeeld het internet, gerouteerd kunnen worden naar hun eindbestemming. Routeren wordt gedaan op basis van IP adressen. IP hoort thuis in TCP/IP laag 2 (de Internet Laag). De weg die een IP pakket aflegt wordt dynamisch bepaald tijdens het routeren. Het netwerk zal proberen een pakket zo snel mogelijk op zijn eindbestemming te krijgen. Dat betekent dat pakketten die bij elkaar horen, omdat ze delen zijn van bijvoorbeeld dezelfde foto, ieder via een andere weg hun eindbestemming kunnen bereiken. IP garandeert niet dat een pakket aankomt. Een pakket mag een maximaal aantal apparaten bezoeken (hops maken) en als dat aantal overschreden wordt dan wordt het pakket weggegooid. Hoger liggende lagen zijn verantwoordelijk om ervoor te zorgen dat uiteindelijk alle pakketten aankomen. Voor meer informatie kun je kijken op Wikipedia. Er zijn twee versies van het protocol. IPv4 is de oude versie. In IPv4 bestaan IP adressen uit 32 bits waardoor je maximaal 2
32
IP adressen kunt hebben, dat zijn er
bijna 4,3 miljard. Omdat bepaalde adressen niet gebruikt mogen worden en IP adressen meestal in ranges worden uitgegeven aan Internet Service Providers (ISP) zijn er in de praktijk maar een fractie van de 4,3 miljard adressen beschikbaar. Omdat het aantal benodigde IP adressen snel groeide voorzag men dat IPv4 niet meer zou voldoen. Daarom is IPv6 ontwikkeld. In IPv6 bestaan adressen uit 128 bits waardoor je maximaal 2128 adressen kunt hebben, dat zijn er zo'n 3,4 x 1038. Als je daar slechts 1 promille van kunt gebruiken houd je altijd nog heel veel adressen over. IPsec is de security versie van IP. Deze wordt gebruikt om pakketten beveiligd te versturen over het netwerk. Het voordeel hiervan is dat applicaties geen rekening hoeven te houden met beveiligingsaspecten voor het versturen van data over een netwerk. Dit is wel noodzakelijk bij beveiligingsprotocollen in hogere netwerkstack lagen. Verder lijkt het erop dat Deep Packet Inspection (DPI) niet meer mogelijk is als IPsec wordt toegepast.
-5-
TCP TCP staat voor Transmission Control Protocol en hoort thuis in TCP/IP laag 3 (de Transport Laag). Dit protocol zorgt ervoor dat segmenten worden opgedeeld in pakketten en worden doorgegeven aan de Internet Laag en omgekeerd. TCP/IP zorgt ervoor dat alle pakketten die bij hetzelfde segment horen ook daadwerkelijk aankomen. Pakketten die verloren gaan worden door TCP opnieuw verstuurd. Daarnaast doet TCP nog foutherkenning en herstel om beschadigde pakketten te repareren. Dit zorgt ervoor dat TCP relatief traag is. Voor meer informatie kun je kijken op Wikipedia. Ook via TCP kan beveiliging worden toegepast. Hiervoor worden typisch SSL (Secure Sockets Layer) of diens opvolger TLS (Transport Layer Security) gebruikt. Deze protocollen zitten in de Application Layer.
UDP UDP staat voor User Datagram Protocol en hoort thuis in TCP/IP laag 3 (de Transport Laag). Dit protocol heeft nagenoeg dezelfde functionaliteit als TCP maar het zorgt niet voor foutcorrectie en opnieuw verzenden van verloren gegane pakketten. Hierdoor is UDP veel sneller dan TCP maar ook onbetrouwbaar. De ruimte in een segment van een verloren gegaan pakket wordt simpelweg opgevuld met nullen. Voor meer informatie kun je kijken op Wikipedia. SSL en TLS kunnen ook op UDP gebruikt worden maar komt minder vaak voor.
HTTP(S) HTTP staat voor HyperText Transfer Protocol en hoort thuis in TCP/IP laag 4 (de Applicatie Laag). Het is het protocol waar webbrowsers gebruik van maken. Het is speciaal ontworpen om hypertext media te verzenden en ontvangen. HTTP maakt typisch gebruik van TCP maar het werkt ook op UDP. HTTP werkt op basis van adressen die we URI (Uniform Resource Identifier) noemen. Een adres van een webpagina is een speciale URI die we URL (Uniform Resource Locator) noemen. Voor meer informatie kun je kijken op Wikipedia. HTTPS staat voor HTTP Secure en is een protocol waar webbrowsers gebruik van kunnen maken om data beveiligd te versturen en ontvangen. Het is eigenlijk geen apart protocol maar een implementatie van HTTP op SSL of TLS.
-6-
DNS DNS staat voor Domain Name System en hoort thuis in TCP/IP laag 4 (de Applicatie Laag). DNS is gebaseerd op speciale servers (DNS servers) die IP adressen vertalen naar server/host namen en andersom. Deze servers bevinden zich onder andere bij je ISP. Omdat je ISP een DNS server heeft kun je in de adresbalk van je webbrowser google.nl typen in plaats van één van de IP adressen in de range van 208.117.244.20 t/m 27 van de Google servers. Voor meer informatie kun je kijken op Wikipedia.
DHCP DHCP staat voor Dynamic Host Configuration Protocol en hoort thuis in TCP/IP laag 4 (de Applicatie Laag). Het configuratie gedeelte van DHCP runt op netwerkapparatuur die IP adressen uit kan delen. Door DHCP kan deze apparatuur onder andere automatisch IP adressen geven aan computers of andere apparaten, zoals een mobiele telefoon, die zich aanmelden op het netwerk. Zoals je weet moet ieder apparaat binnen een netwerk een uniek IP adres hebben. Om dit te garanderen als iedereen apparatuur met de hand IP adressen moet geven is onmogelijk. Daarom is DHCP onmisbaar om bijvoorbeeld het internet goed te laten werken. DHCP zorgt bovendien voor gebruiksgemak bij het aansluiten van apparatuur op een netwerk. Een apparaat bij je thuis (of op school) zit feitelijk op twee netwerken: het thuisnetwerk en het internet. Het heeft daarom ook te maken twee IP adressen: één public (publiek/openbaar) en een private (lokaal/privé) IP adres. Het lokale IP adres is het adres van het apparaat op het LAN (dus het thuisnetwerk). Het ziet er meestal uit als 192.168.x.y. Het publieke IP adres is het adres van je router/gateway op het WAN (meestal het internet). Dit adres is door anderen op het WAN te zien. Het IP adres dat een, op het netwerk aangesloten, apparaat krijgt kan voor onbepaalde tijd zijn of tijdelijk. Als het tijdelijk is dan spreken we van een lease en is er een leasetijd. Als de leasetijd verstreken is moet het apparaat het IP adres vernieuwen of vrijgeven. Doorgaans zal een DHCP server proberen hetzelfde apparaat steeds hetzelfde IP adres te geven maar er is geen garantie dat dit lukt bij een tijdelijk IP adres. DHCP werkt via een speciale manier op het UDP protocol. Met de komst van IPv6 is er ook een DHCPv6 gekomen. Voor meer informatie kun je kijken op Wikipedia.
-7-
5. computernetwerken Zoals gezegd zijn computernetwerken overal. Het zijn niet de enige netwerken want ook voor telefonie en televisie bestaan aparte netwerken. In deze module kijken we echter alleen specifiek naar computernetwerken. Computernetwerken komen voor in allerlei soorten en maten. Van het netwerk dat je thuis gebruikt tot het internet waar de hele wereld gebruik van maakt. Een netwerk dat in een beperkte omgeving gebruikt wordt zoals een thuis of bedrijfsnetwerk noemen we en LAN (Local Area Network). Een groter netwerk, bijvoorbeeld in een stad, stedelijk gebied of provincie, wordt wel eens MAN (Metropolitan Area Network) genoemd maar meestal spreken we meteen van een WAN (Wide Area Network).
6. netwerkapparatuur Om netwerken te maken is hardware nodig die ervoor zorgt dat er pakketten over het netwerk verstuurd kunnen worden. Vergelijk het met een distributienetwerk voor de brieven- of pakketpost waarin meerdere bedrijven werkzaam zijn die post verspreiden en waarbij er per bedrijf meerdere locaties zijn waar post wordt gesorteerd en tijdelijk bewaard wordt. We gaan hier kort een aantal apparaten en hun eigenschappen bespreken die essentieel zijn om netwerken te kunnen bouwen.
NIC NIC staat voor Network Interface Controller en is onderdeel van het apparaat waarmee je communiceert, zoals je smartphone of PC. Traditioneel werd de NIC ook wel netwerkkaart of –adapter genoemd. Het hoeft echter geen fysiek aparte kaart te zijn, tegenwoordig is een NIC meestal geïntegreerd op het moederbord. Een NIC kan zowel voor bedrade als draadloze communicatie geschikt zijn. De meeste netwerkadapters voor bedrade communicatie ondersteunen tegenwoordig 10/100/1000 Ethernet. Dat wil zeggen dat ze op maximaal 1 Gbit/s kunnen communiceren. Voor meer details zie Wikipedia. Netwerkadapters voor draadloze communicatie ondersteunen meestal een IEEE 802.11 variant (Wi-Fi) en kunnen met een maximale snelheid van 54 Mbit/s communiceren. Voor meer details zie Wikipedia. Iedere netwerkadapter heeft een unieke identificatie nodig. Hiervoor wordt het MAC (Media Access Control) address gebruikt. Het adres bestaat uit 48 bits waardoor er 248 adressen zijn. Dat zijn ongeveer 281 x 1012 adressen en deze kunnen allemaal uitgegeven worden. Voor meer details zie Wikipedia. De netwerkadapter communiceert met de onderste lagen van een netwerkstack. In het geval van TCP/IP is dit de Link Laag. -8-
switch Een switch is één van de apparaten die in sternetwerken worden gebruikt om alle communicatie te regelen. Het is een zogenaamde centrale node. De aansluitingen op een switch heten poorten. Een switch is actief, dat wil zeggen dat hij data, die binnenkomt, bekijkt en naar het goede aangesloten apparaat doorstuurt. Wat het goede apparaat is, kan de switch zien aan het MAC adres dat in de data zit. Om data naar het juiste apparaat door te sturen zit er software in een switch. Er hoeft echter maar een klein deel van een netwerkstack (TCP/IP laag 1) geïmplementeerd te worden omdat er alleen met MAC adressen wordt gewerkt. Voor meer details zie Wikipedia.
router Een router is het slimmere broertje (of zusje) van de switch. Met een switch kun je apparaten met elkaar verbinden maar met een router kun je ook netwerken met elkaar verbinden. Dat gebeurt bij je thuis bijvoorbeeld ook. In je huis staat ergens een router die jullie LAN verbindt met het netwerk van je ISP. Een router wordt slimmer dan een switch genoemd omdat deze data routeert op basis van IP adres in plaats van MAC adres. Dat wil ook zeggen dat er meer software in een router zit. Daardoor kan deze ook extra functionaliteit aanbieden bovenop het routeren van pakketten. De meeste routers bieden functionaliteit aan zoals een firewall, DHCP, DNS, content filtering, NAT enzovoorts. Om dit alles te kunnen implementeert de software van een router de netwerkstack tot en met de Internet Laag. Voor meer details zie Wikipedia. De meest routers kunnen ingesteld worden als gateway. Op deze manier kunnen ze ook een verbinding maken tussen netwerken die verschillende protocol stacks gebruiken om te communiceren. Er zijn ook speciale routers die niet twee, maar meerdere netwerken met elkaar kunnen verbinden en die ook netwerken met verschillende topologieën kunnen verbinden. Dit soort routers noemen we vaak bridges.
WAP WAP staat voor Wireless Access Point en zorgt ervoor dat een draadloos apparaat of netwerk aangesloten kan worden op een draadnetwerk. Een WAP kan een losse module zijn die aangesloten wordt op een traditionele router of onderdeel van de router zijn, zie Fout! Verwijzingsbron niet gevonden.. Beveiliging is een belangrijk aspect van een WAP omdat het bereik ervan vaak reikt tot buiten de grenzen van bijvoorbeeld een huis of bedrijf. Cryptografie methodes zoals WEP, WPA en WPA2 spelen hier een rol. Voor meer details zie Wikipedia.
-9-