2020 samenvatting - Lars Lemmens Met dank aan de  Github van Martijn en natuurlijk Lars Lemmens Alle afbeeldingen staan in de powerpoint! Hoofdstuk 1 1.1 Protocollen Programma dat luistert en wacht tot een ander programma het initiatief neemt =  serverprogramma . Programma dat het initiatief neemt =  cliëntprogramma . Communicatie van computerprogramma's moeten er vastgelegde afspraken zijn → Welke berichten er kunnen verstuurd worden Wat elk bericht betekent Wat de onderlinge verhoudingen zijn tussen de berichten, o.a. hoe op elk bericht kan gereageerd worden Geheel van afspraken →  protocol Principe verdeel & heers toegepast → afspraken voor een bepaald deel i.v.m. computercommunicatie Afspraken over wijze waarop een bit voorgesteld wordt. Afspraken i.v.m. foutcontrole. Afspraken om meerdere PC's dezelfde fysieke verbinding te laten gebruiken zonder elkaar te storen Verschillende afspraken vastgelegd → verschillende protocollen samen →  protocolstack Protocol gebruikt voor WWW =  HyperText Transfer Protocol . Schematische voorstelling HTTP-berichten:   (figuur 1.1) 1.2 Protocollagen Netwerk kan gezien worden als → infrastuctuur die  gedistribueerde applicaties  voorziet van diensten Waarom kan eenzelfde browser gebruikt worden bij verschillende netwerken =  browser moet bericht niet zelf omvormen tot een bitrij + bitrij niet zelf op netwerk zetten, zal bericht afleveren aan programmatuur op lager niveau dat bericht omvormt tot een bitrij en deze op netwerk plaatst, idem voor inkomende berichten. Netwerkprogrammatuur opgedeeld in verschillende lagen: Bovenste laag = applicatielaag Communicatieboodschappen uitgewisseld tussen toepassingen die gebruik maken van netwerk → applicatieboodschappen direct gevolg van interactie tussen applicatie & gebruiker Onderste laag = Fysieke verstuurt de bitrij op het netwerk en zet ontvangen signalen van het fysieke communicatiemedium om in een bitrij. Indeling in lagen 2 belangrijke voordelen: De complexiteit kan verdeeld worden d.m.v.  abstractie Meerdere toepassingen kunnen gebruik maken van dezelfde programmatuur van de onderliggende laag Communicatie in figuur 1.1 =  abstract / virtueel  →  berichten worden afgeleverd aan en ontvangen van een tussenlaag.  De bovenste van de tussenlagen. Een stuk van bericht, opgedeeld door tussenlagen = segment Redenen om grotere berichten op te delen in segmenten De kans dat een segment een fout bevat is kleiner en wanneer dit het geval is moet enkel dit segment opnieuw verstuurd worden. Meerderen kunnen het netwerk tezelfdertijd gebruiken  = netwerk kan segmenten van verschillende communicaties door elkaar versturen. 1.3 TCP/IP Voor lagen tussen toepassingslaag en fysieke laag wordt bijna altijd TCP/IP gebruikt. Geheel van afspraken = Elke computer moet een  uniek IP-adres hebben  van 4 cijfers die tussen 0 en 255 liggen. Een computer wordt aangeduid d.m.v. zijn IP-adres. Een proces op een computer wordt aangeduid door het  poortnummer . 1.3.1 TCP/IP toepassingen Toepassingen hebben volgende eigenschappen gemeen : Client- en serverprogramma's. Gecommuniceerd via TCP/IP. Berichten die uitgewisseld worden, zijn vastgelegd in een protocol. Protocolspecificatie inkijken =  Request For Comment opvragen via FTP . Internet RFC's  : Cliënt en server voeren protocollen uit die in een computernetwerk het volgende regelen Boodschappen en de volgorde ervan die worden verstuurd Boodschappen en de volgorde ervan die worden ontvangen Structuur boodschappen Protocollen moeten  publiekelijk  en  gestandaardiseerd  worden. 1.4 TCP/IP-model van de tussenlagen De toepassingsprogramma's doen beroep op de programmatuur van een lager niveau. Meestal is dat het TCP-programma. Implementatie van TCP, transfer control protocol. Verstuurt en ontvangt berichten die voldoen aan het TCP → deze berichten worden TCP-segmenten genoemd. (TCP-programmatuur wordt gebruikt door de toepasingsprogrammatuur en staat dus op een lagere laag) TCP-programma's wisselen virtueel met andere machines segmenten uit Er wordt gebruik gemaakt van programmatuur op een lagere laag: IP-programma. Implementatie van het IP (internet protocol). Berichten die voldoen aan het IP worden IP-pakketten genoemd IP-programma cliënt en server communiceren virtueel IP-programma's maken gebruik van programmatuur op een lagere laag: bv. de programmatuur of driver voor de netwerkkaart. De berichten die op die laag verwisselt worden zijn frames Om frames van de ene naar de andere machine te sturen wordt er gebruik gemaakt van een lagere laag. Deze onderste laag gaat frames omzetten in bits. De onderste laag die de frames in bits omzet gaat d.m.v spanningen (1 en 0) de data overzetten van de ene naar de andere machine Applicatielaag ( HTTP, FTP) Besturingssysteem met netwerktoepassingen Presentatielaag (SSL, SSH) Heeft betrekking op afspraken voor het coderen en decoderen van gegevens voor de toepassingslaag Sessielaag (Winsock, Sockets) Heeft betrekking op de communicatie tussen tweetoepassingsprocessen Transportlaag (TCP, UDP) Heeft betrekking op afspraken om een pakket zonder fouten van bron naar eindbestemming te sturen, maar op een hoger niveau dan de datalink-laag (er kunnen meerdere tussenstations zijn & omdat pakketten kunnen opgesplitst worden) Netwerklaag (IP, ICMP) Heeft betrekking op het transport, de adressering en de routering van pakkettendoorheenhetnetwerkalsookophetopzettenvaneenroutevanbronnaar eindbestemming, nadat beide adressen fysiek bepaald zijn als fysischeadressen Datalink-laag (Ethernet, PPP) Heeft betrekking op de datatransmissie en afspraken om fouten te corrigeren, of te melden. Ook de afspraken over de wijze waarop bits in pakketjes gebundeldenweeruitgepaktworden,afsprakenoverdewijzewaaropdehandshaking gebeurt. Fysieke (Coax, Fiber) heeftbetrekkingopalleswatnodigisomdedatafysiekovereennetwerk te transporteren, inclusief de bekabelingsmethodes, maar niet de bekabelingzelf. Ditmodelgeeftnietaanwelkeafsprakenergemaaktmoetenworden,  wel ** hoe  men  de afspraken moet indelen**. Afspraken ene laag  mogen de afspraken voor andere laag niet ** beïnvloeden**. Uitzondering fysische laag worden lagen →  programmatuur geïmplementeerd. Programmatuurineenbepaaldelaag  ziet ** de  programmatuur  in  de  onderliggende  laag  als subroutines**. Elke laag communiceert minimaal met laag er onder / boven → alleen met die lagen → programmatuur ontwikkelt voor bepaalde laag → er vanuit compatibel met alle lagen compatibel 1.6 TCP/IP-model versus OSI-referentiemodel OSI-model (theoretisch mode) TCP/IP-model (reëel model) Toepassingslaag Toepassingslaag Presentatielaag   | | Sessielaag | | | Transportlaag | Transportlaag | | Netwerklaag | Internetlaag | | Datalink-laag | Datalink-laag | | Fysieke laag | Fysieke laag | Maar 4 lagen  = Toepassingslaag  = bovenste 3 OSI Transportlaag  = zelfde als OSI Internetlaag  = zelfde als netwerklaag OSI Netwerktoegangslaag  = onderste 2 OSI HOOFDSTUK 2: Datalinklaag: Netwerken en LANs 2.1 Terminologie: Link, node, netwerk, PDU Node  = een apparaat dat informatie uitwisselt over een netwerk Link  = communicatiekanaal tussen aangrenzende nodes → broadcastlink en point-to-point-link Broadcastcommunicatie  = wanneer nodes verbonden zijn door middel van een gedeelde broadcastlink zal er een medium-acces-protocol nodig zijn die toegang tot de link en het verzenden van frames op deze link in goede banen zal leiden Point-to-pointcommunicatielink  = deze wordt gebruikt wanneer twee nodes rechtstreeks met elkaar communiceren Netwerk  = twee of meerdere nodes die geconnecteerd zijn op een gedeeld medium/link en die daardoor rechtstreeks met elkaar kunnen communiceren PDU  = de data dat verstuur wordt tussen twee nodes en gespecifieerd wordt in een protocol 2.2 Diensten van de datalinklaag Primaire functie in datalinklaag → ervoor zorgen dat de data over een gemeenschappelijke link uitgewisseld wordt. Datalink voorziet 3 basisdiensten → Een duidelijk interface (API) met de netwerklaag voorzien en frames vormen. Frames versturen d.m.v. media access control: het coördineren van de verzending/ontvangst van frames door verschillende nodes over een gemeenschappelijke link Frames ontvangen en foutdetectie: het is zinloos om frames of PDUs die fouten bevatten te verwerken of verder door te sturen. Frame bevat: Frameheader Framepayload, hierin pakket hoger gelegen laag Frametrailer (framefooter) 2.3 Implementatie van de datalinklaag Datalinklaag → Inhardware op netwerkkaart(NIC) op moederbord (NIC geïntegreerd opmoederbord) Insoftware Softwarecomponent van datalinklaag →driver vanNIC →Deze handelt adresinformatie en interruptafhandelingen van de NIC hardware af 2.4 Multiple-accesslinks en -protocollen Willekeurige-toegangsprotocollen De computer wil data verzenden, wacht tot link vrij is en begint met zenden. Mogelijke botsingen wanneer 2 of meerdere nodes op hetzelfde moment frames verzenden. Na botsing wordt toestand hersteld. Ook  wel toegang door contentie  genoemd.  Ethernet  is hier een voorbeeld van. Deterministiche toegangsprotocollen Een computer wacht tot hij toegang krijgt. Als een PC toegang krijgt → zekerheid dat geen andere PC's zullen storen → vaak gebruik gemaakt van een token. Token = bewijs van toegang tot het verzenden van frames op de link. → Maar 1 token dus botsingen niet mogelijk Types LAN: Ethernet, token bus, tokenring,… Ethernet = meestgebruikt 2.5 Ethernet: fysiek Ethernetkaart → uniek adres Bestaat uit 48 bits → 12 Hexadecimale cijfers =  MAC-adres  (Medium Access Control) Of uit LAN-adres Op ethernetkaarten UTP-kabel gestoken die verbonden is met switch of hub Switch bevat 4,8,12,... poorten → poorten: aansluiting voor TP-kabel RJ-45 = connector TP-kabel 8 draden waarvan bij 100Mbit/s 4 gebruikt van worden Crossover-cable → omwisseling tussen 2 PC's → 1-3, 3-1, 6-2, 2-6 Meerdere PC's verbinden → switch → alles wat door draad 1 & 2 vezonden wordt → in switch via 3 & 6 doorgestuurd → via rechte kabel verbonden met elkaar 2.6 Ethernet frames Via Ethernet kunnen pc's Ethernet-frames naar elkaar versturen en van elkaar ontvangen. Een  Ethernet-frame is een bitrij  en bevat: Adres van de bestemmeling en de zender (het  MAC-adres  van 6 bytes) Type  (2 bytes) Data  (max. 1500 bytes, ook maximum transmission unit (MTU) genoemd) Eventueel  opvulbytes  (lengte frame min. 64 bytes en max. 1518 byes) Controle-informatie (  frame sequence checksum  ) die nagaat of er geen fouten bij overdracht zijn gemaakt (4 bytes) Om ethernetkaart te kunnen gebruiken → drivers nodig → drivers die frame versturen & ontvangen verschil fysieke laag & datalink  → op fysieke laag bestaan bits → bits groeperen tot frames → frames versturen →  frames versturen en ontvangen op datalinklaag Preambule:  Aan ethernetframe → preambule (7 bytes) & SFD ( start of frame delimiter, 1 byte) → samen 2.7 Ethernet a.k.a CSMA/CD Versturen van frames →drivers moeten zich aan afspraken houden →het  CSMA/CD  protocol CSMA/CD →Carrier Sense Multiple Access / Collision Detection Vroeger → elke PC verbonden via 1 coax kabel → bus(-broadcast)netwerk Elke bit die op kabel ging passeerde elke PC Op uiteinden kabel een terminatie (kabelafsluitingen → voorkomen signalen weerkaatsen) Later →coax kabel vervangen door hub (alle pc's verbonden aan hub) Hub → verstuurt elk signaal dat binnenkwam naar alle andere pc's buiten naar de pc van wie hij het signaal kreeg → elk bit dat wordt gestuurd passeert ook elke pc Ethernet principe → frame passeert alle PC's → alleen PC voor wie frame bestemd is mag frame lezen → elke kaart leest bestemmingsadres frame Is dit mijnadres Is dit mijn broadcast-adres → 12 F's Is dit multicast-adres voor mijn groep → afgesproken adres voor groep kaarten Ja → Frame wordt gelezen Afspraken (protocol) voor Ethernetkaarten → CSMA/CD Carrier Sensing MA   →   Multiple Access  → meerdere knooppunten tegelijk toegang tot link ( Carrier = (gegevens)drager) →Als er twee frames tegelijk op de kabel worden geplaatst, is er een botsing Om een botsing (  collision  ) te voorkomen moet een kaart eerst nagaan (to  sense  ) of de kabel (  carrier  ) vrij is Niet vrij → wachten tot kabel vrij is Collision Detection Kaarten moeten kabel inspecteren om  detecteren  of er botsing is Botsing → frames verloren → Kaart JAM signaal sturen een bepaalde tijd → Zo weet elke kaart op netwerk dat er botsing was Na botsing   →  kaarten die iets wouden sturen wachten willekeurige tijd voor ze weer opnieuw iets sturen Nog botsingen mogelijk bv: PC A & B → 1km van elkaar verwijderd Tijd voor eerste bit van frame is bv. 10µs om van A naar B te gaan Als B 9,9µs nadat A begonnen is een frame wilt sturen, zal B opmerken dat de bus vrij is Na 0,5µs → botsing; nog 0,5 µs later zal B merken dat er een botsing is A zal pas 19,9µs na het versturen van eerste bit vaststellen dat er botsing is Als er een botsing is weet de zender dit reeds tijdens het versturen van het frame omdat een frame altijd uit 64 bytes bestaat 64 bytes sturen neemt genoeg tijd om te weten of er een botsingis Lengte van ethernet kabel speelt eenrol Botsing frames → frame verloren Restant gebotst frame → runt Na sturen 64ste byte → normaal geen botsing meer Wel nog mogelijk, noemt  late collision NIET  opgemerkt door kaarten → frame niet opnieuw herverstuurd Programma van hoger niveau (op OSI) zal dit moeten oplossen 2.8 Snelheid Snelheid → bitsnelheid →  aantal bits dat per seconde kan verstuurd worden   →  ook wel  (digitale) bandbreedte  genoemd Niets te maken met snelheid waarmee bits reizen (dat is 2/3 van lichtsnelheid) Bandbreedte →snelheid waarmee de bits elkaar mogen opvolgen om zonder fouten onderscheiden te worden bij de ontvanger ALS Kabel niet langer is dan 2500m (5km in 5µs) Een frame minstens uit 64 bytes bestaat Bitsnelheid 10Mbit/sec bedraagt DAN Een frame van de ene kant van de kabel naar de andere kantreizen Dit frame daar botsen Het signaal dat door botsing ontstaat de zender weer bereiken, vooraleer de zender het volledige frame van minstens 64 bytes verstuurd heeft Ontwikkelregel bij CSMA/CD   →  Als een kaart frame op bus plaatst, gaat kaart na of het botst → als eerste 64 bytes van frame volledig op bus kunnen geplaatst worden zonder dat kaart vaststelt dat er een botsing is, is kaart zeker dat er geen botsing meer kan zijn 2.9 Switch CSMA/CD in kort → er kan niet meer dan 1 keer frames verstuurd worden, anders is er een botsing Kan beter → intelligente hub (→  Switch  ) gebruiken die botsingen 'verminder' Als ethernet frame in switch aankomt, leest switch eerste adres van bestemming → frame dan vestuurd naar poort waarop bestemming zich bevindt SWITCH ( geschakeld Ethernet) Krijgt frame en kijkt naar bestemming ervan. Het frame wordt alleen naar de poort van de bestemmeling verzonden. Kent ethernet en kan een frame analyseren en het adres herkennen Werkt op laag 3 van het OSI-model (Netwerk) HUB (gedeeld Ethernet) Leest geen adressen en stuurt elk inkomend signaal (frame) naar elke poort (behalve die vanwaar het frame is binnengekomen) Elektrisch apparaat dat alleen een bit herkent (elektrische spanning) Werkt op laag 2 van het OSI-model (Datalink) Met switch → sniffen ( wanneer iemand alle frames doet lezen op zijn netwerkkaart) vermeden Geheugen switch → inhoud adresseerbaar (CAM-geheugen) → opgeslagen info MAC-adressen → aan switchpoort bv. Hub of andere switch zitten d.w.z → op 1 poort meerdere MAC-adressen mogelijk Microsegment 1 kabel die 1 pc verbindt met switch (geen hub, maar een switch) → microsegment genoemd → dus als segment beschouwd worden Frame behandeling Cut-through switching Zodra switch eerste bytes van frame met bestemmingsadres gelezen heeft → switch frame verder sturen op poort waar bestemmeling zich bevind Store-and-forward switching Switch leest hele frame & checkt op fouten (Via CRC) → geen fouten → frame verstuurd Fragment-free switching Pas nadat switch eerste 64 bytes gelezen heeft → frame verder sturen 2.9.1 Virtuele Switch (VLAN) Goedkope switch → geen mogelijkheid tot configuratie Duurdere switch → wel mogelijkheid tot configuratie Afsluiting van poorten om VLAN's (virtual local area network) te configureren Configuratie Broadcasts → beperkt tot VLAN (bv. Management, verkoop) 2.10 Soorten Ethernet Oude ethernet van 10 Mbit/s → verdwenen Opvolger →  Fast Ethernet 2.10.1 Fast Ethernet Ook CSMA/CD als protocol 100 Mbit/s Niet via coax Kan zich aanpassen aan het oude Ethernet 10 keer sneller → lengte 10 keer korter → max. 250m 2.10.2 Gigabit Ethernet Ook CSMA/CD als protocol (een netwerkkaart luistert of er een botsing is terwijl ze bits op het netwerk zet) 1000 Mbit/s 100 x sneller → lengte 100 x korter → max. 25m Full duplex  = verbinding waar tegelijk info van zender naar ontvanger en andersom kan 2.11 Gesctructureerde bekabeling 2.11.1 Fysieke structuur Er bevinden zich evenveel RJ45 contactpunten als er computers moeten aangesloten worden. Er loop van elk contactpunt een TP-kabel naar een centraal schakelpaneel. Een pc wordt fysisch opgenomen in het netwerk door de netwerkkaart via een TP-kabel te verbinden met het contactpunt en het overeenkomstig contactpunt op het schakelpaneel te verbinden met een poort van de switch. Bekabeling van pc's tot schakelpaneel =  horizontale bekabeling . Schakelpaneel =  Horizontal Cross Connect  = distributiebekabeling. Standaarden van  Electronic Industries Association / Telecommunication Industries Association  = Kabel van pc tot stopcontact = max 10m. Kabel tussen stopcontact en schakelpaneel = max 90m. Kabel tussen schakelpaneel en switch = max 5m. Verbinden van verschillende verdiepingen met elkaar of met de servers =  verticale bekabeling  =  backbone . Switches aangesloten op contactpunten met UTP naar centraal schakelpaneel =  Vertical Cross Connect . Als lengte verticale bekabeling meer dan 100m bedraagt, kan men geen TP-kabels gebruiken. 2.11.2 Hiërarchische structuur Netwerk enige omvang = onderscheid tussen = Toegangsnetwerk  = het netwerk dat de pc's verbindt tot aan de eerste switch inclusief die switch. Distributienetwerk  = het netwerk dat die switches, waarop geen gebruikers voorkomen. Kernnetwerk =  verbinding tussen distributienetwerken, bestaande uit routers en snelle verbindingen. 2.12 Brug Gebruikt om  2 Ethernet-LAN's rechtstreeks te verbinden . Brug is intelligent zoals een switch = nagaan van adres van zender en bestemmeling. Als ze op dezelfde poort aangesloten zijn, dan wordt het frame niet verstuurd via de andere poort. Kan  verschillende type's LAN's verbinden . Complexe taak bij omzetten 802.3  = wachten tot drager vrij is en fouten corrigeren. 802.5  = wachten tot men het recht krijgt om te zenden. Ook kunnen de maximale frame-lengtes verschillen. Apparaat dat netwerken kan koppelen in de datalink-laag . Switch wordt soms  multiport bridge  genoemd. 2.13 Frametypes 4 Types: Ethernet II IEEE 802.3 IEEE 802.2 SNAP ( = Subnet Access Point) 2.14 Fysieke voorstelling bits Om bitrijen te versturen → 1 of ander fysiek signaal & medium gebruikt worden → bv (elektrische spanning op draad) → aantal bits per seconde verstuurd kan worden → afhankelijk bandbreedte 2.14.1 Frametypes Non return to zero  of  NRZ   →  Bits worden voorgesteld door gebruik van 2spanningsniveaus: (0 Volt) =0 & (5 Volt) =1 Bitrij 1001110101 → 2.14.2 Manchester coding 0 wordt voorgesteld door sprong van laag naar hoog, 1 als sprong van hoog naar laag. Halfweg elke bit is er een sprong →  laat toe dat klok van de ontvanger perfect gelijk loopt met klok van de zender . Voordeel =  voorstelling van een bit bevat ook klok-informatie . Nadeel =  pulsen zijn maar half zo breed   →   2 keer zoveel bandbreedte nodig . Techniek oude versie van Ethernet. Hoofdstuk 3 Internet Protocol ( IP) LAN-frames kunnen niet naar buiten gestuurd worden. Eerste stap naar meer gebruiksvriendelijk netwerk =  IP-programmatuur  (volgens het  Internet Protocol  )= Elke computer heeft een uniek adres. Computers kunnen IP-pakketten naar elkaar sturen. IP-pakket wordt verstuurd naar een computer waarvan het IP-adres gekend is. IP-pakket wordt ingepakt in een frame dat verstuurd wordt, het type frame hangt af van het netwerk. IP-pakket = waar ze vandaan komen, waar ze naartoe moeten. PC krijg IP-adres van 32 bits →  netwerknummer & computernummer De netwerktechnologie (Ethernet, Token Ring, ATM ,... ) die gebruikt wordt om het netwerk op te zetten,  speelt geen rol meer. IP zorgt voor versturing van IP-paketten zonder garanties → = niet  verbindingsgeoriënteerde, best-effort service IP  betekent strikt genomen: het geheel van afspraken IP  wordt ook gebruikt in de betekenis van: de implementatie of het computerprogramma van deze IP afspraken 3.1 IPv4-adressen Klasse A  = 7 bits gebruikt voor netwerknummer, max 128 netwerken. Eerste bit van adres is 0. Klasse B =  14 bits gebruik voor netwerknummer, max 16834 netwerken. Eerste twee bits van adres zijn 10. Klasse C =  21 bits gebruikt voor netwerknummer, meer dan 2 miljoen netwerken. Eerste drie bits van adres zijn 110. Multicast-adressen  = adres begint met 1110. Geen computer met nummer 0. Computernummer gelijk aan 0 stelt het hele netwerk voor. Computernummer met allemaal enen =  broadcastnummer . NIET LANGER DE EERSTE BITS VAN HET IP-ADRES DIE BEPALEN HOEVEEL BITS HET NETWERKNUMMER VOORSTELLEN   →   / NOTATIE   →   basisadres / aantal bits = CIDR ( Classless Interdomain Routing) 3.2 IP-pakket Gebruikers IP-programmatuur = programma's uit transportlaag of uit hogere lagen. Afzender en bestemmeling niet op hetzelfde fysisch netwerk = tussenkomst van router nodig. Versturen IP-pakketten (datagrammen) =  verbindingloze dienst. Bestaat uit  hoofding  en  datadeel . Lengtes van deze delen liggen niet vast. IP specifieert = Welke velden moeten en mogen voorkomen. Aantal bits voor elk veld voorzien. Waar elk veld begint. Wat inhoud van de velden kan zijn. Wat deze inhouden betekenen. Hoofding van een IPv4-pakket  bevat o.m. = Versie (4 bits). Lengte van de hoofding (4 bits : aantal woorden van 32 bits) = hangt af van aantal opties. Totale lengte van het pakket (16 bits). Differentiated Services  = eerste 6 bits zijn  Differentiated Services Code Point  (type van toepassing weergeven), laatste 2 bits zijn  Explicit Congestion Notification  (melden van router of congestie komt/is). Identificatie (16 bits) = nummer door zender toegekend. Resterende bestaanstijd  = zender vult deze tijd in, pakket door router verstuurd = tijd met 1 verminderend, als 0 = pakket weggegooid = afzender krijgt foutmelding =  voorkomt dat bij een fout een pakket zou blijven ronddraaien in het netwerk . Protocolnummer  = voor welke module wordt pakket verstuurd. CRC  = wordt alleen voor hoofding berekend = router kan fout vaststellen = pakket vernietigen = elke router moet dit opnieuw berekenen. IP-adres afzender (32 bits). IP-adres bestemmeling (32 bits) Fragmentatie offset: Helpt eindbestemmingsapparaat fragmenten in juiste volgorde te plaatsen om het originele pakket te maken → 13 bits breed → van 0 tot 8191 gaan 3.3 ARP Programma's die diensten van IP gebruiken → gebruiken IP adressen IP maakt gebruik van datalink-laag & fysieke laag om bestemming te bereiken Niveau onder IP-laag → fysieke adressen / MAC adressen IP adres moet omgezet worden naar een MAC-adres → broadcast frame sturen ARP broadcast wordt gestuurd op netwerk Elke PC krijg ARP request en checkt of het zijn IP is PC met juiste IP antwoordt een ARP-boodschap terug met zijn MAC-adres in de 6 lege bytes van de ARP boodschap. 3.4 Subnetten & VLSM Een subnet bestaat uit computers die deel uitmaken van hetzelfde fysiek netwerk. DE REST ZELF KUNNEN 3.5 Router Router bevat programmatuur tot en met 3e laag OSI IP-pakketten van een computer van subnet X naar een computer van subnet X IP-pakketten van een computer van subnet Y naar een computer van subnet Y IP-pakketten van een computer van subnet X naar een computer van subnet Y (en omgekeerd) 3.5.1 Verbinden van netwerken Ethernet-LAN's in elkaars buurt verbonden worden door hubs/switches → kan leiden tot grote belasting van netwerk → hub stuurt alle frames door. Een switch stuurt nog altijd het broadcast-frame verder Om netwerken verschillende soorten te verbinden router gebruikt. Een router stuurt het broadcast-frame niet verder. Om deze reden routers ook gebruikt als netwerken van dezelfde soort zijn. 3.6 IP routering Om te weten waar IP-pakket naartoe moet → routetabel geeft → voor elk IP-bestemmingsadres de machine die  next hop  is naar deze bestemming Next hop het IP-adres van een router een aanduiding dat directe aflevering mogelijk is ( router heeft netwerk aansluiting met netwerk bestemmeling) Besluit:  De routetabel als volgt gebruikt. Voor gegeven IP-adres, zoek in tabel tot er een net gevonden wordt, waartoe dit IP-adres behoort. Gebruik aangegeven next hop. Indien geen gevonden → foutboodschap. Zoeken van net kan gedaan worden door masker in item van tabel te lenen met gegeven IP-adres. Als resultaat hetzelfde is dan item, dan is next hop gevonden 3.7 ICMP Vereist voor elke implementatie van TCP/IP  en specifieert = Structuur van de boodschappen. Hoe de boodschappen geïnterpreteerd moeten worden. Deze boodschap wordt verstuurd als datadeel van een IP-pakket. Vooral gebruikt om  fouten te signaliseren  = wordt verstuurd naar afzender als een router een IP-pakket niet verder kan sturen. Geen foutmeldingen over foutmeldingen =  voorkomen van stroom van deze berichten  = eerst nagaan of datadeel van IP-pakket dit soort bericht al bevat (  hoofding van IP-pakket geeft dit aan  ). Structuur =  ICMP-data (hoofding en eerste 64 bytes van datadeel van IP-pakket waarvoor dit bericht gestuurd wordt OFWEL ander afhankelijk van type vb antwoord op echo-verzoek)  / ICMP-hoofding: type: 1 byte code: 1 byte (meer info over type) (CRC 2 bytes). Echo-verzoek wordt verstuurd na een ping van een gebruiker. Bij boodschap bestemming onbereikbaar geeft de code de oorzaak daarvan aan. 3.8 DHCP Communiceren via TCP/IP vereist dat = Deze protocol-suite geïnstalleerd is. De computers een IP-adres hebben. Aantal redenen om  IP-adres niet vast op te slaan in de computer  = Computer heeft geen harde schijf. Computer is mobiel en wordt in verschillende netwerken opgenomen. Meer computers in netwerk dan IP-adressen. IP-adressen kunnen best centraal beheerd worden door een server. Computer vraagt IP-adres aan server = vroeger  BOOTstrap Protocol  (liet geen dynamische toekenning van IP-adressen toe) = nu  DHCP  = computers kunnen IP-adres huren voor één sessie. Specifieert de boodschappen die kunnen uitgewisseld worden. DHCP-boodschappen worden via UDP (niet verbindingsgerichte tegenstanden van TCP) verstuurd. UDP-bericht versturen naar niet gekend IP-adres =  broadcast = aanvraag voor IP-adres aan alle computers van het netwerk via UDP-bericht naar poort 67 . Bestemmingspoort voor antwoord is 68. 3.9 IPv6 128 bits. Geen subnetmasker, aantal netwerkbits expliciet aangegeven. 3.9.1 Adresnotatie 8 keer 4 hexadecimale cijfers, gescheiden door een dubbel punt. Leidende nullen mogen weggelaten worden . Één  opeenvolging van nullen  mag vervangen worden door  2 dubbele punten . 3.9.2 IPv6-hoofding 40 bytes. Opties gebruiken = extra hoofdingen = na Ipv6-hoofding en voor de data. Volgende  velden  = Versie  (0.5 byte). Trafiek klasse  (1 byte) = DS-veld. Stroomlabel  (1.5 byte) = stroom van IP-pakketten met zelfde stroomlabel. Lengte  (2 bytes) = lengte in aantal bytes van rest van het pakket. Max 65535 bytes. Volgende hoofding  (1 byte) = wat komt na IPv6-hoofding = TCP-hoofding, UDP-hoofding,  Encapsulating Security Payload  (gebruikt voor encryptie), extra IP-hoofding (hop-by-hop opties hoofding, fragment-hoofding, routering-hoofding, bestemmingsopties-hoofding). Zelfde functie als protocolveld bij IPv4 maar met extra opties. Hop-limiet  (1 byte) = TTL-veld IPv4. Adres afzender  (16 bytes). Adres ontvanger  (16 bytes). 3.9.3 Fragmentatie Niet langer mogelijk voor routers om pakketten te fragmenteren als maximale frame-lengte te klein is (  Maximal Transfer Unit  ). Pakket te groot = router stuurt ICMP-bericht naar afzender. Afzender moet zelf nagaan hoe groot pakketten mogen zijn en moet ze zelf fragmenteren =  extra hoofding = fragment-hoofding . IPv6 adressen toekennen CIDR-notatie = 2000::/3 = alle IP-adressen waarvan de eerste 3 bits hetzelfde zijn. Regional Internet Registry  = 5 verschillende = deze kennen blokken van IP-adressen toe aan ISP's = RIPE  = Europa, Midden-Oosten, Noord-Azië. ARIN  = Noord-Amerika. LACNIC  = Latijns-Amerika. APNIC =  China, India tot Australië. AfriNIC  = Afrika. Grote van deze blokken = /23. RIR's kennen blokken van /32 toe aan ISP's. Elke ISP kent blokken van /48 toe aan zijn klanten/bedrijven. Van een IPv6-adres = Eerste 48 bits = ISP. Laatste 80 bits = toegekend aan bedrijf. 3.9.4 IPv6 subnetten Eerste16bitsvan/48bloktoekennenaansubnet.Laatste64bitskenmerkendemachineuit hetsubnet. 3.9.5 Soorten IPv6 adressen en bereik Globaal ** unicast**=eerste3bits=001danglobalroutingprefix(45bits),subnet-id(16 bits),host-id.Alsbestemmingsadresvanpakketzichbuitensubnetbevindtenrouter juist geconfigureerd is = router verstuurd pakket op andersubnet. Lokale ** link**=behorentotFE80::/10,anderebitsafgeleidvanMAC-adres,doorrouter niet op ander subnet verder gestuurd, communiceren met apparaten op het subnet, gebruikt voor automatische adresconfiguratie en om vast te stellen welke andere apparaten erzijn. Lokale ** site**=zitteninrangeFEC0::/10,pakkettenenkelverdergestuurdopandersubnet als dit een subnet is binnen dezelfde site, aparte toepassing = als Microsof IPv6- besturingssysteem geïnstalleerd = automatisch gezocht naar DNS-server op adressen : FEC0:0:0:FFFF::1, FEC0:0:0:FFFF::2,FEC0:0:0:FFFF::3. 3.9.6 Configuratie van global unicast adres SLAAC → Stateless Address Autoconfiguration Stateless → geen DHCP server die bijhoudt welke IPv6 adressen al gebruikt zijn Statisch → manueel admin IP-adres geeft Dynamisc SLAAC: gebruik info in Router Advertisement voor IPv6adres Alleen prefix →gebruik van EUI-64 of randomgeselecteerd SLAAC+DHCPv6:AdresverkregenviaSLAAC;additioneleinformatiewordtverkregen via een DHCPv6 server, zoals een DNSserver DHCPv6 alleen: zoeken van DHCPv6 server 3.9.7 Configuratie van link lokal adres Link local adres wordt dynamisch gecreëerd gebruik makende van prefix FE80::/10 en interface ID of MAC-adres of random gegenereerd 3.9.7 Multicast IPv6 adressen IPv6 Multicast hebben prefix  FF00::/8 Twee types multicast adressen → Assignedmulticast Adressen die zijn toegewezen aan specifieke functies zoals DHCPv6server Solicited nodemulticast Vergelijkbaarmetall-nodesmulticastaddress,komtovereenmetlaatste24bitsvan het IPv6 unicastaddress Gecreëerd wanneer global unicast of link-local unicast adressen wordentoegekend FF02:0:0:0:0:1:FF00::/104 combineren met de laatste 24 bits van het unicastadres. Wie is lid van de multicastgroepFF02:0:0:0:0:1:FF00::C? Wordt gebruikt om mac-adressen op tevragen 2 voorbeelden van IPv6 multicast→ FF02::1  All-nodes multicast group Alle IPv6-enabled devices behorenhiertoe Analoog aan alle IPv4  broadcast  adres FF02::2  All-routers multicastgroup Alle IPv6 routers behorenhiertoe ipv6unicast-routingglobalconfigurationmodecommand(packettracer) Opvragen macadressen bij IPv6→ Bij Ipv6, vb. pakket voor2001:🔤def1 Vraag : "wie is 2001:🔤def1" versturen naar solicited nodeadres ???-Laatste24bitszijnbc:def1-Vraag:"wieis2001:🔤def1"wordtverstuurdnaar ff02:0:0:0:0:1:ffbc:def1 Alle nodes waarvan adres eindigt op bc:def1 krijgenvraag 1 nodeantwoordt 3.9.8 IPv4 en IPv6 samen Dual ** stack**=zowelIPv4enIPv6wordengeïnstalleerdengeconfigureerd=indiennodig pakket opnieuw gelicht en ingepakt in pakket van andereversie. Tunnel  =oplossingvoordualstackwantdaarbijkomthetoorspronkelijkebericht(hoofding) niet goed aan =  ganse IPv6 inpakken als data in IPv4-pakket en het zo versturen  =  IntraSite Automatic Tunnel Addressing Protocol – ** tunnel**. Dual stack waar je kunt, tunnel waar je ** moet.** Niet ganse protocolstapel die anders is =  alleen het netwerkprotocol is ** anders**. Lagenstructuur=opéénlaagwordtietsveranderdmaarditheeftgeeninvloedopdeandere lagen. EXTRA: ICMPv6bevat4nieuweprotocollenalsonderdeelvanNeighborDiscoveryProtocol(NDor NDP): Router Solicitationmessage Router Advertisementmessage Neighbor Solicitationmessage Neighbor Advertisementmessage Router Solicitation and Router Advertisement Message – Sent between hosts androuters. RouterSolicitation(RS)message–RSmessagesaresentasanIPv6all-routersmulticast message. RouterAdvertisement(RA)message–RAmessagesaresentbyrouterstoprovideaddressing information Hoofdstuk 4: transportlaag 4.1 Diensten die de transportlaag levert IP levert geen garantie op correcte aflevering vanpakketten. Om bruikbaar te zijn voor toepassingen = betrouwbare verbindingnodig. Extra programmatuur in  transportlaag . 2 protocollen=   User Datagram ** Protocol.** Transmission Control ** Protocol** IP-module vervult volgende taken= Gegeven IP-pakket naar gegeven IP-adressturen. Uit inkomend  IP-pakket  datadeel nemen en  doorgeven  aan ICMP-module,transportlaag of eventueel eentoepassingsprogramma. In lagen boven IP-laag = meerdere processen gebruiken tezelfdertijd IP-module = sommigen viaUDPofTCPandererechtstreeks.IP-module weet via protocolveld in IP-hoofding aan wie de inkomende data moet afgeleverd** worden. UDP- en TCP-module worden gebruikt door meerdere processen tezelfdertijd = worden  onderscheiden  door ** poortnummers .Houdenperpoorteen  wachtrij  bijvaninkomendedata die gelezen kan worden doorproces. 4.2 UDP (User Datagram Protocol) Berichten kunnen verloren gaan of fouten bevatten of in de verkeerde volgordeaankomen. UDP voegt volgende functies toe aan IP= Mogelijkheid werken metcontrolebytes. Gebruik poortnummers =  toelaten multiplexing  = meerdere processen kunnenIP- module tezelfdertijdgebruiken. ProgrammakancommunicerenmetprogrammaopanderemachineviaUDP=deze programma's zullen  zelf foutcontrole en behandeling ** verzorgen**. Voordeel UDP =  weinig belasting  , gebruik van  broadcasting . TCP =betrouwbaarder. Structuur UDP-bericht Hoofding Bron (poortnummer verzendend proces), Bestemming (poortnummer ontvangend proces), Lengte (aantal bytes in bericht) Controle-veld (controle-bytes = 0000→geencontrolegebeurd,alswelcontrolegebeurden0→anderecodevoor0 gebruikt). Datadeel Inhoud controleveld berekenen Pseudo-hoofdingtoevoegenaanUDP-bericht(IP-adresvanbronenbestemming+ protocolnummer). Controleveld voorlopig op 0000gezet. Om ontvangende UDP-module controleveld laten berekenen =  IP-adres afzender doorgeven . Als meer dan één IP-adres = hetgene doorgeven via welk het isbinnengekomen. 4.3 TCP TCP brengt zekerheid TCP werkt full duplex → bytestroom van zender naar ontvanger en omgekeerd op zelfde moment IP geen correcte volgerde → TCP herstelt volgorde Een programma levert bytes aan TCP-module Module regelt TCP-segmentatiestroom (flow control) TCP-module neemt datastroom van gebruikersproces Deelt datastroom in blokken Verstuurt elk blok appart in een IP-datagram of pakket ! TCP-module bepaalt de segmentatiestroom en hoe groot de datablokken mogen zijn ! TCP-verbinding is een bytestroom en geen berichtenstroom → TCP-module weet niet wat die bytes betekenen De TCP-module plaatst de ontvangen bytes in een buffer Als genoeg bytes → TCP-segment gestuurt naar de andere machine Andere machine bewaart deze in een buffer (als deze correct en in volgorde zijn) Programma kan bytes lezen uit deze buffer ! UDP heeft geen verbinding, maar TCP wel (virtueel circuit) TCP-verbinding = tussen 2 eindpunten → socket → socketadres Socketadres: IP-adres van de host Poortnummer Bv. [(192.18.16.7, 317);(180.17.126.5, 25)] ! Socket kan door verschillende verbindingen op zelfde moment gebruikt worden 4.3.1) Het TCP protocol Elke byte in een TCP verbinding heeft eigen volgnummer (4 bytes) Zendende en ontvangende TCP-modules wisselen data via segmenten TCP-segment heeft header (20 bytes) gevolgd door 0 of meerdere databytes De databytes kunnen samengenomen worden uit meerdere schrijfacties van of naar socket TCP = betrouwbaar: Eindpunt TCP-verbinding moet een ACK (bevestiging) sturen als alle data correct is ontvangen d.m.v foutcontrole ACK bevestiging vermeldt byte dat verwacht wordt Bv. X, d.w.z alles tot X-1 is correct ontvangen en zender mag vanaf byte met nr. X verder sturen ! Als een segment correct, maar voor zijn beurt aankomt kunnen we niet checken of deze juist is. Bevestiging is byte en niet segment gerelateerd ! Als er fout is → geen bevestiging → segment opnieuw versturen na voorafgelegde tijd → RTT (round trip time) = tijd dat nodig is voor segment van zender naar ontvanger en een bevesteging van ontvanger naar zender te sturen (Hoe belaster het netwerk hoe groter RTT) Venster Verzendende proces levert bytes aan TCP-module → ontvangende proces leest deze bytes in volgorde waarin ze aangekomen zijn ! Wanneer zender een segment stuurt → start timer Ontvanger stuurt een segment (indien data aanwezig steekt dit ook in het segment) naar zender met bevestigingsnummer v/d volgende byte die hij verwacht en resterende venstergrootte ! Als timer op is voordat bevestiging is ontvangen → segment opnieuw verzenden TCP houdt aan zendende zijde rij bytes bij → TCP-module verstuurt byte → toegevoegd aan ri De rij heeft 3 delen (fig4.1) TCP houdt 3 wijzers bij (pointers) De bytes die: Verstuurd zijn en waarvan de (correcte) aankomst nog niet bevestigd is De bytes die mogen verstuurd worden maar nog niet verstuurd zijn = venster !  De wijzers genaamd bevestigd en grens, begrenzen het venster Bv. De ontvangende TCP-module meldt dat de bytes tot nr. 500 correct zijn ontvangen → Bevestigd krijgt waarde 500 en grens zal met 300 stijgen ! Een bevestiging bevat ook info die zegt of het venster vergroot of verkleint Het venster dient voor stroomcontrole (flow control) De zender kan zoveel bytes sturen als het venster groot is De ontvangende zijde moet die kunnen opslaan ! Door het venster te verkleinen kan men de zender afremmen (bv. zodat ontvanger niet overbelast geraakt) Poorten ! Zoals UDP, gebruikt TCP poorten voor de communicatie met de toepassingen TCP-segmenten PDU dat verstuurt wordt door TCP-module heet segment Segment heeft header (20 bytes + eventueele TCP opties mogelijk) Headerveld: Poortnummer zendend proces Poortnummer ontvangend proces Bytevolgnummer (4 bytes) → nr van byte dat nog net niet verstuurd is Lengte header → geeft aan uit hoeveel 32 bit woorden de header bestaat (hangt af van extra TCP opties) Bevestigingsnummer: volgnummer v/d byte die verwacht wordt in andere richting 6 één bit TCP-vlaggen (zie uitgebreide cursus p76) Venstergrootte → geeft de datastroom aan die mag gebruikt worden Controlebytes = die van UDP Lengte van het segment Eventueele opties → extra functionaliteiten voor TCP-protocol Een verbinding tot stand brengen (zie cursus p77) Stroomregulering geregeld door sliding window De waarde van het window geeft aan hoeveeldata er mag verzonden worden ! Als waarde venster = 0 dan is ontvanger niet in staat data te ontvangen Verbinding beëindigen Uitzonderlijk via reset → een eindpunt geeft aan de het een reset wilt: Eigen proces verwittigd dat verbinding verbroken wordt Er wordt een reset-segment (RST-bit = 1) naar ander eindpunt gestuurd Buffers worden opgeheven Eindpunt ontvangt reset-segment: Verwittigd het proces Buffers worden opgeheven Normaal beëindigen (omdat full duplex → gezien als 2 simplex verbindingen) TCP-module (A) na sluit-bevel : Overblijvende data in buffer versturen Wachten tot B ontvangst bevestigt Een FIN-segment sturen (FIN-bit = 1 en bytevolgnummer bv. X) TCP-module (B) ontvangt FIN-segment  : Een ACK-segment teruggestuurd (ACK-bit = 1 en bytevolgnummer X+1) Eigen proces verwittigd dat er geen data meer zal komen van A Geen data meer van A ontvangen, maar B kan nog steeds sturen A ontvangt data van B TCP-module (B) ontvangt sluit-bevel : Een FIN-segment sturen (FIN-bit = 1 en bytevolgnummer bv. Y) TCP-module (A) ontvangt FIN-segment  : A zendt ACK-segment (ACK-bit = 1 en bytevolgnummer Y+1) A heft verbinding op →Er zijn 2 FIN en 2 ACK-segmenten nodig voor een TCP-verbinding te stoppen op normale manier 4.3.2) TCP state diagramma Zie cursus p81 4.3.3 TCP tijdsbeheersing Wanneer een TCP-module een segment stuurt, wordt er een timer gestart. Wanneer de ontvangende TCP-module het segment bevestigd heeft alvorens de teller verlopen is, wordt de teller gestopt. Als die er niet op tijd geraakt wordt het segment opnieuw gestuurt ! Tijd te veel → systeem werkt traag ! Tijd te weinig → onnodig opnieuw versturen van segmenten → Tijd van de teller dynamisch d.m.v algoritme dat snelheid van netwerk analyseert 4.3.4) TCP congestie management Als netwerk teveel pakketten verwerkt dan dat het kan afhandellen → congestie Congestievenster en flow-control-venster worden tegelijkertijd bijgehouden Als ontvangende TCP-module zegt dat hij max. 64KB kan bufferen en dus ontvangen, maar congestievenster zegt dat het max. 32KB kan zijn → zal er maar 32KB verzonden worden 4.3.5 Protocolstapel Afkorting TCP/IP gebruikt voor het geheel van protocollen Met protocol-suite/protocol-stapel wordt het geheel van protocollen bedoeld