Computers op het internet hebben een IP nummer als adres, deze is meestal in 32 bit(Ipv4) of 128
bit (IPv6). Wordt meestal als 4 byte genoteerd(dotted decimal system): 131.211.80.17. De nummers
zijn nodig voor de routers (IP protocol) maar zijn niet handig voor mensen. In ternet namen zijn
hiërarch georganiseerd:
• Top leven domein: com, org, edu, nl, fr enz.
• Hierbinnen verdeling: cnn.org, uu.nl, co.uk
• Verdeling kan willekeurig diep voortgezet worden: cc.uu.nl, demon.co.uk, cl.cam.ac.uk
• Domeinnamen versus hostnamen: www.cs.uu.nl
Er is geen logische relatie met IP nummers. Er is een mapping van naam van machine naar IP adres.
Dit moet je ergens opslaan en bij de hand hebben. Hier zorgt DNS voor. DNS is een Domain Name
System. Gedistribueerde database voor het omzetten van namen naar nummers. Nameserver zet
naam om in bijbehorende IP-adres. Een centrale database is ondoenlijk:
• Te kwetsbaar (single point failure)
• Te druk (CPU en netwerkverkeer)
• Moeilijk te beheren (updates)
• Niet schaalbaar
Er is daarom gekozen voor een gedistribueerde database, die in stukjes in gehakt, waarbij iedereen
op het netwerk iets voor zijn rekening neemt:
• Aparte ‘top-level’ nameservers
• Aparte nameserver voor ‘nl’, ‘uu.nl’, ‘cs.uu.nl’
• Sommige namesevers beheren meerdere domeinen
Voorbeeld:
Je wilt vanuit je machine verzoek doen naar een website, bv: www.cam.ac.uk bereiken. Vanaf de
machine wil je connectie maken maar je weet niet wat het IP adres is wat erbij hoort. Machine weet
wel dat er op 131.211.80.32 een vaste nameserver zit. De machine vraagt aan 131.211.80.32 wat het
IP adres van www.cam.ac.uk is maar deze weet het ook niet. De nameserver moet het aan een
andere nameserver gaan vragen en proberen uit te vinden welke nameserver het wel weet.
131.211.80.32 vraagt aan de root nameserver (soort hulp nameserver die je verder kan helpen
mocht je het IP nergens kunnen vinden) en die weet IP adressen van nameservers voor top-level
domains (com, nl, uk). Wordt recursieve queries.
, Root nameserver gaat het erg druk krijgen en wilt zo snel mogelijk jouw verzoek afgehandeld
hebben. Wat waarschijnlijk is dat de root nameserver je verzoek niet overneemt maar het IP adres
van de nameserver geeft die dichterbij zit. Dus vaak weet de root nameserver niet de uiteindelijke
nameserver maar wel een tussenliggende nameserver.
Recursieve query vraagt een nameserver aan een andere en geeft het antwoord terug. Iteratieve
query geeft nameservers alleen het adres van een andere nameserver terug. Een lokale nameserver
bevat een cache en bewaart hier alle recent opgehaalde nameserver IP’s, hierdoor kan een verzoek
die eerder al is geweest sneller afgehandeld worden. Na verloop van tijd zullen deze uit cache
verwijderd worden. Deze informatie in de cache kan ook verouderd worden, nameserver
verdwijnen, domeinen verdwijnen, enz. Dit moet om de tijd ververst worden. Aan elke record zit een
tijd aangeboden (TTL -> time to live) om aan te geven hoelang het record geldig is voordat het
ververst moet worden, het wordt dan verwijderd en moet opnieuw opgehaald worden als hierom
wordt gevraagd. In de nameserver staat een file (database) met informatie over o.a. de locale
namen:
• Info over waar de rootserver staan (IP-adressen)
• A-records: vertaalt DNS naar een IP-adres
• NS-record: naam van een nameserver voor een domein
• CNAMA-record: alias
• MX-records voor e-mail (SMTP): vertelt waar mail voor afgeleverd moet
worden
Sommige services worden zoveel gebruikt dat ze op meerdere servers moeten draaien, bv
www.google.com. In dit geval levert de DNS query een rij IP-adressen op en telkens in een andere
volgorde. Applicatie kiest de eerste en op deze manier wordt het werk verdeeld over de vele
computers.
Samenvatting: Het lagenmodel maakt de structuur van het internet beheersbaar. De toepassingslaag
bevat alles waar je direct mee te maken krijgt:
• In principe een onbeperkte hoeveelheid toepassingen en protocollen
• Het meest gebruikt zijn tegenwoordig HTTP en Email
• Bij Email heb je met diverse protocollen te maken: SMTP, POP, IMAP
• DNS is een applicatieprotocol om namen naar IP adressen te vertalen en het internet
‘mensvriendelijk’ te maken.
Transportlaag: de netwerklaag verzorgt verbindingen van host naar
host (onafhankelijk van de structuur van het netwerk). De
transportlaag verzorgt verbindingen van proces naar proces. De
verbindingen van de verschillende processen worden samen over
dezelfde netwerkaansluiting gestuurd, multiplexing. Bij aankomst
moeten ze gesorteerd worden naar het juiste proces, demultiplexing.
Vergelijkbaar met interne postdienst van bedrijf, er komt een postzak
binnen daar zitten brieven in voor allerlei afdelingen van het bedrijf,
dit wordt netjes uit gesorteerd en dat het bij de juiste plek aankomt.
Eventueel kan de transportlaag ook betrouwbaarheid toevoegen
(TCP). Als je het bericht op de lijn zet, garandeerd de transportlaag
ook echt dat het aankomt. Dus de transportlaag doet: multiplexing /
demultiplexing en eventuele betrouwbaarheid toevoegen.