Hoofdstuk 5: Computernetwerken 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 1. Inleiding 1960 ... 1970 ... mainframe niet-grafische terminals 2 1. Inleiding (verv.) 1980 ... server PC of workstation 3 1. Inleiding (verv.) 1.1 Waarom Computernetwerken? 1.2 Componenten in een netwerk 1.3 Netwerkarchitectuur 1.4 OSI-referentiemodel 1.5 Internet model 4 1.1 Waarom Comp.netwerken? Gemeenschappelijk gebruik hulpmiddelen apparaten (drukker, scanner, supercomputer, …) gegevens (bestand, gegevensbank, …) Betrouwbaarheid beschikbaarheid reserve computer: taken overnemen reserve kopieën van bestanden, ... Kostenreductie Communicatiekanaal 5 1.1 Waarom Comp.netw.? (verv.) Gemeenschappelijk gebruik hulpmiddelen Betrouwbaarheid beschikbaarheid Kostenreductie prijs/prestatie: n * prijs(R) < prijs (n * R) dure randapparatuur: print-server, file-server, ... uitbreiden eenvoudiger: extra pc vervangen computer Communicatiekanaal e-post gewone post bestanden overhalen cassettes, floppies versturen elektronisch berichtenbord, e-krant, ... 6 1.2 Componenten v/e netwerk Beeld van de gebruiker Communicatienetwerk Computernetwerk vs Gedistribueerd systeem Opbouw van een communicatienetwerk lange afstand communicatienetwerk lokaal netwerk 7 Beeld van de gebruiker S4 SCommunicatie1 netwerk S3 S2 A B 8 Beeld van de gebruiker (verv.) Communicatienetwerk vergelijk telefoonnetwerk centrales, kabels, aansluitpunten telefoontoestellen, kanaal faxtoestellen met voldoende bandbreedte (3000 Hz) 9 Beeld van de gebruiker (verv.) Computernetwerk communicatienetwerk + aangesloten systemen (PCs, …) systemen vb. autonoom + identificeerbaar Gebruiker A wil op B werken 10 Beeld van de gebruiker (verv.) Gedistribueerd systeem computernetwerk 1 virtueel systeem transparante toegang tot drukker transparante toegang tot bestand transparant “werk” verdelen 11 Opbouw v/e comm.netwerk Lange afstand comm.-netwerk WAN (Wide Area Network) onderling verbonden “schakelaars” verbindingen (coaxiale kabel, glasvezel, …) bandbreedte = | hoogste doorgel. freq. - laagste freq. | routering 12 Lange afstand comm. netwerk S4 S1 S2 AB S3 S1 S3 A S1 S4 S3 S1 S2 S4 S3 B 13 Opbouw v/e comm.netwerk (2) Lokaal Netwerk LAN (Local Area Network) binnen geen 1 gebouw (< 1 km) schakelaars communicatiebord bus- in PC of ringnetwerk routering niet nodig 14 Lokaal Netwerk (LAN) 15 1.3 Netwerkarchitectuur Communicatie niet eenvoudig betrouwbaar bit-transport bepalen van route opsplitsen in pakketten samenvoegen van pakketten … Systematische aanpak Protocol + Gelaagde architectuur 16 1.3 Netwerkarchitectuur (verv.) Protocol “regels” aard en samenstelling van boodschappen reactie op boodschap Dienst entiteit entiteit aan gebruikers van “entiteit” vb. foutvrij transport van pakketten 17 1.3 Netwerkarchitectuur (verv.) Gelaagde architectuur Logische comm. entiteit protocol 2 entiteit Laag 2 dienst entiteit dienst protocol 1 entiteit Laag 1 18 1.3 Netwerkarchitectuur (verv.) Gelaagde architectuur entiteit protocol 2 entiteit Laag 2 dienst entiteit dienst protocol 1 entiteit Laag 1 19 Vb 1: Discuterende Filosofen Ik vind dat men mensen niet mag klonen. Filosoof (Gent) taal Tolk •telefoon •fax •(brief) Secretaresse comm. kanaal Filosoof (Tokio) Tolk Secretaris telefoonnetwerk 20 Vb 2: Comm. ts Processen Proces A op computer x vraagt aan proces B op computer y om bestand “brief.doc” op te sturen Proces A Proces B brief.doc x y 21 Vb 2: Comm. ts Processen (verv.) Protocol A zend “brief.doc” B 1200 bytes OK Beste rector, ... OK x y 22 Vb 2: Comm. ts Processen (verv.) Protocol: “dialoog” Hoe boodschappen overgebracht belangrijk Transportlaag: comm. ts. processen identificatie: (machinenaam, procesnaam) Netwerklaag: transport over netwerk identificatie: machinenaam 23 Vb 2: Comm. ts Processen (verv.) Processen A B Transport Netwerk x y Communicatienetwerk Processen B C D Transport Netwerk Processen B D Transport z Netwerk 24 Vb 2: Comm. ts Processen (verv.) Proces A zend “brief.doc” Proces B x, A y, B zend “brief.doc” zend “brief.doc” zend “brief.doc” Transportlaag op x B, A Transportlaag op y 25 Vb 2: Comm. ts Processen (verv.) Transportlaag op x B, A Transportlaag op y y x B, A Netwerklaag op x B, A y,B,x A Netwerklaag op y 26 Vb 2: Comm. ts Processen (verv.) zend “brief.doc” B, A voorstellen door: B, A zend “brief.doc” 27 Vb 2: Comm. ts Processen (verv.) Proces A y, B zend “brief.doc” Transportlaag op x y zend “brief.doc” B, A Netwerklaag op x B, A Proces B zend “brief.doc” Transportlaag op y zend “brief.doc” zend “brief.doc” y, x B, A B, A x, A zend ... zend “brief.doc” x Netwerklaag op y 28 Samenvatting proces gegevens netwerk hoofding transport hoofding proces gegevens transport hoofding proces gegevens 29 1.4 OSI-Referentiemodel Ontwerp netwerk = complex Decompositie: manieren OSI: Open System Interconnection open: comm. ts. versch. systemen referentie: raamwerk voor ontw. protocols functionaliteit van elke laag gedefinieerd kan door versch. protocols gerealiseerd 30 1.4 OSI-Referentiemodel (verv.) 7 lagen hoogste vier: ts. aangesloten systemen S4 S1 S2 x S3 y 31 1.4 OSI-Referentiemodel (verv.) applicatie presentatie sessie transport protocol applicatielaag protocol presentatielaag protocol sessielaag applicatie presentatie sessie protocol transportlaag transport netwerk protocol netw. laag N N netwerk dataverbinding protocol data. laag D D dataverbinding fysische protocol fys. laag F F fysische S1 S4 systeem y systeem x 32 1.4 OSI-Referentiemodel (verv.) Fysische laag versturen van bits over fysische kabel aard van kabel kenmerken van connectoren voorstellen van bits op kabel Dataverbindingslaag creatie van foutvrij comm. kanaal herkennen van pakketjes detectie van fouten controle op stroom van pakketjes (flow control) 33 1.4 OSI-Referentiemodel (verv.) Netwerk laag verkeer van pakketjes door 1/# netwerken 2 soorten diensten: virtuele verbindingen datagram dienst routebepaling kostendoorrekening onderling verbinden van netwerken + routebepaling doorheen die netwerken 34 1.4 OSI-Referentiemodel (verv.) Transport laag betrouwbaar comm. kanaal ts. eindsystemen efficiënt gebruik comm. Netwerken multiplexing meerdere verbindingen tussen eindsystemen opdelen in pakketjes + samenvoegen controle op boodschappenstroom (flow control) 35 1.4 OSI-Referentiemodel (verv.) Sessielaag extra hulpmiddelen voor samenwerking via betrouwbaar comm. kanaal organisatie van dialoog: vb. Beurtelings zenden plaatsen van synchronisatiepunten (voor hervatten van dialoog na fout) 36 1.4 OSI-Referentiemodel (verv.) Presentatielaag behoud van betekenis van informatie keuze van voorstelling van gegevens “op de kabel” ASCII vs EBCDIC 16-bit, 32-bit, … integers met 2-complementvoorst. ... ev. vercijfering van gegevens (confidentialiteit!) ev. compressie van gegevens 37 1.4 OSI-Referentiemodel (verv.) Applicatielaag hoogste laag applicaties, geschreven door eindgebruikers sturing van robots, elektronisch geldverkeer, … standaard applicaties elektronische post (X400) overdracht van bestanden (FTAM) deelproblemen: RPC (remote procede call) 38 1.4 OSI-Referentiemodel (verv.) Belangrijk referentiemodel Niet basis voor praktische protocols Definitie te lang geduurd Ondertussen: Internet groeiend succes 39 1.5 Internet model nooit formeel gedefinieerd geleidelijk aan gegroeid slechts 5 lagen geen sessielaag (toch weinig functionaliteit) geen presentatielaag ( elk appl.protocol moet dit definiëren) 40 1.5 Internet Model (verv.) applicatie Applicatie presentatie sessie transport transport netwerk netwerk dataverbinding dataverbinding fysische fysische OSI referentiemodel Internet model 41 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 2. Fysische laag Basisbegrippen Digitale communicatie Modems Schakeltechnieken 43 2.1 Basisbegrippen Analoog <> digitaal Periodieke signalen G(t) = ak sin(2kf t) + bk cos(2kf t) Transmissiemedia Gevlochten koperparen Coaxiale kabels 44 2.2 Digitale Communicatie Digitaal signaal: 0-en en 1-en +5V 0V -5V 0 1 0 1 0 0 0 1 Synchronisatie ts zender & ontvanger ev. 0 1 speciaal bitpatroon begin/einde 45 2.2 Digitale Communicatie (verv.) Vervorming Verzwakking Beperkte bandbreedte G(t) = ak sin(2kf t) + bk cos(2kf t) Omgevingsfactoren: ruis +5V 0V -5V 46 2.3 Modems Digitaal signaal over analoog kanaal met beperkte bandbreedte Amplitude Frequentie Fase Combinaties 47 2.4 Schakeltechnieken Lijnschakelen Boodschapschakelen Pakketschakelen 48 Lijnschakelen 3 Fasen: opzetten ev. van een verbinding onderhandelen gebruik van de verbinding slechts kleine vertraging (200.000 km/sec) verbreken van de verbinding vergelijk telefoonverbinding niet efficiënt voor communicatie tussen computers 49 Lijnschakelen (verv.) opdracht resultaat tijd 50 Boodschapschakelen Verbindingen gemeensch. gebruikt boodschap: schakelaar schakelaar Store-and-forward Grotere vertraging volledig ontvangen, dan pas verdergestuurd als verbinding vrij Variabele vertraging 51 Boodschapschakelen (verv.) 52 Pakketschakelen Boodschap opdelen in pakketjes Afzonderlijk over netwerk verstuurd eventueel verschillende route Lijn slechts korte tijd bezet Vertragingen zijn variabel 53 Pakketschakelen (verv.) 1 2 3 4 5 6 3 6 1 5 4 2 54 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 3. Dataverbindingslaag Fysische laag: bits oversturen (onbetrouwbaar) 0101000101 Fysische Laag 0101010101 Fysische Laag Hoofdopdracht: realiseren v. betrouwbaar kanaal Beperkingen: mogelijk: verwerkingssnelheid geen voorz. om systemen te synchroniseren 56 3. Dataverbindingslaag (verv.) Inhoud 3.1 Taken 3.2 Algoritmen en Protocols 3.3 Protocol 1: Geen fouten, geen stroombeheersing 3.4 Protocol 2: Stroombeheersing, geen fouten 3.5 Protocol 3: Stroombeheersing, fouten mogelijk 3.6 Protocol 4: 1-bit venster protocol 3.7 Uitbreidingen 57 3.1 Taken M.O.: sommige taken door HW, andere door SW Afbaken van pakketjes begin & einde herkennen vb. bitpatroon: 01111110 kan ook in pakket voorkomen! (0 inlassen na vijf 1-bits) 011111111001010011010 01111110011111011100101001101001111110 58 3.1 Taken (verv.) Detectie van fouten zender: controlebits toevoegen aan pakket ontvanger: nagaan of correct ontvangen bijvoorbeeld pariteitsbit: 1-bit fout detecteren (on)even pariteit: # 1-bits in pakket is (on)even CRC (Cyclic Redundancy Check) fouten van meerdere bits detecteren indien fout: opnieuw zenden hoofding met volgnummer duplicaten herkennen (bij heruitzending) 59 3.1 Taken (verv.) Stroombeheersing flow control snelle zender overspoelt trage ontvanger ontvanger: expliciete/impliciete toelating om volgend pakket te sturen Pakket Layout HW Beginpatroon Hoofding Data Controlesom Eindpatroon 01111110 v. Netwerklaag 01111110 60 3.2 Algoritmes en protocols typedef struct {...} data_van_netwerklaag; typedef struct { int nr: …; /* veld van hoofding */ data_van_netwerklaag data; } pakket; void ontvang_van_netwerklaag (data_van_netwerklaag *d); /* na oproep verwijst d informatie die moet verstuurd worden*/ void geef_aan_netwerklaag (data_van_netwerklaag d); /* data in ontvangen pakket w. doorgegeven aan netwerklaag */ void verzend_pakket (pakket p); /* p wordt voor verzending doorgegeven aan fysische laag */ void ontvang_pakket (pakket *p); /* ontvang pakket p van de fysische laag */ 61 3.2 Algoritmes & Protocols (verv.) 1 zender & 1 ontvanger 1-richting communicatie NWL (zender): onbeperkte hoeveelheid gegevens NWL (ontvanger): onbeperkte hoev. Bufferruimte ontvang_van_netwerklaag geef_aan_netwerklaag DVL (zender) verzend_pakket DVL (ontvanger) ontvang_pakket Fysische Laag Fysische Laag 62 3.3 Protocol 1: geen fouten, geen stroombeheersing zender ontvanger tijd Vertraging ts zenden en ontvangen Zender kan onbeperkt zenden 63 3.3 Protocol 1: geen fouten, geen stroombeheersing (verv.) Algoritme zender Algoritme ontvanger data_van_netwerklaag dnl; pakket p; data_van_netwerklaag dnl; pakket p; while (true){ while (true){ ontvang_van_netwerklaag(&dnl); ontvang_pakket(&p); p.info = dnl; geef_aan_netwerklaag(p.info); verzend_pakket(p); } } 64 3.3 Protocol 1: geen fouten, geen stroombeheersing (verv.) Zender kan onbeperkt zenden ... 65 3.4 Protocol 2: geen fouten, wel stroombeheersing zender ontvanger tijd Ontvanger geeft expliciet toestemming voor sturen van volgend pakket 66 3.4 Protocol 2: geen fouten, wel stroombeheersing (verv.) Algoritme zender Algoritme ontvanger data_van_netwerklaag dnl; pakket p, t; dnl: data_van_netwerklaag; pakket p, t; while (true){ while (true){ ontvang_van_netwerklaag(&dnl); ontvang_pakket(&p); p.info = dnl; geef_aan_netwerklaag(p.info); verzend_pakket(p); verzend_pakket(t); ontvang_pakket(&t); } } 67 3.5 Protocol 3: fouten mogelijk, stroombeheersing Fouten: pakket niet ontvangen pakket wordt als foutief herkend (wordt niet doorgegeven aan Netwerklaag) stel herkend in procedure ontvang_pakket (de procedure keert niet terug, maar wacht op een volgend -correct- pakket van de fysische laag) bijgevolg: geen onderscheid tussen beide 68 3.5 Protocol 3: fouten mogelijk, stroombeheersing Algoritme (2) zender Algoritme (2) ontvanger … while (true){ ontvang_van_netwerklaag(&dnl); p.info = dnl; verzend_pakket(p); ontvang_pakket(&t); } ... while (true){ ontvang_pakket(&p); geef_aan_netwerklaag(p.info); verzend_pakket(t); } zender ontvanger Impasse!!! 69 3.5 Protocol 3: fouten mogelijk, stroombeheersing (verv.) zender ontvanger P0 P0.info P1 P1 P2 P1.info P2.info 70 3.5 Protocol 3: fouten mogelijk, stroombeheersing (verv.) zender ontvanger P2 P2 P2.info Duplicaat!!! Pakketten nummeren • onderscheid: nieuw heruitzending • 1-bit nummer volstaat 71 3.5 Protocol 3: fouten mogelijk, stroombeheersing (verv.) Zender: na zetten van wekker: 2 gebeurtenissen mogelijk wekker loopt af aankomst van een pakket gebeurtenis wacht_op_gebeurtenis(); geb := wacht_op_gebeurtenis(); { geb = AANKOMST of geb = WEKKER } 72 3.5 Protocol 3: fouten mogelijk, stroombeheersing (verv.) Algoritme zender data_van_netwerklaag dnl; int volgend_volgnummer; /* 0 of 1 */ pakket p, t; gebeurtenis geb; /*AANKOMST of WEKKER*/ volgend_volgnummer = 0; ontvang_van_netwerklaag(&dnl); while(true){ p.nr = volgend_volgnummer; p.info = dnl; verzend_pakket(p); start_wekker(); geb = wacht_op_gebeurtenis(); if (geb == AANKOMST) { stop_wekker(); ontvang_pakket(&t); ontvang_van_netwerklaag(&dnl); volgend_volgnummer = (volgend_volgnummer + 1) % 2; } } 73 3.5 Protocol 3: fouten mogelijk, stroombeheersing (verv.) Algoritme ontvanger data_van_netwerklaag dnl; int verwacht_volgnummer; pakket p, t; verwacht_volgnummer = 0; while(true){ ontvang_pakket(p); if (p.nr == verwacht_volgnummer) { geef_aan_netwerklaag(p.info); verwacht_volgnummer = (verwacht_volgnummer +1) % 2; } verzend_pakket(t); /*steeds nodig, ook als duplicaat ontvangen is */ } 74 3.5 Protocol 3: Corrrect??? (verv.) zender ontvanger 0 I0 zender ontvanger I0 1 I3 1 I1 1 I1 beschouwd als duplicaat I1 traag! 0 I4 I4 duplicaat 0 I2 Legende: nr info 75 3.6 Protocol 4: 1-bit venster protocol Vensterprotocol Hier vereenvoudiging bedoeld voor gegevensverkeer in 2 richtingen alleen verkeer in 1 richting Fout in protocol 3: Zender: Toelating foutief interpreteren Oplossing: Toelating bevat bevestiging v. laatst correct ontvangen pakket (acknowledgement) 76 3.6 Protocol 4: 1-bit venster protocol (verv.) Algoritme zender data_van_netwerklaag dnl; int volgend_nr; /* 0..1 */ pakket p, ack; gebeurtenis geb; /*AANKOMST of WEKKER*/ volgend_volgnummer = 0; ontvang_van_netwerklaag(&dnl); while(true){ p.nr = volgend_nr; p.info = dnl; verzend_pakket(p); start_wekker(); geb = wacht_op_gebeurtenis(); if (geb == AANKOMST) { stop_wekker(); ontvang_pakket(&ack); if (ack.nr == volgend_nr) { ontvang_van_netwerklaag (dnl); volgend_nr = (volgend_nr + 1) % 2; } } } 77 3.6 Protocol 4: 1-bit venster protocol (verv.) Algoritme ontvanger data_van_netwerklaag dnl; int verwacht_volgnummer; /* 0..1*/ pakket p, ack; verwacht_volgnummer = 0; while(true){ ontvang_pakket(&p); if (p.nr == verwacht_volgnummer) { geef_aan_netwerklaag(p.info); verwacht_volgnummer = (verwacht_volgnummer + 1) % 2; } ack.nr = p.nr; verzend_pakket(ack); } 78 3.6 Protocol 4: 1-bit venster protocol (verv.) zender ontvanger 0 I0 0 1 I1 1 I1 1 0 I2 zender ontvanger 1 I0 0 I2 I1 I2 0 traag! 1 I3 I3 duplicaat Legende: nr info nr 79 3.7 Uitbreidingen beperkingen protocol 4: als propagatietijd signaal onefficiënt gebruik van communicatiekanaal bijv. Satellietverbinding 80 3.7 Uitbreidingen (verv.) 81 3.7 Uitbreidingen (verv.) 0 ms 360 ms 125 ms 485 ms 180 ms 845 ms 82 3.7 Uitbreidingen (verv.) Onefficiënt gebruik van kanaal: 1 pakket uitzenden: 125 ms, volgende pas na 845 ms = 15% nuttig gebruik van kanaal Oplossing: zender: mag meerdere pakketjes sturen bijv. 8 pakketjes zendvenster = 8 (max. 8 niet bevestigde pakketten) ontvanger: wat als pakket niet correct ontvangen? volgende ook verwerpen? 83 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 4. Lokale netwerken 4.1 Algemene Kenmerken 4.2 Ethernet Fysische Laag Werkingsprincipe (3 Regels) Pakket Layout Diensten 85 4.2 Algemene Kenmerken Geografisch beperkt gebied Topologie: geen afzonderlijke schakelaars / wel interfaceborden eenvoudige topologie: ring of bus Hoge transmissiesnelheden: 10Mbit/s .. 100 Mbit/s Hoge kwaliteit: weinig fouten Gemeenschappelijk gebruikt kanaal protocol voor toegang tot fysische kanaal alle pakketten door iedereen ontvangen 86 4.1 Algemene Kenmerken (verv.) bus ring 87 4.1 Algemene Kenmerken (verv.) Gemeenschappelijk gebruikt kanaal: (vergelijk: kamer met mensen) gelijktijdige toegang mogelijk iedereen ontvangt elk pakket 88 4.1 Algemene Kenmerken (verv.) Specifieke protocols: in dataverbindingslaag + fysische laag! netwerklaag: leeg (tenzij LANs verbonden) Dataverbindingslaag LLC: Logical Link Control (gemeensch. LANs) MAC: Medium Access Control verschillend voor elk soort LAN onbetrouwbaar transport van pakketten 89 4.1 Algemene Kenmerken (verv.) LLC (vgl. Dataverbindingslaag in WANs) 2 soorten diensten: virtuele verbinding (perfect kanaal) datagram dienst (geen garantie aflevering v. pakket) LANs steeds datagram dienst dataverbindingslaag fysische laag OSI Model LLC MAC fysische laag Lokaal Netwerk 90 4.2 Ethernet IEEE 802.3 Busnetwerk Fysische Kabel (versch. alternatieven) dunne coaxiale kabel (thin Ethernet) gevlochten koperparen flexibele bekabeling dikke (twisted pair): meest coaxiale kabel (thick Ethernet): verouderd 91 4.2 Ethernet Fysische Laag 3 soorten bekabeling: 92 4.2 Ethernet Fysische Laag Elke computer: interface bord verbinding met coaxiale kabel 93 4.2 Ethernet Fysische Laag (verv.) Pakket versturen: Signaal coaxiale kabel plant zich voort naar beide uiteinden aansluitpunt computersysteem signaal 94 4.2 Ethernet Fysische Laag (verv.) 2 Computers gelijktijdig versturen: elektrisch signaal gewijzigd geen van beide pakketten correct herkend BOTSING botsing (nog niet detecteerbaar door beide systemen) 95 4.2 Ethernet Fysische Laag (verv.) Botsing: hoort botsing weet nog niet dat botsing opgetreden is 96 4.2 Ethernet Fysische Laag (verv.) Enkele cijfers |kabel| = 1000 m 2 PCs nabij de twee uiteinden transmissiesnelheid = 10 Mbit/s |pakket| = 1kByte transmissiesnelheid (signaal) = 200.000 km/s uitzenden pakket = 800 s bit (andere kant v/d kabel) = 5 s 97 4.2 Ethernet Fysische Laag (verv.) Worst Case (detectie van botsing) PC begint te zenden na > 5 s: alle andere systemen op hoogte andere PC begint net iets daarvoor te zenden na > 10 s: eerste zender hoort botsing (indien hij nog aan het zenden is!!! |pakket| ) 98 4.2 Ethernet (verv.) Werkingsprincipe Vergelijk: ruimte met # mensen geen moderator aanwezig Stel: computer mag op elk ogenblik beginnen sturen 1e PC begint versturen 800 s 2e PC begint versturen 800 s tijd beide pakketten foutief ontvangen globale verlies = 800 s + 800 s = 1600 s < 18% v/d capaciteit benutten! 99 4.2 Ethernet Werkingsprincipe (verv.) Regel 1: Begin pas te versturen als kabel vrij is (computer vangt geen signaal op) Botsingen niet uitgesloten pas na 5 s signaal aan andere uiteinde 100 4.2 Ethernet (verv.) Werkingsprincipe Toepassing van regel 1: Computer mag alleen starten indien kabel vrij is 1e PC begint versturen 2e PC begint versturen 800 s 800 s tijd beide pakketten foutief ontvangen globale verlies = 5 s + 800 s = 805 s < 36% v/d capaciteit benutten! 101 4.2 Ethernet Werkingsprincipe (verv.) Regel 2: Blijf luisteren tijdens zenden Bla bla ... Stop zodra botsing vastgesteld Zend kort stoorsignaal 102 4.2 Ethernet (verv.) Werkingsprincipe Toepassing van regels 1 & 2: Computer mag alleen starten indien kabel vrij is Stop met zenden zodra botsing vastgesteld wordt 1e PC begint versturen 5 s + ... 2e PC begint versturen 5 s + ... tijd geen pakketten ontvangen globale verlies 5 s + 5 s 10 s Verlies (10 s) <<< tijd voor verzenden pakket (800 s) 103 4.2 Ethernet Werkingsprincipe (verv.) Regel 3: Na botsing: wacht willekeurige tijd herhaalde botsingen: wachttijd neemt toe na 16 mislukkingen: faling melden 104 4.2 Ethernet Werkingsprincipe (verv.) CSMA/CD MA CS CD Multiple Access Carrier Sense Collision Detect Eigenschappen: - belasting vertraging - geen garantie uitsturen - belasting tot 90% (real time systemen!?!) v/d capaciteit nuttig gebruikt - CD (door 2 systemen) indien |pakket| |pakket| 64 bytes 105 4.2 Ethernet (verv.) Pakket Layout Elke verbindingskaart uniek (wereldwijd) adres = 6 bytes Hoofding - bestemmeling - afzender - ... Data “broadcast” naar adres alle aangesloten systemen Controlesom 106 4.2 Ethernet (verv.) Diensten MAC + LLC: datagram dienst voor netwerklaag typedef struct{...} ethernet_adres; /* 6 byte adres */ typedef struct {...} info; /* data van de netwerklaag */ void zend_pakket (ethernet_adres naar, info data); void ontvang_pakket (ethernet_adres *van, info *data); 107 4.2 Ethernet (verv.) Bekabeling 108 4.2 Ethernet (verv.) Hubs Centraal opgestelde hubs Twisted pairs vanaf iedere werkplek naar hubs (lengte < 100m) Gemeenschappelijk kanaal in hub (interne werking principieel niet belangrijk) Signalen over twisted pair gestandaardiseerd Resultaat: Eenvoudiger beheer Nieuwe varianten: fast Ethernet, geschakeld Ethernet 109 4.2 Ethernet (verv.) Fast Ethernet 10 Mbps 100 Mbps Mbps: 10s <> 800 s efficiënte werking 100 Mbps: 10s <> 80 s ?? 10 Reductie lengte kabel: 2,5km 250m 10 Mbps + 1000m 100 Mbps + 100m Mbps: 10s <> 800 s efficiënte werking 100 Mbps: 1s <> 80 s efficiënte werking 10 110 4.2 Ethernet (verv.) Geschakeld Ethernet = hub + … bufferruimte voor inkomende pakketten per lijn Botsingvrij transport tussen buffers = switch Ethernet? Ja: zelfde standaard voor communicatie over lijnen Neen: werking Nieuwe probleem: Naar welke buffer een pakket sturen? 111 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 5. Netwerklaag Dataverbindingslaag: communicatie tussen direct verbonden computersyst. Netwerklaag: communicatie tussen verwijderde computersystemen mogelijk maken 5.1 Diensten 5.2 Protocol 5.3 Routering 113 5. Netwerklaag (verv.) netwerk protocol netw. laag N dataverb. protocol data. laag D fysische protocol fys. laag F A S2 S1 N protocol netw. laag netwerk D protocol data. laag dataverb. F protocol fys. laag fysische S3 S4 B 114 5.1 Diensten 2 soorten diensten: virtuele verbinding datagram dienst geen garantie van aflevering • bijv. door falen van schakelaar volgorde aflevering kan volgorde verzending • bijv. door volgen van andere route Elk computersysteem: netwerkadres internationale standaarden 115 5.2 Diensten (verv.) typedef struct{...} netwerk_adres; typedef struct{...} info; /* data van de transportlaag */ void zend_pakket (netwerk_adres naar, info data); void ontvang_pakket (netwerk_adres *van, info *data); 116 5.2 Protocol Hier: alleen datagram dienst Hoofding - netwerkadres bestemmeling - netwerkadres afzender - protocol transportlaag - ... Data van Transportlaag NWL (Computer A, S1, S3): pakket over bepaalde verbinding sturen 117 5.3 Routering Schakelaar: routeringstabel: per bestemming: uitgaande lijn C 0 0 S 1 1 3 2 3 S2 1 2 3 0 1 2 S4 3 A E 2 S3 D 1 0 F B nr S1 S2 S3 S4 A B C D E F 0 1 1 2 3 2 3 1 0 1 3 2 3 1 3 0 2 2 1 3 2 3 1 0 118 5.3 Routering (verv.) C 0 A 0 S 1 1 3 2 3 S2 1 2 3 0 1 2 S4 3 E 0 2 S3 D 1 B F nr S1 S2 S3 S4 A B C D E F 0 1 1 2 3 2 3 1 0 1 3 2 3 1 3 0 2 2 1 3 2 3 1 0 : A B: : A S1 (1) S2 (1) S3 (1) B : F C: : F S4 (2) S2 (0) C : E D: : E S1 (2) S4 (3) S3 (0) D 119 5.3 Routering (verv.) Statische routering: tabellen ingevuld door netwerkbeheerder pakketten (X): dezelfde route uitvallen/overbelasting lijn/schakelaar Routeringsprotocol schakelaars wisselen informatie uit (comp.syst.) kost van verbinding berekend routes berekend 120 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 6. Netwerken verbinden Niet alle computersystemen op 1 netwerk: bedrijf: volledige controle over eigen netwerk toch kunnen communiceren met andere bedrijven binnen organisatie: verschillende netwerken vb. KULeuvenNet: elk departement eigen netwerk Een internet (internetwork) verbinden van verschillende netwerken Internet = wereldwijde internet (IP protocol) 122 6. Netwerken verbinden (verv.) WAN-1 R1 LAN-1 R4 R2 WAN-2 5.1 5.2 5.3 Schakelaars Ri (routers) R3 Adressering Diensten en Protocol Routering WAN-3 R5 LAN-2 123 6.1 Adressering 1 globaal, uniform adresseringsschema Internet: adres = 32 bits 134.58.39.91 (dotted decimal) verschillende soorten adressen Netwerk Computersysteem Omzetting Internet-adres Lokaal adres vertaaltabellen of vertaalprotocol 124 6.1 Adressering (verv.) Voorbeelden: 134.58.39.91 134.58.0.0 KULeuvenNet 134.58.39.0 Netwerk van Comp.Wet. Masker: scheiden van 2 delen van een adres adres & masker = netwerk-gedeelte 125 6.2 Diensten en Protocol Internet netwerklaag: protocol 1 alleen datagram dienst = IP (Internet Protocol) soort pakket hoofding = 20 bytes mogelijkheid indien om IP-pakket op te splitsen onmogelijk verder te sturen: foutboodschap naar zender (ander protocol) 126 6.2 Diensten en Protocol (verv.) Hoofding: (20 bytes): adres-zender 32 bits adres-bestemmeling 32 bits identificatie 16 bits lengte 16 bits (max = 65.535) protocol transportlaag 8 bits time-to-live 8 bits (max # te passeren routers) type-of-service 8 bits (verwachte dienstverlening) overige … opsplitsing van IP pakket, afz. doorsturen, later weer samenvoegen … versie nummer, controle bits (hoofding), ... 127 6.3 Routering Iedere router: routeringstabel WAN-1 R1 naar R1 R2 R3 R4 R5 WAN-1 WAN-2 WAN-3 LAN-1 LAN-2 R2 R4 R4 R3 R1 R3 R2 R4 R5 R1 R1 R5 R4 R3 R4 - LAN-1 R4 R2 WAN-2 volgende router (op zelfde netwerk) op pad naar bestemm. R5 LAN-2 R3 WAN-3 vaak verzuimingang: kortere tabel 128 6.3 Routering naar R1 R2 R3 R4 R5 134.58.1.0 134.58.2.2 134.58.11.1 134.58.3.4 134.58.2.0 134.58.1.2 134.58.11.1 134.58.3.3 134.58.3.0 134.58.11.4 134.58.2.3 134.58.11.0 134.58.1.1 134.58.3.4 134.58.3.4 134.58.12.0 134.58.11.4 134.58.2.3 134.58.3.5 134.58.3.5 R1 WAN-1 134.58.1.0 134.58.11.0 LAN-1 R4 R2 WAN-2 134.58.2.0 R5 LAN-2 R3 WAN-3 134.58.3.0 134.58.12.0 129 6.3 Routering (verv.) Internet: ook routeringsprotocols op verschillende niveaus binnen een AS (autonomous system): kortste pad tussen twee routers berekenen • volgens metriek tussen AS-en: ander protocol, eventueel ook beleidsopties • doorheen welk netwerk wel/niet • mogelijkheid tot manueel uitsluiten van netwerken 130 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 7. Transportlaag Transportlaag in Internet TCP (Transmission Control Protocol) UDP (Universal Datagram Protocol) 7.1 Adressering 7.2 TCP Protocol en Diensten 7.3 UDP Protocol en Diensten 132 7.1 Adressering Communicatie-eindpunt van proces: (IP-adres, poortnummer) TCP / UDP Hoofding: alleen poortnummer IP-adres in IP-hoofding Standaard Toepassingen: vaste poortnummers (www-server, 80), (ftp-server, 21), … Andere toepassingen: dyn. aanvragen 133 7.2 TCP Protocol & Diensten Virtuele verbinding tussen eindpunten (netwerk alleen datagram diensten!) 3 Fasen: opzetten van verbinding gebruik v/d verbinding vgl. protocols dataverbindingslaag complexer! TCP hoofding • volgorde aankomst van pakketten • 1-bit venster te beperkend op snelheid volgnummer byte 1e byte in pakket stroom (elke byte 32-bit volgnummer) verbreken v/d verbinding 134 7.3 UDP Protocol & Diensten Datagram dienst tussen eindpunten Datagram dienst van IP 135 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 8. Naamdiensten IP-adresssen niet gebruiksvriendelijk leesbare namen telnet 134.58.42.36 telnet nix.cs.kuleuven.ac.be 8.1 Domeinnamen 8.2 Omzetting Domeinnamen naar IP adressen 137 8.1 Domeinnamen Internet domeinnamen hiërarchisch gestructureerd nix.cs.kuleuven.ac.be landcode (België) univ. (academic) K.U.Leuven dep. computerwetenschappen naam van het computersysteem 138 8.1 Domeinnamen (verv.) 3 groepen Top Level Domains (TLD) 2-letter landcodes (ISO 3166) generieke namen (gelijkaardige organisaties) com commerciële organisaties org niet-commerciële organisaties (bv. Vzw) int internationale organisaties (nato, EU, …) net bedrijven die netwerkdiensten aanbieden Nieuwe: info, biz, name, aero, museum,... namen (organisaties binnen USA) edu gov mil universiteiten Amerikaanse overheid Amerikaanse leger 139 8.1 Domeinnamen (verv.) Elk TLD: beheerder (toekennen van namen in domein) “be”: dept. Computerwetenschappen tot jan 2000 nu: vzw DNS BE (ispa, agoria, beltug) Elke organisatie met naam: zelf creatie nieuwe namen in dat domein bijv. kuleuven.ac.be en kulak.ac.be Hiërarchische naamgeving + delegatie = werkbare structuur 140 8.2 Omzetting Domeinnaam IP Adres Gegevensbank niet gecentraliseerd (flessehals!) naambeheerder (name server) omzetting hiërarchie ieder domeinnaam IP-adres van naambeheerders domein: aparte naambeheerder 141 8.2 Omzetting Domeinnaam IP Adres (verv.) Naambeheerder cs.kuleuven.ac.be Machines/subdomeinen van cs.kuleuven.ac.be type IP-adres nix A 134.58.42.36 idefix A 134.58.41.7 droopy A 134.58.41.10 stevin A 134.58.41.16 ... A = Address 142 8.2 Omzetting Domeinnaam IP Adres (verv.) Naambeheerder kuleuven.ac.be Machines/subdomeinen van kuleuven.ac.be type IP-adres cs NS 134.58.39.1 esat NS … www A … ... NS = NameServer 143 8.2 Omzetting Domeinnaam IP Adres (verv.) Naambeheerder voor TLD-namen = root-naambeheerder gekend IP-adres alleen verwijzingen naar andere naambeheerders 144 8.2 Omzetting Domeinnaam IP Adres (verv.) www.cs.vu.nl 130.37.24.11 Example : www.cs.vu.nl Root-NS Lokale NS NS (nl) (cs.kuleuven.ac.be) NS (vu.nl) 130.37.24.11 NS (cs.vu.nl) 145 8.2 Omzetting Domeinnaam IP Adres (verv.) Omslachtig? Naambeheerders: “cache” Gedurende zekere tijd opgezochte namen opslaan Kwetsbaar? Naambeheerder kan uitvallen Voor elk domein: meerdere naambeheerders 146 Inhoud 1. Inleiding 2. Fysische laag 3. Dataverbindingslaag 4. Lokale Netwerken 5. Netwerklaag 6. Netwerken verbinden: internet 7. Transportlaag 8. Naamdiensten 9. Toepassingen 9. Toepassingen E-Mail E-mailadressen E-mail E-mailprogramma’s E-mailservers World Wide Web URL Componenten Opbouw van pagina’s 148 9.1 E-mail E-mail adressen [email protected] [email protected] [email protected] na @: domeinnaam voor @: loginnaam, Voornaam.Naam, groepsnaam 149 9.1 E-mail (vervolg) E-mailprogramma’s vaak grafische gebruikersinterface functionaliteit: ontvangen & lezen van berichten (receive) opstellen & versturen van berichten (send) beantwoorden van berichten (reply) doorsturen van berichten (forward) organiseren van berichten (folder) bijhouden van adressenbestand (addressbook) vb: Netscape, Exchange, Eudora, pine, elm, ... 150 9.1 E-mail (vervolg) E-mailprogramma’s: Netscape 151 9.1 E-mail (vervolg) E-mail hoofding SleutelWoord: waarde From: afzender To: bestemmeling Cc: kopie naar … Subject: onderwerp dat besproken wordt Date: datum + tijd waarop verstuurd werd ... blanko lijn Boodschap zelf 152 9.1 E-mail (vervolg) E-mailservers sturen / ontvangen van boodschappen E-mailprogr. POP E-mailserver SMTP SMTP Simple Mail Transfer Protocol POP Post Office Protocol IMAP Internet Mail Access Protocol E-mailserver IMAP E-mailprogr. 153 9.1 E-mail (vervolg) E-mailservers Internet: steeds SMTP vinden van andere E-mailserver? Naambeheerders • domeinnaam: IP-adres waarop E-mailserver draait Poortnummer = 25 154 9.2 World Wide Web Zie cursus Informaticawerktuigen Hypertext URL (Uniform Resource Locator) Browser HTTP (HyperText Transfer Protocol) WebServer HTML (HyperText Markup Language) 155 Hypertekst Computer A Computer B Hypertekst … (meer … info) Een link is … … Meer informatie kan je hier vinden (Engels). Hypertext Links … hypertekst … Hypertext allows a document to … Hypertekst bevat verwijzingen naar andere documenten 156 URL — Uniform Resource Location Absoluut of relatief Absoluut: http://www.bib.kuleuven.ac.be/bib/deelbib/indexexact.html http://www.bib.kuleuven.ac.be/bib/deelbib/indexexact.html protocol computer Protocol: http (web-pagina) ftp (file transfer protocol) file (loaal bestand) details (padnaam) - mailto (elektronische post) - news (USENET nieuwsgroep) - gopher, wais, shttp, telnet, ... 157 URL (vervolg) Computer: DNS-naam (Web-site) optioneel //domein.naam:poortnummer Details: padnaam e-mail adres (mailto) … URL#naam #naam: plaats in een pagina (i.p.v. het begin) 158 URL (voorbeelden) http://www.kuleuven.ac.be/kuleuven/news_nl.html http://www.demo.com/pub/index.html#TOC /pub/README ftp://ftp.simtel.com/simtelnet/win95 telnet://pluto.cs.kuleuven.ac.be file:/user/rik/IW/practicum1 mailto:[email protected] news:be.politics 159 Web Browser Web pagina ophalen + tonen Populaire Browsers: Netscape Navigator Microsoft Internet Explorer HotJava (Sun) … HTTP Protocol + ... ftp e-mail news telnet gopher, ... 160 HTTP Hypertext Transfer Protocol http://www.netvision.be/nv_jobs/index.html GET /nv_jobs/index.html HTTP/1.0 cliënt 200 dienstverlener www.netvision.be 161 Web Server Beheert lokale Web-pagina’s vaak sub-boom van lokaal bestandensysteem Taken: geen visualisatie! aanvragen browsers/servers beantwoorden beveiliging caching Meestal boven: Unix of Windows NT 162 HTML — Hypertext Markup Language Web-pagina om even wat: tekst (ascii), Word-document, rekenblad, foto, ... browser: visualiseren ! standaard-formaat: HTML Hypertext Markup: tekst met verwijzingen naar andere teksten code (instructies) die structuur weergeven van document Andere formaten: hulp-programma’s of plug-ins of kopiëren 163 HTML (voorbeeld) <HTML> <HEAD> <TITLE>Netwerken</TITLE> </HEAD> <BODY> <H1>Computernetwerken</H1> <H2>1. Inleiding</H2> Gedurende de laatste 10 jaar is de computerinfrastructuur in bedrijven <B>grondig</B> gewijzigd. … <P>In dit hoofdstuk bestuderen we het netwerk, ... </BODY> </HTML> 164