Computer Netwerk PDF
Document Details
Uploaded by Deleted User
Tags
Summary
This document provides an overview of computer networks, covering various aspects such as components, services, and different perspectives on viewing a computer network. It discusses different types of network components, media, and end-systems. It also touches upon client-server models, paradigms of computing, and non-functional requirements.
Full Transcript
Les 1 t/m 4 – Computernetwerken Computernetwerk: een verzameling, onderling verbonden, autonome computers. Bijvoorbeeld: Alle verbindingen, netwerkapparatuur maar ook de aangesloten computers, smartphones, printers, gamesconsoles, zijn allemaal onderdeel van een computernetwerk Waarom computers in...
Les 1 t/m 4 – Computernetwerken Computernetwerk: een verzameling, onderling verbonden, autonome computers. Bijvoorbeeld: Alle verbindingen, netwerkapparatuur maar ook de aangesloten computers, smartphones, printers, gamesconsoles, zijn allemaal onderdeel van een computernetwerk Waarom computers in een netwerk? Delen van gegevens (Blackboard) Delen van device/hardware (Printers) Delen van Applicaties (Network Gaming) Communicatie (email of VoIP) Manier om naar een computernetwerk te kijken, computernetwerken 3 Views: 1. Component View (“Nuts and Bolts”) 2. Service View (“Wat kan je er mee doen?”) 3. Protocol View (“Formele afspraken om componenten te laten samenwerken”) Component View Componenten: Media, Netwerkdevices Eindsystemen Component View Component – Media Om te kunnen communiceren, heb je verbindingen nodig. De landverbindingen: LAN-verbinding WAN-verbinding Glasvezel Wireless Component View Component – Netwerkdevices I Zijn speciale devices die je nodig hebt om al die media aan elkaar te verbinden. Router(L3-switch): Stuurt verkeer door, bepaalt de next hop van een route naar eindbestemming op basis van IP-adres, koppelt verschillende netwerken Switch (L2-switch): Stuurt ook verkeer door binnen 1 netwerk, werk op basis van de lokale machine adres. Component View Component – Netwerkdevices II Wireless Access point: zoals een switch maar wireless Firewall: zoals een router maar dan met een filter, vaak ingebouwd in een router, kan onveilig verkeer blokkeren. Component View Component – Eindsystemen Zijn apparaten die je aan het netwerk aansluiten. Clients: Initiatiefnemer communicatie, vaak menselijke interactie zoals PC, laptops, smartphones, game console Servers: Biedt services aan clients, luistert 24-7 naar client verzoeken zoals Webserver, emailserver Voorbeeld van Component view van een netwerk: Service View Computernetwerk kun je zien als een black box die diensten levert. Wat kan je doen met netwerk/functies van computernetwerk. Technische infrastructuur levert diensten die moeten voldoen aan bepaalden eisen (functionele eisen en niet-functionele eisen) Functionele eisen: Browsen op het internet Gamen met meerdere personen Samen werken aan een document Niet functionele eisen: Capaciteit en schaalbaarheid (“hoe veel gebruikers?”) Prestatie (“hoe snel”) Beschikbaarheid Continuïteit (“Wat gebeurt er bij volledige uitbal?”) Veiligheid en privacy Computing Paradigma’s Waar gebeurt de processing en waar bevindt zich de storage? Er zijn verschillende computing paradigma’s (conceptuele oplossingen): 1. Mainframe (Centralize computing) 2. Isolated microcomputer (Sneaker Net) 3. Fat client (bijv. Windows workgroup) 4. Thin Client 5. Cloud Computing (IaaS, PaaS, SaaS) Mainframe kenmerken: Bestaat uit één centrale computer en gebruikers zijn aangesloten met een ‘dumb terminal’ die bestaat uit een scherm en een toetsenbord en je kunt alleen maar typen. Processing vindt plaats op de centrale computer Isolated microcomputer kenmerken: Processing vindt plaats op de pc die wordt gebruikt. Bestanden worden uitgewisseld tussen andere pc’s via een disk (file uitwisseling via sneaker net). Fat client kenmerken: Het zijn computers die kunnen zelfstandig werken (processing vindt plaats op de lokale computer), maar die ook gekoppeld kunnen worden aan een netwerk. Niet een netwerk met een internetverbinding omdat er toen waren geen internet maar een lokaal netwerk, systemen zijn gekoppeld met een LAN-verbinding. Bepaalde opslag op een fileserver. Thin client kenmerken: Processing vindt plaats op de server. De client heeft alleen software voor grafische ondersteuning en om te verbinden met de server. De thin client bestaat uit een toetsenbord, een scherm en een muis, en kan via het internet communiceren. Je kunt taak runnen op afstand. Thin client kenmerken: Processing vindt plaats op het internet. Computing wordt aangeboden als dienst door een Cloud provider (private of publieke clouds afhankelijk van wie de klant is). De klant (cloud consumer) huurt de dienst en gebruikt die via het internet. Eigenschappen (uit NIST 800-145): De klant kan zelf regelen wat er gehuurd wordt van de provider (On demand self service). Diensten toegankelijk via het internet (Broad network access). Resources kan snel worden aangepast (Rapid Elasticity) Klant bepaald voor gebruik (Measured Service). Soorten diensten die worden aangeboden: IaaS: Infrastructure as a Service – een virtueel netwerk met servers (Bijvoorbeeld een virtuele server) (zoals servers, opslag, en netwerken via internet). PaaS: Platform as a service – een platform dat ingericht kan worden voor een bepaalde applicatie (waarop ontwikkelaars applicaties kunnen bouwen, testen en implementeren). SaaS: Software as a Service – software die je gebruikt vanaf het internet (bijvoorbeeld Microsoft Office 365) Protocol View I. Netwerken en afspraken In een computernetwerk maakt de applicatie-sofware op de eindsystemen gebruik van data-transport bijvoorbeeld de browser en de webserver bij het opvragen van een webpagina. Het daadwerkelijke transport vindt plaats via elektromagnetische golven over een medium (glasvezel, kabel, ether). Communicatie en besturingssoftware + hardware vertalen de informatiebehoefte van de applicatie naar elektrische signalen op het medium. Hiervoor zijn afspraken nodig in de vorm van netwerkprotocollen. Een paar afspraken in computernetwerk (die je moet voldoen aan): o De netwerkconnector moet passen o Elektrische signalen moeten correct zijn o Het netwerk moet berichten bij de juiste computer afleveren. o Een computer moeten een communicatie-aanvraag kunnen begrijpen en op de juiste manier een antwoord geven (formaat, compressie, authenticiteit). Dat wil je doen door open standaarden d.w.z. dat bepaalde delen gestandaardiseerd zijn, zodat verschillende componenten van verschillende fabrikanten kunnen samenwerken. Volg de richtlijnen die in de standaard staan, zodat je compatibel bent met andere partijen en er een goede samenwerking mogelijk is. Bekende standaarden m.b.t. computernetwerken: RFCxxxx (‘Request For Comments’): - Afkomstig van de IETF (‘Internet Engineering Taskforce’) - Voornamelijk internet-standaarden zoals RFC2616 (HTTP) en RFC793 (TCP) IEEE802.xx - Afkomstig van de IEEE (‘Institute of Electrical and Electronics Engineers’) - LAN-standaarden - IEEE802.3 Ethernet en IEEE802.11 WIFI II. Lagen en Protocollen Om met standaarden een computernetwerk open te maken, moet goed afgesproken wat er gestandaardiseerd wordt, dit gaat door een verdeling in lagen (gelaagdheid). Bekende gelaagde computernetwerken: OSI Refernce Model - Bestaat uit 7 lagen Internet Protocol Stack - Bekend als DOD Reference Model, TCP/IP Stack of Internet Protocol Suite - 5 lagen => eenvoudiger dan OSI Internet Protocol Stack Een lag bestaat uit actieve elementen (entiteiten) zoals een ontvanger of zender. Entiteiten uit laag N bieden services aan entiteiten uit laag N+1. Entiteiten uit dezelfde laag (peer entities) communiceren met elkaar volgens een vast protocol. Per laag wordt afspraken gemaakt. Informatie wordt verpakt in een speciale container die PDU’s (Protocol Data Unit) genoemd worden. Een PDU is dus een datastructuur die behoort bij een bepaalde laag. L1. Fysieke laag (bijv. Ethernet en WIFI): Bevat de koppeling van netwerkelementen aan een medium (connectoren, signalen, o.a. media). Afspraken over Fysieke dingen/transport. L2. (Data) Link laag (bijv. Ethernet en WIFI/ MAC): Verantwoordelijke voor de communicatie tussen twee punten in een netwerk (Point to point communicatie) (bijv. de verbinding tussen computer en router acces point). Wordt soms verdeeld in bepaalde sublagen (bijv. bij mobiele netwerk 3G/4G: PDCP, RLC en MAC). L1+L2 = wordt ook Netwerk Acces Layer genoemd. L3. Netwerk laag (bijv. IP, IPv6): Wordt ook Internet laag genoemd. Zorgt door routering dat berichten op de juiste eindgebruiker bereiken. L4. Transport laag (bijv. TCP, UPD): Zorg voor transport van data tussen eindgebruiker in een netwerk (End to end communicatie). Onafhankelijk van L3. L7. Applicatie laag (bijv. HTTP): Vormt de interface voor applicaties. Afhankelijk van L4 laag. Levert complete diensten als webtransport, File-transport, VoIP etc. III. Data in het network Er zijn verschillende manieren om data te representeren en te vervoeren. Voor verwerking en vervoer is de binaire representatie het meest interessant. Data representeren in: Decimaal (97 97 112 32 110 111 111) Hexadecimaal (20 6e 6f 6f 74 20 6d) Binair (01100001 01100001 01110000 00100000 01101110 01101111) Transport van data Transport van een byte: 01110100 gaat bit voor bit (serieel). (t is tijd) 1 byte = 8 bit. - Meestal in een verbinding wordt duizenden tot miljoenen bytes verplaats. - Om het netwerk efficiënt te delen, wordt de data verdeeld in brokjes (PDU’s). - De eerste paar bytes van een PDU representeren de header met protocolinformatie zoals adressen. - Daarna volgt de payload van de PDU, die de data bevat. Bij een gelaagd systeem => o Elke laag heeft zijn eigen PDU met eigen header en ondersteunt de protocollen van die laag. o Hierdoor wordt de originele data omkapseld met meerdere PDU’S (Encapsulation) Een PDU is dus een datastructuur die behoort bij een bepaalde laag en die wordt uitgewisseld tussen entiteiten uit dezelfde laag. En Bestaat uit: 1. Header met meerdere gestandaardiseerde velden die belangrijk zijn voor die laag 2. Payload achter de header met daarin een PDU uit een hogere laag. (Encapsulation genoemd). Een entiteit uit laag N begrijpt in een N-PDU alleen de header (bevat belangrijkste velden). De header van hogere lagen en data die in de payload zitten worden niet door de entiteit van laag N begrepen, maar wel door gegeven naar laag N+1. - Protocol is vastgestelde afspraken tussen twee partijen uit dezelfde laag. - Service bij netwerken is dienst van laag N aangeboden aan laag N+1. - Encapsulation is het inpakken van een PDU uit laag N in een PDU van laag N-1. Voor duidelijkheid om welke PDU het gaat, zijn er namen voor bepaalde PDU’s gegeven. Voorbeelden van belangrijke velden in PDU-Header en PDU’s namens: L1. Fysieke laag => (bits, symbols): Op welke manier wordt de data gerepresenteerd (bits, symbolen). L2. (Data) Link laag => (WIFI-PDU, frame): Adresseert een fysieke machine in een LAN bijvoorbeeld de MAC-adres (0x0A:00:05:3F:2E:78). L3. Netwerk laag => (IP-PDU, packet/datagram): Adresseert een computer in een netwerk bijvoorbeeld de IP-adres (145.52.127.15). L4. Transport laag => (TCP-PDU, segment/datagram): Adresseert de applicatie in een computer bijvoorbeeld poort 8080 voor HTTP. L7. Applicatie laag => (HTPP-PDU, data): Levert de complete diensten aan. IV. Meten aan netwerkverkeer Je kunt een frame analyseren met een verschillend programma zoals Wireshark. Vaak is alleen het verkeer te zien dat fysiek bedoeld is voor computer waarop de analyse vindt plaat omdat switches het verkeer isoleren van andere computers. Een speciale driver vangt PDU’s in het netwerk en de daarnaast de PDU’s kunnen worden geanalyseerd end gerepresenteerd. Overzicht en protocollen van L1 Fysieke laag Richt zich op de fysieke aansluiting op het medium: Draadloos, Koper of Glas. Bit voor bit de parallelle data (L2 frames) over het medium sturen worden Serialisatie (Het proces van de parallelle data naar bit) genoemd. De ontvanger moeten de parallelle data weer inlezen De-serialisatie. Bevat hardware-instellingen en eigenschappen, geen header voor de payload. L1 Fysieke laag gaat over de volgende keuze en instellingen: Medium (glas, radio, koper) Bit-representatie Bitrate: aantal bit per seconde Frame-size Asynchroon/Synchroon Overzicht en protocollen van L2 Datalink laag Een switch maakt forward-beslissingen in laag 2 (en betrekt dus geen IP-adressen bij het forwarden) Regelt de communicatie tussen twee direct aangesloten punten. Foutafhandeling: Bits kunnen fout aankomen door stroomstoringen, dit moet gedetecteerd worden, er moet iets gedaan worden (weggooien en opnieuw de frame laten uitzenden => Error Control). L2 Datalink laag heeft betrekking alleen op de point-to-point communicatie. Fysieke adressering: De juiste computer selecteren in een LAN door middel van een adres (‘MAC-adres’). Bijv. 02:6B:E1:23:6A:C1 (hexadecimal) 6 byte = 48 bit Eerste 3 bytes identificeren de fabrikant, Laatste drie bytes identificeren één uniek device van die fabrikant (in principe uniek) het adres heeft alleen maar een lokale betekenis binnen een netwerk. Point-to-point communicatie is de communicatie tussen twee direct aan elkaar aangesloten systemen bijv. tussen de computer en de switch (1,2,3,4). LAN= Local Area Network (Netwerk binnen een organisatie) Bij WIFI is cryptografische beveiliging is noodzakelijk: WPA2 (authenticatie en encryptie) Belangrijkste velden in L2 laag: Source-MAC: fysiek adres van de afzender Destination-MAC: fysiek adres van de ontvanger Overzicht en protocollen van L3 Netwerk laag Een router maakt forward-beslissingen in laag 3 (netwerk laag) op basis van IP-adressen. Een router functie is het doorsturen van pakketjes volgens het juiste/beste hop. Next hop wordt bepaald met de route tabel. Taken van die laag zijn: Routeren van verkeer de basis van Internetadres (routering van pakketjes) Kopenpelen verschillende netwerken Belangrijkste velden: Source adres: adres van de afzender Destination adres: adres van de ontvanger Version: IP-versie Time to live (TTL): tellertje dat aftelt(-minus) per hop (geef aan het maximaal toegestane hops en bij 0 wordt het pakket weggeooid). De adressen in de header veranderen onderweg niet (bij route next hop). Beste “next hop” wordt bepaald met de route tabel. Een IP-adres is wereldwijd uniek (exclusief private adressen) en is hiërarchisch georganiseerd. Bevat 4 byte, 1 byte van het adres loopt van 0 tot 255. Vaak de eerste 3 bytes verwijst het netwerk aan en het laatste byte wijst het hostdeel (de host in een LAN). Het Internet Protocol (IP) IP levert pakketjes af als onbevestigde (= geen bevestiging van ontvangst) verbindingsloze (= er wordt niet vooraf een verbinding opgezet) dienst. IP detecteert fouten in de IP-headers => leidt tot weggooien van het pakket: Daarbij wordt een controle- ‘checksum’ gebruikt in de header. Dit is een 16-bit controle-som van alle overige headerbytes. Om berichten te sturen bij bepaalde fouten kan je een hulp-protocol op netwerk laag gebruiken: ICMP (Internet Control Management Protocol) Soorten ICMP-melding: Host/Netwerk unreachable TTL Expired Echo request/reply IPV4-adressen identificeert de eindbestemming en bestaat uit netwerkdeel en hostdeel. Een masker wordt gebruikt om het netwerkdeel en hostdeel te onderscheiden. In een masker bit horen bit = 1 -> bij het netwerkdeel en bit = 0 -> bij het hostdeel. Een masker bestaan uit 32 bit 32/8= 4 Bytes en 1 Bytes 8 bit. Voorbeeld van een masker in binaire notatie: (Mask /24 => 24 enen naar links en de rest 0) 11111111. 11111111. 11111111. 00000000 Voorbeeld van een masker in Dotted decimal notatie: (Mask /24 => 24/8=3 => 255. 3 keer) 255.255.255.0 Speciale adressen (deze adressen kun je niet meer uitdelen aan de aangesloten eindsystemen in het subnet): Netwerkadres: Laagste adres in een subnet, wordt gebruik om het network aan te geven Broadcastadres: Hoogste adres in een subnet, wordt gebruik om een IP-pakket tegelijk naar alle aangesloten eindsystemen in het subnet te sturen Default gateway-adres: Adres dat gebruikt wordt door een aangesloten router om pad naar andere netwerk te maken. Wie/Wat heeft een IP-adres? Eindsystemen: Meestal 1 IP-adres per computer (Soms extra bij virtuele machines) Routers: Meerdere IP-adressen => 1 adres per poort. L2-Switches (0 of 1 IP-adres): In principe geen IP-adres nodig (want werkt op laag 2), alleen nodig als de switch remote beheerd. DNS (Domain Name System) Logische namen voor IP-Adressen. Door middel van DNS-server worden de namen vertaald naar IP-adressen. Dat betekent dat een computer moet eerst een naam vertalen met behulp van DNS, voordat een IP-pakket kan worden verzonden. DNS-infromatie is niet centraal opgeslagen. Stappen van DNS Lookup: Eindsystemen stellen hun vertaal vragen aan lokale nameservers, meestal eigen ISP Recursive lookup De nameserver gaan dan het IP-Adres zoeken Iterative lookup DNSSEC is de veilige versie van DNS. Het gaat bij DNSSEC om integriteit (dus dat de informatie moet correct zijn en vanaf de juiste bron (IP-adres) komen, op de basis van domainnaam). ICANN (Internet Corporation for Assigned Names and Number) is de baas van domainnamen. Overzicht en protocollen van L4 Transport laag Taken van L4 transport laag: End-to-end communicatie Applicatie adressering (TCP, UDP) Segmentatie en reassmbly (TCP) Foutdetectie/correctie Flow control End-to-end communicatie is de logische communicatie tussen 2 eindsystemen. Transmission Control Protocol (TCP): Segmentation en reassembly: Het stukjes breken van een lang bericht in segmenten, zodat het bericht in stukjes verzonden kan worden. Bij de ontvanger worden de stukjes weer elkaar geplakt. Betrouwbaar van transport (TCP): - Gegevens komen foutvrij aan: TCP zorgt dat verzonden gegevens correct en zonder fouten bij de ontvanger aankomen.z - Segmenten worden genummerd om juiste volgorde te garanderen. - Error control: fouten worden gedetecteerd en leiden tot herhalen van de betrokken segmenten (nadelen: bij heruitzending ontstaat een delay). - Flow control: zender zal niet meer data versturen dat de ontvanger kan verwerken. User Diagram Protocol (UDP): Handig bij toepassingen als telefonie. Er mag dan niet veel delay ontstaan. Het is daarbij niet erg als af en toe een datagram verloren gaat, zoals telefonie (VOIP), videostreaming en videoconferencing. - Geen segmentation, error control en flow control en is een onbetrouwbaar transport. - Beide transport gebruiken een poortnummer dat wijst de applicatie aan binnen de host (Applicatie/proces-adressering). - UDP is beter bij realtime verbindingen. Poortnummers is van 0 t/m 65535. Soorten: Well known (:80 die verwijst aan een serverapplicatie voor http en :443 voor https) Ephemeral (random poortnummer) Overzicht en protocollen van L7 Applicatie laag Client-server protocollen uit de applicatie-laag: - Veel Protocollen uit de applicatie laag volgen het ‘Client-server ‘-model. - Deze protocollen gebruiken in dat geval meestal TCP als transport laag (is betrouwbaar en foutvrij). - Koppeling tussen applicaties en applicatie laag-protocollen bijvoorbeeld: Chromebrowser HTTPS Client-server protocollen: TELNET Werken op een computer vanaf een remote terminal (CLI=Command Line Interface, tekst georiënteerd en luistert op poort 23). Hoge veiligheidsrisico omdat leesbare data gaan door het netwerk en je bent niet zeker met wie je verbonden bent. SSH (Secure Shell) (bekende clients via PowerShell en Putty) Dezelfde functie als TELNET, alleen maar SSH is beveiligd: Encryptie van de data en authenticatie van de verbinding. HTTP (Hyper Text Transfer Protocol) - Een van de meest gebruikte/bekende internetprotocollen (RFC1945). - HTTP-clients (zoals webbrowsers) kunnen webpagina's opvragen (requests) van een HTTP-server. De server geeft dan een antwoord (replies) met de opgevraagde informatie. - Webpagina's bestaan vaak uit een of meerdere webobjecten, zoals HTML, afbeeldingen (bijv. jpg), en scripts (bijv. Javascript). - HTTP verwijst via een URL (Uniform Resource Locator), wat het adres dat wordt gebruikt om webobjecten of webpagina op te vragen. - HTTP-servers luisteren meestal naar poort 80, terwijl HTTPS-servers (de beveiligde versie van HTTP) luisteren naar poort 443. HTTP methode-veld: GET = Download object van de server POST = Uploaden van data naar de server + download antwoord HEAD = Alleen de header als antwoord PUT = Objecten uploaden naar server DELETE = Verwijderen objecten van de server Sommige HTTP status-veld van een reply : Om te weten welke client de server bezoekt, maakt de HTTP-server gebruik van cookies die bij elk request worden meegestuurd. Een cookie bestaat uit een 'key' en een 'value' en wordt bewaard voor het volgende bezoek. HTTP-clients kunnen ook cookies ontvangen van een HTTP-server. Er zijn twee soorten cookies: - Session cookies: deze cookies worden verwijderen als de browser of tab gesloten worden. - Persistent cookies: Cookies die langer worden bewaard. En cookies die worden bewaren door ander website heten ‘third part cookies’. Door privacybescherming moet het gebruik van dit soort cookies gemeld bij het eerste bezoek en moet toestemming gegeven door de gebruiker. HTTPS wordt gebruikt om afluisteren en imitatie van server te voorkomen/verminderen (d.m.v. encryptie en authenticatie certificaat). Hiervoor wordt een tussenlaag gedefinieerd tussen TCP en HTTP, de moderne versie heet TLS (Transport Layer Security) en de oude versie SSL (Secure Socket Layer). Cryptografie zorgt bij TLS voor vertrouwelijkheid (afluisteren voorkomen) en integriteit (voorkomen dat berichten worden vervalst, ongemerkt veranderd, en door de juiste afzender gestuurd). Een certificaat dat ondertekend is door een vertrouwde partij worden aan de ontvanger de cryptografische middelen gegeven om de TCP-berichten te controleren. HTTPS-versies en snelheid: - HTTP 1.0 non-persistent connectie = voor elke object een nieuwe TCP-verbinding - HTTP 1.1 persistent connectie = een keer verbinding open en meerde object vragen - HTTP 2.0 persistent connectie met extra opties = gelijktijdig meerde object vragen - HTTP 3.0 transfer over UDP File Transfer Protocol File transfer ondersteunt het lezen, schrijven en deleten van bestanden en het bladeren door mappen(directories). Protocollen voor file transfer: FTP (niet veilig) SFTP en FTPS (de veilige variant van FTP) HTTP/HTTPS Mail Transfer Protocol Voor het sturen van email worden verschillende protocollen naast elkaar gebruikt. SMTP: Voor het verzenden van email POP OF IMAP: Voor het ontvangen van email EWS: Voor verzenden/ontvangen van mail en is een Microsoft-proprietary