Antwoorden op vragenlijst



Vergelijkbare documenten
VRAGENLIJST COM. NETW

Computernetwerken: Opgeloste vragen. Kenneth Hoste

Tentamen Telematica Systemen en Toepassingen (261000) 7 november 2007,

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

Infrastructuur Samengesteld door Leon Wetzel

Revisie geschiedenis. [XXTER & KNX via IP]

Tentamen Telematica Systemen en Toepassingen ( /1) 9 november 2011,

Examen Telematica Systemen en Toepassingen (261000) 22 juni 2004

Bij rekenvragen de berekening opschrijven. Bij beredeneringsvragen de motivering geven.

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag

Computernetwerken Deel 2

Communicatienetwerken Antwoorden en vragen Met dank aan:

Computerarchitectuur en netwerken. TCP congestion control Netwerklaag

Computernetwerken! SMTP Simple Mail Transfer Protocol, POP Post Ofice Procotol

Tentamen Telematica Systemen en Toepassingen (261000) 4 november 2009,

LAN segment. Virtual local area network. Twee LAN segmenten. Evolutie. een enkelvoudige hub of switch is een fysisch LAN segment (Ethernet segment)

Tentamen Telematica Systemen en Toepassingen (261000) 3 november 2010,

Tweede deeltentamen Netwerken (INFONW) 29 juni 2009

Inhoud. Packet Tracer x. Labs xi

Computerarchitectuur en netwerken. Multicast protocollen Datalinklaag/LANs

Hoofdstuk 15. Computernetwerken

Veelgestelde vragen Corporate en Zakelijk Internet

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken

Hoofdstuk 15. Computernetwerken

Communicatienetwerken

NAT (Network Address Translation)

Part 17-A INTERNET: basisbegrippen techniek & beveiliging

Tentamen Telematica Systemen en Toepassingen (261000) 3 november 2004

Zelftest Internet concepten en technieken

Zelftest Internet concepten en technieken

LAN, MAN, WAN. Telematica. Schakeltechnieken. Circuitschakeling. 4Wordt vooral gebruikt in het telefoonnetwerk 4Communicatie bestaat uit 3 fasen:

Aan de slag met DNS Jeroen van Herwaarden, Robbert-Jan van Nugteren en Yannick Geerlings

1945, eerste DC. Eigen logo

IPv6 Workshop. Woensdag 18 mei 2005 SARA Almere. Andree Toonk - SARA High Performance Networking 1

Laten we eens beginnen met de mouwen op te stropen en een netwerk te bouwen.

Hoofdstuk 1: Inleiding

Examen Telematica Systemen en Toepassingen (261000) 18 augustus 2004

4IP = Internet Protocol 4Protocol gebruikt op netwerk laag in het internet 4Geen betrouwbaarheid

OSI model. Networking Fundamentals. Roland Sellis

Inhoud Het netwerk verkennen 1 2 Confi gureren van het IOS 41

API...1 Identificatie...1 Opties...2 Acties...3 Webserver...6 Heartbeat...6 Buffer groottes...8

1. inleiding. Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding NietCommercieel GelijkDelen 3.0 Unported licentie

Uitwerking 1 Netwerken, toets 3 (INFONW) 31 januari 2005

Datacommunicatie Computercommunicatie

S u b n e t t e n. t h e t r u e s t o r y

IP & Filtering. philip@pub.telenet.be

Wat is internet? Hüseyin Uçar 3B

LAN segment. Virtual local area network. Twee LAN segmenten. Evolutie

Thinking of development

Temperatuur logger synchronisatie

NGN. Wageningen, 30 oktober Iljitsch van Beijnum

VoIP Netwerking Configuratie Gids. Vox Davo VoIP Netwerking Configuratie Gids

Tentamen Telematica Systemen en Toepassingen (261000) 8 november

4Logical Link Control: 4Medium Access Control

The OSI Reference Model

Communicatie tussen Computers

BGP, Traffic Engineering, & Akamai. Niels Bakker NLnog-dag 2014

Tentamen Telematica Systemen en Toepassingen (261000) 9 november 2005

Opvullen van de routeringstabel. Statisch of dynamisch. Dynamische routering. Distance vector padbepalingsalgoritme

1 Wat is Dns? 2 Logische Structuur van DNS. 3 Fysische structuur van DNS. 4 Records. 5 Hoe werkt nu DNS. 6 DNS in windows 2008

Module I - Soorten Netten

MxStream & Linux. Auteur: Bas Datum: 7 november 2001

SURFnet-rapport. IPv6 beveiliging. Utrecht, 17 juni 2014 Iljitsch van Beijnum

Configureren van de Wireless Breedband Router.

computernetwerken F. Vonk versie

IAAS HANDLEIDING - SOPHOS FIREWALL

Basis Netwerkconfiguratie. Ing. Tijl Deneut Lector Toegepaste Informatica Howest Onderzoeker XiaK, UGent

Setup van uw Norman Online Protection account

Netwerken. 6 januari 2014 David N. Jansen

Onder het menu LAN General Setup kunt Settings wijzigen die te maken hebben met de DHCP en TCP/IP instelling voor het LAN segment (interne netwerk).

Netwerkconfiguratie Applicatie protocollen. Ing. Tijl Deneut Lector NMCT/Toegepaste Informatica Howest Onderzoeker XiaK, UGent

Handleiding installatie router bij FiberAccess

Met 32 ingangen potentiaal vrij Input 1 t/m Input 32

Genkgo Hosting. A. Wat is hosting?...2. B. Welke hostingscenario's zijn er mogelijk?...3. Scenario 1: Verhuizen domeinnaam, verhuizen ...

De module is bedoeld voor starters in de IT.

Remote access. Deze cursus is eigendom van Stagobel Electro

Implementatie van een HTTP-server mbv sockets

Remote Powercontrol for TCP/IP networks

Datasheet SMS Comfort URL

Zelftest Informatica-terminologie

HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V.

HTTP SMS API Technische Specificatie messagebird.com versie mei 2014

DSLSTL. Handleiding Copyright Handleiding DSLSTL Pagina 1 of 11

AllOnline . Allonline . Index

Internet: geschiedenis organisatie werking zoekmachines. Vakdidactiek informatica : praktijkgerichte seminaries

DJANAH, EEN TOTAL CONVERSATION VIDEO TELEFOON IN DE WEB BROWSER TECHNISCHE EISEN VOOR TOLK OP AFSTAND OP LOCATIE, NETWERK EN COMPUTERS

Dynamische routering. Routeringsalgoritmes

Webrelais IPIO-32R-M-v8.0 Compacte modul met 32 Relais Outputs.

Gigaset pro VLAN configuratie

Met 4 temperatuur meetingangen voor sensor DS18x20

computernetwerken - antwoorden

Les D-03 Internet. 2011, David Lans

Op dit lesmateriaal is een Creative Commons licentie van toepassing Remie Woudt

Communications and Networking: An Introduction

Transcriptie:

Antwoorden op vragenlijst 1. Inleiding 1/ 2/ 3/ gelaagde hiërarchie van internet service providers (ISP's) (maak figuur) top van de hiërarchie: eerstelaags ISP's (tier-1 ISP's of internetbackbones): o rechtstreeks met elkaar verbonden o verbonden met een groot aantal tweedelaags ISP's + andere klantennetwerken (NAP = network access point) o omspannen verschillende landen o vb: UUNet, Genuity, Sprint, AT&T tweedelaags ISP's (tier-2 ISP's): o verbonden met tier-1, ev. ook met tier-2 o bestrijken regio of land o klant van tier-1 provider(s) onderliggende ISP's (vb: tier-3 ISP) toegangs-isp's (local ISP) o helemaal aan de onderzijde van de hiërarchie o aanbieden van internettoegang aan eindgebruikers human protocols (vb: manier om onbekende de tijd te vragen) network protocols = analogon voor machines: o welk formaat heeft de boodschap o in welke volgorde worden de packages verstuurd o welke reacties worden gegeven applicatielaag: o ondersteuning netwerktoepassingen o vb: FTP, SMTP, http transportlaag: o host-to-host data transter o vb: TCP, UDP netwerklaag: o routeren van datagrammen van start tot bestemming o vb: IP, routing protocollen datalink laag: o transfer van data tussen naburige netwerkelementen o vb: PPP, Ethernet fysische laag: o hoe worden bits fysisch getransporteerd o vb: twisted pair (koper), coax, optische vezel nut: o expliciete en heldere structuur van een complex probleem o eenvoudig onderhoud mogelijk mits vaste interface 1

4/ 5/ 6/ 7/ 2 poorten worden gebruikt: 20 = transfer connection, 21 = control connection: o via control connection: login, password, requests (file transfer, directory ) o via transfer connection: file transfer maak figuur TCP: o connection oriented (status wordt bijgehouden) o 3-way handshaking protocol (maak figuur) o full duplex (in 2 richingen communicatie tegelijk mogelijk) o dataeenheid = segment o betrouwbaar transport (ack, retransmissie, timers ) o flow control (ontvanger wordt gespaard) + congestion control (netwerk wordt gespaard) o vb: HTTP, SMTP, FTP, Telnet UDP: o connectionless (houdt geen status bij) o heel eenvoudig protocol en dus snel (geen vertraging door ack of retransmissie) o unidirectional o dataeenheid = datagrampacket o onbetrouwbaar o geen flow control, geen congestion control o vb: SNMP, DNS, RIP, streaming audio/video werking: a.d.h.v. routing table in een router eigenschappen: o connectionless o unidirectional o dataeenheid = IP-datagram packet o onbetrouwbaar: "best effort" (no Quality of Service = geen garanties op delay, delivery ) nut: nodig om pad te bepalen van een packetje langsheen het complex netwerk van routers en switches de internetlagen moeten onafhankelijk van elkaar kunnen werken encapsulatie vb: o applicatielaag: FTP: geeft een stuk van het bestand door aan onderliggende laag o transportlaag: TCP: ontvangt de bitsequentie (= TCP payload) en hangt er een TCP-header aan met oa. informatie nodig voor betrouwbaar gegevensoverdracht. TCP segment o netwerklaag: IP: ontvangt het TCP segment (= IP payload) en hangt er een IPheader aan met informatie omtrent het te volgen pad langsheen het netwerk. IP datagram 2

8/ 9/ host = eindsysteem = "gastheer voor toepassingen zoals webbrowser, serverprogramma, mailprogramma " Is dus: je eigen pc, pda, laptop maar ook webservers en emailservers en zelfs alternatieve apparaten zoals met internet verbonden broodrooster routers = packetswitches = tussenpunten die ervoor zorgen via links dat eindgebruikers met elkaar verbonden zijn. Systeem van store-and-forward transmission wordt gebruikt (informatiepakketje wordt eerst volledig opgeslaan en daarna verder getransporteerd) Tot de derde laag geïmplementeerd client- en serverlaag: o laag die afhankelijk is van onderliggende laag = clientlaag (verwacht services van onderliggende laag) o laag die services geeft aan bovenliggende laag = serverlaag o vb: transportlaag = clientlaag voor netwerklaag (= dan de serverlaag hier), want heeft service van netwerklaag nodig (nl protocol die padbepaling mogelijk maakt). MAAR: transportlaag = serverlaag voor applicatielaag (= dan clientlaag hier), want biedt service aan (nl. bij TCP betrouwbare gegevensoverdracht). client/server bij applicaties: o clienttoepassing wordt op ene eindgebruiker uitgevoerd o servertoepassing wordt op de andere eindgebruiker uitgevoerd o doel: ene eindgebruiker levert een dienst voor de andere (zoals email, bestandsoverdracht, remote login ) o distributed toepassingen: client- en servertoepassing worden op elk een computer uitgevoerd 10/ 11/ 12/ applicatielaag: identificatie = poortnummer (vb: voor FTP 20 = dataconnectie en 21 = controleconnectie) transportlaag: identificatie = protocolnummer (vb: 6 = TCP en 17 = UDP) netwerklaag: identificatie = IP adres (vb: 157.193.122.1) app: message trans: segment (voor TCP) en datagrampacket (voor UDP) netw: IP-datagram datalink: frame IETF = Internet Engineering Task Force = groep die internetstandaarden ontwikkeld, test en implementeerd. RFC = Request For Comment = de documenten waarin de IETF-standaarden worden gepubliceerd, aanvankelijk bedoeld als algemeen verzoek om commentaren om architectuurproblemen op te lossen die optraden bij de voorloper van internet. De RFC's beschrijven protocollen zoals TCP, IP, HTTP en SMTP (bestaan meer dan 3000 verschillende RFC's) 3

ISP = Internet Service Provider = iemand die zijn klanten voorziet van internet (zie vraag 1/) Geschiedenis van computernetwerken 1961 1972: o telefoonnetwerken circuitswitching, dus ook misschien computernetwerken? packetswitching o 3 onderzoeksgroepen tegelijk bezig met packetswitching: Kleinrock: wachtrijtheorie (packetswitching = efficiënt!) (aan het MIT) Baran (aan het Rand) Davies en Scantlebury (aan het NPL) o ARPA = Advanced Research Projects Agency = computer science program van de VS. ARPAnet = eerste computernetwerk met packetswitching = voorganger van het publieke internet ('69: 4 nodes, '72: 15 nodes) 1972 1980: o medio jaren '70 werden er meerdere netwerken met packetswitching ontwikkeld o ook LAN ontstonden via het Ethernet-protocol van Metcalfe o tijd was rijp voor 1 omvattende structuur: netwerk van netwerken: DARPA (Defense ARPA) ontwikkelde die (Cerf en Kahn) en gebruikte de term "internetten" eerste versie van TCP werd opgesplitst in TCP en IP + UDP werd ontwikkeld (allemaal eind jaren '70) 1980 1990: o = groei van 200 hosts naar 100 000 hosts (oorzaak = vooral het verbinden van universiteiten) o ARPAnet: overgang van NCP (network control protocol = eerste host-to-hostprotocol) naar TCP/IP protocol op 1 dag + ontstaan van DNS (Domain Name Service) o Minitel (Frankrijk): gegevensnetwerken in ieder Frans huis introduceren. Was een succes omdat regering gratis een Miniterminal aanbood aan iedereen. 1990 : o ARPAnet verdwijnt, het World Wide Web wordt commercieel internetexplosie o Tim Berners-Lee ontwikkelde de eerste versies van HTML, HTTP, webserver en een webbrowser browseroorlog tussen Netscape en Microsoft o eind jaren '90 4 killertoepassingen: email web direct messaging peer-to-peer o snellere routers werden ontwikkeld o beveiliging van netwerk wordt belangrijk 4

2. Applicatielaag 1/ 2/ 3/ iedere netwerktoepassingsprotocol heeft een clientcomponent en een servercomponent: clientcomponent op ene eindsysteem communiceert met servercomponent op ander eindsysteem vb: webbrowser implementeert clientcomponent van HTTP en webserver implementeert servercomponent van HTTP. vaak beide componenten op een host vb: TELNET-sessie tussen A en B: diegene die eerst verbinding maakt is de client. Maakt de andere eerst verbinding dan is die andere de client. bij communicatie worden berichten verzonden van en naar de sockets van de eindgebruikers. socket = API (Application Programmers' Interface) = toegangsdeur van een proces (maak figuur). CLIENT: o "active open" o initieert verbinding met server o 1 sessie per keer o opent zoveel toepassingen als nodig o eenvoudige hardware en software volstaat o vb: Microsoft Outlook Express, Netscape Communicator SERVER o "passive open" o staat steeds "te luisteren" o kan meerdere remote clients tegelijkertijd behandelen o krachtige hardware en gesofisticeerd operating system nodig o vb: Apache, Sendmail (serverprogramma noemt men ook "daemon") doel: meerdere remote clients toelaten voor hetzelfde server programma methode: per request van een client wordt een thread gecreëerd, m.a.w. het serverprogramma start voor elke client opnieuw. Voor N clients heeft men bijgevolg N request handlers. geen/wel dataverlies niet/wel tijdsgevoelig al dan niet grote bandbreedte vereist vb: o file transfer (geen verlies, niet tijdsgevoelig, elastisch) o email (idem) o surfen (idem) o real time audio/video (verliestollerant, snel 100's msec, minimale bandbreedte vereist) 5

4/ 5/ 6/ 7/ HTTP gebruikt TCP: o server luistert client initieert TCP-connectie (poort 80) server accepteert TCP connectie HTTP boodschappen verstuurd TCP connectie afgesloten HTTP is stateless: o geen info wordt bijgehouden over de geschiedenis van de client requests protocolboodschappen: o GET: aanvraag url o POST: aanvraag url met extra informatie in entity body van request message (ingevuld als een formulier) o HEAD: vraagt aan de server om een bepaald object uit zijn antwoord te laten o PUT: uploaden van een file in de entity body naar het pad gespecifieerd in de url (enkel voor HTTP/1.1) o DELETE: verwijderen file gespecifieerd in de url (enkel voor HTTP/1.1) HTTP = hypertext transfer protocol = applicatielaagprotocol voor het web HTML = hypertext markup language = programmeertaal waaruit meeste websites bestaan om informatie beschikbaar te stellen (veelal bestaat een website uit een basis html-bestand met daarin diverse gekoppelde objecten) URL = Universal Resource Locator = adres van een bepaald document die beschikbaar is via het internet; bestaat uit een hostname en een pad: www.vtk.ugent.be/studiehulp hostname = www.vtk.ugent.be pad = /studiehulp Non-persistente verbinding: o standaard voor HTTP/1.0 o voor ieder object wordt een nieuwe TCP-connectie opgezet = nieuwe TCPbuffers toegewezen + TCP-variabelen aangemaakt o response time model zie 7/ Persistente verbinding: o standaard voor HTTP/1.1 (maar ook mogelijk om over te schakelen) o connectie wordt behouden na zenden eerste object (totdat ze een tijd niet meer gebruikt wordt), zodat op elkaar volgende berichten langs dezelfde connectie kunnen worden verzonden o zonder pipelining: client zendt nieuw verzoek wanneer vorige verzoek werd ingewilligd o met piplining: default in HTTP/1.1 client zendt verschillende verzoeken na elkaar, zonder te wachten op hun antwoord non-persistente verbinding: RTT TCP-connectie + RTT request/response + file transmission time m.o.: meerdere parallelle verbindingen versnellen het model wanneer meerdere objecten moeten gedownload worden persistente verbinding: 6

o zonder pipelining: RTT request/response + file transmission time per object (eerste maal werd de RTT TCP-connectie slechts 1x uitgevoerd) o met pipelining: ongeveer RTT request/response + file transmission time voor alle objecten samen 8/ 9/ doel: informatie van gebruiker bijhouden 4 componenten: o cookie headerregel in een HTTP-antwoord bericht o cookie headerregel in een HTTP-verzoek bericht o cookie bestand op het eindsysteem van de gebruiker o back-end database op de website nut: o user session state (Web e-mail): gebruikersnaam en paswoord hoeven niet steeds meegezonden te worden, maar kan geverifieerd worden via cookie o shopping carts: op e-commerce sites kunnen boodschappen onthouden worden om uiteindelijk afgerekend te worden na het "e-winkelen" o recommendations: cookies kunnen worden gebruikt om meer te weten te komen over de interesses en gewoontes van de gebruiker doel: verspilling van bandbreedte verminderen en responsetijd voor de gebruiker minimaliseren methode: in HTTP-header komt er "If-modified-since: <date>" indien het opgevraagde object in het cachegeheugen van de verzender aanwezig is controle door de server op de recentheid van het object. Indien up-to-date: "HTTP/1.0 304 Not Modified" 10/ SMTP = Simple Mail Transfer Protocol: verzendt e-mail van een user agent naar message transfer agent (MTA = Email Server die e-mailberichten verder zendt tot ze op het juiste adres belanden) of van een MTA naar een andere MTA. POP3 = Post Office Protocol 3: ontvangen van e-mail van een MTA o autorisatiefase: controle gebruikersnaam en wachtwoord o transactiefase: afhalen van de berichten o updatefase: bij het verlaten van de user agent worden de gedane bewerkingen opgeslaan (zoals bv het verwijderen van berichten) IMAP = Internet Message Access Protocol: mappenstructuur op de mailserver aanwezig, mogelijkheid om afzonderlijke componenten van berichten op te halen (= handig voor gebruikers met een kleine bandbreedte) RFC 822 (message format): eenvoudige plain text messages kunnen hiermee worden afgehaald MIME = Multipurpose Internet Mail Extensions: biedt een oplossing voor boodschappen met meer dan enkel plain text; non-plain text messages worden door MIME gecodeerd en opgesplitst in meerdere sub-messages HTTP = Hypertext Transfer Protocol: verzenden en lezen van e-mail met behulp van een webbrowser (webmail) 7

11/ 12/ 13/ 14/ Een host kan aangeduid worden door zijn IP-adres of door een daaraan gelinkte hostnaam: o IP-adres: 4 bytes, omgezet in een 4 getallen (telkens tussen 0 en 255) vb: 157.193.40.7 voordelen: vaste lengte, hierarchisch, makkelijk te interpreteren in het netwerk o hostnaam: vb: www.ugent.be voordelen: makkelijk te onthouden, logische structuur van een organisatie kan naar boven komen drie soorten DNS-servers (Domain Name Service): o Local DNS-server = de lokale DNS server van de ISP o Root DNS-server = top level DNS server (13 in de wereld) o Authoritative DNS server = verifiërende DNS server (is vaak tevens een lokale DNS server) o Intermediate DNS server = server die eventueel het IP-adres gecached opgeslagen heeft. vb: Wanneer een url wordt opgegeven in een HTTP-request, wordt eerst de lokale DNS server aangesproken. Die bevindt zich het dichtst bij de host. Indien het IP-adres van de gevraagde site niet aanwezig is binnen het netwerk van de ISP dan zal de lokale DNS server de vertaling meestal niet kunnen doen. De lokale DNS server wordt client als hij een DNS aanvraag doet aan een Root DNS server. Het kan zijn dat zo'n root DNS server ook niet het gevraagde IP-adres heeft staan. Een root DNS-server kan echter wel steeds uit de url opmaken waar de Authoritative DNS server van de gevraagde host gelegen is. Iedere host moet namelijk minstens twee dergelijke DNS servers hebben (in het geval de ene crasht). De Authoritative DNS server is vaak de lokale DNS server van de host en weet dus steeds antwoord te geven. recursief: aanvraag lokale DNS server Root DNS server Authoritative DNS server. Indien één van de DNS servers de vertaling kan doen gaat men niet verder en geeft men het antwoord onmiddellijk terug. iteratief: aanvraag lokale DNS server root DNS server indien niet aanwezig geeft root DNS server het IP-adres van de volgende nameserver in de ketting, waardoor de lokale DNS server verder kan zoeken totdat men bij een Authoritative DNS server terechtkomt. iteratief + recursief: meestal zijn alle verzoeken in een reeks verzoeken recursief, behalve de verzoeken van de lokale nameserver voor de root nameserver, die iteratief zijn (want die moeten vele verzoeken verwerken). RR = Resource Records = bronrecords in de distributed database van DNS die de hostnaam/ip-adrescombinatie bevatten: o name: naam die moet vertaald worden o TTL: hoe lang het record gecached mag worden (time to live) o class: IN (van internet) 8

15/ o record-type: NS, A, MX of CNAME (zie verder) o record-data: bijvoorbeeld het IP-adres A = adress: o name = hostname o record-data = IP-adres corresponderend met de opgegeven naam o plinius.intec2.ugent.be IN A 157.193.122.4 NS = nameserver: o name = domain name afgeleid uit de hostname o record-data = hostname van een verifiërende DNS server o ugent.be IN NS ugdns1.ugent.be CNAME = canonical name: o name = opgegeven alias voor de hostname o record-data = canonieke naam van de opgegeven alias o mail.intec2.ugent.be IN CNAME plinius.intec2.ugent.be MX: o name = domain name o record-data = naam van een mailserver o preferences = geeft volgorde van mailservers op o intec2.ugent.be IN MX preference = 20 plinius.intec2.ugent.be preference = 40 mserv.ugent.be MIME: zie p.121 HTML: voldoende gekend DNS-request: zie slides 2-64 t.e.m. 2-66 16/ verklaar slide 2-67 9

3. Transportlaag 1/ multiplexen = verpakken en toevoegen van headerinformatie om segmenten te maken die vervolgens doorgegeven worden aan de netwerklaag om verstuurd te worden demultiplexen = ontvangen van de verschillende segmenten, bepalen voor welk ontvangend proces ze zijn bedoeld a.d.h.v. hun headerinformatie en die segmenten dan ook aan de juiste socket bezorgen connectionless = UDP: o Datagramsockets krijgen elk hun specifiek poortnummer: DatagramSocket serversocket1 = new DatagramSocket(53); DatagramSocket serversocket2 = new DatagramSocket(161); o headerinformatie bevat [source port # en destination port #] (om ook terugkeeradres te hebben) o bij ontvangen: ordening volgens poortnummer connection-oriented = TCP: o Clientsockets krijgen opnieuw elk hun eigen poortnummer: Socket clientsocket = new Socket('serverHostName', 6789); o De socket op de server-zijde onderzoekt nu ook het IP-adres van het ontvangen segment: [source IP-adress, source port #, destination IP-adres, destination port #] o bij ontvangen: ordening volgens poortnummer én IP-adres 2/ poortnummers: nodig voor het multiplexen en demultiplexen volgnummerveld: bytestreamnummer van het eerste byte in het segment bevestigingsnummer: één meer dan het laatste byte waarvoor al een ACK werd teruggezonden 4-bit lengteveld: lengte van de TCP-header in 32-bit woorden vlagveld: 10

3/ o ACK-bit: waarde in bevestigingsveld is geldig o RST-, SYN- en FIN-bit: gebruikt bij het tot stand brengen van de verbinding o PSH-bit: ontvanger moet de gegevens direct bezorgen bij de bovenliggende laag o URG-bit: segment bevat gegevens die door de verzender als 'urgent' zijn aangemerkt ontvangervenster: maximum aantal bytes dat de zender van dit segment nog kan ontvangen (flow control) internetchecksum: header- en gegevensveld wordt aanzien als 16 bit integers die dan 1-complement worden opgeteld. Het resultaat wordt in de checksum geplaatst om foutdetectie mogelijk te maken pointer naar urgente gegevens: relatieve positie van de urgente gegevens in het segment opties: vb maximum segment grootte dat de verzender kan ontvangen, dateren van een segment gegevensveld vul het bovenstaand toestandsdiagramma aan (opl zie p.3-26 slides) bespreek a.d.h.v. slides 3-24 en 3-25 11

4/ 5/ ACK: bevestigingsbit dat in TCP-header op 1 wordt gezet om aan te geven dat het bevestigingsveld geldig is (i.e. het volgende bit dat verwacht wordt); is dus niets anders dan de bevestiging dat alle voorgaande bits correct ontvangen werden timeout retransmit: wanneer geen ACK wordt ontvangen voor een verzonden segment loopt de timer van de zender af en zal hij automatisch het segment opnieuw verzenden duplicate reception: wanneer ACK door ontvanger verstuurd werd, maar niet toegekomen is bij zender, zal de zender na een timeout een retransmission doen. Het segment zal dan een tweede keer toekomen, maar zal genegeerd worden wegens een duplicate reception. piggybacking: wanneer de zender iets doorgezonden heeft naar de ontvanger, kan de ontvanger onmiddellijk een ACK terugzenden indien het segment goed ontvangen werd. Hij kan echter even wachten om deze ACK mee te zenden met een ander segment dat de ontvanger zelf terug wil zenden. Dit komt bijvoorbeeld voor bij een Telnet-sessie waar het "piggybacked" ACK mee wordt gezonden met de ECHO van het ontvangen ASCII-symbool. delayed ACK: wanneer de ontvanger een segment correct ontvangen heeft, kan hij onmiddellijk een ACK verzenden of even wachten. Wanneer hij even wacht noemen we dit simpelweg een delayed ACK. accumulated ACK: de ontvanger kan bij het ontvangen van een segment onmiddellijk een ACK verzenden, maar kan ook even wachten totdat meerdere segmenten werden ontvangen. Hij gebruikt dus een delayed ACK. Daarna wordt een ACK van het laatste correct ontvangen bit verzonden, waardoor de zender automatisch kan concluderen dat de voorgaande segmenten ook correct toegekomen zijn. Merk op: bij TCP wordt standaard een accumulated ACK gestuurd wanneer 2 opeenvolgende segmenten goed zijn aangekomen. selective retransmit: wanneer een reeks segmenten werd doorgezonden en i.p.v een ACK van het laatste segment een ACK van een vorig segment wordt teruggezonden, dan gaat men bij selective retransmit enkel dat ontbrekende segment nogmaals verzenden in de hoop dat de andere (verdere) segmenten wel correct werden ontvangen (en uiteraard onthouden door een buffer aan de ontvangerzijde). fast retransmit: wanneer aan de ontvangerzijde wordt ontdekt dat een segment wordt ontvangen waarvan het volgnummer te hoog is, kan de ontvanger concluderen dat een of ev. meerdere tussenliggend(e) segment(en) verloren is/zijn gegaan. Daarom verzendt de ontvanger onmiddellijk een ACK van het laatste segment voor deze fout werd opgemerkt. Op die manier kan de zender onmiddellijk reageren met het doorzenden van dat/die ontbrekend(e) segment(en) = fast retransmit. retransmission timer: dit is de timer geïmplementeerd aan de zender zijde, die afloopt wanneer geen ACK werd ontvangen voor een segment die 1 timer-eenheid geleden werd verzonden. retransmission timeout: de timeout van bovenstaande measured RTT: de gemeten RTT van het laatste verzonden segment, m.a.w. de hoeveelheid tijd die verstrijkt tussen het moment dat het segment verzonden wordt en het moment dat een bevestiging voor het segment wordt ontvangen. M = measured RTT (zie 4/) RTT = α.rtt_vorig +(1-α).M exponential weighted moving average (EWMA) D = β.d_vorig + (1-β) RTT-M variantie in de RTT RTO = Retransmission TimeOut = RTT + 4.D 12

6/ 7/ principe: o ontvanger: receive window = aantal MSS(maximum segment size)-segmenten dat nog ontvangen kan worden voordat de buffer overloopt. o zender : send window = aantal MSS-segmenten dat mogen verzonden worden opdat de ontvanger zijn buffer net niet zou overlopen o de receive window wordt gevuld met ontvangen segmenten en wordt geledigd door de applicatie op momenten die voor die applicatie geschikt zijn o de send window wordt door de applicatie van de verzender gevuld en geledigd al naar gelang de zender de segmenten kan/mag versturen o de ontvanger laat steeds weten hoe groot zijn receive window is (receive window = receivebuffer (lastbytercvd lastbyteread) ), zodat de zender daar kan op inspelen en zijn verzendingen eventueel kan vertragen opmerking: o wanneer op een bepaald moment de receivewindow nul is zal de zender niets meer verzenden, maar daardoor ook nooit geen ACK meer terugkrijgen waarin er staat dat de receivewindow weer verschillend is van nul (deadlock situatie). Daarom heeft de verzender een persistency timer die om de zoveel tijd segmenten van 1 gegevensbyte verzendt om te testen of er ondertussen al geen plaats is vrijgekomen. nut: o Wanneer de buffer overloopt zullen bij UDP de volgende verzonden segmenten verloren gaan en bij TCP deze segmenten steeds opnieuw verzonden moeten worden (bij gebrek aan teruggestuurde ACK). Dat zorgt ervoor dat de bandbreedte inefficiënt gebruikt wordt. principe: o End-to-end congestion-control mechanisme: de netwerklaag doet niets om overbelasting te voorkomen eindsystemen moeten zelf overbelasting detecteren (uit bv. packetverlies, vertragingen) = aanpak van TCP, want IP-laag bevat geen informatie over de netwerkbelasting o netwerk ondersteund congestion-control mechanisme: routers verstrekken expliciet informatie aan de zender over de belasting 2 mogelijkheden: enkel bit wordt aangezet om aan te geven dat er congestie is directe feedback wordt teruggezonden bij congestie (= een choke-packet wordt teruggezonden) nut: o congestion-control controleert de mate waarin de buffers van de routers (en dus van het netwerk) vollopen. o buffers vol ==> pakketjes komen niet meer toe ==> retransmissies stijgen ==> nog meer trafiek op het netwerk: bijna niets kan meer efficiënt verzonden worden! 13

8/ 9/ receive window = aantal MSS-segmenten dat nog ontvangen kunnen worden voordat de buffer overloopt. congestion window = aantal MSS-segmenten dat nog kunnen ontvangen worden door het netwerk, omdat de buffers van de routers vollopen. send window = aantal MSS-segmenten dat mogen verzonden worden opdat de ontvanger zijn buffer en ook de buffers van de routers net niet zou overlopen, m.a.w.: SEND WINDOW = minimum{receive WINDOW, CONGESTION WINDOW} min het aantal nog niet bevestigde bytes (maak figuren, slide 3-54) timeout o geen ACK gekregen o ACK te laat gekregen (timer liep al af) o transmissiefout (info kwam niet toe) --> heeft op zich niets met congestion te maken, maar wordt wel zo herkend ==> Slow start + congestion avoidance duplicate acknowledgments o 1 segment verloren gegaan maar volgende segmenten wel goed toegekomen --> meerdere ACK's worden ontvangen wegens fast retransmission ==> Fast retransmission + fast recovery 10/ 11/ congestion cwnd = 1 x MSS slow start: o 1 segment wordt doorgezonden: ACK --> cwnd = 2 o 2 segmenten na elkaar doorgezonden: ACK --> cwnd = 4 o 4 segmenten na elkaar doorgezonden: ACK --> cwnd = 8 o 8 segmenten indien Slow Start Threshold wordt bereikt treedt congestion avoidance op: o per segment dat doorgezonden wordt verandert de cwnd als volgt: 1 ACK --> cwnd = cwnd + 1/cwnd (benaderend 8 ACK --> cwnd = cwnd +1) indien timeout: sstresh =cwnd/2 en cwnd = 1, zodanig dat we opnieuw een slow start krijgen indien triple duplicate ACK: sstresh = cwnd/2 en cwnd = cwnd/2, zodanig dat we onmiddellijk weer in de congestion avoidance fase zitten fast retransmit: als bij een reeks verzonden segmenten één (niet het laatste) segment verloren is gegaan, dan wordt er door de ontvanger onmiddellijk een ACK teruggezonden die meldt dat dit segment opnieuw moet verzonden worden. De segmenten volgend op het verloren gegane segment leveren ook een dergelijk ACK aan de zender (vandaar dat we dit een duplicate ACK noemen). fast recovery: bij een dergelijke ACK treedt congestion control op die ervoor zorgt dat sstresh = cwnd/2 en cwnd = cwnd/2. M.a.w. de slow start wordt geannuleerd. Deze annulatie noemen we fast recovery. Merk op dat dit gedaan wordt met de filosofie dat er idd 1 segment verloren is gegaan, maar dat de andere volgende segmenten wel zijn toegekomen, zodanig dat het netwerk nu ook weer niet zo danig dichtgeslibd is. 14

12/ 13/ AIMD = Additive Increase Multiplicative Decrease: o MD: wanneer congestie optreedt halveert men de cwnd (= multiplicatieve factor) o AI: wanneer geen congestie kan cwnd additief stijgen (telkens met ongeveer 1 MSS) figuur op slide 3-60 (onregelmatige zaagtand, cwnd(time) ) Stel 2 TCP verbindingen met o dezelfde MSS o dezelfde RTT o slow-startfase buiten beschouwing eenzelfde link delen maar de eerste verbinding start met een hogere cwnd dan de tweede Beide zullen hun bitrate lineair verhogen totdat congestion optreedt ==> halveren van cwnd Opnieuw zullen beide hun bitrate verhogen totdat congestion optreedt ==> halveren van cwnd Gevolg: doordat het halveren van de cwnd van de eerste verbinding in absolute waarde groter is t.o.v. het halveren van de cwnd van de tweede verbinding zullen beide na verloop van tijd ongeveer dezelfde bitrate gebruiken. (geef grafiek slide 3-63) Te omzeilen door meerdere TCP-verbindingen parallel te openen: o 10 gebruikers o 9 met 1 verbinding o 1 met 11 verbindingen o ==> 20 verbindingen ==> 9 keer R/20 en 1 keer 11R/20! 14/ --> zie vraag 5 van de inleiding Merk op: De TCP-three-way-handshaking procedure wordt onder andere gebruikt voor synchronisatie van volgnummer, omvang van het initiële flow-controlvenster, MSG dus uitwisselen van de noodzakelijke statusinformatie. 15

4. Netwerklaag 1/ 2/ klasse A: o 0-netwerklaag-host o vb: HP: 15.0.0.0 o 128 netwerken, 2 24 interfaces klasse B: o 10-netwerklaag-host o vb: UGent: 157.193.0.0 o 2 14 netwerken, 2 16 interfaces klasse C: o 110-netwerklaag-host o 2 21 netwerken, 2 8 interfaces klasse D: o 1110-multicast adres klasse E: o 1111-bewaard voor toekomstig gebruik i.e.: classful addressing speciale adressen: o X.Y.0.0 = notatie voor een klasse B-netwerk o 127.X.Y.Z = loopback interface (voor debugging) (veelal 127.0.0.1 gebruikt) o 0.0.0.0 = this host on this network (gebruikt voor booten) = enkel een bronadres o 0.0.X.Y = a host on this network (gebruikt voor booten) = enkel een bronadres o 255.255.255.255 = broadcast naar alle hosts op het netwerk (alleen toegelaten als destination adres, wordt niet geforward door routers) o X.Y.255.255 = broadcast naar alle hosts op een remote netwerk (alleen toegelaten als destination adres) o IP-adressen die niet toegestaan zijn op het internet: 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0 192.168.255.255 direct connected network = netwerk waarbij de hosts rechtstreeks met elkaar verbonden zijn, dus zonder tussenliggende routers. Ook de verbinding tussen twee routers wordt aanzien als een direct connected network subnetwork = direct connected network gerealiseerd onder een overkoepelend netwerk. Iedere interface in een subnetwerk heeft dezelfde subnetmask. Het subnetwerk IP-adres bestaat uit een netwerkgedeelte, een subnetwerkgedeelte en een hostgedeelte; vb: 157.193.103.0 kan een subnetwerk zijn onder het netwerk 157.193.0.0 waarbij de 103 het netwerkgedeelte voorstelt en de 0 ingevuld wordt door het benoemen van hosts in het subnetwerk. 16

3/ 4/ 5/ 6/ subnetadres bestaat uit (vb: 157.193.103.12): o netwerkgedeelte (vb: 157.193.0.0 van UGent) o subnetwerkgedeelte (vb: 103 voor de Plateau) o hostgedeelte (vb: 12 voor een specifieke PC in een bepaald PC-lokaal) het subnetwerk wordt aangeduid door het hostgedeelte met nullen te voorzien: o subnetwerk Plateau = 157.193.103.0 (mask FF.FF.FF.00) de volgende subnetwerken zouden bijvoorbeeld niet toegestaan zijn: o 157.193.0.0, want geen onderscheid met het UGent overkoepelend netwerk o 157.193.255.0, want overal 1'tjes in het subnetwerk classful addressing is inefficiënt, vb: o bedrijf met 2000 hosts o nood aan klasse B netwerk o verkrijgt ruimte voor 65354 interfaces o ongeveer verspilling van 63000 adressen! daarom CIDR = Classless InterDomain Routing: o dotted-decimal notatie: a.b.c.d/x, waarbij x = aantal bits van netwerkdeel o efficiënter: bedrijf krijgt a.b.c.d/21-netwerk en heeft dus plaats voor 2 11-2 = 2046 interfaces routing = padbepaling = wat is het kortste pad tussen router en bestemmeling van het IP-datagram? --> gebeurt a.d.h.v. routingtable: per bestemming moet aangegeven staan waar het pakketje naartoe moet forwarding = naar welke router moet ik het IP-datagram verder sturen? o sanity check: controle versie en header checksum + decrementeer TTL (=Time To Live, voorkomt dat een pakketje steeds over en weer wordt gezonden tussen routers indien routing table verkeerd) o matching: komt het bestemmingsadres overeen met een van de eigen adressen in het netwerk, dan moet er geen forwarding meer gebeuren o sending to outgoing interface: indien pakket > MTU (maximum transfer unit) dan moet het eerst gefragmenteerd worden en moet de header checksum opnieuw berekend worden versienummerveld: versie van IP-datagramindeling (IPv4 of IPv6, hier IPv4) headerlengteveld: grootte van de header in aantal woorden (32 bit) TOS (type of service): o eerste 3 bits = serviceniveau (prioriteit) o 4 bits voor delay, bandwidth o 1 ongebruikte bit datagramlengteveld: grootte van volledig IP-datagram in bytes (dus met de header) identificatie: identificatie van fragment (= "naam van het ongefragmenteerde pakket") vlag- en fragmentatieherstelvelden: gebruikt voor fragmentatie TTL (time to live): start 32 of 64 en decrementeer steeds bij elke hop (doel: voorkomen dat datagram in een lus terechtkomt en steeds verzonden blijft) 17

protocolveld: bepaalt het transportlaagprotocol (6 --> TCP, 17 --> UDP, 1--> ICMP) headerchecksumveld: foutdetectie (opdeling header in 16-bit getallen, bitsgewijs optellen en vergelijken met de checksum) MERK OP: Waarom zowel op netwerklaag als op transportlaag internetchecksum? o transportlaag kan op zich niet vertrouwen dat dit gebeurt door netwerklaag o TCP kan in principe ook werken bovenop een ander protocol (ATM i.p.v. IP) bron- en bestemmings-ip-adres: 32 bit-adressen optieveld: timestamp, route die te volgen is (zelden gebruikt) gegevensveld 7/ MTU (maximum transfer unit) = maximale hoeveelheid gegevens dat een datalinklaagpakket kan bevatten ==> wanneer een IP-datagram te groot: opsplitsen in fragmenten! vb: 4000 byte datagram met een MTU van 1500: o opsplitsen in 3 fragmenten: lengte = 1500, ID = x, fragflag = 1, offset = 0 lengte = 1500, ID = x, fragflag = 1, offset = 1480 lengte = 1040, ID = x, fragflag = 0, offset = 2960 o identificatie nodig om naam van het volledige datagram te kennen o fragflag duidt aan dat datagram gefragmenteerd is en geeft laatste fragment aan (door een 0 te plaatsen in de fragflag) o offset nodig om te weten of er een fragment ontbreekt en om de fragmenten weer aan elkaar te plakken Merk op dat er steeds per fragment een header moet staan, dus dat er N-1 extra headers nodig zijn voor N fragmenten (in vb: 2 extra headers van 20 byte, vandaar de offset!) 18

8/ ICMP = Internet Control Message Protocol o doel: netwerkinformatie uitwisselen met hosts, routers en gateways o vaak: "onderdeel van IP", maar eigenlijk getransporteerd in IP-datagram met protocolnummer 1 o vorm: o gebruik: errors: destination unreachable (type3) redirect (type 5) time exceeded (type 11) query ping reply (type 0) ping request (type 8) router advertisement (type 9) router solicitation (type 10) redirect: o routing table van host 157.193.122.51 is verkeerd en zendt een pakket naar een host in het netwerk 157.193.184.0 verkeerdelijk naar de gateway (router A) o router A ontdekt dat pakket terug moet keren naar router B, doet dit en zendt een ICMP-pakket naar de zender, met als boodschap dat die zijn routeringstabel moet aanpassen o routeringstabel wordt door zender aangepast en de volgende pakketten worden correct onmiddellijk naar B gestuurd traceroute: o doel: bepalen van pad van datagrampakket langsheen het netwerk o methode: 19

zenden van UDP IP-pakket met TTL 1 ==> eerste hop zendt ICMP Time Exceeded IP-pakket terug met informatie van zichzelf zenden van UDP IP-pakket met TTL 2 ==> tweede hop zendt ICMP Time Exceeded IP-pakket terug met informatie van zichzelf 9/ doel: een volledig netwerk voorzien van internet met enkel het gebruik van 1 IP-adres verkregen van de ISP methode: elke host verbinden met switch en die op zich verbinden met NAT-router (Network Address Translator) werking: o host in netwerk vraagt bv. webpagina op en geeft daarbij: IP-adres van webserver die webpagina bezit poortnummer waarlangs de webpagina kan ontvangen worden o aanvraag komt via switch toe bij NAT-router die: maakt nieuwe poort vrij om aanvraag webpagina te doen aan webserver koppelt deze nieuwe poort met poort en lokaal IP-adres van host in netwerk gebruikt daarbij het IP-adres toegewezen door de ISP o webserver verzendt webpagina naar IP-adres en poort NAT-router o NAT-router ontvangt webpagina, zoekt de koppeling van de poort op met het lokaal IP-adres en poort van de host die webpagina opgevraagd heeft en zendt die vervolgens door voordelen: o geen reeks IP-adressen nodig van ISP, slechts 1 volstaat o IP-adressen in lokaal netwerk mogen veranderen (ook in dimensie) zonder dat buitenwereld daar mee te maken heeft o veranderen van ISP betekent niet meer dat ook IP-adressen lokaal netwerk ev. veranderen o individuele hosts niet meer rechtstreeks te adresseren van buitenuit --> beveiliging (werking van Firewall!) nadelen/bezwaren: o poortnummers bedoeld voor adresseren van processen niet van hosts o routers zouden enkel tot laag 3 mogen implementeren (en niet de transportlaag met poortnummers) o end-to-end argument: hosts moeten rechtstreeks met elkaar kunnen communiceren o adrestekort moet opgevangen worden door IPv6 i.p.v. door NAT 10/ doel: dynamisch toewijzen van IP-adressen aan hosts methode: DHCP-server (Dynamic Host Configuration Protocol) werking: een arriverende host wil een IP-adres krijgen o DHCP-server opsporen: host zendt een DHCP-discoverbericht uit (UDP) source = 0.0.0.0 destination = 255.255.255.255 port = 67 ID = ID# 20

11/ 12/ o Iedereen in het netwerk ontvangt de oproep; de DHCP-servers reageren met DHCP-offerbericht: source = eigen DHCP-IP-adres destination = 255.255.255.255 port = 68 ID = ID# aangeboden IP-adres + lifetime van adres o host ontvangt offers van ev. meerdere DHCP-servers en kiest er één uit door een DHCP-requestbericht uit te zenden met: source = 0.0.0.0 destination = 255.255.255.255 port = 67 ID = ID# + 1 IP-adres van uitgekozen DHCP-server + lifetime toegewezen adres o DHCP-server herkent zijn eigen IP-adres en zendt een DHCP-ACKbericht om procedure te beëindigen: source = eigen DHCP-IP-adres destination = 255.255.255.255 port = 68 ID = ID# + 1 aangeboden IP-adres + lifetime van adres voordelen: o plug-and-play o herbruiken van IP-adressen o mobiele gebruikers kunnen makkelijk IP-adres bekomen o leasetijd kan verlengd worden nadelen: o IP-adres kan niet behouden blijven wanneer een nieuwe verbinding gemaakt wordt met nieuw netwerk Opmerking: o niet steeds een DHCP-server? --> router acteert als relay agent en neemt de taak over, want kent wel een adres van een DHCP-server AS = Autonomous System = autonome regio van hosts en routers die hetzelfde padbepalingsprotocol naar keuze gebruiken 3 types: o Stub (=stompje) AS = klein bedrijf, maakt 1 connectie met andere AS's o Multihomed AS = groter bedrijf, maakt meerder connecties met andere AS's o Transit AS = provider, connecteert meerdere AS's samen nut van het onderscheid: welk padbepalingsprotocol wordt gebruikt? --> groot netwerk/klein netwerk intra-as-routering: padbepalingsprotocol wordt autonoom bepaald en is hetzelfde voor het ganse autonoom netwerk (RIP, OSPF, IGRP = Interior Gateway Routing Protocol) ==> administratieve zelfstandigheid inter-as-routering: padbepalingsprotocol is opgelegd, nl BGP ==> intra-as's kunnen met elkaar communiceren via inter-as 21

13/ 14/ distance vector routering: afstand van bestemmingen wordt bijgehouden door een distance table doordat aangrenzende routers onderling padbepalingsinformatie iteratief uitwisselen = gedecentraliseerd padbepalingsalgoritme; voorbeeld: RIP = Routing Information Protocol: o gebruikt een hop-teller voor het bepalen van de kost (maximaal 15 hops) o aangrenzende routers wisselen om de 30 seconden een RIP advertisement uit = informatie over tot 25 bestemmingnetwerken binnen een autonoom systeem o opmerkingen eenvoudig veel gebruikt vandaag trage convergentie goed voor kleine netwerken (grens van 15 hops) counting to infinity wanneer een router wegvalt ==> grens van 15 hops link-state routering: pad met laagste kost tussen bron en bestemming wordt berekend op basis van de kennis van het hele netwerk = gecentraliseerd padbepalingsalgoritme; voorbeeld: OSPF = Open Shortest Path First: o elke router verkrijgt een overzicht van de topologie van het ganse netwerk o berekent a.d.h.v. het algoritme van Dijkstra het kortste pad ==> link state database o volgende hop vindt men dan uit de hieruit geconstrueerde routeringstabel hierarchical OSPF = opdelen in "areas" (figuur op slide 4-77) o elke area voert een eigen OSPF link-state padbepalingsalgoritme uit --> interne gegevens van een area blijven onzichtbaar voor alle routers buiten de area o 1 backbone-area bepaalt het pad voor pakketten tussen de verschillende areas o vier soorten OSPF-routers: interne routers: binnen een area --> padbepaling binnen het autonoom systeem area border routers: horen bij zowel bij area als bij backbone --> padbepaling voor pakketten met een bestemming buiten de area backbonerouters: niet-area-border-routers binnen backbone --> padbepaling binnen backbone boundaryrouters: uitwisseling van padbepalingsinformatie met andere autonome systemen; gebruikt BGP nut = grote topologie wordt opgesplitst in kleinere problemen 15/ BGP = Border Gateway Protocol; voorbeeld: o A,B,C zijn transit AS's (ISP) W,X,Y zijn stub AS en Multihomed AS 22

16/ o X meldt aan B en C dat het geen paden kent naar andere bestemmingen dan zichzelf (doet zich voor als een stub AS) --> B zal nooit dataverkeer via X doorsturen naar Y o B kent pad AW van A meldt dit pad aan zijn klant X meldt dit pad niet aan ISP C reden: C zou dataverkeer aan W via B kunnen verzenden (CBAW) --> werk en kosten voor B terwijl de weg CAW kan gebruikt worden E-BGP = Extern-BGP = gebruik van BGP tussen routers in verschillende autonome systemen (zoals in voorbeeld) I-BGP = Intern-BGP = gebruik van BGP om padbepalingsinformatie te verspreiden naar routers binnen het AS met bestemming AS's buiten het eigen AS BGP-peers zijn aangrenzende BGP-routers die gedetailleerde padinformatie uitwisselen (zoals de lijst van autonome systemen op het pad naar een bepaalde bestemming) i.p.v. informatie over de kosten van links. 23

5. Datalinklaag 1/ preamble-veld (7 bytes): o bitwaarde: 10101010 o implementeert synchronisatie tussen verzender en ontvanger o reden: twee terminals kunnen een licht verschillende bitrate hebben (bv: 100,1 Mbit/s en 99,9 Mbit/s o.w.v. verschil in temperatuur) info zou kunnen verkeerd ontvangen worden frame delimiter (1 byte): o bitwaarde 10101011 o wordt vaak beschouwd als onderdeel preamble veld o kondigt de belangrijke informatie aan = aankondiging van het einde van de synchronisatie bestemmingsadresveld (6 bytes): o uniek hardware adres van de ontvanger (MAC-adres) o eerste drie bytes liggen vast aan de producent van de ethernetkaart o laatste drie bytes zijn individueel specifiek bronadresveld (6 bytes): o uniek hardware adres van de zender typeveld (2 bytes): o benoemd het bovenliggend netwerkprotocol o analoog aan: protocolveld in header netwerklaagdatagram poortnummerveld in header transportlaagsegment gegevensveld (0-1500 bytes): o informatie dat wordt getransporteerd o indien groter dan 1500 bytes datagram wordt gefragmenteerd paddingveld (0-46 bytes): o aanvullende lege bytes o reden: minimum framelengte van 46 bytes vereist checksumveld (4 bytes): o foutdetectie a.d.h.v. cyclic redundancy check (CRC) o oorzaak fouten: verzwakking van signaal elektromagnetische velden die inwerken op de kabels en adapters 2/ CSMA/CD = Carrier Sense Multiple Access/Collision Detection o carrier sensing = luisteren of het kanaal vrij is o collision detection = detectie of er een andere node tegelijk aan het verzenden is werking: o PDU (protocol data unit) verkregen van bovenliggende netwerklaag wordt geëncapsuleerd tot een Ethernet-frame 24

3/ o Carrier sensing: kanaal niet in gebruik: verzenden frame kanaal in gebruik: wachten tot kanaal vrij + extra 96 bits wachten o Collision detection: geen botsing ontdekt: frame is "verwerkt" botsing treedt op: stoppen verzenden frame verzenden 48 jambits exponential backoff fase opmerkingen: o jamsignaal: attent maken van collision aan alle verzendende adapters (want indien slechts klein aantal bits verzonden kan deze energie te klein zijn geen detectie van collision door de andere verzenders!) o exponential backoff: adapter wacht steeds K x 512 bitintervallen om opnieuw te proberen (met K {0,1,2,,2 m -1} waarbij m = aantal keer dat collision is opgetreden met een bovengrens van 10) 1 ste collision K = 0 of K = 1 (beide kans ½) 2 de collision K = 0,1,2 of 3 (alle kans ¼) 3 de collision K = 0,1,,7 (alle evenveel kans) 10 of meer collisions K = 0, 1023 (alle evenveel kans) A start zenden, maar vlak voordat eerste bit in C toekomt, begint ook laatstgenoemde te verzenden. Kort daarop ontdekt C een collision, stopt verzenden en genereert jamsignaal. frame van A echter te kort om in A collision te detecteren A aanziet dit frame als "verwerkt" en correct toegekomen in C info is verloren oplossing: verplichte minimale lengte van 64 bytes = 512 bits criterium: frameduur > RTT (of frameduur > 2RTD = round trip delay) vb: 10 Mbit/s met 512 bits minimale lengte levert 51,2µs RTD snelheid van een bit op de kabel 2x10 8 m/s 5120 m kabel maximum 25

4/ 5/ 6/ exponential backoff: adapter wacht steeds K x 512 bitintervallen om opnieuw te proberen (met K {0,1,2,,2 m -1} waarbij m = aantal keer dat collision is opgetreden met een bovengrens van 10) o 1 ste collision K = 0 of K = 1 (beide kans ½) o 2 de collision K = 0,1,2 of 3 (alle kans ¼) o 3 de collision K = 0,1,,7 (alle evenveel kans) o o 10 of meer collisions K = 0, 1023 (alle evenveel kans) ARP = Address Resolution Protocol = protocol dat ervoor zorgt dat IP-adressen uit de netwerklaag gekoppeld kunnen worden aan MAC-adressen (= fysieke adressen) uit de datalinklaag ARP binnen LAN: o host A wil datagrampakket verzenden naar host B binnen hetzelfde LAN: zoekt koppeling op in een eigen ARP-tabel (IP-adres LAN-adres TTL) en zendt naar gevonden adres indien daar aanwezig: A zendt broadcast (destination FF-FF-FF-FF-FF-FF) ARPquery elke interface bekijkt zo'n bericht (pakketten gericht aan MAC-adressen die verschillend zijn aan eigen MAC-adres worden normaal genegeerd) B ontvangt (zoals iedereen in het LAN-netwerk) de broadcast en reageert (als enige want herkend zijn IP-adres) door het zenden van een (unicast) ARP-response met zijn MAC-adres gericht naar het MAC-adres van A A stopt deze koppeling in zijn ARP tabel (soft state = met TTL) ARP tussen LAN: o host A wil datagrampakket verzenden naar host C uit een ander LAN: A merkt in routing table dat pakket moet verzonden worden naar zijn gateway en plaats daarom als bestemmings-mac-adres het MAC-adres van deze router (via ARP) router ontvangt datagrampakket en merkt in zijn routing table dat het pakket moet verzonden worden naar ofwel volgende router ofwel host C in het aangesloten netwerk van host C router kan opnieuw via ARP het bestemmings-mac-adres ontdekken merk op dat het bron-mac-adres ook steeds verandert, terwijl de bestemmings- en bron-ip-adressen steeds dezelfde zijn hub: o hub = repeater met beetje extra netwerkbeheerfunctionaliteit o ontvangen bits worden onmiddellijk doorverzonden naar alle verbonden interfaces o werken dus op de fysieke laag i.p.v. datalinklaag o voordelen: eenvoudige oplossing om netwerk te maken zodat alle hosts met elkaar kunnen communiceren uitbreiding van maximale afstand (want hub = repeater) 26

netwerk kan opgesplitst worden (zie figuur p.480 5.27), zodat een probleem met een bepaald LAN-segment afzonderlijk kan behandeld worden (door die van het volledig netwerk los te koppelen) zonder dat het hele netwerk platligt o nadelen: iedereen hoort iedereen collision domains versmelten tot 1 groot collision domain bandbreedte moet steeds gedeeld worden 10BaseT en 100BaseT hubs kunnen niet in eenzelfde netwerk gebruikt worden bridge: o bridge = packetswitch die frames verder verzendt en filtert a.d.h.v. hun MACadres o werkt dus op de datalinklaag en niet op de fysieke laag o ontvangen frame wordt niet doorgezonden naar alle nodes, maar enkel naar de interface van die leidt naar de bestemming o nadelen hub vermeden: elk LAN-segment behoudt zijn collision domain, maar de verschillende collision domains smelten niet samen! verschillende LAN-technologieën (10 Mb/s en 100 Mb/s) kunnen tegelijk gebruikt worden 7/ werking: o frame komt toe in een bridge op interface A o bridge zoekt het bestemmingsadres op in de bridgetable: bestemmingsadres gevonden: indien MAC-adres gelinkt met interface A --> negeren indien MAC-adres gelinkt met andere interface --> forwarden bestemmingsadres niet gevonden --> verzenden van kopieën van frame naar alle interfaces (behalve A) bridgetabel: o bevat: bestemmings-mac-adres interface timestamp o zelflerend: eerste instantie: leeg ontvangen van elk frame --> bronadres wordt gekoppeld aan interface waar het frame toekwam wanneer niet bevestigd na zekere tijd --> verwijderen adres uit tabel (zodat verwijderde hosts niet oneindig blijven staan) opmerkingen: o om frame te verzenden gebruikt de bridge het CSMA/CD algoritme o bridge heeft geen MAC-adres, dus is er geen verandering van bron-mac-adres in de header bij het doorsturen van frames o plug and play wegens zelflerende bridge tabellen --> "transparant bridges" o spanning-treeprotocol: wanneer lussen in netwerk van hubs en bridges: verwijder lussen (niet fysiek uiteraard: "switch off") --> puur hiërarchische koppeling van LAN-segmenten indien een link niet beschikbaar (verdwenen of defect) --> bereken a.d.h.v. verwijderde links een nieuwe hiërarchisch structuur doel: ronddwalende frames vermijden (frames die blijven verzonden worden tussen hubs en bridges onderling) 27

8/ 9/ gelijkenissen: o "store-and-forward" devices: men slaat de frames/datagrammen op en bestudeert de bestemming vooraleer ze verder te zenden o bijhouden adreseringstabel: bridge tabel/routing table bridges: pro & contra: o pro: datalinklaag ==> sneller dan eerst nog eens naar de netwerklaag (ontkapselen van frame naar IP-datagram) self-learning ==> plug and play o contra: spanning tree ==> alle verkeer langsheen zelfde links, zelfs wanneer een alternatief (korter) pad beschikbaar is geen bescherming tegen broadcast vloed (zal steeds blijven zenden) routers: pro & contra: o pro: pad kan zelf gekozen worden (vb: het kortste of het snelste ), ronddwalen van pakketten wordt voorkomen door TTL tellers bescherming tegen broadcast vloed (zendt broadcast nooit door) o contra: netwerklaag ==> minder snel dan direct in datalinklaag geen plug and play ==> configuratie noodzakelijk conclusie: o enkele honderden hosts ==> bridges o enkele duizenden hosts ==> routers PPP = point-to-point protocol = datalinklaagprotocol dat werkt via een point-to-point verbinding (rechtstreekse verbinding tussen twee nodes) eisen van IETF: o packet framing: netwerklaagpakket moet verpakt worden in een datlinklaagframe waarbij begin en eind aangegeven is o bit transparancy: mag geen beperkingen opleggen aan de te versturen bitsequentie o error detection: bitfouten detecteren o connection liveness: fout op datalinklaag kunnen detecteren en kunnen melden aan de netwerklaag (vb: onmogelijkheid om gegeven te verzenden of ontvangen) o network layer address negotiation: mechanisme vereist om netwerkadressen van communicerende nodes te configureren geen vereisten: o error correction o flow control o sequencing (out of order delivery mag) o multipointlink support PPP-frame: 28