Steven Werbrouck
Antwoorden op vragenlijst 1. Inleiding 1/ • •
•
• •
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
2/ • •
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
3/
• • • • •
1
Steven Werbrouck
4/ • •
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
5/ •
•
TCP: o o o o o o
connection oriented (status wordt bijgehouden) 3-way handshaking protocol (maak figuur) full duplex (in 2 richingen communicatie tegelijk mogelijk) dataeenheid = segment betrouwbaar transport (ack, retransmissie, timers…) 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
6/ • •
•
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
7/ • •
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
Steven Werbrouck
8/ •
•
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
9/ •
•
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/ • • •
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)
11/
12/ •
3
Steven Werbrouck
•
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
Steven Werbrouck
2. Applicatielaag 1/ •
• •
•
•
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")
2/ • •
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)
3/
5
Steven Werbrouck
4/ • • •
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)
5/ • • •
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
6/ •
•
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
7/ • •
non-persistente verbinding: RTTTCP-connectie + RTTrequest/response + file transmission time m.o.: meerdere parallelle verbindingen versnellen het model wanneer meerdere objecten moeten gedownload worden persistente verbinding:
6
Steven Werbrouck
o zonder pipelining: RTTrequest/response + file transmission time per object (eerste maal werd de RTTTCP-connectie slechts 1x uitgevoerd) o met pipelining: ongeveer RTTrequest/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:
" 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
Steven Werbrouck
11/ •
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.
12/
•
13/ • •
•
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).
14/ •
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
Steven Werbrouck
•
•
•
•
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
15/ • • •
MIME: zie p.121 HTML: voldoende gekend DNS-request: zie slides 2-64 t.e.m. 2-66
•
verklaar slide 2-67
16/
9
Steven Werbrouck
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
Steven Werbrouck
•
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
• • • •
3/
11
Steven Werbrouck
4/ • • •
•
• •
•
•
• • •
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.
5/ • • •
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
Steven Werbrouck
6/ •
•
•
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.
7/ •
•
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
Steven Werbrouck
8/ • • •
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)
9/ •
•
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/ •
• •
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
11/ •
•
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
Steven Werbrouck
12/ •
•
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) )
13/ •
• • • •
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
Steven Werbrouck
4. Netwerklaag 1/ •
•
• • • • •
klasse A: o 0-netwerklaag-host o vb: HP: 15.0.0.0 o 128 netwerken, 224 interfaces klasse B: o 10-netwerklaag-host o vb: UGent: 157.193.0.0 o 214 netwerken, 216 interfaces klasse C: o 110-netwerklaag-host o 221 netwerken, 28 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
2/ • •
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
Steven Werbrouck
3/ •
• •
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
4/ •
•
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 211-2 = 2046 interfaces
5/ •
•
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
6/ • • •
• • • •
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
Steven Werbrouck
• •
• • •
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
Steven Werbrouck
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
Steven Werbrouck
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
Steven Werbrouck
•
• •
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
11/ • •
•
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…
12/ • •
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
Steven Werbrouck
13/ •
•
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
14/ •
•
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
•
BGP = Border Gateway Protocol; voorbeeld:
15/
o A,B,C zijn transit AS's (ISP) – W,X,Y zijn stub AS en Multihomed AS 22
Steven Werbrouck
• •
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
16/ •
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
Steven Werbrouck
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
Steven Werbrouck
•
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,…,2m-1} waarbij m = aantal keer dat collision is opgetreden met een bovengrens van 10) 1ste collision K = 0 of K = 1 (beide kans ½) de 2 collision K = 0,1,2 of 3 (alle kans ¼) 3de collision K = 0,1,…,7 (alle evenveel kans) … 10 of meer collisions K = 0,…1023 (alle evenveel kans)
3/
• • • •
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 5120 m kabel maximum snelheid van een bit op de kabel 2x108m/s
25
Steven Werbrouck
4/ •
exponential backoff: adapter wacht steeds K x 512 bitintervallen om opnieuw te proberen (met K € {0,1,2,…,2m-1} waarbij m = aantal keer dat collision is opgetreden met een bovengrens van 10) o 1ste collision K = 0 of K = 1 (beide kans ½) o 2de collision K = 0,1,2 of 3 (alle kans ¼) o 3de 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
5/
•
•
6/ •
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
Steven Werbrouck
•
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
Steven Werbrouck
8/ •
•
•
•
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
9/ • •
•
•
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
Steven Werbrouck
•
•
o vlagveld: geeft start frame aan (01111110) o adresveld: optie voor later indien adressering noodzakelijk voor multipointlinks, nu: 11111111 (overbodig dus) o besturingsveld: zelfde functie, nu 00000011 o protocolveld: nummer dat bovenliggende netwerklaagprotocol definieert (vb: 21 voor IP, C021 voor IP-controlprotocol…) o informatieveld: gegevens o checksumveld: CRC check voor foutdetectie (2 byte of 4 byte CRC) o vlagveld: geeft einde frame an (01111110) bytestuffing: o eis = geen bitsequentierestricties, MAAR vlag kan ook elders voorkomen! oplossing: zet een controle byte voor iedere "vlag-sequentie" die geen vlag is controle byte = 01111101 o MAAR controlebyte kan ook elders voorkomen! oplossing: zet een controle byte voor iedere bytesequentie die gelijk is aan controle byte ==> twee controlebytes na elkaar duiden op 1 controlebyte gegevens o de nodige controlebytes worden verwijderd door de ontvanger werking: o frames maken zoals vermeld o link-control protocol: protocol wordt gebruikt om een PPP-link te initialiseren, in stand te houden en te verbreken o network-control protocol: protocol waarmee de netwerklaagcomponenten zichzelf kunnen configureren voorafgaand aan het uitwisselen van netwerklaagdatagrammen via de PPP-link --> voor elk netwerklaagprotocol bestaat een netwerk-controle protocol
29
Steven Werbrouck
7. Beveiliging 1/
•
• •
sleutels van Alice en Bob zijn identiek én geheim: o Alice encrypteerd boodschap m met sleutel KA-B o De geëncrypteerde boodschap KA-B(m) wordt verzonden o Bob ontvangt de geëncrypteerde boodschap en decrypteerd m = KA-B(KA-B(m)) eis: o beiden moeten de symmetrische sleutel op voorhand al kennen vb: o substitution cipher Caesars encryptiemethode: verschuif (cyclisch) elke letter van de plain text over een factor k in het alfabet monoalphabetic cipher: vervang elke letter van de plain text door een andere willekeurige letter makkelijk te breken: statistieken gebruiken (meest voorkomende letters in een taal associëren met meest voorkomende letters in de geëncrypteerde boodschap) gekende woorden zoeken (wanneer je bv weet wie communiceert zoek naar combinaties die hun naam voorstellen) o DES = Data Encryption Standard a.d.h.v. 56-bit encryptiesleutel en permutaties 3-DES = verbeterde versie: K1K2K1(m) backwards compatible o AES = Advanced Encryption Standard 128, 192 of 256-bit encryptiesleutels onbreekbaar met brute forcing (149 trillion years)
2/ •
•
twee verschillende sleutels, 1 publiek gekend, 1 enkel door ontvanger gekend: o Alice gebruikt publieke sleutel van Bob om boodschap te encrypteren tot KB+(m) o Alice verzendt geëncrypteerde boodschap o Bob decrypteert met zijn private sleutel: m = KB-(KB+(m)) eisen: o sleutels moeten de eigenschap hebben dat: m = KB-(KB+(m)) o het mag niet mogelijk zijn om uit KB+, KB- te berekenen
30
Steven Werbrouck
•
•
vb: RSA = Rivest, Shamir en Adleman o Kies twee grote priemgetallen p en q (p=5, q=7) o Bereken n = p.q en z = (p-1).(q-1) (n=35, z=24) o Kies e zodanig dat: (e=5) e
3/ • •
digitale handtekening = cryptografische techniek die het mogelijk maakt om een handtekening te realiseren in de digitale wereld o verifieerbare en onvervalsbare digitale handtekening nodig! praktijk, vb: Bob zendt boodschap aan Alice met zijn digitale handtekening o private sleutel: Bob encrypteert m met zijn private sleutel KBBob verzendt boodschap m met zijn digitale handtekening KB-(m) Alice ontvangt m', kan het lezen en kan a.d.h.v. publieke sleutel van Bob de boodschap m nogmaals berekenen: KB+(KB-(m)) = m indien m = m' auteur is zeker Bob en niemand anders integriteit boodschap verzekerd o message digest = vingerafdruk van boodschap = sneller dan encrypteren van lange boodschappen met private sleutel Bob berekent H(m) met hashfunctie Bob encrypteert de hash H(m) met zijn private sleutel KBBob verzendt boodschap m met zijn digitale handtekening KB-(H(m))
31
Steven Werbrouck
Alice ontvangt m', kan het lezen en kan a.d.h.v. publieke sleutel van Bob de hash bepalen KB+(KB-(H(m))) = H(m) indien H(m') = H(m) auteur is zeker Bob en niemand anders integriteit van boodschap verzekerd o hashfunctie? many-to-one construeert vaste-lengte message digest korte boodschap die snel te encrypteren is in vergelijking met volledige lange boodschap eis: onmogelijk een andere boodschap n te vinden waarvoor H(n) = H(m) 4/ •
•
•
symmetrische sleutel: Hoe geraken beide partijen aan geheime symmetrische sleutel? trusted KDC = Key Distribution Centre publieke sleutel: Hoe weet Alice dat ze weldegelijk Bob zijn publieke sleutel heeft gekregen en niet die van Trudy? trusted CA = Certification Authority KDC: o Iedere geregistreerde gebruiker (Alice en Bob bv) heeft bij het registreren een symmetrische sleutel KX-KDC verkregen die het deelt met de KDC (vb KA-KDC en KB-KDC) o Stel Alice wil symmetrische sleutel met Bob: Alice vraagt aan KDC: KA-KDC(A,B): "Ik ben Alice en wil een symmetrische sleutel delen met Bob." KDC antwoord met: KA-KDC(R1, KB-KDC(A,R1)): "Hier de sessiesleutel R1 en dezelfde sessiesleutel geëncrypteerd met Bob's geregistreerde symmetrische sleutel." Alice kan boodschap decoderen met symmetrische sleutel en kent nu sessiesleutel Alice zendt tweede deel door naar Bob, zodat die ook de sessiesleutel verkrijgt o vb: Kerberos CA: o Bob meldt zich bij een CA en bewijst dat hij Bob is o CA onderzoekt identiteit en koppelt de publiek sleutel aan Bob door die te encrypteren met CA's private sleutel KCA- tot KCA-(KB+) = certificaat o Alice ontvangt op één of andere manier het certificaat en kan a.d.h.v. de publieke sleutel van de CA de publieke sleutel van B verkrijgen, die nu zeker juist is o Merk op: de publieke sleutel van de CA is verondersteld correct o vb: VeriSign
32
Steven Werbrouck
5/ •
•
packet filtering: o router firewall controleert pakket per pakket en maakt beslissing om het betreffende pakket door te laten of tegen te houden op basis van: bron- en bestemmings-IP-adres transportlaagprotocol (TCP of UDP) + poortnummers type van ICMP-bericht TCP SYN en ACK-bits (zie opmerking) o vb: Forward policy = DENY en geeft de uitzonderingen op die wel mogen passeren o opmerking: hou alle ingaande pakketten tegen met ACK = 0 interne clients kunnen verbinding maken met een externe server, maar externe clients kunnen geen verbinding maken met interne servers reden: in TCP 3-way-handshaking protocol heeft enkel het eerste pakketje ACK = 0 dit eerste pakketje kan enkel verzonden worden vanaf het intern netwerk externe clients kunnen geen verbinding maken met interne servers application gateway: o toepassingsspecifieke server die door alle toepassingsgegevens (ingaand en uitgaand) gepasseerd moet worden alle uitgaand verkeer van intern netwerk moet gericht zijn naar deze server (IP-adres van deze application gateway) application gateway zendt bv aanvragen voor een website door naar internet met eigen IP-adres als bronadres application gateway ontvangt alles en selecteert zelf wat er doorgezonden wordt naar de interne client die de aanvraag deed o application gateway kan acteren als: cache voor webverkeer e-mail server met virus scanning
6/ •
•
mapping: voor de aanval eerst zoveel mogelijk informatie over netwerk vinden o gevaar: ping: programma waarmee kan achterhaald worden welke IP-adressen gebruikt worden port scan: probeer om TCP-connectie op te zetten met iedere poort en bekijk wat er gebeurt ==> informatie over welke diensten de machine aanbiedt (FTP? HTTP?) o countermeasures: neem continu het verkeer op die het netwerk binnenkomt zoek naar verdachte activiteiten (port scanning, IP-adres scanning) packetsniffing: alle passerende datalinklaagframes worden passief ontvangen door een apparaat dat is verbonden met het netwerk o gevaar: alle informatie zoals login en paswoord worden ook ontdekt door de sniffer sniffer moet daartoe enkel zijn Ethernet-netwerkkaart (NIC) op mode "promiscue" zetten 33
Steven Werbrouck
•
•
o countermeasures: software wordt in alle bedrijfscomputers van het netwerk geïnstalleerd die de netwerkbeheerder waarschuwt als een NIC promiscue werkt alle gegevens die belangrijk zijn (vb wachtwoorden) versleutelen vermijdt een broadcast medium (vb met switches, zodat de pakketten niet over het volledig netwerk worden verspreid), maar sniffing is een belangrijke tool voor de netwerkbeheerder om het netwerk in de gaten te houden! spoofing: IP-adres faken door zelf een IP-bronadres in de IP-header in te vullen (wordt normaal gezien gedaan door het OS) o gevaar: de ontvanger kan niet zien dat het bron-IP-adres werd gespoofed en het is ook moeilijk te traceren wie er gespoofed heeft vaak gebruikt bij DoS (Denial-of-Service) aanvallen om de identiteit van de aanvaller te verbergen o coutermeasures: ingressfilters router controleert van elk pakket of het een geldig bron-IP-adres heeft (m.a.w. een IP-adres dat behoort tot het onderliggend netwerk) indien geen geldig bron-IP-adres ==> pakket niet geforward Denial of Service attacks: aangevallen infrastructuur wordt zo zwaar belast dat het de eigenlijke taken niet meer kan uitvoeren o gevaar: SYN-flooding-overval: server wordt overladen met TCP SYN-pakketen met elk een gespoofed IP-adres server reageert telkens met een SYN-ACK-pakket aanvaller beëindigt 3-way-handshaking procedure nooit ==> server reserveert steeds meer gegevensstructuur en statusinformatie aan groeiend aantal verbindingen IP-fragment-overval aanvaller zendt voortdurend IP-fragmenten naar een host maar nooit genoeg fragmenten om een datagram te vormen ==> host blijft fragmenten verzamelen en geheugencapaciteit daalt smurf-aanval: aanvaller laat een groot aantal onschuldige hosts antwoorden op een ICMP ECHO-pakkets met een gespoofed IP-bronadres ==> alle ICMP ECHO-antwoordpakketten worden verzonden naar de host waarvan het IP-adres gespoofed is DDoS (Distributed DoS): aanvaller kan op een of andere manier zichzelf toegang verschaffen tot de gebruikersaccounts op een groot aantal hosts hulpprogramma wordt op elke host geïnstalleerd op een aangegeven moment wordt elk hulpprogramma opgestart die elk een DoS aanval starten op dezelfde geviseerde host ==> uiterst verlammend want aanval komt van alle kanten tegelijk o countermeasures: SYN-vloed wegfilteren, maar de goeie worden ook verwijderd
34
Steven Werbrouck
•
trace back naar bron van de aanval, maar is traag en vaak wordt een onwetende geviseerd Hijacking: Trudy neemt verbinding van Alice over o werking: Trudy snift communicatie tussen Alice en Bob Trudy doet op een bepaald moment een DoS aanval op Alice Trudy spoofed Alice's IP-adres ==> Bob denkt nog steeds met Alice te maken te hebben
7/ •
•
PGP = Pretty Good Privacy = combinatie van gekende encryptiemethoden (ap.laag): o gebruik hashfunctie om digitaal te ondertekenen ==> zekerheid authenticiteit bericht o gebruik eigen private sleutel ==> zekerheid identiteit verzender o gebruik symmetrische sleutel ==> bericht blijft zeker geheim werking a.d.h.v. voorbeeld: Alice wil e-mail verzenden naar Bob met PGP: o Alice: Alice hashed e-mail m Alice encrypteert H(m) met eigen private sleutel Alice maakt nieuwe symmetrische sleutel aan Alice encrypteert de e-mail m met de privaat geëncrypteerde H(m) Alice encrypteert de symmetrische sleutel met Bob's publieke sleutel (verkregen van een CA) Alice verzendt laatste twee genoemde naar Bob o Bob: Bob decrypteert met eigen private sleutel de geëncrypteerde symmetrische sleutel Bob decrypteert met zopas verkregen symmetrische sleutel de e-mail m en de door Alice privaat geëncrypteerde H(m) Bob kan nu al e-mail lezen Bob decrypteert de hash met de publieke sleutel van Alice Bob hashed de e-mail m en vergelijkt met de gedecrypteerde hash, waardoor zekerheid bekomen wordt over de authenticiteit en identiteit o figuur:
35
Steven Werbrouck
8/ •
SSL = Secured Socket Layer = beveiligingslaag tussen de applicatielaag en transportlaag: o client surft met een browser naar een veilige pagina op een SSL-server (te zien aan de s in https://…) o SSL-handshaking procedure treedt op: browser zendt SSL-versienummer en cryptografische voorkeuren door ("Welk symmetrisch sleutelalgoritme gaan we gebruiken?") server zendt SSL-versienummer en cryptografische voorkeuren door + server zendt zijn certificaat door (zijnde zijn publieke sleutel geëncrypteerd met de private sleutel van een trusted CA) browser past publieke sleutel CA toe en verkrijgt publieke sleutel server browser maakt symmetrische sessiesleutel aan en encrypteert die met publieke sleutel server browser verzendt de geëncrypteerde sessiesleutel o SSL tunnel is gerealiseerd, gegevens kunnen nu met sessiesleutel beveiligd verzonden worden
9/ •
twee basisprotocollen: o Authentication Header protocol (AH) (protocolnummer 51) bronverificatie gegevensintegriteit o Encapsulation Security protocol (protocolnummer 50) bronverificatie gegevensintegriteit geheimhouding • handshakingsprocedure om te starten: security agreement (SA) o simplexverbinding = SA is unidirectional ==> twee verbindingen nodig voor communicatie tussen 2 hosts o SA wordt uniek bepaald door: aanduiding voor het gebruikte protocol IP-bronadres voor de simplexverbinding 32-bit verbindingsidentificatie (= Security Parameter Index SPI) ==> connectionless netwerklaag wordt een laag met logische verbindingen !!! • 2 modes: o transport mode: tussen terminals o tunnel mode: tussen routers • bespreking transport mode a.d.h.v. ESP: o gegevens van IP-datagram worden omhuld met header- en trailervelden en een authentication gegevensveld (deze velden behoren tot het gegevensveld van het IP-datagram) trailer: padding length (1 byte) next header (1 byte) = welk protocol in bovenliggende laag? header: SPI (4 bytes) volgnummer (4 bytes) initialisation vector (variabel) 36
Steven Werbrouck
•
•
authentication gegevensveld (variabel) = ondertekende message digest (met HMAC) o oorspronkelijke IP-gegevensveld wordt samen met ESP-trailer gecodeerd met een methode overeengekomen in de handshaking procedure o de verificatie geldt voor de ESP-header + IP-gegevensveld + ESP-trailer bespreking tunnel mode a.d.h.v. ESP: o volledig IP-datagram wordt omhuld met header- en trailervelden en een authentication gegevensveld o nieuw IP-header wordt aangemaakt o oorspronkelijk IP-datagram wordt samen met ESP-trailer gecodeerd o de verificatie geldt voor de ESP-header + IP-datagram + ESP-trailer
Merk op… o dat bij ESP bv. de TCP-header behoort tot het gegevensveld, zodanig dat men niet kan weten welk transportlaagprotocol er gebruikt werd. o dat IPSEC een beveiliging vormt tegen spoofing
EXTRA: WEP = Wired Equivalent Privacy • host en access point beschikken over een 40-bit geheime symmetrische sleutel KS • codering: o host voegt daar een 24-bit initialisation vector (IV) aan toe o deze 64-bit sleutel zorgt voor een stroom van sleutelwaarden kiIV (RC4 algoritme) o deze sleutelwaarden worden geXORed met de gegevensbytes en de op die manier gecodeerde bytes komen achteraan in een frame terecht met een WEPheader en de IV • decodering: o de IV is niet gecodeerd, zodat de ontvanger met de symmetrische sleutel de 64bit sleutel kan construeren en daaruit de stroom sleutelwaarden kan genereren o XORen met de gecodeerde bytes levert de gegevensbytes terug • beveiligingsgat: o elk mogelijk 24-bit IV (verandert per frame) zal meermaals gebruikt worden ==> indien Trudy er kon voor zorgen dat Alice haar een gekende gecrypteerde boodschap verzendt kan Trudy de XOR berekenen van de gecodeerde en de niet-gecodeerde bytes wat haar de stroom sleutelwaarden voor de geassocieerde IV levert ==> volgende keer Alice iets verzendt: IV herkend door Trudy ==> stroom sleutelwaarden gekend ==> gegevens gekend
37
Steven Werbrouck
8. Netwerkbeheer 1/ •
FCAPS = Fault, Configuration, Accounting, Performance, Security = netwerkbeheermodel met vijf netwerkbeheergebieden: o Fault Management: netwerkfouten detecteren, in een logboek bijhouden en daarop reageren vb: fouten in een link, host of router, fouten in de software o Configuration Management: het achterhalen van welke apparaten in het beheerde netwerk aanwezig zijn + hoe deze hardwarematig en softwarematig geconfigureerd zijn vb: routing table, topologie van routers, hubs en switches o Accounting Management: beheren van toegangsrechten van gebruikers voor netwerkbronnen vb: gebruikersquota, dataverkeerafhankelijke facturering o Performance Management: performance netwerkcomponenten (router, host, pad door het netwerk) kwantificeren meten rapporteren analyseren regelen vb: doorvoercapaciteit, gemiddeld pakketverlies o Security Management: beheer van toegang tot netwerkbronnen volgens een bepaalde policy vb: KDC, CA, firewalls
• •
MIB = Management Information Base eerst: structuur van netwerkbeheersysteem: o beheersentiteit (managing entity): toepassing (met interventie van de netwerkbeheerder) die wordt uitgevoerd op een centraal netwerkbeheerstation, waarmee het netwerk wordt beheerd o beheerd apparaat (managed device): netwerkapparaat binnen het beheerd netwerk (vb: host, router, printer…) o beheerd object (managed object): stukken hardware in een beheerd apparaat (vb netwerkkaart) en de reeks configuratieparameters voor die hardware en software (vb RIP) o netwerkbeheeragent: proces op elk beheerd apparaat dat communiceert met de beheersentiteit en lokaal acties uitvoert onder de verantwoordelijkheid van de beheersentiteit beheerde objecten gekoppeld aan informatie ==> MIB = verzameling van deze koppelingen en informatie De Management Information Base is een virtueel informatiepakhuis van beheerde objecten. Een Management Information Base-object kan zijn: o een teller (# IP-datagrammen dat bij een router wordt genegeerd
2/
• •
38
Steven Werbrouck
•
o beschrijvende informatie zoals de versie van de software van een DNS-server o statusinformatie of een bepaald apparaat correct werkt o protocolspecifieke informatie zoals een pad naar een bestemming Aan elkaar gerelateerde Management Information Base-objecten worden bij elkaar geplaatst in Management Information Base-modules
3/ •
•
SNMP = Simple Network Management Protocol, omvat: o Structure of Management Information (SMI): taal die wordt gebruikt om de beheerinformatie, die op een beheerde netwerkentiteit is opgeslagen, te beheren o Management Information Base (MIB): virtueel informatiepakhuis waarin beheerde objecten zijn opgeslagen. De waarden van deze beheerde objecten vormen een getrouwe weergave van de huidige staat van het netwerk o SNMP protocol: protocol dat gebruikt wordt om Management Information Baseinformatie uit te wisselen tussen beheersentiteiten en agents o security & administration capabilities: is een uitbreiding van SNMPv2 SNMP protocol: o 2 manieren om te communiceren: verzoek-antwoord berichten tussen beheerder en agent (of tussen twee beheerders) onderschepberichten van agent naar beheerder o 7 soorten PDU's (Protocol Data Unit): GetRequest: opvragen waarde van een MIB-object GetNextRequest: opvragen waarde van volgende object in de tabel GetBulkRequest: opvragen waarde van aantal objecten uit de tabel --> alle van beheerder naar agent InformRequest: doorspelen informatie over een MIB-object --> van beheerder naar beheerder SetRequest: instellen waarde van een of meerdere objecten --> van beheerder naar agent Response: antwoord op bovenstaande requests --> van agent naar beheerder of beheerder naar beheerder Trap: waarschuwing over uitzonderlijke gebeurtenis --> van agent naar beheerder
39
Steven Werbrouck
9. Telefonie 1/ • • •
•
eenvoudigste manier zou zijn = volledige maas structuur iedere gebruiker is geconnecteerd met elke ander gebruiker MAAR: probleem = dat daar ongelofelijk veel draden voor nodig zijn andere manier = enkele ster structuur iedere gebruiker is geconnecteerd met 1 centraal punt: the exchange MAAR: 1 ster volstaat niet om honderdduizenden gebruikers te voorzien oplossing is opdelen van terminals (eindgebruikers) in LEX (= Local Exchange) en in TEX (Transit Exchange): o LEX: stertopologie o TEX: volledige maasstructuur hoeveel sterren er in een TEX komen te staan en waar ze komen te staan wordt beslist op basis van kostenbeschouwingen: o subscriber line cost: totale verbindingskost voor de connecties van de gebruikers (hoe minder centrales, hoe moeilijker gebruikers te verbinden) o junction line cost: totale verbindingskost voor de connecties van de centrales (hoe meer centrales, hoe groter deze kost) o exchange cost: totale kost om de centrales te implementeren (actief te houden) (hoe meer centrales, hoe groter deze kost: lineair)
•
optimum wordt bereikt
•
2-draden systeem wordt gebruikt in het lokale gedeelte van het telefonienetwerk: het opzetten van een connectie tussen de gebruiker en een LEX en de connecties tussen LEX onderling 4-draden systeem wordt gebruikt voor langere afstanden, omdat dit systeem versterkers toelaat (die immers slechts in 1 richting kunnen versterken)
2/
•
40
Steven Werbrouck
•
bidirectioneel telefoongesprek is dus maar mogelijk a.d.h.v. een hybride transformator en een lijnbalancerend netwerk (teken figuur)
•
Een hybride transformator zorgt voor de overgang van het 2-draden netwerk naar het 4-draden netwerk met versterkers De transformatoren van het balance network ontvangen het ingesproken signaal op T1 en kopiëren het naar T2, zodat het netto signaal daar 0 is echo wordt vermeden
• 3/ •
•
meerdere connecties per lijn nodig meerdere draden nodig: SPM = Space Division Multiplexing duur want per circuit eigen versterkers nodig wat resulteert in dikke kabels en arbeidsintensieve installatie oplossing voor analoge telefonie: FDM = Frequency Division Multiplexing: o 1 coaxiale kabel gebruikt (drastische daling # versterkers!) o frequentieband van 300 Hz – 3400 Hz wordt gemoduleerd tot een andere frequentieband a.d.h.v. banddoorlaatfilters van 4 kHz (= iets meer dan de strikt noodzakelijke 3100 Hz, want filters zijn niet perfect) o verschillende frequentiebanden worden op dezelfde lijn geplaatst en eenmaal bij de ontvanger wordt gedemoduleerd (maak figuur) o de verschuiving van de frequentie over fc is voor ieder signaal uiteraard uniek
4/ •
Wanneer een verbinding tussen twee terminals wordt gerealiseerd, wordt een rechtstreekse connectie tussen beide opgezet. De centrale rol wordt hierbij gespeeld door de LEX en TEX switches. Op die manier wordt m.a.w. een circuit gerealiseerd tussen de eindgebruikers. Tijdens het gesprek wordt dit circuit niet verbroken (tenzij in uitzonderlijke omstandigheden zoals het breken van een fysische verbinding). We noemen dergelijke verbindingen dus circuit-switched. 41
Steven Werbrouck
5/ •
Stel dat we 1000 gebruikers hebben in een telefoonnetwerk o methode 1: garantie dat elke gebruiker met een andere gebruiker kan connecteren: nood aan 1000 x 1000 matrix en dus 1.000.000 switches maar slechts 1000 oproepen maximaal mogelijk in praktijk (want slechts 1000 gebruikers) inefficiënt en heel complex!
o methode 2: opdelen in concentrator en expander, elk een systeem van 1000 x 100 switches complexiteit gereduceerd tot 200.000 switches slechts 100 lijnen beschikbaar voor 1000 gebruikers, maar waarschijnlijkheid dat meer dan 100 lijnen tegelijk gebruikt worden is klein
o methode 3: opdelen in groepen, waarbij voor elke groep telkens 1 lijn beschikbaar is om connectie op te zetten met elke andere groep complexiteit gereduceerd tot 20.000 switches slechts 1 lijn mogelijk tussen een groep en alle gebruikers van een andere groep = te grote beperking!
42
Steven Werbrouck
o methode 4: gebruik van een distributor = 100 x 100 switches complexiteit iets groter nl 30.000 switches nu is het mogelijk om per groep van 100, 10 connecties op te zetten met gelijk welke andere groep
concentrator – distributor – expander voorstelling:
6/ •
Opdat een connectie tot stand kan komen moet er signaling gebeuren tussen eindgebruikers en de LEX. Er zijn 2 implementaties voor signaling mogelijk: o LD of Loop Disconnect: pulssignalen moeten worden uitgezonden aantal pulsen komt overeen met gedraaide nummer op die manier kan men combinaties van opeenvolgende pulssignalen interpreteren als een volledig telefoonnummer o DTMF of Dual Tone Multi Frequency: maakt gebruik van druktoetsen elke rij komt overeen met een signaal met een bepaalde (lage) frequentie elke kolom komt overeen met een signaal met een bepaalde (hoge frequentie iedere druktoets komt overeen met een signaal bestaande uit twee frequenties = de DTMF-toon betrouwbaar systeem + stuk sneller dan de LD
•
Opdat een connectie tot stand kan komen moet er ook signaling gebeuren tussen de Exchanges (LEX of TEX). Een eerste classificatie kan gemaakt worden door 2 manieren te onderscheiden waarop de signaling informatie gelinkt is met het voice kanaal. Er zijn 2 implementaties voor deze signaling mogelijk:
7/
43
Steven Werbrouck
•
o CAS of Channel Associated Signaling: per opgezet kanaal voor het spraaksignaal wordt er ook een kanaal voor het controlesignaal (= signaling channel) gerealiseerd o CCS of Common Channel Signaling: tussen twee Exchanges (LEX of TEX) is er 1 kanaal voor alle signaling gebruik o analoge telefonie: CCS o digitale telefonie: CAS of CCS
8/ •
Opdat een connectie tot stand kan komen moet er ook signaling gebeuren tussen de Exchanges (LEX of TEX). Een tweede classificatie voor FDM systemen kan gemaakt worden door onderscheid te maken tussen inband en outband signaling: o inband signaling: zelfde frequentieband wordt gebruikt als die van het voice kanaal (300 Hz – 3400 Hz) vb: inter-register signaling deel = deel van signaling kanaal dat informatie zoals het gedraaide nummer transporteert (op bv DTMF) o outband signaling: frequentie hier wordt gekozen buiten het voice kanaal, maar natuurlijk nog steeds binnen de 4 kHz band vb: line signaling deel = deel van het signaling kanaal dat informatietransport die de lijn controleert (op bv een frequentie van 3825 Hz)
•
Erlang: eenheid van traffic intensity: o traffic intensity = het gemiddeld aantal gesprekken die tegelijk bezig zijn gedurende een bepaalde periode = de som van de totale duur van elk gesprek over alle circuits die beschikbaar zijn in een pad gedeeld door de totale periode waarover de meting werd gedaan o enkele formules gebaseerd op de volgende veronderstellingen: 1/ verkeer is Poisson verdeeld (oproepen en afsluiten van telefoongesprekken zijn onafhankelijk van elkaar) 2/ statistisch evenwicht (statistieken veranderen niet gedurende de periode waarover men ze beschouwt) aantal oproepen in een bepaalde tijd:
9/
P ( x) =
µx x!
exp( − µ )
met µ = gemiddeld aantal oproepen in T (µ = T.λ) interval tussen twee oproepen: P (T ≥ t ) = exp( − t T ) met T =gemiddeld interval tussen twee oproepen (= 1/λ) duur van een gesprek:
P(T ≥ t ) = exp(− t h) met h = gemiddelde duur van een gesprek 44
Steven Werbrouck
kans dat n circuits bezet zijn: An P ( n) = exp( − A) n! •
met traffic intensity A GoS = Grade of Service: o Voor een lost call cleared system (systeem waarbij oproepen verloren gaan wanneer het netwerk volledig bezet is) geldt de Erlang B formule wanneer we de volgende veronderstellingen maken: 1/ Poisson verdeeld verkeer 2/ statistisch evenwicht 3/ full availability: elke oproep kan verbonden worden met gelijk welk circuit dat vrij is 4/ oproepen die wegens bezet netwerk niet kunnen behandeld worden gaan verloren (principe lost call cleared system) o formule: AN N ! E ( N , A) = N ∑ Ak k ! k =0
met traffic intensity van A Erlang en N uitgaande circuits o een GoS van 0.001 betekent dat er per 1000 oproepen 1 oproep verloren gaat 10/ •
lineaire A/D-conversie: distorsie is groter voor kleine signalen dan voor grote signalen SRV = signaal-op-ruis verhouding:
•
logaritmische A/D-conversie: grote signalen hebben een grote distorsie en kleine signalen een kleine: SRV = constant:
45
Steven Werbrouck
•
logaritmische A/D is efficiënter dan lineaire A/D; vb: o voor SRV = 40 dB heeft men 13 bits nodig voor lineaire quantisator en slechts 8 bits voor logaritmische quantisator o gevolg: bitrate lineaire quantisator = 13 bits * 8000 Hz = 104 kb/s bitrate logaritmische quantisator = 8 bits * 8000 Hz = 64 kb/s
•
3 redenen: o vermijden van DC storing o synchronisatie van de kloksnelheid zenden/ontvangen nodig:
11/
•
genoeg transities
vb: Manchester: 0 = transitie van hoog naar laag in het midden van het interval 1 = transitie van laag naar hoog in het midden van het interval o minimaliseren bandbreedte voorbeeld: HDB3 = High Density Bipolar 3 (gebruikt in Europa)
12/ • •
•
•
TDM = Time Division Multiplexing: digitale signalen worden bitsgewijs of bytesgewijs gemultiplexed (i.e. op dezelfde lijn aangelegd). De eerste methode noemen we bit interleaved TDM, de andere byte interleaved TDM. werking, vb: 4 digitale signalen: o 4 digitale signalen aan 64 kbit/s worden ontvangen o multiplexer legt telkens 1 bit/byte van ieder signaal aan op de uitgaande lijn (de bitrate moet hier minstens 4.64 kbit/s = 256 kbit/s zijn) o demultiplexer ontvangt het aggregate signal en splitst frames weer op in de tributary signals om multiplexing/demultiplexing toe te laten zijn volgende zaken vereist: o synchrone klok (om evidente redenen) a.d.h.v.: start/stop bits synchronisatie bits informatiebits (wanneer genoeg transities zijn) o recuperatie van de correcte bits/bytes voor een frame a.d.h.v. framestructuur: FAS = Frame Alignment Signal: een gekend bitpatroon in de framestructuur die gedetecteerd kan worden waardoor de positie van het frame kan gelokaliseerd worden in de bitstroom maak figuur:
46
Steven Werbrouck
13/ •
•
synchroon signaal = geaggregeerd signaal waarvan de verschillende bijdragende signalen identiek dezelfde bitrates hebben: o Synchronous Digital Hierarchy (SDH): bitrate van aggregate signal is n keer bitrate van de n tributary signals plesiochroon signaal = geaggregeerd signaal waarvan de verschillende bijdragende signalen een licht verschillende bitrate hebben: o Plesiochronous Digital Hierarchy (PDH): bitrate van aggregate signal is groter dan n keer de nominale bitrate (= waarde van de bitrate waarrond de tributary signals variëren) o bit justification is noodzakelijk
14/ •
•
Bij plesiochrone signalen zijn de bitrates van de bijdragend signalen licht verschillend en variëren rond een nominale waarde. Om demultiplexen toe te laten van het geaggregeerd signaal is het nodig dat deze bitrates gesynchroniseerd worden. Dit gebeurt a.d.h.v. bitjustification. werking a.d.h.v. voorbeeld:
o De nominale bitrate is 100 bit/s met een variatie van 1% (tussen 99 en 101) o Synchronisatie van de signalen naar 110 bit/s: Stel 99 bit/s geen spare bits Stel 100 bit/s geen spare bits in eerste frame 2 spare bits in het volgende frame… Stel 101 bit/s steeds 2 spare bits Stel 99,5 bits/s eerste drie keer geen spare bits vierde keer wel spare bits o Wanneer spare bits gebruikt worden staat het House Keeping bit (HK) op 1 15/ •
De transmissie standaard is PDH of Plesiochronous Digital Hierarchy. Die heeft verschillende waarden voor de vijf op elkaar volgende gestandaardiseerde niveaus voor de multiplexers (Europa, VS, Japan). In Europa geldt bijvoorbeeld voor de eerste drie niveaus:
47
Steven Werbrouck
•
•
o E0 = 64 kbit/s o E1 = 2,048 Mbit/s o E2 = 8,448 Mbit/s De eerste multiplexer gebruikt als ingang 32 tributary signalen van 64 kbit/s en genereert een aggregated signaal van 2,048 Mbits/s. Deze multiplexer is dus synchroon en noemt men de primaire multiplexer. De primaire multiplexer gebruikt byte interleaved TDM. De framestructuur van ziet er als volgt uit: o 30 kanalen voor voice tributary signals o 1 kanaal voor signaling (17de kanaal) o 1 kanaal voor "framing and alarms" (1ste kanaal): 1ste bit = aangeven alarm 2de – 8ste bit = FAS (Frame Alignment Signal) De primaire multiplexer gebruikt 1 klok (wat synchrone multiplexing toelaat) en is lijngecodeerd met het HDB3 systeem.
16/ •
•
•
PDH = Plesiochronous Digital Hierarchy = standaard voor transmissie van telefoniesignalen. De eerste vijf niveaus van multiplexing zijn hierbij gestandaardiseerd, maar de standaarden zijn wel afhankelijk van continent tot continent (Europa – VS – Japan). In Europa hebben we bijvoorbeeld de volgende eerste drie niveaus: o E0 = 64 kbit/s o E1 = 2,048 Mbit/s o E2 = 8,448 Mbit/s De eerste multiplexer is synchroon, de andere plesiochroon. De eerste multiplexer noemen we de primaire multiplexer en gebruikt byte interleaved TDM. De andere gebruiken bit interleaved TDM.
17/ •
•
•
bestaat uit: o 1 enkele input en 1 enkele output bus o speech memory: onthoudt de tijdsslots in volgorde o connection memory: controleert de volgorde waarin het speechmemory wordt gelezen (tijdsslot wordt gebruikt om een bepaald telefoonkanaal in stand te houden) werking: o signaal komt in een tijdsslot binnen en wordt onthouden in het speech memory o het connection memory beslist op basis van de bestemming van het tijdsslot wanneer het signaal uit het speech memory wordt gelezen: vb: TS3 TS8 5 tijdsslots vertraging TS8 TS3 32-5 = 27 tijdsslots vertraging merk op: maximale vertraging in een telefoongesprek met TSI (Time Slot Interchange) voor een 2 MBit/s signaal? antw: maximum vertraging bij het plaatsen van TS1 in TS31, m.a.w. 30 tijdsslots 30/32 x 125 µs = 117 µs (want 1/8000 Hz = 125 µs)
18/ •
bestaat uit: o een tijdsverdeelde multiplexed matrix met ingangen en uitgangen waarlangs de PCM signalen lopen (Pulse Code Modulation) 48
Steven Werbrouck
•
o connection memory die bijhoudt welke kruispunten er moeten gesloten worden in de matrix werking: o PCM-signaal komt binnen langs ingang A en moet verzonden worden naar een uitgang E o kruispunt in de matrix van rij A en kolom E wordt gesloten voor een periode gelijk aan het tijdsslot van het PCM-signaal (en dit voor elk frame) o gedurende de andere tijdsslots kan de ingang A en de uitgang E elk gebruikt worden voor ander combinaties die resulteren in het verzenden van ander tijdsslots o het connection memory houdt de cyclus bij die aangeeft welke kruispunten moeten gesloten worden (cyclus, want voor elk frame moet bv kruispunt van A en E gesloten worden, dus dit zal meermaals moeten gebeuren, tot de connectie verbroken wordt)
19/ •
• •
reden: hoge graad van blocking (= verbindingen die niet kunnen worden opgezet) o space switching: hoge kans dat 2 of meer oproepen moeten wedijveren voor dezelfde uitgang o time switching: verschillende tijdsslots hebben dezelfde output bus oplossing: combinatie van space en time switching: o T-S-T: input time switch – space switch – output time switch o S-T-S: input space switch – time switch – output space switch beide oplossingen even hoge capaciteit met even lage blocking waarschijnlijkheden
EXTRA: Routing in het kerngedeelte van het gebruikersvlak: • kenmerken kerngedeelte van het netwerk: o geaggregeerd telefoonverkeer is op voorhand te voorspellen a.d.h.v. de aggregate traffic load tussen elk paar switches kan de optimale route al op voorhand voorspeld worden o de switches en links zijn heel betrouwbaar o 1 enkele organisatie controleert het volledige netwerk (in tegenstelling tot internet) o hoge graad van geconnecteerdheid met vele alternatieve paden met gelijke lengte o quality of service: genoeg bronnen zijn beschikbaar • routeringsprotocollen: o Dynamic Non Hierarchical Routing (DNHR) 1 dag = 10 perioden per periode heeft een switch een: primair pad (one-hop path): alternatieve paden (two-hop paths) wanneer niet genoeg bronnen in het primaire pad, wordt een alternatief pad geprobeerd (= cranckback) gevaar voor metastabiliteit (beschouw figuur): A wil connecteren met B, maar niet genoeg bronnen meer A neemt alternatief pad via D naar B A wil connecteren met D, maar wegens cranckback van AB is dit pad ook verzadigd A neemt bijgevolg pad via E naar D
49
Steven Werbrouck
op den duur geen one-hop paden meer doorlopen, maar vooral two-hop paden meer call blocking dan verwacht
oplossing voor metastabiliteit: reserveer slechts een klein deel per switch voor two-hop gebruik DNHR 1 keer per week upgedate a.d.h.v. metingen o Trunk Status Map Routing (TSMR) elke switch meet de belasting op elke lijn en meldt dit aan een centrale computer deze computer berekent regelmatig alternatieve paden voor elke switch en geeft deze informatie door aan de switches o Real Time Network Routing (RTNR) elke switch meet de belasting op elke lijn en berekent een lijst van licht belaste paden wanneer primair pad bezet is, berekent de switch met een AND a.d.h.v. de lijst van de bestemmingsswitch het alternatieve pad dat het minst belast is merk op dat dit proces een DISTRIBUTED PROCESS is (geen centrale controle)
50