Computerarchitectuur en netwerken 12 Multicast protocollen Datalinklaag/LANs Lennart Herlaar 24 oktober 2017
Inhoud Netwerklaag broadcast multicast Datalink laag foutdetectie en -correctie multiple access protocols
Broadcast Unicast: verzending van één bron naar één bestemming Multicast: verzending van een bron naar een groep hosts Broadcast: verzending van een bron naar alle hosts op een netwerk Flooding: stuur pakket door naar alle buren behalve de verzender Elke ontvanger stuurt het door naar de andere buren Probleem: pakketten blijven rondcirkelen (broadcaststorm) Routers moeten bijhouden welke pakketten al verzonden zijn (volgnummers nodig)
Reverse Path Forwarding Probeer pakketten alleen in de goede richting te sturen Probleem: in het pakket staan geen bestemmingen, wel afzender adres Als router een broadcast pakket via de kortste route naar de afzender binnenkrijgt: stuur het door naar alle andere routers (buren) anders negeer het Dit werkt alleen als de links symmetrisch genoeg zijn je krijgt de optimale route de andere kant op!! Wat overblijft is een spanning tree: Een boom die alle nodes van het netwerk bevat
Reverse Path Forwarding (Veronderstel afstand = aantal hops) S: source R2 R1 R4 R5 R3 R6 R7
Multicast 1 Multicast door elk pakket naar iedere ontvanger te sturen
Multicast 2 Multicast routers Speciale multicast groep IP adressen: class D (1110 28 bits groep adres)
Multicast principes class D Internet adres voor multicast groep elke host kan zich toevoegen aan groep iedereen kan naar de groep zenden netwerk laag houdt niet bij welke hosts lid van de groep zijn in de pakketten staat een groep-adres, geen lijst van hosts ontvanger meldt zich aan bij dichtstbijzijnde router een router houdt alleen bij welke direct aangesloten hosts lid zijn van de groep andere routers weten alleen naar welke buren ze de pakketten moeten sturen verzender weet niet welke hosts het pakket ontvangen nodig: infrastructuur om de multicast datagrammen bij alle aangesloten hosts af te leveren
Multicast routering Shared tree: wordt gebruikt voor alle communicatie in de groep
Multicast routering Source-based trees: voor elke afzender een eigen tree
Shared tree Minimum spanning tree algoritme: probeer boom met laagste kosten te vinden Is een ondoenlijk probleem (kost teveel rekentijd) benaderingen zijn mogelijk Centraal geregeld systeem: Wijs één router als centrum aan (rendez-vous punt) Alle aanmeldingen naar deze Van hieruit geleidelijk tree opbouwen
Centrale benadering centrale = R6 volgorde aanmelding = R3, R4, R1
Reverse Path Forwarding Pruning Pruning: een router die geen abonnees heeft stuurt bericht upstream dat hij niet geïnteresseerd is S: source R1 R4 R2 P R5 R3 R6 P R7
Multicast Tunneling Enkele multicast routers temidden van niet-multicast Gebruikt tunneling multicast pakketten worden in gewone IP-pakketten ingepakt van multicast-router naar multicast-router gestuurd fysieke topologie logische topologie
Samenvatting Netwerklaag We hebben routering bestudeerd Unicast routering: Link state, Distance vector algoritmes, hierarchische routering (Autonome Systemen), routeringsprotocollen RIP, OSPF, (intra-as), BGP (inter-as) IP-adressen en de toewijzing ervan en indeling in (sub)netten Multicast en broadcast protocols
Datalink laag
Inhoud Datalink laag foutdetectie en -correctie multiple access protocols
Datalinklaag Link = directe verbinding tussen twee nodes (host, router,... ) i.e. zonder tussenliggende routers glasvezel ethernet telefoonlijn/modem draadloos Soorten: Broadcast Point-to-point Diensten Datalinklaag Frames verzenden evt. datalink adressering toegang tot link (soms) foutdetectie foutcorrectie flow control Frame = pakket + datalink envelop
Datalinklaag link
Transmissiemodes We onderscheiden drie transmissie modes : Simplex transmission mode (één richting) Half Duplex transmission mode (afwisselend twee richtingen) Full Duplex transmission mode (gelijktijdig twee richtingen)
Datalinklaag Frames worden door interfaces (adapters) verzonden en ontvangen Modem Netwerk interface Protocol wordt soms door adapter uitgevoerd verzender node datagram link layer protocol ontvanger node frame adapter frame adapter
Foutdetectie Pariteit: voeg een extra bit aan een rijtje bits (codewoord) toe zodat het totaal aantal 1-bits even is Of (volgens afspraak) zodat het oneven is. Als er nu 1 bit verandert kan de ontvanger dit detecteren
CRC CRC = Cyclic Redundancy Check komt neer op r bits toevoegen, algoritme: zender en ontvanger gebruiken een generator polynoom G(x) van graad r G(x) = x r + g r 1 x r 1 + + g 1 x + g 0 Coëfficiënten van G(x) zijn 0 of 1 (rekenen modulo 2) M(x) is de boodschap (als polynoom geïnterpreteerd) voeg toe r 0 bits achter M(x): geeft M(x) x r deel M(x) x r door G(x) (reken modulo 2) geeft quotiënt Q(x) en rest R(x): M(x) x r = G(x).Q(x) + R(x) Verstuur M(x) x r R(x) ontvanger controleert of deelbaar is door G(x) vindt veel fouten vooral bursts
CRC berekening We rekenen met bits: modulo 2 D.w.z. Veelvouden van 2 worden weggegooid 0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 0 (=2-2) Aftrekken is hetzelfde als optellen Bij de staartdeling komt er een 1 als het te delen getal met een 1 begint anders een 0
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
CRC voorbeeld
Multiple Access protocollen Broadcast link (kanaal): meerdere stations (nodes) op aangesloten Wat door een node uitgezonden wordt kan door alle ontvangen worden Probleem: wat gebeurt er als twee stations tegelijk zenden?
Multiplexing TDM en FDM (TDMA/FDMA) kunnen gebruikt worden als multiple access protocol Voordeel: makkelijk, eerlijk Nadeel: inefficiënt als sommige zenders weinig zenden Code Division Multiple Access Iedere bit wordt verzonden als m korte signaalelementen (chips). Ieder station heeft een code (m chips) Een 1 wordt verzonden als die code, een 0 als het complement ervan Later meer hierover
Random MAC protocols Laat stations zenden als ze dat willen Stations gebruiken volledige bandbreedte van link Detecteer als er een botsing is Slotted Aloha Pure Aloha CSMA CSMA/CD
Slotted Aloha Idee: tijd is verdeeld in slots (als bij TDM) Elk frame past in één slot Station gaat zenden als het zin heeft Bij een botsing ontdekt de ontvanger een fout (CRC) Via ARQ protocol wordt het frame nog een keer verzonden Bij grote drukte neemt de throughput af (max 36.8%)
Slotted Aloha efficiëntie Model: Elk station zendt met kans p een frame in elk slot. Alle stations zijn onafhankelijk. Als we N stations hebben dan is de kans dat een bepaald station zendt en alle andere niet = p(1 p) N 1. De kans dat er een station succesvol is, is dus Np(1 p) N 1 We moeten het maximum vinden van deze formule. Diffentiëren naar p en = 0 stellen levert op: p = 1/N. Dus de kans op een succesvolle transmissie is maximaal N 1 N (1 1 N )N 1 Voor N is de limiet 1/e = 0.368...
Pure Aloha Geen slots Stations kunnen op ieder moment zenden Verder hetzelfde Oorspronkelijke systeem van universiteit van Hawai Nu twee keer zoveel kans op botsing Daarom helft van efficiency (18.4%)
Aloha efficiency S = aantal succesvol verzonden frames G = totaal aantal verzonden frames (S + hertransmissies)
CSMA/CD CSMA = Carrier Sense Multiple Access carrier sense = vóór het verzenden controleren of er een signaal op de link staat Als er iemand aan het zenden is dan wachten tot die klaar is Probleem: omdat een signaal tijd nodig heeft om te reizen (propagation) kan nog steeds een botsing optreden CD = Collision Detection Tijdens het uitzenden blijven controleren of er een botsing optreedt Bij een botsing ophouden met zenden Dan niet onmiddellijk weer gaan zenden (waarom niet?) Als bij herzenden weer botsing dan verdubbel het aantal zijden van de wachttijd dobbelsteen (exponential backoff)
CSMA/CD Als er een botsing optreedt, wat dan? Stoppen met zenden. Kans op botsing groter naarmate propagation delay groter.
Samenvatting Datalink De datalink deelt data op in frames Extra informatie (parity, CRC) wordt toegevoegd voor foutdetectie De link kan point-to-point zijn of multipoint (broadcast) Bij broadcast links moet er een multiple-access protocol gebruikt worden: bijvoorbeeld Aloha (zuiver en slotted)