Cursus Datacommunicatie en netwerken Michiel Van den Berghe
Inhoudsopgave 1 Netwerken in vogelvlucht
1
1.1
Wat en waarom? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Een beetje geschiedenis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2.1
Een vreemd maar cruciaal experiment . . . . . . . . . . . . . . . .
2
1.2.2
De elektrische telegraaf en het Victoriaanse Internet . . . . . . . . .
3
1.2.3
Het computertijdperk: batch processing
. . . . . . . . . . . . . . .
5
1.2.4
Timesharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.2.5
ARPANET: de voorloper van het Internet . . . . . . . . . . . . . .
6
1.2.6
Het moderne internet . . . . . . . . . . . . . . . . . . . . . . . . . .
7
De opbouw van een netwerk . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.1
De schaal van een netwerk . . . . . . . . . . . . . . . . . . . . . . .
9
1.3.2
Netwerktopologie¨en . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.3
POTS: Plain Old Telephone Service . . . . . . . . . . . . . . . . . . 17
1.3.4
Een kleine LAN verbonden met het Internet . . . . . . . . . . . . . 18
1.3
2 Protocols, protocolstapels en inkapseling
23
2.1
Een eenvoudige brief . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2
Wat is een protocol? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3
Protocolstapels en inkapseling . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4
2.3.1
De enveloppe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.2
De postverdeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.3
Het postvervoer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.4
Alles tezamen: de postprotocolstapel . . . . . . . . . . . . . . . . . 26
De Internet Protocol Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 De applicatielaag
29
3.1
Een voorbeeld: het Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2
Het HTTP-protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3
Wat we nog niet weten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 i
4 De netwerklaag en de transportlaag: TCP/IP 4.1
32
De netwerklaag: IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.1.1
Het IP-adres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.1.2
Het adres van een netwerk: subnetmaskers . . . . . . . . . . . . . . 33
4.1.3
Hoe krijgen we informatie van host A naar host B? . . . . . . . . . 35
4.1.4
IP-pakketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.1.5
Het IP-routeringsmechanisme . . . . . . . . . . . . . . . . . . . . . 37
4.1.6
Hoe krijgt mijn PC een IP-adres? . . . . . . . . . . . . . . . . . . . 39
4.1.7
Beu om steeds een IP-adres te moeten opzoeken? . . . . . . . . . . 40
4.1.8
Wat weten we nu? . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2
De transportlaag: TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3
Samengevat: de IP stack tot nu toe . . . . . . . . . . . . . . . . . . . . . . 42
5 De link- en fysieke laag
44
5.1
Doel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2
De fysieke laag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2.1
Een eenvoudige elektrische schakeling . . . . . . . . . . . . . . . . . 44
5.2.2
Transmissiemedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.2.3
Encoderingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.2.4
Probleem: EMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2.5
Foutdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
ii
Lijst van figuren 1.1
De Morsecode: een manier om tekstboodschappen te encoderen met behulp van lange en korte pulsen. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
De Trans-Atlantische en andere onderzeese telegraafkabels anno 1901 . . .
4
1.3
UNIVAC I, de eerste commercieel verkrijgbare computer, nam een hele kamer in en had minder rekenkracht dan de goedkoopste mobiele telefoon vandaag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.4
Een mainframe met een controlecomputer en terminals. . . . . . . . . . . .
6
1.5
De initi¨ele opstelling van ARPANET: vier Amerikaanse universiteiten werden met elkaar verbonden. . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.6
De vaders van het internet . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.7
Een Bluetooth-chip. Deze chip is zelfs vrij groot vergeleken met courante chips. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.8
Een point-to-pointverbinding . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.9
Een voorbeelden van netwerken met een maastopologie. Het aantal benodigde kabels stijgt drastisch met een toenemend aantal hosts. . . . . . . . . 13
1.10 Twee verschillende voorstellingen van een bustopologie . . . . . . . . . . . 13 1.11 Het verschil tussen een busnetwerk en een sternetwerk. Bij het sternetwerk worden de hosts verbonden met een actief schakelement. . . . . . . . . . . 14 1.12 Een netwerk met een boomtopologie, bestaande uit twee sternetwerken verbonden met een host (de wortel van de boom) . . . . . . . . . . . . . . 16 1.13 Een netwerk met een ringtopologie . . . . . . . . . . . . . . . . . . . . . . 16 1.14 Het verschil tussen een logische en fysieke topologie. . . . . . . . . . . . . . 17 1.15 Schematische voortelling van het klassieke telefoonnetwerk . . . . . . . . . 18 1.16 Een klein LAN verbonden met het Internet . . . . . . . . . . . . . . . . . . 19 1.17 De werking van het kabeltelevisienetwerk. Telenet gebruikt dit netwerk als toegangsnetwerk om internettoegang te voorzien in de Vlaamse huizen. . . 20 1.18 Het transportnetwerk van Telenet. De kleine zeshoekjes zijn head-ends. De grote zeshoekjes zijn routers die de hoofdring verbinden met de lokale ringen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1
De manier waarop de postprotocolstapel doorlopen wordt wanneer een brief wordt verzonden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 iii
3.1
Een eenvoudig voorbeeld van de werking van HTTP. . . . . . . . . . . . . 30
3.2
De webpagina meegegeven in het antwoord van de webserver. . . . . . . . . 31
4.1
Een IP-netwerk met toegekende IP-adressen. . . . . . . . . . . . . . . . . . 33
4.2
Het voorbeeldnetwerk aangevuld met subnetwerkadressen. . . . . . . . . . 34
4.3
Het principe van IP-pakketjes: een grote hoeveelheid data wordt opgebroken in kleine stukjes die ingekapseld worden in pakketjes met een bron- en bestemmingsadres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.4
Een vereenvoudigd voorbeeld van IP-routeringstabellen: elke host en router zal voor elke mogelijke bestemming de volgende hop bijhouden in een tabel om een pakketje dichter bij de bestemming te brengen. . . . . . . . . . . . 38
4.5
Een iets complexer voorbeeld van IP-routeringstabellen: in plaats van een tabel van alle bestemmingen bij te houden, zullen we deze samenvatten in subnetwerkadressen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.6
De werking van het Dynamic Host Configuration Protocol (DHCP) . . . . 39
4.7
Het inkapselen van de segmentjes in TCP-pakketten en uiteindelijk IPpakketten. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.8
De IP-stapel zoals we hem tot nu toe gezien hebben . . . . . . . . . . . . . 43
5.1
Een eenvoudig elektrisch circuit om een lamp aan- of uit te schakelen. . . . 45
5.2
De manier waarop bits over een kabel kunnen worden verzonden. Wanneer de spanning op de kabel hoog is, wordt de bit als 1 beschouwd, anders 0. . 46
5.3
Een vertaaltabel voor de ASCII-code . . . . . . . . . . . . . . . . . . . . . 48
5.4
Een voorbeeld van de gevolgen van EMI op een digitaal kanaal. Het oorspronkelijke signaal (boven) wordt vervormd (onder) zodat een bit fout wordt uitgelezen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
iv
Hoofdstuk 1 Netwerken in vogelvlucht 1.1
Wat en waarom?
De traditionele manier om het begrip “netwerk” in te voeren, is om alle contexten waarin het woord voorkomt op te sommen. Zo is er het wegennetwerk, het elektriciteitsnetwerk, de sociale netwerken etc. Laat ons echter eerlijk zijn: iedereen kent deze begrippen en eigenlijk zijn we in deze cursus enkel ge¨ınteresseerd in communicatienetwerken en computernetwerken in het bijzonder. Een computernetwerk is een verzameling computers die al dan niet rechtstreeks met elkaar verbonden zijn voor de volgende doelen: • Snelle communicatie: met een communicatienetwerk kan je berichten uitwisselen die quasi onmiddelijk jouw gesprekspartner bereiken, ook al zit die kilometers verder, of zelfs aan de andere kant van de wereld. • Het delen van informatie, zoals belangrijke documenten of onderzoeksresultaten. Een prachtig voorbeeld van een toepassing die dit doel vervult, is een elekronische leeromgeving zoals Chamillo. • Het delen van bronnen, zoals netwerkschijven, netwerkprinters en rekenclusters. E´en computernetwerk ken je ongetwijfeld: het Internet. Het Internet is zonder twijfel het meest indrukwekkende stukje technologie die de mensheid ooit geproduceerd heeft. De grootte van het Internet is nog moeilijk te vatten en het wordt stilaan duidelijk dat haar impact op de geschiedenis minstens even groot zal zijn als die van de uitvinding van pakweg de gloeilamp. Denk maar aan de impact van de Arabische Lente, die totaal onmogelijk was geweest zonder de snelle, vrije communicatie via het Internet. De videofragmenten van gruweltaferelen in Syri¨e, die ons ondanks alle maatregelen van de Syrische
1
regering toch bereiken via het Internet, tonen dat de wereld grondig veranderd is door het gemak waarmee informatie kan worden gedeeld. Een extreem voorbeeld van het delen van bronnen is het enorme rekennetwerk dat het Europese onderzoekscentrum CERN gelanceerd heeft om de gigantische hoeveelheden informatie geproduceerd door de LHC-deeltjesversneller1 (Large Hadron Collider) te verwerken. Aangezien al het budget naar de bouw van de deeltjesversneller ging, was er geen geld om een gigantische supercomputer te kopen. In plaats daarvan werd een programmaatje ter beschikking gesteld aan iedereen die zijn steentje wou bijdragen aan de wetenschap, dat de ongebruikte rekenkracht gebruikt van doodgewone PC’s 2 . Het programma is nog steeds een enorm succes, met ongeveer 300.000 actieve gebruikers, die samen meer rekenkracht geven dan een extreem dure supercomputer. In deze cursus zullen we zien hoe zo’n netwerk werkt en hoe het in elkaar zit. Hierbij zullen we vooral aandacht geven aan computernetwerken en het Internet in het bijzonder, maar zullen we ook stilstaan bij andere communicatienetwerken, zoals het klassieke telefoonnetwerk.
1.2 1.2.1
Een beetje geschiedenis Een vreemd maar cruciaal experiment
In 1746 voerde de Franse geestelijke en natuurkundige Jean-Antoine Nollet een vreemd en totaal onverantwoord experiment uit. Als hoofd van een Parisiaans kartuizerklooster had Nollet bijzonder veel tijd om zich te wijden aan de studie van een recent ontdekt fenomeen: elektriciteit. Het experiment ging als volgt. Nollet verzamelde een 200-tal monniken buiten het klooster. Hij liet ze in een kring van anderhalve kilometer doorsnede staan en verbond hen met stukken ijzerdraad tot een ring. Vervolgens elektrocuteerde hij zijn monniken met een primitieve doch bijzonder krachtige batterij3 . De monniken kregen een stevige schok, maar gelukkig raakte niemand ernstig gewond. Het elektrocuteren van lijfwachten werd voor een tijdje zelfs populair op feestjes aan het Franse hof. Hoewel het lijkt alsof het gewoon een sadistisch, zinloos experiment was, had Nollet een duidelijk doel voor ogen: het bepalen van de snelheid van elektriciteit. Nollet slaagde er niet in om deze exact te bepalen, maar aangezien alle monniken schijnbaar tegelijkertijd een schok kregen, stond het vast dat elektriciteit zich razendsnel verplaatste. Voor het gemak zullen we in deze cursus aannemen dat de snelheid waartegen lading door een kabel 1
Die blijkbaar volgens de Maya’s binnenkort het einde van de wereld zal veroorzaken, of iets dergelijks. Voor de ge¨ınteresseerden: LHC@Home (http://lhcathome.web.cern.ch/LHCathome/) 3 een zogenaamde Leidse fles, eigenlijk een condensator 2
2
Figuur 1.1: De Morsecode: een manier om tekstboodschappen te encoderen met behulp van lange en korte pulsen.
stroomt gelijk is aan de snelheid van het licht, nl. 300.000 km/s. Een elektrisch signaal kan in ´e´en seconde dus acht keer de wereld rond reizen! De belangrijke conclusie is dat elektriciteit kan gebruikt worden om informatie in een oogwenk over gigantische afstanden te sturen. Jammer zou het nog een kleine honderd jaar duren voor deze vorm van communicatie zijn doorbraak zou kennen.
1.2.2
De elektrische telegraaf en het Victoriaanse Internet
In 1837 patenteerde de amerikaan Samuel Morse een revolutionaire technologie: de elektrische telegraaf. Voordien was de snelste manier om een boodschap van A naar B te verzenden eenvoudigweg de post, die per trein, postkoets en, in het geval van intercontinentale verzendingen, per schip vervoerd werd. Zo’n boodschap was, net zoals postpakketten vandaag, doorgaans ´e´en of meerdere dagen onderweg. De telegraaf echter, kon worden gebruikt om elektrische pulsen te zenden over grote afstanden. Door lange en korte pulsen te vari¨eren, kon je met behulp van de Morsecode (zie Figuur 1.1) een tekstboodschap verzenden die quasi onmiddelijk ontvangen werd. De Morsetelegraaf werd een daverend succes; in de volgende twee decennia zouden alle belangrijke Amerikaanse steden verbonden worden door middel van telegraaflijnen, waardoor (relatief) razendsnelle communicatie van kust naar kust mogelijk werd. Op het oude continent4 deed zich dezelfde ontwikkeling voor. Er restte echter nog ´e´en gigantische uitdaging. De snelste stoomschepen van de tijd deden er een tweetal weken over om de Atlantische oceaan over te steken. Op een boodschap van Londen naar Washington DC zat dus een vertraging van twee weken! Als je een antwoord 4
Europa voor de minder lyrisch ingestelde lezers.
3
verwachtte, moest je dus ongeveer een maand wachten. Dit was vooral voor de diplomatie een bijzonder groot probleem. Iedereen wist hoe dat probleem kon worden opgelost: er moest een telegraafkabel komen tussen het Amerikaanse continent en Europa. Nooit eerder had iemand zo’n lange kabel (7000km!) op de bodem van de zee gelegd (kilometers diep!). In 1858 slaagden de bemanningen van het omgebouwde Britse slagschip HMS Agammemnon en de Amerikaanse USS Niagara erin om na drie faliekant mislukte pogingen, waarin de kabel steeds na enkele honderden km brak, toch de Amerikaanse oostkust met Ierland te verbinden. Hoewel de signaalkwaliteit ondermaats was en de hij na een maand van operatie alsnog brak, was de kabel een daverend succes en kwam er een explosie van onderzeese kabels. Het leggen van de eerste Trans-Atlantische kabel wordt als ´e´en van de grote verwezelijkingen van de 19e eeuw beschouwd. Figuur 1.2 toont het telegraafnetwerk in 1901: de hele wereld was verbonden! Dit was het allereerste wereldwijde communicatienetwerk, dat soms het Victoriaanse5 Internet genoemd wordt.
Figuur 1.2: De Trans-Atlantische en andere onderzeese telegraafkabels anno 1901 5
Genoemd naar koningin Victoria van het Verenigd Koninkrijk, die regeerde van 1837 tot 1901.
4
Figuur 1.3: UNIVAC I, de eerste commercieel verkrijgbare computer, nam een hele kamer in en had minder rekenkracht dan de goedkoopste mobiele telefoon vandaag.
1.2.3
Het computertijdperk: batch processing
Fast forward naar de jaren ’50, de beginjaren van het computertijdperk. De elektronische computer werd uitgevonden in de Tweede Wereldoorlog om snel de baan van artilleriegeschut te kunnen uitrekenen en om de geheime codes van de tegenpartij te kraken. De bekendste van deze computers was de Amerikaanse Electronic Numerical Integrator And Computer (ENIAC), die helaas pas een jaar na het einde van de oorlog operationeel was. De ENIAC wordt gezien als de eerste breed inzetbare computer. De ENIAC had ongeveer even veel rekenkracht als een goedkoop digitaal horloge vandaag, maar slaagde er toch in om meer dan 25 ton te wegen en een hele kamer te vullen. Ook de computers van de jaren ’50 en ’60 waren gigantische kolossen. De UNIVersal Automatic Computer (UNIVAC) uit de jaren ’50, afgebeeld in Figuur 1.3, was de eerste commercieel verkochte computer. Aangezien een organisatie (bv. een bank of een universiteit) slechts over hoogstens ´e´en computer (bv. een UNIVAC) beschikte, was er doorgaans een schaarste aan rekentijd. Wanneer een programmeur zijn programma wilde uitvoeren, moest hij meestal een stapel ponskaarten naar de bureau van de operator brengen, waar al stapels ponskaarten van andere programmeurs lagen. De operator voerde deze programma’s ´e´en voor ´e´en uit op de computer. Na enkele dagen ging de programmeur vragen of zijn programma al uitgevoerd was, om dan meestal vast te stellen dat er een klein foutje in zijn programma zat. Een programma debuggen kon wekenlang duren! Taken ´e´en voor ´e´en uitvoeren noemt men batch processing.
5
Figuur 1.4: Een mainframe met een controlecomputer en terminals.
1.2.4
Timesharing
Na een tiental jaar waren de programmeurs het grondig beu dat ze zelf de uitvoering van hun programma’s niet konden volgen. Bovendien werden computers krachtig en geavanceerd genoeg om meerdere taken quasi tegelijkertijd6 uit te voeren, waardoor taken niet meer ´e´en voor ´e´en moesten worden uitgevoerd en korte programmaatjes niet meer moesten wachten tot een weken durend monsterprogramma afgewerkt was. Dat principe noemt men timesharing. Om dat mogelijk te maken, werden enkele revolutionaire technologie¨en ingevoerd. Naast het grote, kamervullende rekenmonster, kocht de organisatie ook een kleinere, minder krachtige minicomputer. Zo’n minicomputer was niet zo “mini” als de naam doet vermoeden: het had nog steeds de grootte van een grote koelkast. Het doel van deze computer was het aansturen van de grote computer. De minicomputer, of controlecomputer, werd gebruikt om taken door te sturen naar de grote computer, die voortaan de mainframe genoemd werd. Aangezien meerdere programmeurs de mainframe wilden gebruiken, werden verschillende veredelde televisieschermen met toetsenbord en een primitieve processor aan deze controlecomputer aangesloten, de terminals. Deze opstellingen, afgebeeld in Figuur 1.4, waren de voorouders van de moderne computernetwerken.
1.2.5
ARPANET: de voorloper van het Internet
Op 4 oktober 1957 lanceerde de Sovietunie de eerste kunstmatige satelliet, de Sputnik 1. De Verenigde Staten waren in paniek: de Soviets leken hen in te halen op gebied 6
De taken werden niet echt tegelijkertijd uitgevoerd, maar de processor wisselde regelmatig van taak.
6
van rakettechnologie! De Amerikanen besloten om die reden om voor het einde van de jaren ’60 een enorm duur en zinloos doel te bereiken v´o´or de Soviets: een man op de maan plaatsen. Dat is gelukt in 1969 toen onlangs overleden Neil Armstrong een kleine wandeling op de maan maakte. De totale kost van zes succesvolle maanreizen wordt geraamd op minstens 150 miljard huidige dollars. Hoewel de maanmissies alle aandacht naar zich trokken, deed er zich in de zijlijn een veel belangrijkere en nuttigere ontwikkeling voor. Aangezien de Amerikaanse overheid niet enkel vreesde voor een missile gap (de vrees dat de vijand meer en superieure raketten zou kunnen bouwen), maar ook voor een algemene technology gap, werd Advanced Research Project Agency (ARPA) opgericht, dat nog steeds bestaat onder de naam Defense Advanced Research Project Agency (DARPA). Het doel van ARPA was om technologische innovatie bevorderen door onderzoek te financieren en te ondersteunen. Een eerste vaststelling van ARPA was dat de verschillende onderzoekscentra, meestal universiteiten, hun middelen en onderzoeksresultaten erg moeilijk met elkaar konden delen, waardoor vaak dubbel werk gedaan werd en soms schaarse rekenkracht verspilden. Om dit op te lossen voerde ARPA een enorm computernetwerk in: ARPANET. In de vorige sectie spraken we al over mainframes, controlecomputers en terminals. Het doel van ARPANET was om deze controlecomputers met elkaar te verbinden, zodat een gebruiker aan bv. Stanford University toegang kon krijgen tot de mainframe van de University of California, Los Angeles (UCLA). Om dit te verwezelijken werden alle controlecomputers vervangen door een zelfde type computer, dat de Interface Message Processor (IMP) zou noemen. Deze IMP’s, die als de voorlopers van de moderne routers kunnen worden beschouwd, werden met elkaar verbonden via netwerkkabels en konden tegen elkaar praten met een gemeenschappelijke taal: het Network Control Protocol (NCP). De initi¨ele opstelling van ARPANET wordt afgebeeld in Figuur 1.5. Hiermee waren de grondvesten van het eerste grootschalige computernetwerk gelegd, dat een belangrijke inspiratiebron zou zijn voor het moderne Internet.
1.2.6
Het moderne internet
Hoewel ARPANET veruit het meeste invloed gehad heeft op het uiteindelijke Internet, was het absoluut niet het enige computernetwerk. Een ander invloedrijke netwerktechnologie was het Franse Cyclades. Cyclades had een beduidend kleiner budget dan ARPANET, maar introduceerde een erg belangrijk concept: het netwerk van netwerken. In Europa waren er immers al enkele kleinschalige proefnetwerken, die helaas helemaal niet met elkaar verbonden waren. Cyclades had als doel om met een minimale kost een gedecentraliseerd
7
Figuur 1.5: De initi¨ele opstelling van ARPANET: vier Amerikaanse universiteiten werden met elkaar verbonden.
(b) Bob Khan
(a) Vint Cerf
Figuur 1.6: De vaders van het internet
netwerk te bouwen door de bestaande netwerken met elkaar te verbinden, maar de controle over elk subnetwerk aan de eigenaar over te laten, in tegenstelling tot ARPANET, dat volledig door ARPA beheerd werd. Zo’n opstelling noemen we een internetwerk - of internet. In 1973 besloten Vint Cerf en Bob Khan (zie Figuur 1.6) om een nieuw netwerk te ontwerpen met de beste eigenschappen van ARPANET, Cyclades en andere, minder invloedrijke netwerken. Hiervoor bedachten ze de taal die vandaag nog door alle computers op het Internet gesproken wordt: Transmission Control Protocol / Internet Protocol (TCP/IP). De gedecentraliseerde opstelling van het Internet was een groot succes. Vandaag zijn er ongeveer twee miljard apparaten aangesloten op het Internet.
8
1.3 1.3.1
De opbouw van een netwerk De schaal van een netwerk
Netwerken kunnen elke grootte innemen die je kan indenken, van twee mobiele telefoons die ringtones uitwisselen via Bluetooth, tot NASA’s Deep Space Network dat ruimtesondes aan de rand van het zonnenstelsel met de aarde verbindt. In deze sectie geven we een overzicht van de verschillende schalen die netwerken kunnen aannemen van klein naar groot. PAN Een erg kleinschalig netwerk werd al besproken in de inleiding: een verbinding tussen twee mobiele telefoons. Dit gebeurt vaak via Bluetooth, een draadloze netwerktechnologie die ontworpen is om gemakkelijk implementeerbaar te zijn in kleine apparaten. Een voorbeeld van een Bluetooth-chip zie je in Figuur 1.7. Zo’n netwerk noemen we een Personal Area Network (PAN). BAN Een erg recente, meer exotische netwerkschaal is het Body Area Network (BAN). Dat is een netwerk dat verschillende apparaten verbindt die op het lichaam gedragen worden. Een BAN kan worden gebruikt om verschillende sensors op het lichaam te verbinden, waardoor hartslagsensors, bloeddrukmeters, een pacemaker en zelfs elektronische prothesen met elkaar kunnen praten. BAN’s zijn momenteel niet wijd verspreid en zijn een geliefkoosd onderwerp voor wetenschappelijk onderzoek. LAN, HAN, NAS Een beter bekende netwerkgrootte is het Local Area Network (LAN). Dit is een netwerk dat doorgaans ´e´en kantoor of gebouw omvat. Wanneer dat gebouw een woning is, wordt het een Home Area Network (HAN) genoemd. De hoofdtaak van een LAN is heel vaak het verbinden van de verschillende hosts in het netwerk met het Internet. Een veel voorkomende LAN met die taak is een draadloos thuisnetwerk. Een andere taak van een LAN kan het delen van printers en netwerkschijven zijn. Een netwerkschijf wordt vaak een Network Attached Storage (NAS) genoemd en kan bv. in combinatie met een media center gebruikt worden om films op te slaan 7 . Voor de gebruikers van het netwerk lijkt het alsof de schijf en de printer rechtstreeks met hun apparaat verbonden zijn. 7
...die uiteraard legaal verkregen zijn.
9
Figuur 1.7: Een Bluetooth-chip. Deze chip is zelfs vrij groot vergeleken met courante chips.
WAN, MAN, CAN Een Wide Area Network (WAN) is een netwerk dat een groter gebied omvat dan ´e´en gebouw. Vaak is het een aaneenschakeling van meerdere LAN’s, bv. in een boomnetwerk (zie sectie 1.3.2. WAN is een erg ruim begrip, dat gebruikt kan worden voor netwerken die... • ... ´e´en campus omvatten. In dat geval kunnen we het een Metropolitan Area Network (CAN) noemen. Met een campus bedoelen we een verzameling van geografisch dichtbijgelegen kantoren of gebouwen. Het netwerk op de HoGent-campus Schoonmeersen zou je bv. een CAN kunnen noemen, waarbij elk gebouw zijn eigen LAN heeft. • ... een stad omvatten. In dit geval noemen we het een Metropolitan Area Network (MAN). Een voorbeeld van MAN’s zijn momenteel de 4G-gebaseerde draadloze netwerken, die momenteel enkel beschikbaar zijn in grote steden. • ... een hele streek, provincie, een heel land of continent etc. omvatten. Dit zijn bv. de IP-transportnetwerken van de internetproviders of het klassieke telefoonnetwerk. Een ander voorbeeld van een WAN is het HGSecure-netwerk, waarmee je in alle gebouwen van HoGent verbinding kan maken.
1.3.2
Netwerktopologie¨ en
Om een netwerk te bouwen is het niet uiteraard niet verstandig om lukraak kabels van het ene apparaat naar het andere te trekken. Een goed ontworpen netwerk zal rekening houden met een aantal erg belangrijke factoren. De belangrijkste factor is praktisch altijd het budget: anders lag ons land al vol met peperdure, supersnelle optische glasvezelverbindingen (zie Hoofdstuk 6).
10
Figuur 1.8: Een point-to-pointverbinding
Een belangrijke afweging is de betrouwbaarheid van het netwerk. Bij sommige netwerken kan het absoluut geen kwaad dat de verbinding af en toe uitvalt. Het Marskarretje Curiosity, dat onlangs geland is op Mars, is bv. elke dag urenlang onbereikbaar op NASA’s Deep Space Network. Een hartmonitor in een modern ziekenhuis daarentegen, mag absoluut niet onbereikbaar zijn voor de permanente bewaking van de pati¨ent. Ook de gewenste snelheid van de verbinding is belangrijk bij het ontwerp van een netwerk. Om e-mails te verzenden of een chatprogramma te gebruiken, hoeft een netwerkverbinding absoluut niet snel te zijn. Als je aan video conferencing wilt doen, zal je een behoorlijk snelle verbinding nodig hebben. Het is mogelijk om een goedkoop netwerk te bouwen dat zowel erg betrouwbaar als erg snel is. Als je het netwerk echter uitbreidt, is het meer dan waarschijnlijk dat de kosten toch enorm stijgen (zie het voorbeeld van een maasnetwerk dat volgt), de snelheid drastisch daalt of het netwerk frequent faalt. De verwachte schaal van een netwerk is dus erg belangrijk in de planning van een netwerk. De snelheid, de betrouwbaarheid en de schaalbaarheid zullen wij de kwaliteitsattributen van een netwerk noemen. Bij het ontwerpen van een netwerk zal je de kwaliteitsattributen van een netwerk in evenwicht moeten brengen binnen het beschikbare budget en in overeenstemming met de vereisten van de klant. Een netwerk dat zowel betrouwbaar, snel en schaalbaar is, zal onbetaalbaar zijn. Een betaalbaar, erg betrouwbaar netwerk zal meestal boeten in snelheid. Er bestaat geen sluitende methode om dit te doen: netwerkontwerp vergt erg veel creativiteit en technisch inzicht. Toch loont het om enkele veel voorkomende netwerkvormen - of topologie¨en - te bekijken en te evalueren op hun kwaliteitsattributen. Het meest eenvoudige netwerk: point-to-point Een erg eenvoudig netwerk zie je in Figuur 1.8. Het netwerk heeft een point-to-pointtopologie en bestaat heel eenvoudig uit twee eindgebruikers, of hosts, en een kabel die de twee verbindt. Het heeft weinig zin om de kwaliteitsattributen van een dergelijk netwerk te bespreken, aangezien er geen enkele manier is om het netwerk eenvoudiger te maken.
11
De maastopologie Stel nu dat we het netwerk in Figuur 1.8 willen uitbreiden. Dit kan op het eerste zicht heel eenvoudig door kabels te leggen van de nieuwe host naar alle reeds bestaande hosts. Deze manier van werken wordt getoond in Figuur 1.9. Een dergelijk netwerk, waarin iedere host rechtstreeks verbonden is met elke andere host in het netwerk, heeft een maastopologie (Eng.: mesh topology). Een maasnetwerk heeft enkele belangrijke voordelen: • Het is zeer betrouwbaar : er moeten erg veel kabels wegvallen (hoeveel voor een netwerk met vijf hosts?) voordat een host gescheiden wordt van het netwerk. Wanneer er een kabel wegvalt en er dus twee hosts zijn die niet rechtstreeks met elkaar verbonden zijn, zal er een derde host optreden als tussenstation. Alle verkeer tussen de twee hosts zal dus langs de derde host passeren. Dit principe noemen we forwarding, of in de context van IP-netwerken routing of switching. • Het is zeer snel : elke host heeft een eigen verbinding met elke andere host die niet gedeeld wordt met andere hosts. De volle capaciteit van de verbinding wordt dus gebruikt. Dat ziet er goed uit! Jammer genoeg is de maastopologie geen wondermiddel. Een maasnetwerk heeft namelijk een erg belangrijk nadeel: de schaalbaarheid. Beschouw om dat in te zien het netwerk met drie hosts in Figuur 1.9(a). Hierin vertrekken vanuit elke host twee kabels. In een netwerk van vijf hosts, zoals in Figuur 1.9(c), vertrekken vanuit elke host vier kabels. In het algemeen zullen in een maasnetwerk bestaande uit n hosts kabels bevatten (vanwaar de n − 1 kabels vertrekken. In totaal zal het netwerk n(n−1) 2 deling door twee?). Voor een PC-klas met 20 PC’s, zouden er dus 20·19 = 190 kabels liggen. 2 Stel je nu voor dat elke computer op het HoGent netwerk op dit netwerk aangesloten is. Het is duidelijk dat deze techniek dan niet haalbaar is, zowel technisch (je wilt geen bundel kabels van een halve meter doorsnede vanuit elke computer laten vertrekken) als budgetair. Een maasnetwerk is dus enkel geschikt wanneer je een (erg) beperkt aantal hosts wilt aansluiten.
12
(a) Een netwerk met een maastopologie met drie hosts.
(b) Een netwerk met een maastopologie met vier hosts.
(c) Een netwerk met een maastopologie met vijf hosts.
Figuur 1.9: Een voorbeelden van netwerken met een maastopologie. Het aantal benodigde kabels stijgt drastisch met een toenemend aantal hosts.
Bus Een andere manier om het netwerk uit te breiden, is om gewoon de kabel af te splitsen telkens er een nieuwe hosts bijkomt. Zo’n netwerk heeft wat men een bustopologie noemt. Deze topologie wordt afgebeeld in Figuur 1.10(a). In dat geval gebruiken alle hosts in principe dezelfde kabel. Het grote voordeel van deze techniek is dat hij spotgoedkoop is: per gebruiker komt er slechts een klein stukje kabel bij. Een belangrijke praktische vaststelling, is dat informatie die verzonden wordt door een host zichtbaar is voor alle hosts, aangezien de kabel volledig gedeeld is. Qua veiligheid en privacy is dit een complete ramp: zonder extra maatregelen kan elke aangesloten host bv. een gesprek tussen twee andere hosts zonder moeite afluisteren.
(a) Traditionele voorstelling van een busto- (b) De meest voorkomende praktische uitpologie voering van een bustopologie Figuur 1.10: Twee verschillende voorstellingen van een bustopologie
Verder heeft een busnetwerk enkel nadelen: ´e´en enkele kabelbreuk maakt minstens ´e´en host onbeschikbaar en hoe meer hosts we aan het netwerk toevoegen, hoe trager het
13
verkeer tussen hosts verloopt. Het netwerk is dus verre van schaalbaar. Om deze redenen wordt een bustopologie nog zelden gebruikt en is deze bijna overal vervangen door sternetwerken. Merk op dat de topologie in Figuur 1.10(a) in de praktijk zelden letterlijk voorkomt. Veel vaker worden alle afsplitsingen in ´e´en punt geconcentreerd, waar een erg eenvoudig apparaatje staat dat doorgaans een hub genoemd wordt. Dit wordt afgebeeld in Figuur 1.10(b). Ster Zoals reeds gezegd worden busnetwerken nog zelden gebruikt omwille van hun belabberde veiligheid en hun bijzonder slechte schaalbaarheid. Stel echter dat we de hub centraal in het netwerk in Figuur 1.11(a) vervangen door een intelligenter apparaat dat het verkeer enkel doorstuurt naar de bestemmeling en niet elk apparaat op het netwerk. Een apparaat dat deze rol op zich neemt, noemen we een schakelelement. In een computernetwerk zal dit doorgaans een switch of een router zijn. In het klassieke telefoonnetwerk gebeurt dit bv. in een wijkcentrale. Het verschil tussen een switch en een router zal worden besproken in Hoofdstuk 5. In dat geval wordt slechts nog een beperkt deel van het netwerk door iedereen gedeeld, waardoor de snelheid van het netwerk veel minder afneemt naarmate het aantal hosts groeit. Hiermee lossen we dus zowel het privacyprobleem en de erbarmelijke schaalbaarheid van busnetwerken op. Een netwerk waarbij alle hosts enkel verbonden zijn via een schakelelement heeft een stertopologie.
(a) Een vaak voorkomende implementatie van een busnetwerk. Om de kabels te koppelen wordt vaak een hub gebruikt.
(b) Een netwerk met een stertopologie.
Figuur 1.11: Het verschil tussen een busnetwerk en een sternetwerk. Bij het sternetwerk worden de hosts verbonden met een actief schakelement.
14
Samengevat zijn dit de voordelen van een sternetwerk: • Het is nog steeds goedkoop: hoewel een slim schakelelement duurder is dan een goedkope hub, zal het nog steeds erg goedkoop zijn: een simpele switch voor thuisgebruik om vijf hosts te verbinden zal zelden meer kosten dan 15. • Aangezien het netwerk niet meer volledig gebruikt wordt wanneer ´e´en host communiceert, zal de snelheid van het netwerk nog maar in beperkte mate gedeeld worden. Het netwerk is dus sneller dan een busnetwerk (maar nog steeds trager dan een maasnetwerk). • Aangezien de snelheid van het netwerk niet meer drastisch daalt met een toenemend aantal hosts, zal het netwerk veel beter schaalbaar zijn dan een busnetwerk. Voor elke nieuwe host hoeft slechts ´e´en kabel bijgelegd worden, waardoor het ook schaalbaar is qua kost. Merk op dat de capaciteit van het schakelelement een beperkende factor is: in een computernetwerk zal een switch schaalbaar zijn tot ∼500 hosts. Een erg belangrijk nadeel van de stertopologie, is wat in het Engels single point of failure genoemd wordt. Wanneer het schakelelement defect is, zal het hele netwerk mee tenonder gaan. De betrouwbaarheid van zo’n netwerk is dus erg beperkt. Boom Stel nu dat we verschillende sternetwerken met elkaar willen verbinden. Om dit te doen zouden we de schakelelementen kunnen verbinden met een ander schakelelement. Dit wordt ge¨ıllustreerd in Figuur 1.12. Merk op dat sommige hosts hier optreden als schakelelement, wat niet noodzakelijk is. Een boomnetwerk is een erg veel voorkomende topologie met dezelfde voor- en nadelen van een sternetwerk. Een praktisch voordeel, is dat het mogelijk is om elk deelnetwerk apart te laten beheren. Zo wordt het mogelijk om bv. voor elke afdeling van een bedrijf een netwerkbeheerder aan te stellen die zijn netwerk naar wens kan configureren, terwijl er ook een hoofdnetwerkbeheerder is die het volledige netwerk beheert. Ring Een volledig andere aanpak wordt getoond in Figuur 1.13. In dat netwerk worden de hosts gekoppeld in een ringtopologie. Samengevat heeft een ringtopologie de volgende voordelen: • Het is erg goedkoop: voor een netwerk met n hosts zijn er slechts n kabels nodig. 15
Figuur 1.12: Een netwerk met een boomtopologie, bestaande uit twee sternetwerken verbonden met een host (de wortel van de boom)
• Wanneer er een kabel defect is, zijn alle hosts nog steeds bereikbaar langs de andere kant van de ring. Het netwerk is dus zeer betrouwbaar voor een erg lage kost. Het is ondertussen duidelijk: geen enkele topologie heeft enkel voordelen. Stel dat een host wilt communiceren met een host aan de andere kant van een netwerk met 20 hosts. Het verkeer zal moeten passeren langs 10 hosts! We kunnen zeggen dat het aantal benodigde hops in een ringnetwerk met n hosts gemiddeld n4 bedraagt (waarom?). Bovendien worden de kabels vrij veel gedeeld. Deze twee feiten zorgen ervoor dat de snelheid van het netwerk licht daalt met het aantal hosts, waardoor ook de schaalbaarheid aangetast wordt. Een ringnetwerk zal zelden meer dan 20 hosts of schakelelementen bevatten.
Figuur 1.13: Een netwerk met een ringtopologie
Logische topologie vs. Fysieke topologie Tot nu toe hebben we steeds gesproken over de manier waarop hosts fysiek verbonden worden met behulp van kabels. We kunnen topologie¨en echter ook bespreken in een andere 16
context. Beschouw daarvoor het ringnetwerk in Figuur 1.14(a). In dit netwerk zijn vijf hosts en een router aangesloten. De router verbindt het netwerk met het Internet: alle internetverkeer passeert dus langs de router.
(a) Een fysiek ringnetwerk met vijf hosts en een router die het netwerk met het internet verbindt.
(b) Het logische netwerk van het fysieke ringnetwerk. Alle internetverkeer passeert langs een centrale router, waardoor we een stertopologie krijgen.
Figuur 1.14: Het verschil tussen een logische en fysieke topologie.
Wanneer de hosts niet rechtstreeks tegen elkaar praten (dit noemen we peer-to-peercommunicatie) maar enkel gebruik maken van bronnen op het internet (bv. surfen op het World Wide Web), passeert alle verkeer langs deze router. Logisch gezien heeft het netwerk dan een stertopologie. De fysieke plaatsing van verbindingen tussen hosts en schakelelementen noemen we de fysieke topologie van een netwerk, terwijl het praktische gebruik van het netwerk de logische topologie bepaalt.
1.3.3
POTS: Plain Old Telephone Service
Om te zien hoe deze topologie¨en in de praktijk toegepast worden, zullen we twee grote bestaande netwerken beschouwen. Het eerste communicatienetwerk dat op grote schaal uitgerold werd in Belgi¨e, is het klassieke telefoonnetwerk. Een klassiek telefoonnetwerk wordt vaak een Public Switched Telephone Network (PSTN) of Plain Old Telephone Service (POTS) genoemd. De topologie van het Belgische telefoonnetwerk 8 wordt schematisch getoond in Figuur 1.15. De hosts in dit netwerk zijn uiteraard de telefoontoestellen. 8
We zien hier eigenlijk het telefoonnetwerk zoals het tot de jaren ’80 voorkwam. Ondertussen is een groot deel van het kernnetwerk IP-gebaseerd.
17
De schakelelementen zijn de Local Exchange (LEX) en de Transit Exchange (TEX). Een LEX is in de praktijk een wijkcentrale, waarvan er minstens ´e´en per gemeente voorkomt. De telefoontoestellen zijn met de LEX verbonden in een stertopologie.
Figuur 1.15: Schematische voortelling van het klassieke telefoonnetwerk
Wanneer je naar een telefoon buiten jouw gemeente wilt bellen, zal het gesprek via een TEX passeren. Traditioneel was er een TEX voor elk zonenummer van twee cijfers (vb. 09 voor Gent en 02 voor Brussel). De zones met drie cijfers werden samengenomen in ´e´en TEX (vb. 052 van Dendermonde en 053 van Aalst worden samengenomen in de TEX voor 05). Binnen dezelfde zone zal elke LEX verbonden zijn met de TEX, waardoor het totale netwerk binnen dezelfde zone een boomtopologie heeft. We willen uiteraard kunnen telefoneren naar een telefoon buiten onze zone. Daarom zijn alle TEX’s met elkaar verbonden in een maastopologie. Deze maastopologie was mogelijk om twee redenen: 1. Het gaat hier om een beperkt aantal schakelelementen (namelijk 9), waardoor het aantal benodigde kabels toch beperkt blijft. 2. Het totale gebrek aan controle op ruimtelijke ordening maakte het leggen van ondergrondse kabels een grootteorde goedkoper dan vandaag. Wat is de topologie van het totale netwerk? Op deze vraag kunnen we onmogelijk een zinnig antwoord geven. In de realiteit zal een netwerk groter dan een LAN nooit ´e´en topologie hebben, maar zal het uit een combinatie van verschillende topologie¨en bestaan naargelang de noden van elk gedeelte van het netwerk, of subnetwerk. Dit onderscheid wordt nog duidelijker in het volgende voorbeeld.
1.3.4
Een kleine LAN verbonden met het Internet
Laat ons nu een moderner voorbeeld bekijken: een klein LAN verbonden met het Internet, afgebeeld in Figuur 1.16. 18
Figuur 1.16: Een klein LAN verbonden met het Internet
Het LAN In dit netwerk worden vier hosts in een stertopologie verbonden met een router of switch. Eveneens aangesloten met het netwerk zijn een netwerkprinter en een netwerkschijf, een NAS. Het netwerk wordt dus gebruikt om bronnen te delen. Aan de switch/router is ook een draadloze access point verbonden, die een draadloze WiFiverbinding voorziet voor laptops en smartphones in het gebouw. Wat is de topologie van het draadloze subnetwerk? Dat is een goede vraag!9 In principe delen alle draadloze apparaten het medium volledig en is het verkeer op het netwerk voor iedereen zichtbaar. In die zin zouden we het een busnetwerk kunnen noemen. Toch zullen we dit als een stertopologie beschouwen, aangezien de access point toch nog actief de toegang tot het netwerk zal regelen. Het totale netwerk wordt dan een combinatie van twee sternetwerken, wat dus in zijn geheel een boomnetwerk geeft met de switch/router als wortel. Dit netwerk wordt dan via een modem verbonden met het Internet via het toegangsnetwerk van Telenet. 9
Al zeg ik het zelf.
19
Het toegangsnetwerk van Telenet Om te zien hoe het LAN verbonden is met het Internet, moeten onderzoeken we nu het toegangsnetwerk van Telenet. Telenet had bij zijn oprichting geen zin om alle voetpaden in Vlaanderen open te breken om nieuwe kabels te leggen. In plaats daarvan maakte hij gebruik van een netwerk van kabels dat reeds aanwezig was: het kabeltelevisienetwerk. Figuur 1.17 toont de werking van dat kabeltelevisienetwerk, ook Community Antenna Television (CATV) genoemd.
Figuur 1.17: De werking van het kabeltelevisienetwerk. Telenet gebruikt dit netwerk als toegangsnetwerk om internettoegang te voorzien in de Vlaamse huizen.
In de beginjaren van de televisie had elk huis met een televisietoestel een gigantische antenne op het dak. Buiten het feit dat antenne¨ınstallateur een levensgevaarlijk beroep was en dat zo’n antenne de ultieme bliksemafleider is, was dit ook een slecht idee wegens de slechte beeldkwaliteit veroorzaakt door elektromagnetische interferentie (zie Hoofdstuk 6). Om dat kwaliteitsprobleem op te lossen, werd het kabeltelevisienetwerk ingevoerd, waarbij een hele streek met kabels verbonden werd met ´e´en grotere antenne. Telenet zal deze antenne niet gebruiken (het televisienet vandaag gebruikt helemaal geen antenne meer), maar zal op de plaats van de antenne, de zogenaamde head-end, een verbinding leggen met het Internet. Het kabelnetwerk wordt dus gebruikt als toegangsnetwerk. De topologie van dit netwerk is moeilijk te bepalen. Sommige auteurs zullen dit een boomnetwerk noemen wegens de afsplitsingen van de kabel op verschillende niveau’s. 20
We kunnen het echter ook beschouwen als een busnetwerk, aangezien het verkeer van ´e´en host in theorie zichtbaar is voor alle andere hosts. In de praktijk is dit door het gebruik van een modem niet mogelijk. We hadden toch gezien dat een busnetwerk bijna alleen maar nadelen had? Waarom heeft Telenet dan voor deze topologie gekozen? Het antwoord is dat Telenet hier absoluut niet voor heeft gekozen: het kabelnetwerk lag er al! Een busnetwerk is ideaal voor ´e´enrichtingsverkeer voor ´e´en enkel signaal (het televisiesignaal) en Telenet, en andere kabeloperatoren over de hele wereld, hebben daarmee genoegen moeten nemen. Het transportnetwerk We weten nu hoe alle huizen in een streek met elkaar verbonden zijn. Als we nog een niveau hoger gaan, kunnen we in Figuur 1.18 zien hoe Telenet heel Vlaanderen verbindt.
Figuur 1.18: Het transportnetwerk van Telenet. De kleine zeshoekjes zijn head-ends. De grote zeshoekjes zijn routers die de hoofdring verbinden met de lokale ringen.
We zien overduidelijk een ringtopologie. De zogenaamde backbone van Telenet is een ring van supersnelle glasvezelkabels (zie hoofdstuk 6) die verschillende kleinere, lokale ringen met elkaar verbindt. Deze lokale ringen verbinden de head-end uit de vorige sectie. Deze backbone is met de rest van de wereld verbonden met behulp een Europees ringnetwerk en onderzeese kabels. Waarom wordt hier voor een ringnetwerk gekozen? Wanneer een transportnetwerk volledig faalt, faalt doorgaans een heel land. Bovendien kost het leggen van kabels met een dergelijke capaciteit onvoorstelbaar veel geld. Telenet heeft hier dus gekozen voor een maximale betrouwbaarheid binnen het beschikbare budget. Aangezien er slechts een beperkt aantal netwerkelementen zijn, is een ring dus een logische keuze. 21
In dit voorbeeld hebben we bijna alle behandelde topologie¨en zien verschijnen: de steren boomtopologie op het LAN-niveau, betwistbaar de bustopologie op het niveau van het toegangsnetwerk en ringtopologie¨en op het niveau van het transportnetwerk in Vlaanderen. Enkel een maasnetwerk komt niet in dit plaatje voor.
22
Hoofdstuk 2 Protocols, protocolstapels en inkapseling 2.1
Een eenvoudige brief
Stel dat je als CEO van een vermaard clownbureau een klachtenbrief wilt schrijven naar jouw heliumleverancier. Je begint te schrijven: De meest recente heliumlevering voldoet niet aan onze kwaliteitseisen. De ballonnen van onze clowns zweven amper en hoewel hun stem hoger klinkt dan normaal, is het geen volwaardige piepstem. Onze reputatie als beste clownuitzendbureau van West-Europa komt hierdoor in het gedrang. Ik had graag gehoord wat uw plannen zijn om deze schade te vergoeden en hoe u de kwaliteit van uw helium in de toekomst plant te garanderen. Je bent klaar! Helaas is er nog behoorlijk veel fout met deze brief. Bovendien zal dit stukje papier niet op magische wijze in de juiste handen terecht komen: daarvoor zal je nog enkele stappen moeten zetten.
2.2
Wat is een protocol?
Een eerste vaststelling is dat een vorm van de brief zelf niet aan de afspraken voldoet. Normaal gezien moet de brief er immers ongeveer zo uitzien:
23
Geachte Heer Verelst, De meest recente heliumlevering voldoet niet aan onze kwaliteitseisen. De ballonnen van onze clowns zweven amper en hoewel hun stem hoger klinkt dan normaal, is het geen volwaardige piepstem. Onze reputatie als beste clownuitzendbureau van West-Europa komt hierdoor in het gedrang. Ik had graag gehoord wat uw plannen zijn om deze schade te vergoeden en hoe u de kwaliteit van uw helium in de toekomst plant te garanderen. Hoogachtend, Michiel Van den Berghe CEO Clowns-R-Us De eerste aanpassing is de toevoeging van een openingsformule of een aanspreking. Een belangrijk gegeven hier is de ontvanger, de persoon voor wie de brief bedoeld is. De andere toevoeging is een afsluitingsformule, waarbij de ontvanger Een brief die deze twee elementen niet bevat, heeft een grote kans om genegeerd te worden. De afspraken rond de vorm van een brief, met een openingsformule met een aanspreking en een afsluitingsformule met een groet van de afzender, kan als een protocol worden beschouwd. Meer algemeen in de context van een communicatiemiddel: een protocol is een verzameling van afspraken rond de vorm van een boodschap en regels die bepalen hoe deze boodschappen uigewisseld worden.
2.3 2.3.1
Protocolstapels en inkapseling De enveloppe
Stel dat je de brief volledig volgens de regels schrijven. Gaat hij dan automatisch bij mr. Verelst geraken? Uiteraard niet! Als je de brief gewoon op jouw bureau laat liggen, zal hij niet op zijn bestemming geraken. De CEO van Clowns-R-Us zal de brief aan zijn secretaresse geven, die dan verantwoordelijk wordt om de brief bij mr. Verelst te krijgen. Ze zal dit als volgt doen: 1. Ze stopt de brief in een enveloppe. 2. Ze zoekt het adres op van Gassen Verelst BVBA en schrijft het op de voorkant van de enveloppe. 24
3. Ze schrijft het retouradres op de achterkant van de enveloppe. 4. Ze plakt een postzegel op de voorkant van de enveloppe. Dat zijn op het eerste zicht voordehandliggende stappen. Toch bevatten ze enkele belangrijke concepten: • De bestemmeling stond al in de aanspreking van de brief, maar toch wordt het adres van de bestemmeling nog op de brief gezet. De CEO en de secretaresse gebruiken dus een verschillende methode voor adressering. • De secretaresse past de brief niet aan, maar doet er een enveloppe rond, waarop ze extra informatie schrijft. Dit is het principe van inkapseling 1 . Ook de vorm van de brief, de vorm van het adres en de correcte frankering kan men als een protocol beschouwen. De secretaresse heeft haar werk gedaan! Het enige wat ze nu nog moet doen, is de enveloppe in een postbus deponeren, waarna de verantwoordelijkheid voor het leveren van de enveloppe bij de postdienst komt te liggen.
2.3.2
De postverdeling
Eens de enveloppe in de postbus zit, zal de postverdeling zijn best doen om hem naar zijn bestemming te krijgen. Om dit te doen, worden alle enveloppes in de postbus op regelmatige tijdstippen naar het dichtstbijzijnde postverdeelcentrum gebracht, waarna alle post in dat verdeelcentrum naar het dichtstbijzijnde postver. Daar aangekomen, worden de brieven gesorteerd op hun bestemmingsadres. Alle brieven voor eenzelfde postzone worden dan naar het juiste postverdeelcentrum gestuurd. Het hele verdeelproced´e kan eveneens als een protocol worden beschouwd. Ook hier gebeurt inkapseling: de brieven worden niet ´e´en voor ´e´en tussen de verdeelcentra vervoerd, maar worden samengenomen in grote bakken. Hier worden dus verschillende boodschappen samen ingekapseld!
2.3.3
Het postvervoer
Om de postbussen leeg te maken, zal de postdienst doorgaans kleine bestelwagens inschakelen. Voor het vervoer tussen verdeelcentra en sorteercentra worden vrachtwagens gebruikt en voor de uiteindelijke levering van post, worden postbodes ingeschakeld met een wijde vari¨eteit aan vervoermiddelen. Ook het periodiek vervoeren van de post tussen deze tussenstations kan men als een protocol beschouwen. 1
Dit wordt soms encapsulatie genoemd. Dat is echter een anglicisme.
25
2.3.4
Alles tezamen: de postprotocolstapel
Als we alles samenvatten, komen we tot de conclusie dat we een verzameling van protocols hebben die op elkaar steunen. Meer bepaald krijgen we een gelaagde structuur zoals in ??, waarbij een laag de diensten van een onderliggende laag zal gebruiken (de brieflaag zal bv. de enveloppelaag gebruiken). Zo’n stapel van protocols noemen we - raar maar waar - een protocolstapel (Eng.: protocol stack). Elke laag van de stapel zal een andere verantwoordelijkheid hebben en zal verder bouwen op de functionaliteit van de onderliggende laag. De verantwoordelijkheden van de verschillende lagen in onze postprotocolstapel worden afgebeeld in Tabel 2.1:
Brieflaag Enveloppelaag Verdelingslaag Vervoerslaag
Bepaalt de regels voor briefcommunicatie tussen twee personen. Stopt de brief in een enveloppe, voegt adresinformatie toe en frankeert. Zorgt dat de enveloppes op de juiste plaats terechtkomen. We kunnen zeggen dat deze laag de route van de enveloppe bepaalt. Brengt de enveloppes van A naar B.
Tabel 2.1: De verantwoordelijkheden van de verschillende lagen van de postprotocolstapel.
Hoe deze protocolstapel uiteindelijk gebruikt wordt, wordt afgebeeld in Figuur 2.1:
Figuur 2.1: De manier waarop de postprotocolstapel doorlopen wordt wanneer een brief wordt verzonden.
De volgende stappen worden genomen om de brief bij de bestemmeling te krijgen: 26
1. In de brieflaag schrijft de CEO de brief. Hij geeft de brief door aan zijn secretaresse in de enveloppelaag. 2. In de enveloppelaag stopt de secretaresse de brief in een enveloppe, zoekt ze het adres van de bestemmeling, schrijft ze die op de enveloppe en plakt ze er een postzegel op. Ze stopt hem ten slotte in de postbus in de verdelingslaag. 3. De enveloppes zullen nu naar hun bestemming gebracht worden. De regels van de verdelingslaag zeggen dat de enveloppe naar het dichtstbijzijnde sorteercentrum moet worden gebracht. Om dat te doen, zal vertrouwd worden op de vervoerslaag, die de enveloppes met vrachtwagens naar het sorteercentrum voert. 4. Eens aangekomen worden de enveloppes terug aan de verdelingslaag bezorgd om ze te sorteren volgens bestemming. 5. Om de enveloppes te sorteren, zullen de sorteermachines2 de adressen op de enveloppe lezen. 6. Op basis van die adressen worden de enveloppes gesorteerd op hun eindbestemming. 7. De enveloppes worden op vrachtwagens geplaatst die de enveloppes naar het verdeelcentrum brengen. De postbodes nemen het hier over. 8. Tijdens hun ronde zullen de postbodes de enveloppes op het juiste adres brengen; 9. Hiervoor zullen de postbodes naar het adres op de enveloppe kijken. Eens de enveloppe in de brievenbus gedeponeerd is, zal de secretaresse van de heer Verelst die ophalen. 10. De secretaresse opent de enveloppe, neemt de brief eruit en bezorgt die aan de heer Verelst. De brief is eindelijk op zijn bestemming geraakt. We zien dus inderdaad dat elke laag in elke stap van het postverdelingsproces enkel de diensten van een onderliggende laag gebruikt en diensten aanbiedt aan een bovenliggende laag. Merk op dat er slechts drie van de vier lagen doorgelopen worden in het sorteercentrum. Dit komt uiteraard door het feit dat de enveloppe niet geopend wordt. Het is dus niet nodig om elke laag te doorlopen in elk tussenstation. Het principe van een protocolstapel is erg belangrijk voor onze bespreking van netwerken, aangezien alle computernetwerken van dit principe gebruik maken. 2
Met ingewikkelde artifici¨ele intelligentietechnieken zijn sorteermachines tegenwoordig sterker in het lezen van adressen dan mensen. Dat is een indrukwekkende technische prestatie op zich!
27
2.4
De Internet Protocol Stack
Ook het Internet is opgebouwd uit protocollen in de vorm van een protocolstapel. De Internet Protocol (IP) stack wordt getoond in Tabel 2.2:
Applicatielaag Bevat alle protocols die gebruikt worden door toepassingen die gebruik maken van het Internet om te communiceren. Deze protocollen zijn vergelijkbaar met het briefprotocol uit de vorige sectie. Voorbeelden van protocollen in deze laag zijn HyperText Transfer Protocol (HTTP), het protocol dat door browsers gebruikt wordt om webpagina’s op te halen van een webserver, Post Office Protocol 3 (POP3) voor het ophalen van e-mail en File Transfer Protocol (FTP) voor bestandsoverdracht.
Transportlaag Zorgt voor een betrouwbare verbinding tussen twee programma’s op verschillende hosts. Een voorbeeld is een verbinding tussen een webbrowser en een webserver, waarover informatie kan worden uitgewisseld met het HTTP-protocol. Een analogie met het postsysteem zou het gebruik van aangetekende zendingen kunnen zijn om te garanderen dat een persoon een bericht gekregen heeft. Het meest voorkomende protocol in deze laag is Transmission Control Protocol (TCP).
Netwerklaag
De netwerklaag zorgt ervoor dat informatie van de ene host naar de andere geraakt. Deze laag kan je vergelijken met de verdelingslaag uit onze postprotocolstapel: ze bepaalt welke route de informatie zal volgen door het netwerk. Het veruit meest voorkomende protocol in deze laag is het Internet Protocol (IP).
Linklaag
De linklaag bepaalt hoe informatie van het ene punt naar het andere geraakt. Meer bepaald zal de linklaag ervoor zorgen dat niet iedereen door elkaar begint te praten op het netwerk. Een analogie met het postmodel zouden de chauffeurs van de postvrachtwagens kunnen zijn: zij brengen de post van het ene punt naar het andere, zonder dat ze de eindbestemming van elke brief kennen. Ze zullen er ook voor zorgen dat ze niet botsen tegen andere postvrachtwagens die dezelfde wegen gebruiken.
Fysieke laag
De laatste laag in de IP stack bepaalt het medium waarover de informatie verstuurd wordt. Voorbeelden zijn UTP-kabels, glasvezelkabels of het draadloze 802.11g WiFi.
Tabel 2.2: De verantwoordelijkheden van de verschillende lagen van de postprotocolstapel.
We zullen nu de verschillende lagen van de IP stack bespreken.
28
Hoofdstuk 3 De applicatielaag 3.1
Een voorbeeld: het Web
De belangrijkste en meest gebruikte toepassing van het Internet is ongetwijfeld het World Wide Web (WWW). Het WWW wordt zelfs vaak verward met het Internet zelf. Iedere keer dat iemand “open het Internet” zegt in plaats van “open de webbrowser”, zou je rillingen moeten krijgen 1 . Het Web is een enorme verzameling van documenten (webpagina’s) die met behulp van hyperlinks naar elkaar verwijzen. Deze documenten zijn meestal geschreven in de opmaaktaal HyperText Markup Language (HTML), die we hier niet bespreken. Om zo’n webpagina te bekijken maken we gebruik van een webbrowser. De pagina’s zelf worden aangeboden door een stukje software op een andere host (de webserver) die we de webserversoftware noemen. Wanneer er geen verwarring mogelijk is tussen de webserver en de webserversoftware, zullen we voor het gemak de term webserver gebruiken. Voorbeelden van webbrowsers zijn Mozilla Firefox, Google Chrome en de beruchte Microsoft Internet Explorer. Voorbeelden van webserversoftware zijn Apache en de eveneens beruchte Microsoft Internet Information Services (IIS).
3.2
Het HTTP-protocol
Om de webserver en de webbrowser met elkaar te laten communiceren, werd het HyperText Transfer Protocol (HTTP) uitgevonden. Het volgende voorbeeld toont de werking van HTTP: 1
Een heel leuke opmerking die ik onlangs gekregen heb, was “maak uw Internet een beetje groter”, alsof een wereldwijd netwerk van miljarden apparaten nog niet voldoende was. De persoon in kwestie bedoelde uiteraard dat ik het venster van mijn webbrowser moest vergroten.
29
Figuur 3.1: Een eenvoudig voorbeeld van de werking van HTTP.
1. De gebruiker voert het adres http://studwww.ugent.be/~mivdnber in. 2. De webbrowser (in dit geval Firefox) zal verbinding maken met de webserversoftware (in dit geval Apache) en vraagt de webpagina aan door de volgende tekst te sturen: GET /~mivdnber/ HTTP/1.1 Host: studwww.ugent.be 3. De webserversoftware antwoordt met de volgende tekst: HTTP/1.1 200 OK Content-Type: text/html Content-Length: 153
Webpagina Dit is een webpagina
4. De webbrowser zal dat antwoord interpreteren en de volgende pagina tonen:
30
Figuur 3.2: De webpagina meegegeven in het antwoord van de webserver.
Zo eenvoudig is HTTP, het basisprotocol van het Web! Uiteraard is dit een erg eenvoudig voorbeeld2 .
3.3
Wat we nog niet weten
We weten nu hoe een webbrowser een webpagina van een webserver haalt, maar er zijn enkele fundamentele zaken die we nog niet behandeld hebben. Een belangrijke vraag die we niet beantwoord hebben, is de manier waarop de verbinding tussen de applicaties tot stand gebracht? Wordt die tekst per post verstuurd? Hoe het communicatiekanaal tussen twee applicaties aangemaakt wordt, is de verantwoordelijkheid van de volgende laag in de IP stack: de transportlaag. Hoe de informatie zijn weg vindt van A naar B is de verantwoordelijkheid van de netwerklaag. Beide lagen worden besproken in het volgende hoofdstuk.
2
Maar werkt wel in de realiteit!
31
Hoofdstuk 4 De netwerklaag en de transportlaag: TCP/IP 4.1
De netwerklaag: IP
De netwerklaag heeft een op het eerste zicht eenvoudige taak: informatie van de ene host naar de andere brengen. We maken opnieuw een analogie met de postverdeling: als we een brief willen versturen, stoppen we hem in een enveloppe waarop het adres van de bestemmeling en het retouradres staat. Dat adres is uiteraard strikt noodzakelijk: anders kan de postdienst nooit weten waar het terecht moet komen! Ook in de context van IP-gebaseerde computernetwerken zullen we adressen gebruiken.
4.1.1
Het IP-adres
Een IP-adres bestaat uit vier getallen van 0 tot en met 255. Er zijn in totaal dus 256 · 256 · 256 · 256 = 4.294.967.296 IP-adressen. Waarom is de bovengrens van die getallen 255 en niet pakweg 1000? Dat is toch een veel handiger getal? Voor ons is dat inderdaad handiger, maar niet voor een computer! Alle gangbare computers werken namelijk met het binaire talstelsel. Elk van die vier getallen wordt opgeslagen in ´e´en byte, of acht bits. De maximale waarde van een byte is 28 − 1 = 255. In totaal bestaat een IP-adres dus uit 4 bytes of 32 bits. Er zijn dus meer dan vier miljard IP-adressen! Hoewel dat op het eerste zicht genoeg lijkt, ligt dat in de realiteit anders: door de explosieve groei van het Internet dreigt er een grote schaarste aan IP-adressen! Een oplossing hiervoor, die langzaam maar zeker uitgerold wordt, is een nieuwe versie van het IP-protocol, die adressen voorziet van 128 bits. Met een 128-bit adres zouden we elk atoom op aarde honderden adressen kunnen geven. 32
In Figuur 4.1 wordt een netwerk getoond met een mogelijke toekenning van IP-adressen.
Figuur 4.1: Een IP-netwerk met toegekende IP-adressen.
Dit netwerk kunnen we beschouwen als een aaneenkoppeling van verschillende kleinere busnetwerken met behulp van routers. Merk op dat binnen elk subnetwerk enkel de laatste byte van het IP-adres verschilt per host. In dit geval is de laatste byte het hostgedeelde van het IP-adres en de rest het netwerkgedeelte. Dit laat ons toe om het IP-adres van een heel netwerk te defini¨eren.
4.1.2
Het adres van een netwerk: subnetmaskers
We hebben met de IP-adressen een manier gevonden om hosts te identificeren in een netwerk. We gaan nu dit concept uitbreiden om ook subnetwerken te kunnen identificeren. Hiervoor gaan we het begrip subnetmasker invoeren. Het subnetmasker is een 32-bits getal in de vorm van een IP-adres dat aanduidt welk gedeelte van het IP-adres het netwerkgedeelte is. We verduidelijken dit met een voorbeeld. Laat ons het IP-adres van host A en zijn subnetmasker binair opschrijven: IP-adres: 01001001.00001100.00101101.00110110 Subnetmasker: 11111111.11111111.11111111.00000000 Netwerkadres: 01001001.00001100.00101101.00000000 We hadden al opgemerkt dat de eerste drie bytes van alle adressen in A’s subnetwerk 33
dezelfde waarde hadden. Dit vertaalt zich in het feit dat de eerste 24 bits van het subnetmasker 1-bits zijn en de rest 0-bits. We construeren nu een nieuw adres waarvan de bits 1 zijn als de overeenkomstige bits in het IP-adres en het subnetmasker allebei 1 zijn en anders 0. Dit adres noemen we samen met het subnetmasker het netwerkadres van het subnetwerk. Het netwerkadres is in dit geval 73.45 54.0 met subnetmasker 255.255.255.0. Een handigere notatie is 73.45.54.0/24, waarbij de 24 het aantal 1-bits in het subnetmasker aangeeft. Dit is de notatie die wij zullen gebruiken. Samengevat is het adres van Subnet 1 in Figuur 4.1 73.45.54.0/24. Er worden dus 24 bits gebruikt om het subnetwerk aan te duiden en 32 − 24 = 8 bits om de hosts binnen het subnetwerk aan te duiden. Stel nu dat host A moet bepalen of host B in hetzelfde subnetwerk ligt. Hoe pakt A dit aan? A weet dat de eerste 24 bits het subnetwerk aanduiden, dus A gaat kijken naar de eerste 24 bits van het IP-adres van B (73.12.44.32): IP-adres B: 01001001.00001100.00101100.00100000 Subnetmasker A: 11111111.11111111.11111111.00000000 Netwerkadres: 01001001.00001100.00101100.00000000 We bekomen het netwerkadres 73.12.44.0/24. Dit is niet gelijk aan het netwerkadres van A, namelijk 73.12.45.0/24! A weet dus nu dat B niet in hetzelfde subnetwerk zit. We kunnen nu de verschillende subnetwerken uit ons voorbeeld aanduiden zoals in Figuur 4.2.
Figuur 4.2: Het voorbeeldnetwerk aangevuld met subnetwerkadressen.
34
Opmerkingen • Een opmerkelijk netwerkadres is 0.0.0.0/0. Dit betekent dat er 0 bits gebruikt worden om het netwerk aan te duiden. Dit betekent dat er slechts 20 = 1 zo’n netwerk is. Het betekent ook dat het volledige adres benut wordt om de hosts aan te duiden. 0.0.0.0/0 is bijgevolg een netwerk dat alle hosts op het Internet bevat. Het is dus het adres van het Internet. • We kunnen ook het volledige netwerk in Figuur 4.2 aanduiden met een adres. Merk op dat de eerste twee bytes, of dus de eerste 16 bits van alle hosts dezelfde zijn. We kunnen het hele netwerk dus aanduiden als 73.12.0.0/16.
4.1.3
Hoe krijgen we informatie van host A naar host B?
Stel nu dat we een afbeelding van host A naar host B willen loodsen. Hoe pakken we dit aan? Stel dat je op road trip van Gent naar Barcelona wilt. Een slimme manier om dit te doen, is om vooraf de route perfect uit te stippelen met een routeplanner en een schema af te drukken dat elke bocht en elke afslag bevat die je zal moeten nemen. Dat is ook meteen de saaiste manier. De leukste manier is om doodleuk te beginnen rijden: je weet niet waar Barcelona precies ligt, maar je weet wel dat het in het zuiden ligt. Je kent een grote stad ten zuiden van Gent: Parijs! Je rijdt er naartoe en vraagt daar aan een Parisiaan1 hoe je naar Barcelona gaat. De man kan de exacte instructies niet geven, maar raadt je aan om naar Clermont-Ferrand te rijden. Hij legt de weg naar Clermont-Ferrand uit en zegt dat je het daar nog eens moet vragen. Daar krijg je instructies om naar Montpellier te gaan en in Monpellier krijg je de raad om gewoon de Middellandse Zee naar het zuiden te volgen, waarna je in Barcelona belandt. Samengevat heb je dus twee opties: 1. Je stippelt van in het begin een route uit, die je vervolgens uitvoert. 2. Je rijdt naar een stad dichter bij jouw bestemming en vraagt daar naar verdere instructies. Ook in een computernetwerk zouden we deze twee strategie¨en kunnen toepassen. De eerste manier is behoorlijk problematisch: om dit te kunnen toepassen zou je een kaart van alle verbindingen en routers moeten hebben tussen host A en host B. Voor het wegennetwerk 1
Dit is de tweede keer dat het woord “Parisiaan” gebruikt wordt in een cursus over netwerken. Dit moet een record zijn!
35
hebben we zo’n kaart, maar een kaart van het Internet zou onpraktisch groot zijn. Optie 1 is dus van de baan. Het IP protocol zal dus optie 2 gebruiken, waarbij de steden vervangen zijn door routers. We zullen nu zien hoe dit in zijn werk gaat.
4.1.4
IP-pakketten
We hadden al gezegd dat we om een brief te kunnen verzenden, we de brief in een enveloppe moeten steken met het adres en het retouradres. Ook bij het IP-protocol zullen we dat doen: de afbeelding wordt ingekapseld in een pakket, dat het IP-adres van de bestemming en het IP-adres van de afzender bevat. Net zoals je in een standaardenveloppe maar een brief van een beperkte grootte krijgt, zal in een IP-pakketje slechts een beperkte hoeveelheid informatie passen. Om een grote afbeelding toch te kunnen versturen, zal je die in stukken moeten snijden en verzenden in verschillende pakketjes. In de praktijk zal een IP-pakketje maximaal 65KB23 groot zijn. Voor een afbeelding wordt dit proces, dat fragmentatie genoemd wordt, getoond in Figuur 4.3. Na segmentatie, zal elk stukje afzonderlijk ingekapseld worden in een IP-pakketje.
Figuur 4.3: Het principe van IP-pakketjes: een grote hoeveelheid data wordt opgebroken in kleine stukjes die ingekapseld worden in pakketjes met een bron- en bestemmingsadres. 2
KB staat voor kilobyte, of 1000 byte. Sommige auteurs zeggen dat een kilobyte 1024 bytes is. Dat is echter fout: 1024 bytes noemt men een kibibyte (KiB). 3 De reden voor deze limiet, is dat de lengte van de data in een IP-pakket meegegeven wordt als een getal van 2 bytes. De maximale waarde van een getal van twee bytes, of 16 bits, is 216 − 1 = 65536.
36
4.1.5
Het IP-routeringsmechanisme
Nu we onze IP-pakketjes hebben, zijn we klaar om ze naar hun bestemming te sturen. Zoals reeds gezegd wordt er op voorhand geen volledige route bepaald voor een pakketje, maar zal het van elke router dat het passeert instructies krijgen om naar de volgende router te reizen. Deze instructies worden bijgehouden in een routeringstabel. Deze manier van werken wordt getoond in Figuur 4.4. Een routeringstabel zou er bv. zo kunnen uitzien: Bestemming
Volgende hop
85.145.87.2 85.145.87.3 85.145.87.4 85.145.87.5 98.172.44.204 IP-adres 6 IP-adres 7 ···
85.145.96.1 85.145.96.1 85.145.96.1 85.145.96.1 85.145.96.2 85.145.96.2 85.145.96.2 ···
Natuurlijk wil je alle bestemmingen op het Internet kunnen vergelijken! Helaas zijn er meer dan 4 miljard mogelijke bestemmingen. Om dan de volgende hop te vinden, zou je dan elke keer een gigantische tabel moeten doorlopen! Als je rekent dat een adres 4 bytes groot is, zou de tabel dus meer dan 16 miljard bytes of 16GB innemen. Dat is onpraktisch groot. Bekijk echter de eerste vier IP-adressen in de routeringstabel. Enkel de laatste byte van het IP-adres verschilt! We hebben gezien dat we alle IP-adressen van dit netwerk kunnen samenvatten in een subnetwerkadres, in dit geval 85.145.87.0/24. Ook de 4 miljard andere adressen kunnen we samenvatten als 0.0.0.0/0 (het Internet!). We kunnen de tabel dus perfect als volgt samenvatten: Bestemming
Volgende hop
85.145.87.0/24 85.145.96.1 0.0.0.0/0 85.145.96.2 We hebben een tabel met meer dan vier miljard rijen dus samengevat in een tabel van twee rijen! Wanneer de router een pakketje de weg moet wijzen, zal hij nu het meest precieze netwerk - dat is het netwerk met het minste aantal hosts - waarin de bestemming zich bevindt opzoeken en het pakketje naar de volgende hop sturen. In Figuur 4.5 wordt dit principe toegepast op het vorige voorbeeld.
37
Figuur 4.4: Een vereenvoudigd voorbeeld van IP-routeringstabellen: elke host en router zal voor elke mogelijke bestemming de volgende hop bijhouden in een tabel om een pakketje dichter bij de bestemming te brengen.
Figuur 4.5: Een iets complexer voorbeeld van IP-routeringstabellen: in plaats van een tabel van alle bestemmingen bij te houden, zullen we deze samenvatten in subnetwerkadressen.
38
4.1.6
Hoe krijgt mijn PC een IP-adres?
Een mogelijkheid om een IP-adres te krijgen, is om het adres zelf te kiezen en in te stellen. Hoe dit moet is sterk afhankelijk van jouw besturingssysteem. Dat is echter een vervelende klus en helemaal niet praktisch. Er mogen namelijk geen twee hosts met hetzelfde adres aangesloten zijn op hetzelfde subnetwerk, dus je moet geluk hebben om een goed IP-adres te kiezen. Je hebt waarschijnlijk gelukkig nooit zelf een IP-adres moeten instellen om verbinding te maken met het Internet. Maar hoe geraak je dan aan zo’n adres? Om dat probleem aan te pakken, werd het Dynamic Host Configuration Protocol (DHCP) uitgevonden. DHCP is een protocol in de netwerklaag dat instaat voor de verdeling van IP-adressen. DHCP werkt zoals ge¨ıllustreerd in Figuur 4.6:
Figuur 4.6: De werking van het Dynamic Host Configuration Protocol (DHCP)
1. Een nieuwe host op het netwerk stuurt een DHCP-DISCOVER-boodschap uit naar iedereen op dat netwerk4 , dat aangeeft dat je ge¨ınteresseerd bent om een IP-adres te krijgen. 2. Alle hosts op het netwerk ontvangen deze boodschap. Iedereen zal deze boodschap negeren, behalve ´e´en welbepaalde host op het netwerk: de DHCP-server. De DHCPserver is de host op het netwerk die het uitdelen van IP-adressen beheert. De DHCPserver zal een DHCP-OFFER-boodschap naar de host sturen om aan te geven dat hij kan optreden als DHCP-server. 3. De host ontvangt deze boodschap en stuurt een DHCP-REQUEST naar de DHCPserver om een IP-adres te krijgen. 4. De server stuurt een DHCP-ACK (ACK staat voor acknowledgement, wat “bevestiging” betekent) met een IP-adres dat de host voor een bepaalde duur mag gebruiken. 4
Dit wordt een broadcast genoemd.
39
Het IP-adres wordt dus volledig automatisch ingesteld. In de praktijk zal de DHCP-server aangeboden worden door jouw Internet Service Provider (ISP).
4.1.7
Beu om steeds een IP-adres te moeten opzoeken?
Waarschijnlijk niet, aangezien de meeste mensen nog nooit een IP-adres hebben ingetikt om naar een website te surfen. Merk wel op dat dit mogelijk is: als je toevallig het IP-adres van Facebook kent, kan je dat gewoon in jouw browser ingeven. Handig is dat echter absoluut niet. Een jaar na de invoering van IP, waren de gebruikers het al beu om een lijst van IP-adressen bij te houden en ontwikkelden ze een handige oplossing: het Domain Name System (DNS). Het DNS-protocol wordt gebruikt om domeinnamen (zoals facebook.com) te vertalen naar echte IP-adressen. Om dit mogelijk te maken zal een ISP een DNS-server op het netwerk aansluiten die een tabel bijhoudt met een lijst van domeinnamen en hun overeenkomstige IP-adressen. Om het IP-adres op te zoeken van een bepaalde domeinnaam, zal een host een DNS-aanvraag naar de DNS-server sturen.
4.1.8
Wat weten we nu?
Hoera! We weten nu hoe we informatie van de ene host naar de andere host over een IP-netwerk kunnen sturen! Er zitten echter nog enkele anaconda’s onder het gras. Helaas IP is absoluut niet perfect! In tegendeel: IP zal een goede poging doen om een pakketje van A naar B te brengen, maar kan en zal daar regelmatig behoorlijk hard in falen. Vergelijk het met de post: het kan gebeuren dat een postkaartje of een uitnodiging verloren gaat in de post. In het geval van IP is dit niet anders. IP-pakketjes kunnen bv. verloren gaan wanneer een router overladen is. Dat betekent dat een router meer pakketjes binnenkrijgt dan hij kan verwerken. In dat geval kan een router niet anders dan het pakketje te negeren. Een vuistregel is dat ongeveer ´e´en pakketje op 1000 verloren gaat. Dat maakt het bijna onmogelijk om een groot bestand foutloos door te sturen! Dat is duidelijk een probleem dat moet worden aangepakt. Een ander probleem is van een praktische aard. We hebben de pakketjes van host A naar host B gebracht, maar wat moet er daarna mee gebeuren? Je hebt meestal meerdere toepassingen open staan die gebruik maken van het Internet. Voor welke applicatie is het binnengekomen pakketje bedoeld? Als een e-mail aan Skype gegeven wordt, zal Skype behoorlijk in de war zijn. 40
Beide problemen worden opgelost in de laag boven de IP-laag: de transportlaag.
4.2
De transportlaag: TCP
Het belangrijkste protocol in de transportlaag is TCP. TCP heeft twee verantwoordelijkheden: • Het zorgt ervoor dat de uitwisseling van pakketjes betrouwbaar wordt. • Het zorgt ervoor dat de ontvangen pakketjes naar de juiste applicatie worden gestuurd. Om ervoor te zorgen dat een pakketje naar de juiste toepassing gestuurd wordt, voert TCP het concept poort in. Een poort is een toegangspunt van een applicatie waardoor pakketjes kunnen worden geloodst. Elke poort heeft een nummer. Om een pakketje naar de juiste applicatie te sturen, zal het poortnummer van de applicatie worden meegestuurd met het pakketje. Ook de poort waarop je een antwoord wilt ontvangen wordt meegestuurd. Om die verbinding betrouwbaar te maken, kan je de werking van TCP vergelijken met het gebruik van aangetekende postzendingen. Wanneer je zeker wilt zijn dat een persoon een brief ontvangt, zal je deze brief als een aangetekende zending verzenden. Wanneer de persoon zijn brief komt halen op het postkantoor, zal je een ontvangstbevestiging krijgen. TCP zal dit ook doen: voor elk pakketje dat je verzendt, zal de ontvanger een ontvangstbevestiging of ACK (afkorting voor “acknowledgement”, Engels voor “bevestiging”) ontvangen. Om dit mogelijk te maken, zal TCP de informatie inkapselen in een TCP-pakketje alvorens het in te pakken in een IP-pakket. Dit wordt ge¨ıllustreerd in Figuur 4.7. In dit TCPpakketje zit de volgende informatie: • Een sequentienummer. Dit zal worden gebruikt om te detecteren wanneer een pakketje verloren gegaan is. • Het poortnummer van de applicatie waarvoor het segment bedoeld is.
41
Figuur 4.7: Het inkapselen van de segmentjes in TCP-pakketten en uiteindelijk IP-pakketten.
Voor de exacte werking van TCP verwijs ik naar de slides.
4.3
Samengevat: de IP stack tot nu toe
Als we nu teruggrijpen naar het voorbeeld uit hoofdstuk 3, krijgen we de volgende situatie:
42
Figuur 4.8: De IP-stapel zoals we hem tot nu toe gezien hebben
De webbrowser wilt HTTP-commando’s versturen naar de webserversoftware. Om dit te doen, zal hij steunen op de transportlaag om een betrouwbare verbinding met de webserversofware te leggen. De transportlaag zal hiervoor het TCP-protocol gebruiken. Om de pakketjes van de webbrowser naar de server te brengen, zal de transportlaag steunen op de netwerklaag. De netwerklaag zal met behulp van IP de pakketjes naar hun bestemming loodsen. De IP stack begint vorm te krijgen! Er is echter nog ´e´en groot mysterie: hoe sturen we al die informatie eigenlijk over een kabel?!
43
Hoofdstuk 5 De link- en fysieke laag 5.1
Doel
We weten nu hoe we informatie op een betrouwbare manier van de ene host naar de andere kunnen sturen over het Internet. Er rest ons echter nog ´e´en prangende vraag: hoe sturen we die informatie in godsnaam over een kabel? Hoe dit gebeurt is de verantwoordelijkheid van de laatste twee lagen van de IP-stapel. Meer bepaald zal de fysieke laag bepalen hoe informatie over de kabel gestuurd wordt, terwijl de linklaag zal bepalen wanneer en naar welk toestel die informatie verstuurd wordt.
5.2 5.2.1
De fysieke laag Een eenvoudige elektrische schakeling
Een fietslampje is een erg eenvoudig apparaat. Er zit een batterij, een lampje en een schakelaar in, die verbonden zijn zoals in Figuur 5.1. Wanneer we de schakelaar overhalen zal er een elektrische spanning op de twee aansluitingspunten van de lamp komen, waardoor er een elektrische stroom door de lamp loop, waardoor de lamp begint te branden. Wat heeft dit te maken met he verzenden van informatie? Als de lamp brandt, dan weten we dat de schakelaar aan staat. Als de lamp niet brandt, dan weten we dat de schakelaar uit staat1 . We hebben dus informatie over de stand van de schakelaar over een kabel gezonden! We kunnen echter ook een hele reeks van schakelstanden over de kabel zenden door de schakelaar herhaaldelijk aan- en uit te schakelen. 1
Of dat een onderdeel van het netwerk niet meer werkt, maar laat ons aannemen dat dit niet het geval
is.
44
Figuur 5.1: Een eenvoudig elektrisch circuit om een lamp aan- of uit te schakelen.
Dit principe kunnen we gebruiken om bits over de kabel te sturen. In Figuur 5.22 wordt een byte verzonden. In de figuur wordt een 5-voltbatterij gebruikt om de lamp te doen branden. Merk op dat het belangrijk is om te weten hoe lang een bit aangehouden wordt. Dit noemen we de bittijd. Als de ontvanger deze tijd foutief inschat, zal hij namelijk te veel of te weinig bits detecteren. In de praktijk zal je eerder het omgekeerde van de bittijd gebruiken, namelijk de bitrate, die zegt hoeveel bits per seconde over het kanaal worden verstuurd. Merk op dat er slechts twee mogelijke symbolen over de kabel worden verzonden: 0 of 1. Een communicatiekanaal dat een beperkt aantal symbolen aanneemt noemen we een digitaal kanaal. Een kanaal met twee waarden in het bijzonder noemen we een binair kanaal. Stel dat we in de plaats van een schakelaar een dimmer zouden gebruiken. In dat geval zouden er oneindig veel verschillende symbolen tussen 0 en 5V mogelijk zijn. Zo’n kanaal noemen we een analoog kanaal. Op het eerste zicht kan zo’n kanaal veel meer en gedetailleerdere informatie verzenden dan een digitaal kanaal. Digitale kanalen hebben echter enkele grote voordelen. E´en daarvan is de eenvoudige hardware. Hardware voor analoge communicatie is lastig te ontwerpen en meestal erg zwaar en duur. Denk maar aan de oude beeldbuistelevisies: pareltjes van techniek, maar hopeloos complex en log. Een ander voordeel van digitale communicatie, is dat het veel resistenter is tegen ruis. Daarover hebben we het verderop. 2
Merk op dat dit een grove vereenvoudiging is: in de realiteit zal er nooit gemiddeld een positieve spanning over een kabel staan. Dit zorgt er namelijk voor dat de kabel heet wordt en verhoogt het gevaar op elektrocutie. Dit geheel terzijde.
45
Figuur 5.2: De manier waarop bits over een kabel kunnen worden verzonden. Wanneer de spanning op de kabel hoog is, wordt de bit als 1 beschouwd, anders 0.
5.2.2
Transmissiemedia
Bedraad De kabel in deze eenvoudige schakeling is een eenvoudig transmissiemedium. De meeste bekabelde transmissiemedia werken op dezelfde manier: ze verzenden informatie door de spanning op een kabel te vari¨eren. Een grote uitzondering hierop zijn de optische glasvezelkabels, die lichtpulsen gebruiken. Voorbeelden van bedrade transmissiemedia zijn Shielded Twisted Pair (STP), onder andere gebruikt op het telefoonnetwerk, Unshielded Twisted Pair (UTP), zoals gebruikt in de meest voorkomende netwerkkabels in een LAN en coax, de kabel waarmee onder andere het analoge televisiesignaal en kabelinternet verdeeld wordt. Draadloos We zijn tegenwoordig volledig omringd door draadloze communicatienetwerken. Het GSM-netwerk is het meest gebruikte voor telefonie, maar voor computernetwerken is 802.11b/g/n, beter bekend als WiFi, veruit het meest vertegenwoordigd. Alle draadloze technologie¨en hebben echter ´e´en ding gemeen: ze gebruiken radiogolven in plaats van kabels om informatie te verzenden. Een exotisch ander voorbeeld van draadloze communicatie, is communicatie via sattelieten. De meest gangbare communicatiesattelieten cirkelen in een 35.000km hoge baan rond de aarde. Op die hoogte duurt het 24 uur voor een satteliet de aarde rond vliegt. Aangezien dit even lang is als ´e´en dag, blijft de kunstmaan altijd op hetzelfde punt in de hemel. Deze geostationaire sattelieten worden meestal gebruikt om verafgelegen gebieden te ontsluiten of als alternatief voor transatlantische kabels. Een groot nadeel is de enorme afstand dat een signaal moet afleggen: tegen de snelheid van het licht kan een signaal er meer dan 31 van een seconde over doen om de bestemming te bereiken. Dat lijkt op zich 46
kort, maar dat is erg lang voor een communicatienetwerk. Deze vertraging kan je vaak merken bij buitenlandse berichtgeving in een TV-journaal.
5.2.3
Encoderingen
We weten al hoe we de stand van een schakelaar over een kabel kunnen sturen. Dat is echter vrij oninteressante informatie: eigenlijk zijn we ge¨ınteresseerd in het verzenden van alle vormen van informatie die we ons kunnen inbeelden, zoals getallen, tekst, afbeeldingen, video etc. Hoe we een getal kunnen versturen over een binair kanaal hebben we al gezien: in Figuur 5.2 wordt een byte doorgestuurd, of dus een getal tussen 0 en 256 (256 niet inbegrepen). De manier waarop je informatie over een kanaal stuurt noemen we een encodering. Hoe we tekst en afbeeldingen encoderen om over een kabel te sturen, zullen we nu zien. Tekst: Morse De vroegste methode om tekst door te sturen hebben we reeds gezien in Hoofdstuk 1: de morsecode. Op het eerste zicht zou je kunnen denken dat dit een binaire code is: het kanaal staat ofwel aan of uit. Dit klopt echter niet, aangezien de morsecode de volgende symbolen kent: 1. een korte puls 2. een lange puls die dubbel zo lang duurt als de korte 3. een korte pauze om de letters te scheiden 4. een dubbele pauze om de woorden te scheiden 5. een driedubbele pauze om de zinnen te scheiden We hebben dus vijf symbolen! Het blijft dus wel een digitaal signaal. Tekst: de ASCII-code Een modernere code is de American Standard Code for Information Interchange (ASCII), die wel binair ge¨encodeerd wordt. Bij de ASCII-code wordt elk letterteken voorgesteld door een getal van 7 bits, zoals in Figuur 5.3. Hoe we getallen encoderen weten we al! Deze code kan worden verzonden over een binair kanaal en is praktischer om te verwerken door computerhardware aangezien alle letters uit hetzelfde aantal bits bestaan.
47
Figuur 5.3: Een vertaaltabel voor de ASCII-code
Merk op dat ASCII nog steeds gebruikt wordt, maar in de meeste toepassingen vervangen is door andere encoderingen, die bv. accenten en Cyrillisch en Arabisch ondersteunen. Merk ook op dat er in ASCII in principe slechts 7 bits gebruikt worden. Die achtste bit werd vroeger gebruikt voor foutdetectie (zie , maar wordt inmiddels gebruikt om ook accenten te ondersteunen in de Extended ASCII-standaard. Minder evident: een afbeelding Zie slides. Elke afbeelding bestaat uit kleine gekleurde vierkantjes die we pixels noemen. Merk op dat we elke kleur die we als mens kunnen zien, kunnen maken door drie kleuren te mengen. Traditioneel zijn deze kleuren rood, geel en blauw. Het menselijk oog zal kleuren echter ontleden in de kleuren rood, groen en blauw. Om de hoeveelheid rood, groen of blauw nodig om de kleur van een pixel te krijgen aan te duiden, wordt een byte gebruikt. Per pixel worden dus drie bytes opgeslagen. We noemen dit het Red Green Blue of RGB-kleurenformaat. Wanneer de pixelwaarden (R: 255, G: 255, B: 255) zijn, zal de kleur van de pixel wit zijn. De waarden (R: 150, G: 0, B: 50) zullen een donkerpaarse kleur geven.
48
Figuur 5.4: Een voorbeeld van de gevolgen van EMI op een digitaal kanaal. Het oorspronkelijke signaal (boven) wordt vervormd (onder) zodat een bit fout wordt uitgelezen.
5.2.4
Probleem: EMI
Je hebt het ongetwijfeld al eens meegemaakt: ruis op de kabel die het analoge televisiebeeld verstoort of de radio die oorverdovend kraakt. Dit is een vervelende zwakte van elektrische signalen: ze worden erg gemakkelijk vervormd door externe factoren. Deze vervorming van elektrische signalen noemen we Elektromagnetische Interferentie (EMI). Bronnen van EMI zijn het gebruik van slechte kabels (onzuiverheden in het metaal, slechte afscherming, ...), de nabijheid van slechte kabels die hun signaal naar een andere kabel “lekken”, radiogolven afkomstig van slecht afgeschermde microgolfovens3 of andere radiotoepassingen en, vreemd genoeg, de Big Bang. De Big Bang is verantwoordelijk voor verrassend veel EMI veroorzaakt door microgolfstraling, die tijdens de oerknal geproduceerd werd. De gevolgen van EMI voor digitale communicatie, is dat bits van waarde kunnen veranderen. Een voorbeeld hiervan is te zien in Figuur 5.4: de voorlaatste bit wordt door ten gevolge van ruis verkeerd ge¨ınterpreteerd als een 0-bit. Om te verhinderen dat een signaal vervormd wordt door EMI, worden verschillende trucjes toegepast. Een methode om invloeden van buitenaf te beperken, is om de kabel goed af te schermen. Dit wordt onder andere gedaan bij coaxkabels: de datakabel wordt omringd door een laag metaal dat EMI probeert tegen te houden. Deze methode werkt echter maar tegen bepaalde soorten van EMI, waardoor er toch nog ruis op de kabel komt. 3 Leuk weetje: WiFi werkt op ongeveer dezelfde frequenties als microgolfovens. Oude, slecht afgeschermde magnetrons kunnen jouw WiFi-verbinding sterk be¨ınvloeden!
49
Een andere methode wordt gebruikt door unshielded twisted pair (UTP): Het signaal wordt over twee verschillende kabels verzonden, die knus rond elkaar worden gewonden. Waarom dit helpt tegen EMI zou ons te ver leiden in de spannende wereld van de elektrotechniek, maar door de kabels rond elkaar te winden, zullen de kabels bijna enkel elkaar op een voorspelbare be¨ınvloeden. Aangezien het effect voorspelbaar is, kunnen we daarmee rekening houden. UTP-kabels zijn de meest voorkomende netwerkkabels in een LAN. De oude telefoonkabels, die al decennia lang onze huizen binnenkomen, zijn STP-kabels (Shielded Twisted Pair). Deze maken gebruik van zowel afscherming als van het omwinden van kabels. Merk op dat EMI volledig wegwerken praktisch onmogelijk is. Zelfs de meest geavanceerde elektrische transmissiemedia hebben hier nog last van. De trucjes die hier toegepast worden op fysieke kabels zijn ook compleet onmogelijk toe te passen op draadloze transmissie, waar de effecten van EMI nog dramatischer zijn.
5.2.5
Foutdetectie
Aangezien we EMI niet volledig kunnen vermijden, moeten we de gevolgen van EMI zien te verminderen. Het zou erg handig zijn als we konden weten wanneer een bit is omgeslagen door EMI. Stel dat we de letter K willen doorsturen met behulp van de ASCII-code. Volgens de tabel in Figuur 5.3 heeft deze letter de waarde 75, of binair 1001011. Stel dat er een bit flipt, waardoor we binair 1001001 uitkomen. Dat is de letter I! De informatie die ontvangen wordt, is dus niet de informatie die we verzonden hebben. Om te detecteren wanneer een bit flipt ten gevolge van EMI, kunnen we gebruik maken van pariteitsbits. Een pariteitsbit is een extra bit die wordt toegevoegd aan een bitsequentie om het mogelijk te maken om fouten in de bitsequentie te detecteren. In zijn eenvoudigste vorm kunnen we een pariteitsbit als volgt toevoegen: tel het aantal 1-bits in de sequentie. Als dit een even aantal is, voeg dan een 0-bit toe. Als het een oneven aantal is, voeg dan een 1-bit toe. Voor de letters K en L krijgen we dus de volgende sequentie:
0 K: |1001011 {z } |{z} data
pariteit
L: 1001100 1 | {z } |{z} data
pariteit
Merk op dat het aantal 1-bits nu voor elke bitsequentie even is. Om te controleren of een sequentie goed ontvangen is, moeten we dus gewoon controleren of het aantal bits even is! Als het aantal 1-bits oneven is, moet er een bit omgeslagen zijn ten gevolge van EMI. 50
Merk op dat deze methode enkel werkt als er maximaal ´e´en bit omslaagt. Als er twee bits veranderen in ´e´en bitsequentie, zal deze als juist worden gezien. Er bestaan echter ingewikkeldere methodes voor foutdetectie die meerdere bitfouten kunnen detecteren. Om dat te verwezelijken zullen meerdere bits worden toegevoegd. Wat zal er gebeuren als we een fout detecteren? Afhankelijk van de toepassing zouden we de informatie gewoon kunnen negeren, of we zouden een retransmissie van de informatie kunnen aanvragen.
51
Woordenlijst ARPA Advanced Research Project Agency. 7 ASCII American Standard Code for Information Interchange. 47 BAN Body Area Network. 9 CAN Metropolitan Area Network. 10 CATV Community Antenna Television. 20 DARPA Defense Advanced Research Project Agency. 7 DHCP Dynamic Host Configuration Protocol. 39 DNS Domain Name System. 40 EMI Elektromagnetische Interferentie. 49 ENIAC Electronic Numerical Integrator And Computer. 5 FTP File Transfer Protocol. 28 HAN Home Area Network. 9 HTML HyperText Markup Language. 29 HTTP HyperText Transfer Protocol. 28, 29 IMP Interface Message Processor. 7 IP Internet Protocol. 28 ISP Internet Service Provider. 40 LAN Local Area Network. 9, 18 LEX Local Exchange. 18 MAN Metropolitan Area Network. 10 NAS Network Attached Storage. 9, 19 NCP Network Control Protocol. 7 PAN Personal Area Network. 9 POP3 Post Office Protocol 3. 28 POTS Plain Old Telephone Service. 17 52
PSTN Public Switched Telephone Network. 17 STP Shielded Twisted Pair. 46 TCP Transmission Control Protocol. 28, 41 TCP/IP Transmission Control Protocol / Internet Protocol. 8 TEX Transit Exchange. 18 UNIVAC UNIVersal Automatic Computer. 5 UTP Unshielded Twisted Pair. 46 WAN Wide Area Network. 10 WWW World Wide Web. 29
53