Regels
Afbeelding: De drie bekendste computernetwerktopologieën: lijn (ketting/bus), ring en ster.
In computers draait alles om logica, en logica draait om het volgen van regels. Computernetwerken zijn een beetje als het leger: alles in een netwerk moet met bijna militaire precisie worden georganiseerd en het moet zich gedragen volgens zeer duidelijk omschreven regels. In een LAN, bijvoorbeeld, kun je dingen niet zomaar met elkaar verbinden: alle nodes (computers en andere apparaten) in het netwerk moeten worden verbonden in een ordelijk patroon dat bekend staat als de netwerktopologie. Je kunt nodes verbinden in een simpele lijn (ook wel een daisy chain of bus genoemd), waarbij elke node verbonden is met de volgende inline. U kunt ze in een stervorm verbinden, waarbij de verschillende apparaten uitstralen vanuit een centrale controller die bekend staat als de netwerkserver. Of u kunt ze in een lus verbinden (over het algemeen bekend als een ring). Alle apparaten in een netwerk moeten ook duidelijk gedefinieerde regels volgen (protocollen genoemd) wanneer ze communiceren, om er zeker van te zijn dat ze elkaar begrijpen – zodat ze bijvoorbeeld niet allemaal op precies hetzelfde moment berichten proberen te versturen, wat verwarring veroorzaakt.
Toegang en beveiliging
Omdat een machine in een netwerk zit, betekent dat niet automatisch dat elke andere machine en elk ander apparaat er toegang toe heeft (of er toegang toe kan krijgen). Het Internet is een duidelijk voorbeeld. Als je online bent, krijg je toegang tot miljarden webpagina’s, die eenvoudigweg bestanden zijn die zijn opgeslagen op andere machines (servers) die over het hele netwerk verspreid zijn. Maar je kunt geen toegang krijgen tot elk bestand op elke computer die is aangesloten op het Internet: je kunt mijn persoonlijke bestanden niet lezen en ik de jouwe niet, tenzij we daar specifiek voor kiezen.
Permissies en veiligheid staan centraal bij het idee van netwerken: je kunt alleen toegang krijgen tot bestanden en bronnen delen als iemand je daarvoor toestemming geeft.De meeste personal computers die verbinding maken met het Internet staan uitgaande verbindingen toe (zodat je in theorie met elke andere computer kunt linken), maar blokkeren de meeste inkomende verbindingen of verbieden ze volledig.Servers (de machines op het Internet die webpagina’s en andere bestanden vasthouden en serveren) hanteren een soepeler beleid ten aanzien van inkomende verbindingen. U hebt waarschijnlijk wel eens gehoord van hacking, wat in één betekenis van het woord betekent het verkrijgen van ongeoorloofde toegang tot een computernetwerk door het kraken van wachtwoorden of het omzeilen van andere veiligheidscontroles. Om een netwerk veiliger te maken, kunt u een firewall toevoegen (een fysiek apparaat of een stukje software op uw computer, of beide) op het punt waar uw netwerk aansluit op een ander netwerk of het Internet om alle ongeoorloofde, inkomende toegangspogingen te bewaken en te verbieden.
Wat maakt een netwerk?
Om een netwerk te maken, hebt u knooppunten en verbindingen (soms links genoemd) tussen hen nodig.Het verbinden van de knooppunten betekent het maken van een soort tijdelijke of permanente verbinding tussen hen. In het laatste decennium zijn draadloze verbindingen een van de populairste manieren geworden om dit te doen, vooral thuis. In kantoren zijn bekabelde verbindingen nog steeds gebruikelijker, niet in de laatste plaats omdat zij over het algemeen sneller en veiliger zijn en omdat veel nieuwere kantoren al over netwerkbekabeling beschikken.
Photo: Als uw laptop geen netwerkkaart heeft, kunt u er gewoon een PCMCIA-adapter zoals deze inpluggen. De adapter heeft een ingebouwde netwerkkaart.
Afgezien van computers, randapparatuur en de verbindingen daartussen, wat heb je nog meer nodig? Elk knooppunt in een netwerk heeft een speciaal circuit nodig dat bekend staat als een netwerkkaart (of, formeler gezegd, een netwerkinterfacekaart of NIC) om te vertellen hoe het met het netwerk moet communiceren. De meeste nieuwe computers hebben standaard een netwerkkaart ingebouwd. Als u een oudere computer of laptop hebt, moet u wellicht een apart insteekcircuit aanbrengen (of, in een laptop, een PCMCIA-kaart toevoegen) om uw machine met een netwerk te laten communiceren. Elke netwerkkaart heeft zijn eigen afzonderlijke numerieke identificatiecode, bekend als een MAC-code (media access control) of LAN MAC-adres. Een MAC-code is zoiets als een telefoonnummer: elke machine op het netwerk kan met een andere machine communiceren door een bericht te zenden met vermelding van zijn MAC-code. Op dezelfde manier kunnen MAC codes worden gebruikt om te bepalen welke machines op een netwerk toegang hebben tot bestanden en andere gedeelde bronnen. Ik heb bijvoorbeeld mijn draadloze verbinding met het Internet zo ingesteld dat slechts twee MAC-codes er ooit toegang toe kunnen krijgen (door de toegang te beperken tot de netwerkkaarten die in mijn twee computers zijn ingebouwd). Dat voorkomt dat mensen in nabijgelegen gebouwen (of op straat) mijn verbinding kraken of per ongeluk gebruiken.
Hoe groter je een netwerk maakt, hoe meer extra onderdelen je moet toevoegen om het efficiënt te laten werken. Signalen kunnen maar tot een bepaalde afstand door kabels of draadloze verbindingen lopen, dus als je een groot netwerk wilt maken, moet je apparaten toevoegen die repeaters worden genoemd en die in feite signaalversterkers zijn. U kunt ook bruggen, schakelaars en routers nodig hebben – apparaten die helpen netwerken (of delen daarvan, die segmenten worden genoemd) aan elkaar te koppelen, het onderlinge verkeer te regelen en verkeer van het ene deel van een netwerk naar het andere door te sturen.
Photo: Een draadloze router zoals deze, gemaakt door Netgear, vormt het hart van veel PAN’s thuis.
Inzicht in computernetwerken met lagen
Photo: Computerarchitectuur: We kunnen computers in lagen denken, van de hardware en het BIOS aan de top tot het besturingssysteem en de toepassingen aan de top.
Computers zijn machines voor algemeen gebruik die voor verschillende mensen verschillende dingen betekenen. Sommigen van ons willen gewoon basistaken uitvoeren, zoals tekstverwerking of chatten met vrienden op Facebook, en het kan ons niet schelen hoe dat onder de dekmantel gebeurt, of zelfs dat we daarvoor een computer gebruiken (als we een smartphone gebruiken, denken we waarschijnlijk niet eens dat wat we doen “computeren” is – of dat het installeren van een nieuwe app in feite computerprogrammeren is). Aan de andere kant van het spectrum vinden sommigen het leuk om hun computer aan te passen zodat hij sneller werkt, met snellere processors of meer geheugen, of wat dan ook; voor geeks is rondneuzen in computers een doel op zich. Ergens tussen deze uitersten zijn er gematigd technisch onderlegde mensen die computers gebruiken om alledaagse taken uit te voeren met een redelijk begrip van hoe hun machines werken. Omdat computers verschillende dingen betekenen voor verschillende mensen, kan het ons helpen ze te begrijpen door te denken aan een stapeling van lagen: hardware onderaan, het besturingssysteem ergens daarbovenop, dan toepassingen op het hoogste niveau. Je kunt op elk van deze niveaus met een computer “werken” zonder noodzakelijkerwijs aan de andere lagen te denken. Niettemin wordt elke laag mogelijk gemaakt door dingen die op lagere niveaus gebeuren, of je je daar nu bewust van bent of niet. Dingen die op de hogere niveaus gebeuren, kunnen op veel verschillende manieren op de lagere niveaus worden uitgevoerd; je kunt bijvoorbeeld een webbrowser als Firefox (een toepassing) op veel verschillende besturingssystemen gebruiken, en je kunt verschillende besturingssystemen op een bepaalde laptop draaien, ook al verandert de hardware helemaal niet.
Netwerken van computers zijn vergelijkbaar: we hebben er allemaal verschillende ideeën over en maken ons meer of minder druk over wat ze doen en waarom. Als je in een klein kantoor werkt, waar je computer is aangesloten op de machines van anderen en gedeelde printers, is het enige wat je interesseert waarschijnlijk dat je e-mails kunt sturen naar je collega’s en je spullen kunt afdrukken; het maakt je niet uit hoe dat eigenlijk gebeurt. Maar als je belast bent met het opzetten van het netwerk in de eerste plaats, moet je rekening houden met dingen zoals hoe het fysiek met elkaar verbonden is, wat voor soort kabels je gebruikt en hoe lang ze mogen zijn, wat de MAC-adressen zijn, en allerlei andere nitty gritty. Net als bij computers kunnen we over een netwerk nadenken in termen van de verschillende lagen – en er zijn twee populaire manieren om dat te doen.
Het OSI-model
De bekendste manier is misschien wel het zogenaamde OSI-model (Open Systems Interconnect), gebaseerd op een internationaal overeengekomen reeks standaarden, bedacht door een comité van computerexperts en voor het eerst gepubliceerd in 1984. Het beschrijft een computernetwerk als een stapel van zeven lagen. De onderste lagen staan het dichtst bij de computerhardware; de hogere lagen staan dichter bij de menselijke gebruikers; en elke laag maakt dingen mogelijk die op de hogere lagen gebeuren:
- Fysieke: De basishardware van het netwerk, inclusief kabels en verbindingen, en hoe apparaten worden aangesloten op een bepaalde netwerktopologie (ring, bus, of wat dan ook). De fysieke laag houdt zich op geen enkele manier bezig met de gegevens die het netwerk doorgeeft en is, voor zover het de meeste menselijke gebruikers van een netwerk betreft, oninteressant en irrelevant.
- Datalink: Dit betreft zaken als hoe gegevens worden verpakt en hoe fouten worden gedetecteerd en gecorrigeerd.
- Netwerk: Deze laag houdt zich bezig met hoe gegevens worden geadresseerd en gerouteerd van het ene apparaat naar het andere.
- Transport: Dit beheert de manier waarop gegevens efficiënt en betrouwbaar heen en weer worden verplaatst over het netwerk, waarbij ervoor wordt gezorgd dat alle bits van een bepaald bericht correct worden afgeleverd.
- Session: Dit regelt hoe verschillende apparaten op het netwerk tijdelijke “gesprekken” (sessies) tot stand brengen, zodat ze informatie kunnen uitwisselen.
- Presentatie: Hiermee worden gegevens die door gebruikersvriendelijke toepassingen worden geproduceerd, effectief vertaald naar computervriendelijke indelingen die via het netwerk worden verzonden. Het kan bijvoorbeeld gaan om zaken als compressie (om het aantal bits en bytes dat moet worden verzonden te verminderen), encryptie (om gegevens veilig te houden), of het omzetten van gegevens tussen verschillende tekensets (zodat u emoticons (“smileys”) of emoji’s in uw e-mails kunt lezen).
- Toepassing: Het hoogste niveau van het model en het niveau dat het dichtst bij de gebruiker staat. Dit omvat dingen zoals e-mailprogramma’s, die het netwerk gebruiken op een manier die zinvol is voor menselijke gebruikers en de dingen die ze proberen te bereiken.
OSI werd bedacht als een manier om allerlei verschillende computers en netwerken met elkaar te laten praten, wat een groot probleem was in de jaren zestig, zeventig en tachtig, toen vrijwel alle computerhardware nog merkgebonden was en de apparatuur van de ene fabrikant zelden met die van een andere fabrikant werkte.
Het TCP/IP-model (DARPA)
Als u nog nooit van het OSI-model hebt gehoord, komt dat waarschijnlijk omdat een andere manier om de computers van de wereld aan elkaar te koppelen het heeft gewonnen van het OSI-model en heeft geleid tot het verbazingwekkende computernetwerk dat u nu gebruikt: het Internet. Het internet is gebaseerd op een uit twee delen bestaand netwerksysteem, TCP/IP genaamd, waarbij computers via netwerken met elkaar verbonden zijn (met behulp van het zogenaamde TCP, Transmission Control Protocol) om informatie uit te wisselen in pakketten (met behulp van het Internet Protocol, IP). We kunnen TCP/IP begrijpen aan de hand van vier iets eenvoudiger lagen, die ook wel bekend staan als het TCP/IP-model (of het DARPA-model, naar het Defense Advanced Research Projects Agency van de Amerikaanse overheid dat de ontwikkeling ervan sponsorde):
- Netwerktoegang (soms de Netwerkinterfacelaag genoemd): Dit is de basis netwerk hardware, en komt overeen met de Fysieke en Data link lagen van het OSI model. Uw Ethernet- of Wi-Fi-verbinding met internet is een voorbeeld.
- Internet (soms ook wel de Netwerklaag genoemd): Dit is de manier waarop gegevens over het netwerk worden verzonden en komt overeen met de Netwerklaag in het OSI-model. IP (Internet Protocol) pakketschakeling – het leveren van feitelijke gegevenspakketten aan uw computer vanaf het Internet – werkt op dit niveau.
- Transport: Dit komt overeen met de Transportlaag in het OSI-model. TCP (Transmission Control Protocol) werkt op dit niveau en beheert de aflevering van gegevens zonder ze daadwerkelijk af te leveren. TCP zet verzonden gegevens om in pakketten (en weer terug wanneer ze worden ontvangen) en zorgt ervoor dat die pakketten op betrouwbare wijze worden afgeleverd en opnieuw worden samengesteld in dezelfde volgorde als waarin ze werden verzonden.
- Toepassing: Equivalent aan de Session, Presentation, en Application lagen in het OSI model. Bekende Internet-protocollen zoals HTTP (de verborgen “conversatie” tussen webbrowsers en webservers), FTP (een manier om gegevens van servers te downloaden en in omgekeerde richting te uploaden), en SMTP (de manier waarop uw e-mailprogramma mails verstuurt via een server bij uw ISP) werken allemaal op dit niveau.
Artikel: Het TCP/IP-model is eenvoudig te begrijpen. In dit voorbeeld stel je voor dat je iemand e-mailt via het internet. Uw twee apparaten zijn in feite verbonden door één lange “kabel” die tussen hun netwerkkaarten loopt. Dat is wat de groene Network Access laag onderaan voorstelt. Uw e-mail wordt verzonden als pakketten (oranje vierkantjes) met behulp van het Internet Protocol (IP), geïllustreerd door de oranje Internet laag. Transmission Control Protocol (TCP) houdt toezicht op dit proces in de blauwe Transportlaag; en in feite werken TCP en IP samen. Bovenaan, in de toepassingslaag, zit je achter je computer en gebruikt een e-mailprogramma (een toepassing) dat gebruik maakt van alle lagen daaronder.
Hoewel het OSI-model een tamelijk abstract en academisch concept is, dat je zelden tegenkomt buiten boeken en artikelen over computernetwerken, is het TCP/IP-model eenvoudiger, begrijpelijker en praktischer: het is de basis van het Internet – en de technologie die je nu gebruikt om deze woorden te lezen.
Zoals we hierboven hebben gezien, zijn de hogere niveaus van de basiscomputermodellen onafhankelijk van de lagere niveaus: u kunt uw Firefox-browser bijvoorbeeld op verschillende Windows-besturingssystemen of Linux draaien. Hetzelfde geldt voor netwerkmodellen. Zo kunt u veel toepassingen uitvoeren met behulp van internetpakketschakeling, van het World Wide Web en e-mail tot Skype (VoIP) en internet-tv. En u kunt uw computer op het net aansluiten via WiFi of bekabelde breedband of dialup via een telefoonlijn (verschillende vormen van netwerktoegang). Met andere woorden, de hogere niveaus van het model doen hetzelfde werk, ook al werken de lagere niveaus anders.
Netwerken in de lucht
Netwerken zijn vaak zeer uitgebreide, goed geplande dingen, net als snelwegen of spoorlijnen die steden met elkaar verbinden. In de tijd dat computers grote statische dozen waren die nooit verschoven van datacenters en desktops, waren computernetwerken ook vrij statische dingen; vaak veranderden ze niet veel van de ene week, maand of jaar op het andere. Het internet, bijvoorbeeld, is gebaseerd op een reeks goed gedefinieerde verbindingen die de internet-backbone worden genoemd, inclusief uitgestrekte onderzeese kabels die uiteraard jarenlang op hun plaats moeten blijven. Dat is computernetwerk aan de ene kant.
Maar meer en meer verschuiven we naar mobiele apparaten die hun netwerken moeten improviseren terwijl ze zich over de wereld verplaatsen. Wi-Fi (draadloos Ethernet) is een voorbeeld van de manier waarop smartphones, tablets en andere mobiele computers zich op een zeer ad-hoc manier kunnen aansluiten bij vaste netwerken (gebaseerd op “hotspots” of toegangspunten) en deze weer kunnen verlaten. Bluetooth is nog meer geïmproviseerd: apparaten in de buurt detecteren elkaar, maken een verbinding (als je ze toestemming geeft) en vormen een computernetwerk (meestal van korte duur) voordat ze hun eigen weg gaan. Ad-hoc technologieën zoals deze zijn nog steeds gebaseerd op klassieke computernetwerkconcepten, maar ze brengen ook een reeks nieuwe problemen met zich mee. Hoe ontdekken mobiele apparaten elkaar? Hoe weet een apparaat (zoals een Wi-Fi-router) wanneer een ander zich abrupt bij het netwerk voegt of het verlaat? Hoe kan het de prestaties van het netwerk handhaven wanneer veel mensen zich tegelijkertijd proberen aan te sluiten? Wat als alle netwerkapparaten enigszins verschillende versies van Wi-Fi of Bluetooth gebruiken; zullen ze dan nog steeds verbinding kunnen maken? Als de communicatie volledig draadloos is, hoe kan deze dan goed beveiligd worden? We bespreken dit soort zaken in meer detail in onze hoofdartikelen over Wi-Fi en Bluetooth.