Computernetwerken: samenvatting alles 1) Fundamentals Communicatie in een netwerkgeoriënteerde wereld Netwerken ondersteunen ons dagelijkse leven Vroeger Praten Telefoon Tv Post Nu: webgebaseerde communicatie Skype Smart-TV E-Banking E-Mail Websites GPS Buienradar - eerste datanetwerken: Karakter-gebaseerde info doorsturen Typische terminal-mainframe toepassingen - Internet: 90’s WWW - Huidige datanetwerken Voice Video streams Tekst Grafische bestanden 1 Computernetwerken: samenvatting alles Voorbeelden van het gebruik van netwerken Instant messaging Weblogs Wiki’s Podcasting Collaboration tools Netwerken ondersteunen het leerproces - Online learning: Dokeo’s interactieve tools - Packet tracer - Online inschrijven, testen afleggen, resultaten bekijken - Online courseware up-to-date materiaal educatieve mogelijkheden voor breed publiek online curriculum = consistente leerstof kostenbesparing Netwerken ondersteunen ons werk - Collaboration software werkgroepen vs domeinen - Intranet enkeltoegang voor interne werknemers - Extranet (gedeeltelijke) toegang voor business partners, klanten 2 Computernetwerken: samenvatting alles Netwerken ondersteunen ontspanning Websites met boeken, games, films, muziek,... Games over het internet (vb. WOW) Communicatie: een essentieel deel van ons leven Wat is communicatie? Communicatie vereist regels. Deze regels noemen we protocollen. Deze protocollen bevatten dikwijls: Een zender Een ontwanger Overeengekomen manier van communicatie Gemeenschappelijke taal en grammatica Overeengekomen snelheid en timing Een bevestiging Kwaliteit van communicatie Kwaliteit is heel belangrijk bij netwerken. Vb.: VOIP (Voice over IP) Vertraging of verlies van pakketten betekent verlies van info. Veel potentiële problemen: Kwaliteit van weg tussen zender en ontvanger Omzetten van formaat van bericht Aantal keer dat het bericht verandert van pad Aantal berichten dat tegelijk gestuurd worden = extern Grootte van bericht Complexiteit van het bericht Belangrijkheid van het bericht = intern Het netwerk als een platform Communicatie over netwerken Eén groot netwerk dat alle verkeer afhandelt is niet mogelijk. Verschillende kleine verbonden netwerken kunnen dit wel. = sterkte netwerk 3 Computernetwerken: samenvatting alles Elementen van een netwerk Regels: Protocol dat gevolgd wordt Medium: tussen apparaten Berichten: info die van het éne naar het ander apparaat gaat Apparaten: apparaten die nodig voor het versturen van info 4 Computernetwerken: samenvatting alles Regels/protocollen Geconvergeerde netwerken Alle communicatie is tegenwoordig netwerkgebaseerd: Telefoon Data Tv … 5 Computernetwerken: samenvatting alles De architectuur van het internet Netwerkarchitectuur samenvatting Foutentolerantie door redundantie: Schaalbaarheid: 6 Computernetwerken: samenvatting alles QOS: Quality Of Service: Beveiliging: 7 Computernetwerken: samenvatting alles Foutentolerantie in netwerken - Internet = uitvinding van US DoD (Department of Defense - Circuit-switched netwerken (connection-oriented): Eens een connectie gemaakt is blijf deze bestaan. Bestaande infrastructuur was vroeger typisch circuit-switched. Typisch voorbeeld: telefoon Eerst verbinding opzetten, nadien data-uitwisseling Connection-oriented: Wanneer er ergens een probleem was tussen zender en ontvanger viel de lijn weg »Slechte betrouwbaarheid (geen foutentolerantie) Circuit kan maar voor één gesprek gebruikt worden Schaalbaarheid - Packet Switched netwerken (connectionless networks): Om foutentolerantie in te voeren koos men voor packet-switching Bericht wordt opgebroken in pakketten Elk pakket bevat sender/receiver info voor adressering Elk pakket kan een andere route volgen Pakketten kunnen verloren gaan en opnieuw aangevraagd worden Connectionless: Geen verbinding opzetten (fysiek) alvorens te kunnen sturen, verbindingen zijn constant aanwezig 8 Computernetwerken: samenvatting alles Schaalbaarheid Groei moet mogelijk zijn, zonder grote veranderingen aan de core. Lagen: –Tier-1 ISPs (Internet Service Provider) netwerken vormen de bovenste laag –Tier-2 ISPs vormen volgende laag –Aan de Tier-2 ISPs hangen de lokale ISPs (bv. belgacom, telenet, fulladsl, tele2, ...) –Onder de lokale ISPs hangen de bedrijfsnetwerken en thuisnetwerken 9 Computernetwerken: samenvatting alles Quality of Service (QoS) Gebruikers zijn gewend aan de kwaliteit van diensten Constante up-time Redelijke responstijden Weinig of geen pakketten die verloren gaan Data moet afhankelijk van de functie prioriteiten krijgen Tijdsgevoelige data Bv. VOIP Niet-tijdsgevoelige data Bv. web-pagina ophalen, mail versturen Belangrijke data voor het bedrijf Bv. transacties Ongewenste communicatie vb File sharing, youtube, chatten, ... 10 Computernetwerken: samenvatting alles Netwerk security Internet is een drijfveer voor nieuwe toepassingen, maar ook voor nieuwe vormen van criminaliteit. –Zeer uiteenlopende aanvallen Persoonlijke gebruikers (VISA-gegevens, online banking) Hele netwerken of services (DoS-attack) Bedrijven: stelen van belangrijke informative –Belangrijke eisen Confidentialiteit: authenticatie (Ben jij diegene die je zegt dat je bent?) Integriteit: encryptie (Niemand kan de communicatie afluisteren) Beschikbaarheid: Firewalls, SPOF vermijden, ... Netwerk Trends Belangrijke tendensen - Mobile communicatie wordt zeer belangrijk Smartphone Wireless netwerken - Groeien aantal genetwerkte apparaten Telefoons /smartphone, VOID, iphone - Groeiend aantal services 11 Computernetwerken: samenvatting alles 2) OSI- en IP-model Platform voor communicatie Elementen van communicatie 3 belangrijke elementen bij elke vorm van communicatie: Bron (zender): iets of iemand die een bericht stuurt naar iets/iemand Doel (ontvanger): iets/iemand die een bericht ontvangt en interpreteert Kanaal: medie waarover het bericht wordt “verzonden Versturen van berichten Computernetwerken versturen zeer uiteenlopende data: Kleine berichten: bv. Mailtje Grote berichten: bv. Foto in hoge resolutie Oplossing voor uiteenlopende data? Segmentatie: in segmenten opdelen Voordelen van segmentatie: - multiplexing - verbeterde efficiëntie - segmenten kunnen verschillende paden volgen Nadelen van segmentatie: verhogen complexiteit 12 Computernetwerken: samenvatting alles Componenten in een netwerk Eenvoudige netwerken: bv. Directe verbinding van 2pc’s via kabel Ingewikkelde netwerken Vele tussenliggende stations Communicatie kan over lange afstand lopen Hardware componenten: PC, router, switch, hub,… Bekabeling Software componenten: Sevices Software die op netwerkapparaat draait End devices - Zender of ontvanger van berichten - “Host” - voorbeelden: Computers: workstations, laptops, servers Network printers VoIP telefoons Camera’s PDA Remote monitoring station (weerstation) - Host address: = uniek fysiek adress fysiek adres Tussenliggende apparaten Van source naar destination kom je veel apparaten tegen. Tussen liggende apparaten verzorgen de echte netwerkfunctionaliteit. Hubs Switches Wireless accec points Modems Routers … Funtionaliteit: zeer uitlopen: Routing Hergenereren van signalen Dedecteren van alternatieve routes 13 Computernetwerken: samenvatting alles QoS Netwerkmedia 3 belangrijke netwerkmedia vandaag: Koper Fiber Wireless LAN’s, WAN’s en internetwerken Local-Area Networks (LAN) - Een groep van end devices en gebruikers onder 1 gezamenlijke administratie - verbonden via hogesnelheidsnetwerk - In een beperkte fysieke locatie Vroeger: zelfde kamer, verdiep Nu: zelfde gebouw, zelfde campus Wide-Area Networks (WAN) - Een type netwerk dat verschillende LAN’s die ver uit elkaar liggen interconnecteerd - Typisch over lange afstand - Gebrukk maken van linen van netwerkprovider (<-> LAN) 14 Computernetwerken: samenvatting alles LAN vs WAN Het internet: een netwerk van netwerken Vroeger: communicatie beperkt tot LAN Nu: LAN’s interconnecteren via WAN = internet Zogenaamde “internetwerken” ISP’s vormen de “lijm” 15 Computernetwerken: samenvatting alles Protocollen Regels voor communicatie Elke vorm van communicatie wordt door zijn eigen vorm van regels bepaalt. De verzameling regels die de communicatie in goede banen leiden moent men het protocol. Netwerkprotocollen Bij menselijke communicatie wordt het protocol aangeleerd, of volgt men zijn ervaring. Bij netwerkprotocollen moet zeer duidelijk vastliggen (technisch) Wat de structuur is van de berichten 16 Computernetwerken: samenvatting alles De manier waarop route-informatie wordt uitgewisseld Hoe en wanneer fouten- en systeemberichten worden gestuurd Hoe een data transfer wordt opgezet/afgebroken 17 Computernetwerken: samenvatting alles Protocollen en industry standards Standaarden worden vastgelegd door standaardisatie-organisaties: IEEE (Institute of Electrical and Electronics Engineers) IETF (Internet Engineering Task Force) IAB (Internet Achitecture Board) Industry standarts zorgen ervoor dat hardware van verschillende fabrikanten tock kan samenwerken Bijvoorbeeld een netwerkkaart van 3com verbonden met Linksys switch. Eerste netwerken waren eerdere proprietary standaarden. De interactie van protocollen Web browser die met web server communiceert: - Aplication Protocol HTTP: HyperText Transfer Protocol Legt vast op welke manier de client en server html-bestanden uitwisselen (bv.GET, POST) - Transport Protocol TCP: Transport Control Protocol Deelt grotere berichten op in kleine segmenten om deze te versturen - Internetwork Protocol IP: Internet Protocol Neemt segmenten van TCP en pakt deze in een “enveloppe” met adresseringsinformatie - Network Access Protocol Hoe wordt data op de draad gezet? 18 Computernetwerken: samenvatting alles Technologie-onafhankelijke protocols Een protocol hangt meestal niet af van technologie: HTTP definieert niet dat de browser die wordt gebruikt in een bepaalde programmeertaal moet gemaakt worden HTTP definieert niet dat de machine Windows moet draaien Dus ook PDA, GSM,.. met eender welke browser die HTTP ondersteunt kan surfen! Gelaagde modellen Gelaagde modellen Lagen worden in veel takken van informatica gebruikt: Lagenmodel in software ontwikkeling Lagen model bij besturingssystemen … Voordelen van gelaagde modellen Helpt bij protocolontwerp: interface duidelijk omlijnt Concurrentie: producten van verschillende producenten werken samen Wijziging in een laag blijft lokaal Helpt om netwerken beter te begrijpen 2 soorten modellen - Protocol model Model dat de werking van een protocol-suite beschrijft Functionaliteit die in werkelijkheid voorkomt Bv. TCP/IP model - Referentie model (reference model) Algemene referentie Helpt om algemene principes beter te verstaan Bv. OSI model 19 Computernetwerken: samenvatting alles Het TCP/IP model - Ontworpen in 70’s - Internet model dat vandaag nog blijft bestaan is TCP/IP - Open standaard - Protocol van TCP/IP staan beschreven in RFCs (Request For Comments): Technische dosiers (tekst-files) warin de protocols beschreven staan Opgesteld door de IETF Het communicatieproces bij gelaagde modellen 20 Computernetwerken: samenvatting alles Protocol data units (PDU) en encapsulatie - PDU De vorm dat een stukje data aanneemt op een eender welke laag Bv.: segment op laag 4, packet op laag 3, frame op laag 2 - Encapsulatie Bij het versturen wordt het ene PDU ingepakt in het andere, dit noemt men encapsulatie Zend- en ontvangproces (zie ook 2.4.6.1) 21 Computernetwerken: samenvatting alles Het OSI model - International Organization for Standardization (ISO) - Op basis van bestaande protocollen: TCP/IP, DECnet - Nooit echt “gebruikt” omwille van populatiteit TCP/IP - Gids bij netwerkcommunicatie Producenten van netwerkenhardware verwijzen altijd naar dit model - OSI defineert… Lagen + welke functies in welke laag Hoe info door een netwerk stroomt LAGEN: - Laag 7: Applicatielaag Dichtste bij de gebruiker Aanbieden van netwerkservices aan gebruikersapplicaties Biedt geen dienst aan aan andere OSI lagen End-to-end connectiviteit Voorbeelden –File Transfer Protocol (FTP) –Domain Naming System (DNS) –Hypertext Transfer Protocol (HTTP) –Telnet - Laag 6: Presentatielaag Ervoor zorgen dat de informatie die de applicatielaag zendt kan gelezen worden op het andere systeem Indien nodig, vertalen tussen meerdere dataformaten –Tot een gemeenschappelijk formaat Voorbeelden: encryptie, decryptie, ... Voorbeelden van standaarden –JPEG, TIFF, PICT voor afbeeldingen –MIDI, MPEG voor geluid en film - Laag 5: Sessielaag Opzetten, beheren en afsluiten van sessies tussen 2 communicerende hosts Aanbieden van diensten aan Presentatielaag –Synchroniseren van dialoog tussen beide presentatielagen Gebruik maken van Transportlaag Voorzieningen voor –Serviceklassen (prioriteiten), uitzonderingen Voorbeelden –NFS (Network File System), X-Window System, ASP (Appletalk Session 22 Computernetwerken: samenvatting alles Protocol) - Laag 4: Transportlaag Segmenteren van data (zender) Herassembleren van gesegmenteerde data (ontvanger) Scheiding transportlaag – sessielaag belangrijk: scheiding ts applicatieprotocols – data-flow protocols Data-transport aanbieden sessielaag –Verbergen van transport-implementatiedetails Betrouwbaarheid: opzetten, onderhouden en afsluiten van virtuele circuits (een virtueel communicatiekanaal opzetten) Voorbeelden –TCP (Transmission Control Protocol) »Betrouwbaar –UDP (User Datagram Protocol) »Onbetrouwbaar –SPX (Sequenced Packet Exchange) - Laag 3: Netwerklaag Complexe laag Verbinding en padselectie tussen twee hosts Logische adressering Voorbeelden –Internet Protocol (IP) –Internetwork Packet Exchange (IPX) –Appletalk - Laag 2: Datalinklaag Betrouwbaar transport van data over een fysieke link Fysieke adressering Netwerktopologie Netwerktoegang (tegelijk?, token-passing?) Signaleren van fouten Geordend afleveren van frames Flow control Voorbeelden –Ethernet, Token Ring, ISDN, PPP, Frame Relay - Laag 1: Fysieke laag Elektrische, mechanische, procedurele en functionele speficaties voor activeren, onderhouden en afbreken van een fysieke verbinding tussen eindsystemen Typische karakteristieken –Voltages –Timing van voltagewissels –Fysieke snelheden –Maximale verzendafstanden –Fysieke connectoren 23 Computernetwerken: samenvatting alles OSI vs TCP/IP OSI deelt applicatie- en network access lagen verder in TCP/IP zegt niets over fysieke medium op network access laag Layer 3 en 4 zijn hetzelfde 24 Computernetwerken: samenvatting alles 3) Application - Presentation – Sessionlayer Applicaties: de interfaces tussen netwerken Het OSI en TCP/IP model - OSI Open System Interconnect Reference model Gids voor netwerkprototcol ontwerp Bestaat uit 7 lagen - Dit deel gaat opver laag 7: application layer OSI: Application layer, Presentation layer, Session layer TCP/IP: Application layer – Application layer (L7): vooral uitwisselen van data mogelijk maken DNS (Domain Name System) – Om een DNS naam naar een IP adres om te zetten HTTP (Hypertext Transfer Protocol) – Om webpagina’s uit te wisselen SMTP (Simple Mail Transfer Protocol) – Mails uitwisselen (bv. met attachments) Telnet –Plaintext remote shell toelaten voor remote access FTP (File Transfer Protocol) –Interactief bestanden uitwisselen tussen systemen Elk van bovenstaande protocols ligt vast in een RFC (IETF) 25 Computernetwerken: samenvatting alles – Presentation layer 3 primaire functies – Coderen en converteren van data – Compresseren en decompresseren van data – Encryptie en decryptie van data Voorbeelden –Quicktime, MPEG –GIF, JPEG, TIFF –Session layer Gesprekken tussen source en destination onderhouden De meeste huidige applicaties voorzien zelf ook functionaliteit van laag 5 en 6 (presentation en session layer) 26 Computernetwerken: samenvatting alles Software in de applicatielaag Deze software laat ons toe met het netwerk te werken. 2 soorten van software: Network-aware applicacties - Wat wij zelf dagelijks gebruiken - Typisch met grafische user interface - Voorbeelden: Browser, mail, client,… Application layer services - Diensten die worden aangeboden via het netwerk - Typische diensten aan via een interface, niet grafisch - Voorbeelden: Web service, netwerkprinter delen,… 27 Computernetwerken: samenvatting alles Applicatielaag functionaliteiten Voorzieningen voor applicaties en netwerken Het client-server model 28 Computernetwerken: samenvatting alles Servers Een apparaat dat antwoord op requests van de client (applicaties)is een server. Server voorziet soms extra functionaliteit naast basisfunctionaliteit. Bijvoorbeeld: authenticatie Op server draait meestal een achtergrondproces (daemon). Dit proces luistert en antwoord op aanvraag (“listening”) 1 serever kan meerdere services aanbieden. Bijvoorlbeeld: telnet, ssh, file, sharing, www,… 1 server kan de service tegelijkertijd aan meerdere clients aanbieden; Bijvoorbeeld: duizenden gebruikers die op een website surfen 29 Computernetwerken: samenvatting alles Peer-to-peer netwerken en applicaties Bij client-server model is er 1 belangrijke machine: server. Server is typisch zwaarder (hardware) en is dus “meerderwaardig”. Server is typisch SPOF (Single Point Of Failure) Bij peer-to-peer netwerken zijn de apparaten evenwaardig: Geen dedicated server nodig. Geen echte client/server nodig Gedecentraliseerd Voordelen Nadelen Peer-to-peer applicaties: Apparaat is zowel client als server Iedereen kan communicatie initiëren en is evenwaardig 30 Computernetwerken: samenvatting alles Ook hybride vormen mogelijk –Bv. torrents idee –1 of meerdere centrale servers om elkaar te vinden –Eens een partner gevonden, kan de communicatie peer-to-peer gebeuren Applicatie-laag protocollen en services: voorbeelden Poortnummers Transport layer zla een poortnummer gebruiken om de service te kunnen onderscheiden voor wie het segment bedoelt is. Dit is dus eigenlijk de link tussen layer 7 en layer 6. Elke services heeft typisch een eigen poortnummer (meestal vast gedefineerd). Bekende poortnummer: DNS: TCP/UDP poort 53 HTTP: TCP poort 80 SMTP: TCP poort 25 POP: TCP poort 110 Telnet: TCP poort 23 DHCP: TCP poort 67 FTP: TCP poort 20 en 21 DNS (Domain Name System) IP adressen zijn niet eenvoudig te onthouden. Bijvoorbeeld: zeker niet voor de tientallen websites die we dagelijks bezoeken. DNS zet namen om naar IP-adressen Domein naam: bijvoorbeeld www.cisco.com IP adress: bijvoorbeeld 198.133.219.25 Gedistribueerd systeem 31 Computernetwerken: samenvatting alles Eerste systeem: manueel bijhouden van host-file. Niet onderhoudbaar. Opvolgers: centrale host file nadeel: te grote load op 1 machine DNS: gedistribueerd over meerdere servers Voordelen: Load verdelen Administratieve delegatie Eigen beslissingen kunnen nemen DNS protocol: Formaat voor queries Formaat voor antwoorden Dataformaten DNS werkt volgens het client/server model. Maar client is zelf een service voor onder andere browser, email- programma, ... Wanneer deze programma’s name resolving nodig hebben, spreken ze de dns client service aan De DNS client service zal contact opnemen met de DNS server voor de effectieve omzetting van naam -> IP Record types (informatie die op de server wordt opgeslagen): A: host -> ip mapping NS: Name Server: geeft aan welke de authoritative name server is voor een domein CNAME: host -> host (vergelijkbaar met symbolic link in linux) MX: Mail eXchange, voor het vinden van SMTP servers DNS sever kijkt of hij naam kan resolven: Indien ja => antwoorden Indien nee => Query doorsturen naar andere servers De client verder helpen met een link naar andere DNS server DNS maakt veel gebruik van caching: Server-side Client-side (Ipconfig/displaydns commando) Werking: Root servers zijn de bovenste in de boomstructuur. Deze bevatten links naar de top-level domain servers Top-level domain servers zijn de servers die de domeinen .com, .net, .be, ... beheren Deze bevatten links naar de second-level domain servers Second-level domain servers bevatten meestal gewone A-records, 32 Computernetwerken: samenvatting alles of kunnen links bevatten naar subdomeinen.. (dit kan blijven doorgaan tot zeer lange domeinnamen...) HTTP (HyperText Transfer Protocol) Voorbeeld: http://www.cisco.com/index.html http = protocol http www.cisco.com = naam van webserver index.html = webpagina op de webserver die moet worden opgehaald Request/respons protocol: Client stuurt typisch een GET request naar webserver Webserver ontvangt webpagina en interpreteert deze…: Plaintext, html, jpg, mpg, pdf,… 4 belangrijke berichten: GET: - webpagina opvragen POST: - Bij het invoeren van gegevens (formulier) - Gegevens moeten worden doorgestuurd naar webserver HEAD - vraag alleen header van het opvragen document PUT - Zal bestanden uploaden naar server 33 Computernetwerken: samenvatting alles HTTP is niet beveiligd: Kan met authenticatie/encryptie beveiligd worden: HTTPS E-mail services: SMTP en POP POP: Post Office Protocol Ophalen van mail uit mailbox SMTP: Simple Mail Transfer Protocol Verzenden van mail MUA: Mail User Agent Bijvoorbeeld: outlook, thunderbird,… 2 aparte processen op mailserver: MTA: Mail Transfer Agent - Zorgt voor forwarden van emails naar andere mailservers - Ontvangt deze mails van MUA of andere MTA MDA: Mail delivery Agent - Zorgt voor het afleveren van een mail in lokale mailbox - Enkel indien het emailadres overeenstemt - Zorgt voor extra services: anti-virus, anti-spam, return-receipt SMTP: enkele belangrijke commando’s HELO: identificatie (wordt niets mee gedaan) EHLO : idem als HELO, maar extensions MAIL FROM: aangeven van zender RCPT TO: aangeven van ontvanger DAT: aangeven van body van mailtje 34 Computernetwerken: samenvatting alles Dikwijls wordt ook een “proprietary” protocol gebruikt voor decommunicatie tussen MUA en MTA Bv. Exchange, Lotus Notes, Novell Groupwise Deze mailservers communiceren met externe systemen meestal wel via SMTP 35 Computernetwerken: samenvatting alles Bekijken of mail voor het eigen domein bestemd is… Verschil POP(3)-SMTP 36 Computernetwerken: samenvatting alles FTP (File Transfer Protocol) Uitwisselen van bestanden PTPd (daemon) op server Verbindingsproces: Eerst initieert de client connectie op poort 21 - Gebruikt voor doorgeven van de commando’s Daarna zet de client een tweede connectie op naar poort 20 - Gebruikt voor de echte file transfer DHCP (Dynamic Host Configuration Protocol) IP adressen toekennen: Kan manueel gebeuren –Meestal administratieve nachtmerrie DHCP zal dynamisch IP adressen toekennen Typisch niet alleen IP adres instellen .Ook subnetmasker, gateway, DNS server, DHCP “leent” een adres uit voor een bepaalde tijd (lease time) 37 Computernetwerken: samenvatting alles DHCP server kan op zeer uiteenlopende machines draaien Op thuisrouter (lokaal netwerkje) Op ISP routers (voor uitdelen adressen aan klanten) Op speciale DHCP server (bv. op UNIX/Windows 2003) Belangrijkste idee voor IP-adressering: DHCP voor gewone hosts –Indien de lease time voorbij of de client geeft het adres op komt dit IP-adres opnieuw in de pool »Interessant voor bv. laptops die korte tijd aangesloten zijn Statische IP adressen voor speciale apparaten –Servers, routers, ... –Deze IP adressen wijzigen best niet te vaak 38 Computernetwerken: samenvatting alles DHCP proces DHCP discover DHCP offer DHCP request DHCP acknowledge DHCP server zorgt dat elke pc een eigen uniek IP adres heeft (bijhouden!) Reeds eerder gebruikt IP adres kan opnieuw aangevraagd worden Indien een andere client het IP adres in gebruik heeft of ondertussen was een andere client voor, dan zal de DHCP een DHCP NAK sturen SMB (Server Message Block) File sharing protocol Printers en bestanden delen over een Windows netwerk 39 Computernetwerken: samenvatting alles SMB protocol beschrijft: File system access De manier waarop clients requests kunnen doen SMB berichten Starten, authenticeren en beëindigen van sessies Controle over file en printer access Berichten sturen en ontvangen tussen apparaten P2P services en het Gnutella protocol Peer-to-Peer idee Delen van bestanden Verschillende client applicaties die hetzelfde protocol ondersteunen BearShare Limewire Gnucleus Morpheus WinMX Gnutella Geen server voor lokaliseren van bestanden Doorvertellen aan andere clients welke bestanden bekend zijn File transfer zelf gebeurt aan de hand van HTTP 5 verschillende pakketten – Ping: discovery – Pong: antwoord op discovery – Query: bestanden zoeken – Query hit: antwoord op een query – Push: een download request 40 Computernetwerken: samenvatting alles Telnet Een van de oudste TCP/IP applicatielaagprotocollen Text-based terminal emuleren over een TCP/IP netwerk Een verbinding is een Virtual Terminal sessie (VTY) Typische CLI (Command Line Interface) Verschillende clients Command prompt HyperTerminal Minicom TeraTerm Opvolger: SSH (Secure SHell) Altijd te verkiezen in omgevingen waar beveiliging belangrijk is Tekst wordt geëncrypteerd alvorens te verzenden 41 Computernetwerken: samenvatting alles 4) Transportlayer Rollen van de transportlaag Doel van de transportlaag Belangrijkste taken: - Segmenteren van data, herassembleren van data: Header toevoegen om te weten tot welke communicatie het segment behoort - Verschillende communicaties tussen applicaties op source en destination host beheren: Weten naar welk applicatielaagprogramme de data moet - De verschillende applicaties identificeren: poortnummers De transportlaag is de link tussen de applicatielaag en de lagen die verantwoordelijk zijn voor datatransmissie over een netwerk. Vereisten op transportlaag niveau kunnen uiteenlopend zijn. Sommige programma’s…: … vereisen strikte volgorde van segmenten … kunnen geen segmenten missen … moeten alle segmenten aankrijgen 42 Computernetwerken: samenvatting alles … kunnen een bepaalde vertraging tolereren –Bv. browser moet alles aankrijgen, maar kleine delay kan geen kwaad … zijn zeer tijdskritisch –Bv. Telefoongesprek over datanetwerk (VoIP) Verschillende diensten worden aangeboden op de transportlaag: Betrouwbare aflevering van segmenten Onbetrouwbare maar snelle aflevering van segmenten 43 Computernetwerken: samenvatting alles Beheren van conversaties Segmenteren en herassembleren: Meeste netwerken hebben een max grootte voor de PDU Op source de data segmenteren Op destination herassembleren Multiplexing van conversaties Deze taak brengt heel wat met zich mee: De sessies opzetten –Connectie logisch gezien opzetten, voor de effectieve datatransfer Betrouwbare levering –Transport layer zorgt dat (indien nodig) alle segmenten aankomen Juiste volgorde levering –Nummeren van segmenten zodat deze in de juiste volgorde aankomen (segmenten kunnen immers ≠ paden volgen) Flow control –Elk netwerk is beperkt qua bandbreedte –Zorgen dat netwerk (of eindhost) niet overspoeld wordt 44 Computernetwerken: samenvatting alles Ondersteunen van betrouwbare communicatie Heel wat applicatielaag-protocollen vereisen betrouwbare communicatie: HTTP, SMTP, FTP, POP3, IMAP4, ... Basisfunctionaliteiten voor betrouwbaarheid : Lijst bijhouden van de reeds verstuurde data Ontvangen data bevestigen Niet aangekomen (bevestigde) segmenten opnieuw versturen De informatie voor deze functionaliteiten wordt opgenomenin de transport header 45 Computernetwerken: samenvatting alles TCP en UDP 2 belangrijke protocols in de transportlaag UDP – Connectionless (verbindingsloos) –“Best effort” delivery (geen garanties) – 8 bytes overhead voor header (quasi geen informatie nodig) TCP –Connection-oriented –Voorzieningen »Volgorde van afleveren »Betrouwbare levering »Flow control –20 bytes overhead voor deze voorzieningen in de header 46 Computernetwerken: samenvatting alles Poortadressering Zowel UDP als TCP moet weten aan welk applicatie de data moet worden doorgegeven (de link met de applicatielaag). Poortnummers worden sowieso in de header opgeslagen. Telkens 2 poortnummers : Source port –Poort die op de verzender wordt gebruikt voor de communicatie Destination port –Poort die op de ontvanger wordt gebruikt voor de communicatie Poortnummers worden toegekend op verschillende manieren: Op client, wanneer een connectie wordt geopend, typisch een poortnummer kiezen >=1024 Op server worden vaste poortnummers gekozen, afhankelijk van de aangeboden service (POP3: 110, HTTP: 80, ...) poortnr < 1024 De combinatie van IP en poortnummer = SOCKET Een socket identificeert op een unieke wijze de verbinding 47 Computernetwerken: samenvatting alles Voorbeelden van sockets Web server luistert op IP adres 192.123.2.4 op poort 80 –192.123.2.4:80 is de gebruikte socket op de server Web browser op een pc met IP adres 123.124.125.126 initieert via poort 14332 een verbinding met een web server –123.124.125.126:14332 is de gebruikte socket op de client Poortnummers 0 tot 1023 –Well known ports (HTTP, FTP, SMTP, DNS, DHCP, ...) 1024 tot 49151 –Registered ports: gebruikerprocessen/applicaties 49152 tot 65535 –Dynamisch aan clients toekennen bij initiëren connective Gezamenlijke poorten UDP/TCP Poorten worden “uitgedeeld” door IANA (Internet Assigned Number Authority) 48 Computernetwerken: samenvatting alles Segmentatie en herassembleren TCP: betrouwbare communicatie Conversaties betrouwbaar maken Betrouwbaarheid kan enkel door eerst afspraken te maken Bij TCP wordt eerst een connectie aangemaakt Zo zijn zender/ontvanger klaar voor betrouwbare communicatie Ontvanger verstuurt bevestigingen (acknowledgements) voor elk ontvangen segment. Indien de zender niet na bepaalde tijd een bevestiging ontvangt, wordt het segment opnieuw verzonden. 49 Computernetwerken: samenvatting alles TCP server processen Elk server-side proces heeft een uniek poortnummer. Er kunnen dus geen 2 services zijn die op hetzelfde poortnummer luisteren! 50 Computernetwerken: samenvatting alles TPC sessies beheren Herordenen van segmenten Tijdens setup (three-way handshake) wordt het ISN afgesproken: Initial Sequence Number (ISN) Vanaf dit nummer telkens met 1 verhogen –Elk segment heeft zo een uniek nummer –Volgorde kan worden nagegaan 51 Computernetwerken: samenvatting alles UDP: communicatie zonder overhead UDP – Lage overhead vs Betrouwbaarheid UDP voorziet enkel basisfunctionaliteit Geen betrouwbaarheid, hertransmissie, volgorde, flow control, ... Applicaties gebaseerd op UDP zijn daarom niet onbetrouwbaar. Kunnen zelf een vorm van betrouwbaarheid inbouwen Belangrijkste protocollen die op UDP gebaseerd zijn: DNS SNMP DHCP RIP TFTP Online games Liever een segment verloren dan veel te laat aankomen door hertransmissie UDP datagram herassemblatie PDU (protocol data unit) die bij UDP gebruikt wordt is een segment (Maar ook dikwijls datagram genoemd) Segmentatie moet nog steeds gebeuren Herassembleren aan ontvangerskant dus ook! –Geen volgorde afdwingen! Ontvangerskant zal de segmenten gewoon 1 per 1 doorgeven aan de applicatielaag 52 Computernetwerken: samenvatting alles 5) Networklayer Inleiding Tot nu toe: Communicatie tussen end devices (eindapparaten) In dit hoofdstuk: –Hoe wordt de data van zender naar ontvanger gebracht? –Belangrijke aspecten Adressen Pakketstructuur Groeperen van hosts Communicatie tussen netwerken via routing 53 Computernetwerken: samenvatting alles IPv4 Netwerklaag: communicatie van host naar host Netwerklaag voorziet transport end-to-end over een netwerk Verschillende functies: Adressering - Adressen voor eindapparaten voorzien - Gebaseerd op IPv4 adressering - Apparaat met IPv4 adres = host Encapsulatie - Toevoegen van informatie voor L3 - Netwerklaag PDU = packet (pakket) - Informatie omvat onder andere source en destination IP-adres Routing - Source en destination zitten niet altijd op zelfde netwerk - Routing (routering) nodig tussen beide hosts - Routing gebeurt op alle tussenliggende routers - Routing = selecteren van een pad op basis van het destination IPadres in het pakket - Vooral bepalen wat de “next hop” is richting de destination Decapsulatie - Bij destination apparaat - Netwerklaag-header eraf strippen en de rest doorgeven aan de transportlaag Netwerklaagprotocols: IPv4 – Internet Protocol versie 4 IPv6 – Internet Protocol versie 6 IPX – Novel Internetwork Packet Exchange Appletalk CLNS/DECNet – Connectionless Network Service 54 Computernetwerken: samenvatting alles IPv4: Voorbeeld netwerklaagprotocol In TCP/IP is IPv4 het netwerklaagprotocol IPv4 is het enige L3 protocol dat op het Internet data vervoert IPv6 bestaat reeds en wordt op sommige plaatsen gebruikt v4 en v6 zullen lange tijd naast elkaar blijven bestaan v4 zal nog wel een tijd in gebruik blijven IP pakketten vervoeren L4 segmenten (UDP of TCP) Zeer lage overhead Enkel pakket van bron naar doel krijgen Geen tracking van berichten (langs waar onderweg?) of managen van flow Belangrijkste eigenschappen: Verbindingloos –Geen verbinding opzetten tussen zender en ontvanger, direct pakketten versturen Best Effort service –Geen garanties –Best doen om pakketten afgeleverd te krijgen Media-onafhankelijk –Kan over zeer uiteenlopende L2 en L1 protocollen werken 55 Computernetwerken: samenvatting alles IPv4: Verbindingloos Typevoorbeeld: brief sturen zonder de ontvanger eerst in te lichten In tegenstelling tot bijvoorbeeld TCP Eerst connectie opzetten (three-way handshake) Daarna pas data uitwisselen Geen velden toevoegen in header voor onderhouden verbinding Verbindingsloos werken heeft voor- en nadelen: weinig overhead geen garanties Hogere lagen moeten hiervoor zorgen (cf. TCP) 56 Computernetwerken: samenvatting alles Best effort service (onbetrouwbaar) Zeer kleine header Minder data te vervoeren L3 moet zelfs niet weten WAT er vervoerd wordt IP wordt dikwijls onbetrouwbaar genoemd Indien een pakket verloren gaat wordt er niet opnieuw verzonden Betrouwbaarheid wordt op L4 geïmplementeerd Op Layer 3 zou niet interessant zijn omdat de applicatie niet beslist wat ze wil (snelheid vs. betrouwbaarheid) Media-onafhankelijk IPv4 en IPv6 kunnen op verschillende media verstuurd worden Fiber Koper Wireless ... 57 Computernetwerken: samenvatting alles IPv4 pakket: inpakken van transportlaag PDU IPv4 pakket pakt een transportlaag PDU in Toevoegen van de IP header Encapsulatie zorgt voor flexibiliteit Netwerklaag trekt zich niets aan van WAT er geëncapsuleerd wordt Routers werken op de netwerklaag Bekijken alles tot en met de L3 header (dus L1->L3) 58 Computernetwerken: samenvatting alles IPv4 pakket header 59 Computernetwerken: samenvatting alles 60 Computernetwerken: samenvatting alles Netwerken: host in groepen verdelen Netwerken: host onderdelen in groepen Eerste idee achter internet: 1 groot network Moeilijk te managen Moeilijk schaalbaar Om problemen te vermijden/op te lossen: Hosts in groepen onderverdelen Geografisch Doel Eigenaar 61 Computernetwerken: samenvatting alles 62 Computernetwerken: samenvatting alles Waarom hosts in groepen verdelen? Performantie Bandbreedte is altijd gelimiteerd Broadcast probleem: bericht naar iedereen sturen Broadcast komt regelmatig voor (dus weglaten is geen optie) 63 Computernetwerken: samenvatting alles Security Internet in de beginjaren: enkele overheidbedrijven enonderzoeksgroepen die 1 groot netwerk vormden Security geen probleem Internet tegenwoordig: bedrijven, organisaties, scholen, particulieren in 1 groot netwerk Probleem beveiliging: bv. vertrouwelijke gegevens in een bedrijf Adresmanagement Elke computer moet een uniek IP-adres hebben Elke computer kan niet alle adressen kennen van alle andere computers Dit zou een serieus probleem betekenen qua management Routers zouden zeer grote (en dus trage) routing tabellen bevatten Hosts die met elkaar moeten communiceren samen plaatsen Tussen deze groepen is communicatie ook mogelijk, maar dan via een zogenaamde gateway 64 Computernetwerken: samenvatting alles Hoe host indelen in groepen? Netwerken van netwerken IPv4 adressering is ook hiërarchisch Typisch wordt een IP adres onderverdeeld in 4 groepen (bytes) Geschreven in dotted decimal notatie 65 Computernetwerken: samenvatting alles Typisch 2 delen Netwerkgedeelte: voor hosts in hetzelfde netwerk is dit gedeelte gelijk Hostgedeelte: binnen een bepaald netwerkgedeelte is dit nummer uniek Onderverdeling in netwerkgedeelte-hostgedeelte ahv subnetmasker Subnetmasker is een 32-bits getal (ook in dotted decimal notatie) Subnetmasker bevat 1-en om het netwerkgedeelte aan te geven Subnetmasker bevat 0-en om het hostgedeelte aan te geven Voorbeeld –255.255.255.0 »3 netwerkbytes, 1 host byte –255.255.0.0 »2 netwerkbytes, 2 host bytes –255.192.0.0 »1 netwerkbyte + 2 netwerkbits, 2 host bytes + 6 host bits »255.192.0.0 = 11111111.11000000.00000000.00000000 N H 66 Computernetwerken: samenvatting alles Routing: afhandeling van datapakketten Parameters vd IP laag: communicatie naar andere netwerken Binnen een subnetwerk kunnen hosts rechtstreeks met elkaar praten Geen tussenliggend L3 apparaat nodig (router) Wanneer een host naar een ander netwerk wil sturen Tussenliggend L3 apparaat nodig (router) Gebruik maken van de “(default) gateway” - Dit is de eerste router die op het netwerk van de zender aangesloten is en die verbonden is met andere netwerken 67 Computernetwerken: samenvatting alles IP pakketten: van zender tot ontvanger Indien ontvanger in zelfde netwerk als verzender Direct afleveren Indien ontvanger in ander netwerk als verzender Sturen naar default gateway (router) Bij elke tussenliggende router (startend bij de DG) een forwarding decision uitvoeren op basis van routeringstabellen - Router haalt het pakketje helemaal open top op laag 3 en kijkt naar het destination IP adres - Het doelnetwerk waar de destination zich in bevindt kan dan »Rechtstreeks aangesloten zijn: direct afleveren »Verder weg liggen: forwarden naar volgende router (“next hop”) 68 Computernetwerken: samenvatting alles 69 Computernetwerken: samenvatting alles 70 Computernetwerken: samenvatting alles 71 Computernetwerken: samenvatting alles De gateway: de weg naar andere netwerken (Default) gateway zal pakketten naar andere netwerken versturen Default gateway wordt typisch geconfigureerd op het besturingssysteem 72 Computernetwerken: samenvatting alles Pakket kan pas doorgestuurd worden als er een route is Zowel op host als op tussenliggende apparaten (routers) Route bevat steeds een destination network + next hop 73 Computernetwerken: samenvatting alles Een route: het pad naar een netwerk Host routing tables Ook elke host heeft een routing table –Meestal heel eenvoudig: directly connected networks + 1 default gateway voor alle andere netwerken te bereiken –Route add, route print, route change 74 Computernetwerken: samenvatting alles Routing processen: hoe routes leren? Delen van routes Elke hop (router) moet een route naar destination hebben Anders wordt het pakket onderweg gedropt (waar geen route is) Routing table moet dus alle nodige informatie bevatten Up-to-date Correct Hoe informatie verkrijgen? Statisch: manueel ingeven Dynamisch via routing protocols Statische routing = Manueel configureren van elke route Elk gekend destination netwerk moet een route hebben Elke hop moet geconfigureerd zijn Administratief moeilijk te onderhouden Stel wijziging in topologie, link up-down, nieuwe links, ... 75 Computernetwerken: samenvatting alles Dynamische routing Gebruik van routing protocols: Algoritmen die de route-informatie uitwisselen tussen routers onderling Wanneer een router nieuwe informatie ontvangt Eigen routing table aanpassen Andere routers op de hoogte brengen Bekende routing protocols : Routing Information Protocol (RIP) Enhanced Interior Gateway Protocol (EIGRP) Open Shortest Path First (OSPF) Nadelen: Extra verkeer voor uitwisselen data Sommige routing protocols vergen veel van de router –CPU, memory, ... –Naast de “hoofd”-taak van routers om pakketten door te sturen! Meeste gevallen Statische routes voor routes die waarschijnlijk niet wijzigen Dynamische routes Default routes 76