Datacommunicatie
Computernetwerken / druk 4
Andrew S. TanenbaumOp deze pagina vindt u informatie over het vak datacommunicatie. Het vak datacommunicatie heb ik gevolgd als onderdeel van mijn opleiding elektrotechniek aan de Hanzehogeschool Groningen. We hebben de theorie omtrent de datacommunicatie behandeld aan de hand van het boek "Computernetwerken" van Andrew S. Tanenbaum.
Enkele termen en definities uit de datacommunicatie worden hieronder verduidelijkt.
Inleidend
- protocolstack
Een serie protocollen die door een bepaald systeem wordt gebruik, met één protocol per laag, noemen we een protocol-stack.
- connection-oriented diensten
Een connection-oriented (verbindingsgerichte) dienst (zoals telefoneren) is een dienst waarbij een ontvanger wordt gekozen, de informatie naar hem wordt verzonden en de informatie, via 1 verbinding, in diezelfde volgorde weer aankomt.
- connection-less diensten
Een connection-less (verbindingloze) dienst (zoals een brief versturen per post) is een dienst waarbij elk bericht een doeladres bevat en onafhankelijk van alle andere berichten in het systeem wordt vervoerd.
- referentiemodellen
Twee belangrijke netwerkarchitecturen zijn het OSI-model en het TCP/IP-referentiemodel.
- OSI-model
Het Open Systems Interconnection (OSI) Reference Model is een door het ISO (International Standards Organization) vastgesteld model voor het verbinden van open systemen. Het model bestaat uit zeven lagen.
- De fysieke laag
De fysieke laag (physical layer) van het OSI-model houdt zich bezig met het verzenden van bits over een communicatiekanaal. Het gaat hier om hardware, bijvoorbeeld, welke spanning een 1 of 0 representeerd, hoeveel pinnen de netwerkconnector heeft en waar deze voor worden gebruikt.
- de data-link laag
De taak van de data-link laag (data link layer) is een transmissiefaciliteit te transformeren tot een lijn die voor de netwerklaag vrij lijkt te zijn van ongedetecteerde transmissiefouten. De datalink-laag volbrengt deze taak door de zender de invoerdata te laten splitsen in dataframes, deze frames één voor één over te sturen en de door de ontvanger teruggezonden bevestigingsframes te verwerken.
- de netwerklaag
De netwerklaag houdt zich bezig met het regelen van de werking van het subnet. Een belangrijke ontwerpkwestie is het bepalen van de route waarlangs de pakketten van bron naar bestemming moeten gaan.
- de transportlaag
De belangrijkste functie van de transportlaag is het in ontvangst nemen van data uit de sessielaag, deze zo nodig in kleinere delen splitsen, die aan de netwerklaag doorgeven en ervoor zorgen dat alle stukken correct aan de andere kant aankomen.
- de sessielaag
De sessielaag stelt gebruikers op verschillende machines in staat gezamenlijke sessie tot stand te brengen. In een sessie kunnen data worden overgebracht, net als in de transportlaag, maar er zijn ook enkele verdergaande diensten die voor bepaalde toepassingen nuttig zijn. Een dienst van de sessielaag is het regelen van de dialoog.
Een soortgelijke dienst is het token-beheer. Door het overgeven van een token kan slechts een kant een operatie uitvoeren (en dus niet beide tegelijk).
Een andere sessiedienst is synchronisatie. De sessielaag zorgt voor controlepunten in de datastroom, zodat een gedeeltelijk gelukte transfer niet in zijn geheel herhaald hoeft te worden, maar uitsluitend vanaf het laatste controlepunt hervat dient te worden.
- de presentatielaag
De presentatielaag voert bepaalde functies uit die zo vaak worden aangevraagd dat het de moeite waard is dat er een algemene oplossing voor wordt gezocht in plaats van dat elke gebruiker de problemen zelf moet oplossen. De presentatielaag houdt zich in tegenstelling tot onderliggende lagen bezig met de syntaxis en semantiek van de verzonden informatie.
De presentatielaag beheert abstracte datastructuren en zorgt voor de conversie van de binnen de computer gebruikte representatie naar de standaardrepresentatie van het netwerk en omgekeerd.
- de applicatielaag
De applicatielaag bevat diverse protocollen die vaak nodig zijn (virtuele terminal, file-transfer, e-mail, remote job entry, etc.).
- gelaagde protocollen
Om de complexiteit van het onwerp te verkleinen wordt gebruikt gemaakt van lagen. Hogere lagen hoeven de implementatie van diensten niet zelf te maken maar kunnen de implementatie van de onderliggende laag gebruiken. Er zijn onderliggend lagen totdat de complexiteit is afgenomen tot de fysieke layer (waar de data daadwerkelijk aanwezig is).
- het TCP/IP-referentiemodel
ARPANET, was een onderzoeksnetwerk (gesubsidieerd door het US Department of Defense) dat honderden universiteiten en overheidsinstellingen via gehuurde telefoonlijnen met elkaar verbond. Toen naast telefoonlijnen ook satelliet- en radionetwerken werden toegevoegd leidde dit tot internetwerkproblemen met de protocollen, zodat er een nieuwe referentie-architectuur nodig bleek te zijn. Een belangrijk ontwerpdoel was de mogelijkheid een aantal netwerken naadloos te verbinden. Deze nieuwe architectuur is bekend als het TCP/IP-referentiemodel.
- De internetlaag
De eisen voor een betrouwbaarder, universeler netwerk leidden tot dat er een packet-switching netwerk werd gekozen dat gebaseerd was op een verbindingloze internetwerklaag. Deze laag, de internetlaag, is de hoeksteen waarop de hele architectuur rust. Deze laag heeft de taak hosts in staat te stellen pakketten in een willekeurig netwerk te sluizen en ze dan onafhankelijk naar de bestemming te laten reizen.
- De transportlaag
De laag boven de internetlaag in het TCP/IP-model wordt meestal de transportlaag genoemd. Deze heeft het doel peer-entiteiten op de bron- en de doelhost in staat te stellen een conversatie te voeren, net als in de OSI-transportlaag.
- IP
Internet Protocol
- TCP
Transmission Control Protocol. TCP maakt het mogelijk dat een bytestroom, afkomstig van de ene machine, zonder fouten wordt afgeleverd op een andere machine in het internet. Het verdeelt de inkomende bytestroom in afzonderlijke berichten en geeft deze door aan de internetlaag. Op de plaats van bestemming zet het ontvangende TCP-proces de ontvangen berichten weer in elkaar en maakt zo de uitvoerstroom. TCP zorgt ook voor stroomregulering (flow control), om te voorkomen dat een snelle zender een langzame ontvanger volpropt met meer berichten dan deze aankan.
- UDP
UDP (User Datagram Protocol), maakt evenals TCP deel uit van de transportlaag. Het is een onbetrouwbaar, verbindingloos protocol voor applicaties die het behoud van volgorde en de stroomregulering (flow control) van TCP niet wensen, maar daar zelf voor willen zorgen.
- Twee overeenkomsten tussen het OSI-model en het TCP/IP-referentiemodel zijn:
1. Beide modellen hebben een transportlaag.
2. Beide modellen hebben een applicatielaag.
- Twee verschillen tussen het OSI-model en het TCP/IP-referentiemodel zijn:
1. Het TCP/IP-referentiemodel bevat geen presentatielaag in tegenstelling tot het OSI-model.
2. Het TCP/IP-referentiemodel bevat geen sessielaag in tegenstelling tot het OSI-model.
De datalinklaag verzorgt in het OSI-model het splitsen van onbehandelde bitstroom in frames.
De netwerklaag bepaalt welke route door het subnet moet worden gebruikt.
Pakketten kapselen TPDU"s in, in het OSI model, want TPDU"s bevinden zich op de transportlaag.
Fysieke laag
- theoretische grondslagen van de fysieke laag
Informatie kan via kabels worden verzonden door het variëren van een natuurkundige eigenschap, zoals spanning of stroom. We kunnen het gedrag van het signaal beschrijven en wiskundig analyseren door de waarde van de spanning of de stroom voor te stellen als een eenwaardige functie f(t) van de tijd.
- vaste media, losse media
Voor het transporteren van een bitstroom van de ene machine naar de andere machine kunnen verschillende media worden gebruikt. We maken hier een onderscheid tussen vaste media (koperdraad, glasvezels) en losse media (radio, laserstralen).
- magnetische media
Een voordeel van magnetische media (bv. banden, diskettes) en verzending per bestelwagen is een hoge bandbreedte en een lage kostprijs. Een nadeel is dat de transmissietijd vrij lang is (enkele uren).
- twisted-pair kabels
Een voordeel van twisted-pair kabels is dat de magnetische interferentie laag is, door de inelkaar gedraaide aders. Een twisted-pair kabel kan data over een paar kilometer verzenden, voor grotere afstanden dienen repeaters gebruikt te worden. Twisted-pair kabels hebben een gunstige prijs/prestatie verhouding en worden daarom veel ingezet als transmissiemedium. De meest gangbare variant van twisted-pair kabels zijn UTP-kabels (Unshielded Twisted Pair).
- coaxiale basisbandkabels
Coaxkabels hebben een grote bandbreedte en zijn goed bestendig tegen ruis. Voor kabels van 1km lengte is een datasnelheid van 1 à 2 Gbps haalbaar. Coaxkabels worden nog vaak gebruikt voor kabeltelevisie en soms in het telefoonsysteem, waar dat nog niet door glasvezel is vervangen.
- coaxiale breedbandkabel
Dit type coax-kabelsysteem maakt gebruik van analoge transmissie op gewone televisiekabels. Het wordt broadband genoemd. Broadband staat in de context van computernetwerken voor kabelnetwerken waarop analoge transmissie plaatsvindt.
- glasvezelkabel
Ook glasvezelkabels kun je kopen.
- openbaar telefoonnet
Het openbare telefoonnet is handig als je wilt telefoneren. Het openbare telefoonnet bestaat uit drie componenten, te weten: 1. netlijnen (twisted-pair kabels, analoge signalen), 2. interlokale lijnen (glasvezelkabels, grotendeels digitaal), 3. schakelcentrales.
- structuur v.h. openbare telefoonnet
Structuur is aangebracht in het openbare telefoonnet.
- netlijn
Een netlijn verbind een telefoontoestel met een eindcentrale. Netlijnen bestaan tegenwoordig uit twisted-pair kabels.
- modem
Een modem is een apparaatje voor het moduleren en demoduleren van signalen. Een modem wordt gebruikt wanneer men digitale signalen (bv. voor internet) op een analoge lijn wil zetten (bv. de netlijn) en andersom, als je deze signalen wilt ontvangen.
- adsl
Asynchronous Data Subscriber Line.
- schakelen
- kabeltelevisie
- kabelinternet
Netwerklaag
- ontwerpaspecten v.d. netwerklaag
Ontwerpaspecten van de netwerklaag zijn de diensten die aan de transportlaag aangeboden worden en het internet ontwerp van het subnet.
- routeringsalgoritmen
- optimaliteitsbeginsel
Het optimaliteitsbeginsel is een uitspraak over optimale routes die onafhankelijk is van de topologie van een netwerk of het verkeer. Deze uitspraak houdt in dat als router J op het optimale pad van router I naar router K ligt, het optimale pad van J naar K langs dezelfde route loopt.
- kortste pad
Het kortste pad is een vage term waarmee het gekozen pad wordt aangeduid. Het kortste pad kan aan de hand van verschillende criteria bepaald worden, bijvoorbeeld het aantal hops, de fysieke afstand, gemiddelde wacht- en transmissietijd, etc.
- flooding
Flooding is een statisch algoritme, waarbij elk inkomend pakket via elke uitgaande lijn wordt weggezonden behalve via de lijn waarover het is binnengekomen. Flooding levert een enorm aantal duplicaatpakketten op.
- hierarchische routering
Bij grote netwerken is het ondoenlijk in elke router een element voor elke andere router op te slaan, zodat het routeren op een hiërarchische manier moet gebeuren (zoals in het telefoonnetwerk). Als hiërarchische routering wordt toegepast, worden de routers verdeeld in rayons. Daarbij weet elke router in detail hoe pakketten moeten worden gerouteerd naar bestemmingen binnen het eigen rayon, maar hij weet niets over de interne structuur van andere rayons.
- broadcast routering
Het gelijktijdig naar alle bestemmingen zenden van een pakket heet broadcasting. Een voorbeeld van een broadcasting-methode die geen speciale eigenschapen van het subnet verlangt, is dat de bron gewoon een afzonderlijk pakket naar elke bestemming zendt. Deze methode verspilt bandbreedte en vereist dat de bron een volledige lijst van alle bestemmingen heeft. Flooding is ook een optie voor broadcast routering, maar ook hierbij worden teveel pakketten verzonden en er wordt veel bandbreedte in beslag genomen.
Multidestination routing is ook een optie, hierbij bevat elk pakket een lijst met bestemmingen of een bitmap die de gewenste bestemmingen aangeeft. Als een pakket bij een router aankomt, loopt de router alle bestemmingen na om te bepalen welke uitvoerlijnen er nodig zijn. De router genereert voor elk te gebruiken uitvoerlijn een nieuw exemplaar van het pakket en neemt in elk pakket alleen de bestemmingen op die via de betreffende lijn bereikt worden.
- spanning tree
Een spanning tree is een deelverzameling van het subnet waarin alle routers voorkomen, maar geen lussen.
- peer-to-peer
Een peer-to-peer (of P2P ) computernetwerk is een netwerk dat geen bekende clients en servers heeft, maar een aantal peer nodes die zowel als client en als server functioneren voor de andere nodes in het netwerk. P2P wordt veel toegepast in file-sharing netwerken.
- congestie
Als er in (een deel van) het subnet te veel pakketten aanwezig zijn, neemt de efficiëntie af. Deze situatie heet congestie of stagnatie.
- algemene principes (netwerklaag)
- strategiën ter voorkoming.
- jitter
Schommelingen in de transmissietijd van pakketten noemen we jitter. Jitter is vooral storend bij audio- en videotransmissie.
- Quality of Service
Quality of Service (QoS) is een term om de kwaliteit van een dienst aan te geven. De Quality of Service wordt omschreven aan de hand van QoS-parameters. Belangrijke QoS-parameters zijn: Peak cell rate (PCR), Sustained cell rate (SCR), Minimum cell rate (MCR), Cell delay variation tolerance (CDVT), Cell loss ratio (CLR), Cell transfer delay (CTD), Cell delay variation (CDV), Cell error rate (CER), Severely-errored cell block ratio (SECBR) en Cell misinsertion rate (CMR).
- Peak Cell Rate (PCR)
- Sustained Cell Rate (SCR)
- MCR (Minimum Cell Rate)
- CVDT (Cell Variation Delay Tolerance)
- CLR (Cell loss ratio)
- CTD (Cell Transfer Delay)
- CDV (Cell Delay Variation)
- CER (Cell Error Ratio)
- SECBR (Severely-Errored Cell Block Ratio)
- CMR (Cell Misinsertion Rate)
- eisen
- technieken
- labelswitsching en MPLS (uit Wikipedia)
In computer networking and telecommunications , Multi-Protocol Label Switching (MPLS) is an application of many of the benefits of ATM to IP and other packet-switching technologies, without the cell-switching or signalling-protocol baggage of ATM.
MPLS is based on the realization that small ATM cells are not needed in the core of modern networks, since modern optical networks (as of 2001) are so fast (at 10 Gbits/second and well beyond) that even full-length 1500 byte packets do not incur significant queuing delays.
At the same time, it attempts to preserve the traffic engineering and out-of-band control that made ATM attractive for deploying large scale networks.
- internetworking (Wikipedia)
Internetworking is connecting two or more computer networks with some sort of routing device to exchange traffic back and forth, and guide traffic on the correct path (among several different ones usually available) across the complete network to their destination. The devices used in internetworking are routers (originally called gateways , although that term was dropped due to confusion with functionally different devices using the same name), and some types of high end switches .
- verschillen tussen netwerken
Er bestaan verschillen tussen netwerken.
- netwerken verbinden
Netwerken kun je met elkaar verbinden, zie ook internetworking.
- de netwerklaag in het internet
juist ja
- het IP-protocol (Wikipedia)
The Internet Protocol ( IP ) is a data-oriented protocol used by source and destination hosts for communicating data across a packet-switched internetwork .
- IP-adressen (Wikipedia)
Een IP-adres is een adres waarmee een NIC (network interface card) van een host op het Internet uniek geadresseerd kan worden binnen het TCP/IP model .
- besturingsprotocollen in het internet
Transportlaag
- de transportdienst
-elementen van transportprotocollen
- adressering
- UDP (Wikipedia)
UDP is de afkorting van User Datagram Protocol . UDP is een van de basisprotocollen van internet en opereert op hetzelfde niveau als TCP . Het wordt beschreven in RFC (Request For Comment) 768.
Vergeleken met TCP is UDP is minder betrouwbaar, maar dankzij minder overhead (zoals handshaking, en verificatie) ook sneller. Zo bied UDP geen garantie dat de gegevens werkelijk aankomen, het kan zijn dat er pakketjes niet aankomen bij de bestemming, zonder dat daarvan melding gemaakt wordt.
UDP wordt veel gebruikt bij toepassingen waar het snel overdragen van de gegevens zeer belangrijk is, en het minder erg is dat er gegevens verloren kunnen gaan, zoals bij videoconferencing , of het online spelen van actiespellen .
- TCP (Wikipedia)
TCP is een afkorting uit het computerjargon. Het staat voor Transmission Control Protocol en is een connectie-georiënteerd protocol .
Meestal over IP, er moet een connectie gemaakt worden, gegarandeerd data-overdracht, etc.
TCP wordt beschreven in RFC (Request For Comment) 793.
Om een TCP-verbinding aan te gaan stuurt de client een TCP-pakket naar de server met de zogenaamde SYN-vlag. Als de server de verbinding accepteert, wordt een pakket teruggestuurd met zowel een SYN als ACK vlag. Als de client vervolgens de server accepteert, stuurt deze een pakketje met de ACK-vlag naar de server. Hierna kunnen pakketjes met de juiste identificatienummers vrij uitgewisseld worden tussen client en server. Iedere keer wordt de checksum van zo"n pakketje gecontroleerd en het pakketje wordt opnieuw opgevraagd indien er een fout in zit. Als er een heel pakket verdwijnt, is dit te merken aan het ack-nummer. Zodra de verbinding gesloten wordt, stuurt server of client een pakket met de FIN-vlag.
- inleiding tot TCP
- dienstenmodel van TCP
- TCP-protocol
- header van een TCP-header
De volgende headers zijn nodig voor een TCP pakket. De hoeveelheid ruimte die voor ieder onderdeel gereserveerd is, is tussen haakjes gegeven.
- Bronpoort (2 bytes)
- Bestemmingspoort (2 bytes)
- Sequentienummer(4 bytes). Een getal dat door een partij bij het maken van de verbinding vrijwel willekeurig gegenereerd wordt, waarna het door die partij de rest van de sessie gebruikt wordt om aan te geven dat het om diezelfde sessie gaat.
- Bevestigingsnummer (4 bytes). Een getal dat aangeeft welk segment van het laatste ontvangen pakket ontvangen is.
- Headerlengte (1 byte). De lengte van de headers om verlies te controleren en om aan te geven waar de data precies begint.
- Vlaggen (8 bits van links naar rechts in een byte):
- CWR: Speelt een rol bij Explicit Congestion Notification
- ECN: Echo. Speelt ook een rol bij ECN. Zie RFC 2481 voor meer informatie hierover.
- URG: Urgent. Dit pakket heeft haast
- ACK: Bevestiging. Er is al eerder een pakket verstuurd en dit is onderdeel van een sessie
- PSH: Push. "Duw" de eventuele buffer meteen door naar de ontvanger.
- RST: Reset. Verbinding opnieuw opstarten(fout opgetreden).
- SYN. Synchroniseer sequentienummers, oftewel: nieuwe verbinding.
- FIN. Einde verbinding.
- Window-grootte (2 bytes): De grootte van het leesvenster wat over verbinding "schuift"
- Controlesom (2 bytes): Een getal dat afhangt van het hele pakket, om dat te kunnen controleren.
- Extra opties (variabel aantal bytes, daarom is bekendmaking van de headerlengte nodig): Allerlei aanvullende opties, zoals timestamping.
- Data (variabel): de daadwerkelijke gegevens.
Applicatielaag
- DNS (Domain Name System)
De essentie van DNS (Domain Name System) is een hiërarchisch, op domeinen gebaseerd naamgevingssysteem plus een gedistribueerd databasesysteem om deze naamgevingsmethode te implementeren. Het systeem wordt voornamelijk gebruikt om hostnamen en e-mailbestemmingen af te beelden op IP-adressen, maar het kan ook voor andere doeleinden worden gebruikt.
Om een naam op een IP-adres af te beelden, roept een applicatieprogramma een library-procedure, de resolver, aan en geeft de naam als parameter op. De resolver zendt een UDP-pakket naar een lokale DNS-server, die de naam dan opzoekt en het IP-adres aflevert aan de resolver, die het dan aan de aanroeper aflevert. Met het IP-adres kan het programma dan een TCP-verbinding met de bestemming tot stand brengen of er UDP-pakketten naartoe sturen.
- e-mail
E-mail is het versturen van digitale brieven via Internet . E-mail bestaat sinds 1971 en is rond 1995 populair geworden bij het grote publiek.
Verschillende soorten software zijn verantwoordelijk voor het verwerken van e-mail. Vaak worden deze in de volgende categorieën ingedeeld:
MUA"s (Mail User Agents) oftewel E-mail clients
MDA"s (Mail Delivery Agents), doorgaans wordt het afleveren van de mail (grotendeels) door de MTA gedaan, maar procmail is een voorbeeld van een gespecialiseerde MDA.
MTA"s (Mail Transfer Agents)
- architectuur en diensten
- de user-agent
- berichtformaten
- transfer van berichten
- bezorging: POP3
Post Office Protocol versie 3
- het world wide web
- structuuroverzicht
- statische documenten (HTML)
Hypertext Markup Language
- dynamische webdocumenten
- HTTP
Hypertext Transfer Protocol