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
pv@cs.kuleuven.ac.be
Pierre.Verbaeten@cs.kuleuven.ac.be
nachtradio@vrt.be
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:Bill.Clinton@whitehouse.gov
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