Basiscursus TCP/IP

advertisement
Basiscursus TCP/IP
Protocollen
Wat is een Protocol ?
Een protocol is een Taal
Het is een manier om tussen bronnen te communiceren.
In de IT wereld maakt een protocol de communicatie tussen
verschillende machines (bijvoorbeeld computers) mogelijk.
Voorwaarden voor communicatie
Er moet een verbinding zijn tussen de bronnen
(er moet dus een communicatieinterface zijn)
Er moet een gelijkwaardig protocol zijn
Er moeten gegevens zijn die verstuurd moeten
worden
Soorten protocollen
•TCP/IP - Protocol wat voornamelijk op Internet word gebruikt
•IPX/SPX - Novell standaard
•Appletalk - Communicatie tussen Macintosh PC’s
•NetBIOS - Microsoft Netwerken
Dit zijn de meest gebruikte protocollen hedendaags.
Hoewel iedereen zijn eigen standaard WIL, neemt TCP/IP het steeds meer
over van andere protocollen, zo worden Microsoft netwerken steeds meer
op IP basis gebaseerd i.p.v. NetBIOS
Communicatieinterfaces
Om te kunnen communiceren is er een Interface nodig.
Voorbeelden van Interfaces
•Modem
•ISDN Adapter (in volksmond ISDN modem genoemd)
•X.25 Interface (Datanet)
•Netwerkkaart / Ethernetadapter
Let op: een ISDN kaart is GEEN modem, een modem werkt met analoge tonen, ISDN met digitale techniek
Daarom is de term: ‘ISDN modem’ onzin
Netwerken
Sternetwerk
Ringnetwerk
Busnetwerk (cheapernet)
Netwerken
Voordelen
Nadelen
Sternetwerk
•Snel (100 Mbit)
•Storingen snel opspoorbaar
•Makkelijk in onderhoud
•Storingsongevoelig
Ringnetwerk
•Goedkoop
•Gemakkelijk stations toe
te voegen
•Ouderwets
•Storingsgevoelig
•Moeten op elkaar wachten
tot het netwerk vrij is
•Langzaam
Busnetwerk (cheapernet)
•Goedkoop
•Makkelijk uit te breiden
•Bij breuk in hoofdkabel:
netwerk plat
•Maximaal 10 Mbit
•Duur
•Veel kabels
Praktische toepassing
Token
Ring
Cheapernet of 10BaseT
Sternetwerk of 10Base2
Het OSI Model
De manier waarom datacommunicatie geschied is gebaseerd op een set afspraken.
Deze afspraken geven we schematisch weer in een model: Het zgn. OSI model
(Open Systems Interconnection-Basic Reference Model)
Het OSI model is een model met 7 lagen, waarbij elke laag virtueel met elkaar
communiceert. (Peer to Peer communicatie)
Voordat een stukje data word verzonden zal deze van boven naar beneden door het
model gaan, waarbij op elke laag een relevant stukje data aan het te verzenden
pakketje word toegevoegd.
Bij de ontvanger zal dan het pakketje van onder naar boven door het model gaan waarbij
het word ‘uitgepakt’ tot een stukje data waar de applicatie mee kan werken.
Dit model is altijd basis voor de tegenwoordige ontwikkeling van datacommunicatieprotocollen.
Bijna alle protocollen gebruiken dit, of een sterk op het OSI model gebaseerd systeem
Het OSI Model
host A
host B
applicatie
applicatie
data
presentatie
data
s.header
p.header
data
sessie
t.hdr
s.header
p.header
data
transport
n.hdr
t.hdr
s.header
p.header
data
n.hdr
t.hdr
s.header
p.header
data
sessie
transport
netwerk
datalink
dl.hdr
presentatie
p.header
fysieke laag
netwerk
CRC
datalink
fysieke laag
signalen, volgens bepaalde lijncodering of modulatie
De functies van de lagen
applicatie
Applicaties toegang geven tot de OSI omgeving
presentatie
Communicatie realiseren tussen applicaties die verschillende coderingstechnieken gebruiken.
Deze laag heeft dezelfde functie als een tolk
sessie
transport
netwerk
datalink
fysieke laag
De communicatie tussen applicaties coördineren. Deze laag heeft dezelfde functie als een
verkeersagent.
Verzorgen van betrouwbare data-overdracht tussen applicaties. Deze laag heeft een functie
als keurslager. Aan de zendzijde deelt de transportlaag de data op in kleine eenheden. De
transportlaag aan de ontvangstzijde voegt de eenheden samen. Daarnaast corrigeert deze
laag transmissiefouten die het computernetwerk over het hoofd ziet.
Data van routing informatie voorzien, zodat het computernetwerk de data bij de juiste
computer kan afleveren
Transmissiefouten opsporen en corrigeren die optreden in het transmissiemedium tussen de
computer en het computernetwerk
Data versturen/ontvangen naar/van het computernetwerk
TCP/IP
TCP/IP staat voor
Transport Communication Protocol/Internet protocol
De adressering en routering van de datavelden zijn vastgelegd in het IP protocol.
Het TCP Protocol garandeert een betrouwbare data-overdracht van de IP frames die TCP/IP
systemen versturen.
De term TCP/IP Systemen is een verzamelnaam voor hosts en routers
TCP/IP - UDP
Evenals TCP, maakt UDP (User Datagram Protocol) gebruik van het IP Protocol.
Het UDP is een eenvoudiger versie van het TCP protocol.
In tegenstelling tot het TCP protocol garandeert het UDP protocol niet een betrouwbare dataoverdracht, maar is hierdoor wel sneller.
UDP word ingezet bij applicaties die ook werken zonder alle dataframes en een snelle
verbinding nodig hebben. (Video over het internet, multiplayer spelletjes, Voice
Conferencing, Internettelefonie, etc)
In Vakliteratuur wordt de combinatie TCP, UDP en IP aangeduid met de term TCP/IP Stack
TCP/IP
Toepassingsvoorbeelden
Computer
Computer
Computer
Laptop
Computer
Computer
Workstation
Internet
Firewall
Telefoon
Server
LAN
TCP/IP
Applicatie
Outlook Express
Internet Explorer
IRC
Computer
Communicatieinterface
(Modem/Netwerkkaart)
OSI Toepassing
TCP/IP en het OSI model
Ook TCP/IP maakt gebruik van het basismodel van OSI
applicatie
presentatie
sessie
Basismodel OSI
transport
netwerk
datalink
fysieke laag
Het model is op een aantal lagen samengevoegd, waarbij sommige lagen meerdere
functies op zich nemen
De hoofdreden hiervoor is dat de applicaties o.a. hetzelfde protocol aanspreken, en dus
de presentatie en sessielaag overbodig worden.
Vergelijking OSI
OSI
Model
TCP/IP Architectuur
TCP/IP
TCP/IP Protocollen
applicatie
presentatie
applicatie
FTP
SMTP
Telnet
DNS
BootP
RIP
SNMP
sessie
transport
netwerk
UDP
IP
Internetlaag
datalink
network
Access laag
fysieke laag
TCP
transport
IEE-802.3
(ethernet)
IEE-802.5
(tokenring)
X.25
ISDN
SLIP
PPP
IP Adressering
Het NIC (Network Information Center) in Amerika kent IP adressen toe aan bedrijven en
instellingen die hun PC en/of netwerk op het Internet willen aansluiten.
Een IP adres bestaat uit 4 bytes, het is gebruikelijk om deze in Decimale waarden neer te
zetten. De reden hiervoor is dat wij gemakkelijker decimalen kunnen onthouden en mee
kunnen rekenen als met binaire waarden (in tegenstelling tot computers, welke
gemakkelijker binair rekenen)
Dit is een voorbeeld van een IP adres
195.23.162.1
(Binair is dit 11000011.0010111.10100010.0000001)
Een IP adres kan NOOIT boven 255.255.255.255 komen
De reden voor dit is, dat het adres binair maximaal
11111111.11111111.11111111.11111111
is, en dit adres is decimaal 255.255.255.255
IP Adressering
Om het routeren van datavelden te vergemakkelijken, is een IP adres opgesplitst in
Netwerk en Host identificatiebits.
Hosts die op hetzelfde netwerk zijn aangesloten hebben het zelfde Netwerk Identificatienummer
Het 4 bytes (32 bits) grote IP adres is opgedeeld in klasse A-, B-, C-, D- en E-Adressen
(Uitleg: 1 byte is 8 bits, dus 4 bytes is 4x8=32 bits)
A, B en C klassen worden gebruikt op het Internet
D klassen zijn voor multicasting (dit is verder nu niet van belang)
E klassen zijn gereserveerd voor toekomstig gebruik
IP Adressering - Klassen
Klasse
Laagste netwerkadres
Hoogste Netwerkadres
A
0.0.0.0
127.0.0.0
B
128.0.0.0
191.255.0.0
C
192.0.0.0
223.255.255.0
Dit is de klassentabel met welke IP adressen tot welke klasse behoren, als een Interface om een
netwerkadres vraagt (houd deze en de host goed uit elkaar bij deze uitleg, anders valt de logica
zo weg), is deze altijd het 0 bits adres in het hostidentificatienummer.
In bovenstaand voorbeeld zijn de hostidentificatiebits onderstreept.
Voorbeeld: een Interface heeft IP adres 110.21.55.1, het netwerkadres is nu 110.0.0.0
Voorbeeld 2: Een Interface heeft een IP adres 213.46.83.58 het netwerkadres is 213.46.83.0
Het netwerk word ALTIJD aangewezen met de 0 bitreeksen in de hostIP
IP Adressering - Hosts
Klasse
Laagste netwerkadres
Hoogste Netwerkadres
A
0.0.0.0
127.0.0.0
B
128.0.0.0
191.255.0.0
C
192.0.0.0
223.255.255.0
HOEVEEL hosts kunnen we per netwerk nu aansluiten ?
Daarvoor gaan we even brainstormen met simpel binair rekenen.
Een IP adres bestaat dus uit BINAIRE cijfers (1en en 0en)
Bijvoorbeeld 1.1.1.1 word dus EIGENLIJK gezien als: 00000001.00000001.00000001.00000001
en 128.81.8.2 word omgerekend naar 10000000.01010001.00001000.00000010
(De simpelste manier om dit uit te rekenen is de windows rekenmachine)
IP Adressering - Hosts
Klasse
Laagste netwerkadres
Hoogste Netwerkadres
A
0.0.0.0
127.0.0.0
B
128.0.0.0
191.255.0.0
C
192.0.0.0
223.255.255.0
HOEVEEL hosts kunnen we per netwerk nu aansluiten ?
Daarvoor gaan we even brainstormen met simpel binair rekenen.
Een adres bestaat dus uit 32 bits, en elke bit heeft 2 mogelijkheden (1 of 0)
Nemen we dus een klasse A netwerk, kunnen we daar 224 = 16 777 216 adressen
aan toewijzen, want we hebben 3x8 hostidentificatiebits
(3 x 8 bits = 24 bits, en een bit heeft 2 mogelijkheden, dus 2 24 mogelijkheden)
Nemen we een klasse B netwerk, kunnen we daar 216 = 65536 adressen per netwerk aan toewijzen
Het NIC kan bijv. 221 = 2 097 152 klasse C netwerken toewijzen (192.0.0 tot 223.255.255),
waar bij elk netwerk 28 = 256 hosts per netwerk kunnen worden aangesloten.
Gateways / Routers
Om verschillende IP netwerken met elkaar te verbinden, worden er routers (gateways) gebruikt.
Host A
128.81.10.1
Host B
128.81.8.2
Computer
Server
Netwerk: 128.81.0.0
Netwerk A
TCP/IP Router
128.81.5.2
195.1.2.1
Host C
195.1.2.2
Laptop
Host D
195.1.2.3
Workstation
Netwerk: 195.1.2.0
Netwerk B
Een router heeft 2 (of meer) netwerkkaarten met voor elk netwerk een eigen IP adres. Door
middel van routeringstabellen zal de router het verkeer van Netwerk A wat bestemd is voor
Netwerk B oversturen.
Als we geen gebruik zouden maken van routers, zou bij een groter netwerk zoveel verkeer
gegenereerd worden, dat het zou bezwijken onder zijn eigen last.
Segmenten (subnetten)
Een netwerk kan bestaan uit verschillende segmenten (ook wel subnetten genoemd).
Het is natuurlijk onmogelijk om bijvoordbeeld een klasse A netwerk te hebben (Bijvoorbeeld
120.0.0.0) en hier 16 777 216 werkstations op aan te sluiten.
Dan bezwijkt natuurlijk het netwerk onder zijn eigen last en het is onmogelijk om te beheren
(en wie zou er 16 777 216 werkstations hebben ?)
Een deel van het netwerk word bijvoorbeeld opgedeeld in een segment: 120.21.225.0
En een ander deel kan zijn: 120.52.0.0
Host A
Host B
120.21.225.25 120.21.225.5
Computer
Server
TCP/IP Router
120.21.225.30
120.52.0.1
Segment: 120.21.225.0
Segment A
Host C
120.52.68.9
Laptop
Segment: 120.52.0.0
Klasse A
120.0.0.0
Segment B
Host D
120.52.77.4
Workstation
Segmenten (subnetten)
Nu word wel een heel extreem voorbeeld genomen met een klasse A netwerk, maar een klasse B
netwerk zou ook in 2 of meer segmenten opgedeeld kunnen worden.
Het netwerk is bijvoorbeeld: 132.12.0.0
Een systeembeheerder besluit om in dit netwerk bijvoorbeeld de afdeling Verkoop en de grafische
afdeling te scheiden, omdat de grafische afdeling verschrikkelijk veel netwerkverkeer genereert
en het netwerk lang bezet houd met het oversturen van tekeningen.
De systeembeheerder besluit 132.12.0.0 tot 132.12.63.0 aan de afdeling boekhouding toe te
wijzen en 132.12.64.0 tot 132.12.130.0 aan de grafische afdeling
Host A
132.12.0.25
Computer
Host B
132.12.50.6
Server
TCP/IP Router
132.12.0.1
132.12.64.1
Segment: 132.12.0.0 - 132.12.63.0
Boekhoudafdeling
Host C
132.12.85.6
Laptop
Host D
132.12.115.90
Workstation
Segment: 132.12.64.0 - 132.12.130.0
Netwerk:
132.12.0.0
Grafische afdeling
Segmenten - Netmaskers
Nu ontstaat er WEL een probleem
Hoe weet Host A bijvoorbeeld dat Host B op zijn segment zit en de router dus niet hoeft aan
te spreken, en Host C op een ander segment zit en dus de router WEL moet aanspreken ?
Hiervoor zijn Netmaskers uitgevonden
Een Netmasker geeft aan welke IP range (van-tot) bij zijn eigen segment hoort
Host A
132.12.0.25
Computer
Host B
132.12.50.6
Server
TCP/IP Router
132.12.0.1
132.12.64.1
Netmasker: 255.255.192.0
Laptop
Host D
132.12.115.90
Workstation
Netmasker: 255.255.61.0
Segment: 132.12.0.0 - 132.12.63.0
Boekhoudafdeling
Host C
132.12.85.6
Segment: 132.12.64.0 - 132.12.130.0
Netwerk:
132.12.0.0
Grafische afdeling
Berekenen van Netmaskers
Hoewel een netmasker als decimaal word neergezet, MOET deze binair gezien worden.
Om tevens het netmasker uit te rekenen zullen de IP adressen naar binair omgezet moeten worden
Laagste adres in segment: 132.12.0.0
Binair:10000100.00001100.00000000.00000000
Laagste adres in segment: 132.12.64.0
Binair: 10000100.00001100.01000000.00000000
Hoogste adres in segment: 132.12.63.255
Binair: 10000100.00001100.00111111.11111111
Hoogste adres in segment: 132.12.130.255
Binair: 10000100.00001100.10000010.11111111
HOE zijn we nu aan de netmaskers van 255.255.192.0 en 255.255.61.0 gekomen ??
Host A
132.12.0.25
Computer
Host B
132.12.50.6
Server
TCP/IP Router
132.12.0.1
132.12.64.1
Netmasker: 255.255.192.0
Segment: 132.12.0.0 - 132.12.63.0
Boekhoudafdeling
Host C
132.12.85.6
Laptop
Host D
132.12.115.90
Workstation
Netmasker: 255.255.61.0
Segment: 132.12.64.0 - 132.12.130.0
Netwerk:
132.12.0.0
Grafische afdeling
Berekenen van Netmaskers
We gaan eerst het linkersegment berekenen, hiervoor pakken we het hoogste en laagste binaire IP adres
Laagste: 10000100.00001100.00000000.00000000
Hoogste: 10000100.00001100.00111111.11111111
___________________________
Verschil: 11111111.11111111.11000000.00000000
Nu gaan we het verschil bekijken, is de
binaire waarde gelijk komt er een 1, is
deze ongelijk, komt er een 0.
Hé, hier lijkt een nieuw binair IP uit te komen, laten we deze eens omzetten naar decimaal
255.255.192.0
Voila, het netmasker van het linkersegment
Host A
132.12.0.25
Computer
Host B
132.12.50.6
Server
TCP/IP Router
132.12.0.1
132.12.64.1
Netmasker: 255.255.192.0
Segment: 132.12.0.0 - 132.12.63.0
Boekhoudafdeling
Host C
132.12.85.6
Laptop
Host D
132.12.115.90
Workstation
Netmasker: 255.255.61.0
Segment: 132.12.64.0 - 132.12.130.0
Netwerk:
132.12.0.0
Grafische afdeling
Berekenen van Netmaskers
Nu pakken we het rechtersegment
Nu gaan we het verschil weer bekijken,
is de binaire waarde gelijk komt er een
1, is deze ongelijk, komt er een 0.
Laagste: 10000100.00001100.01000000.00000000
Hoogste: 10000100.00001100.10000010.11111111
Verschil: 11111111.11111111.00111101.00000000
___________________________
Rekenen we dit om
255.255.61.0
Voila, het netmasker van het rechtersegment
Host A
132.12.0.25
Computer
Host B
132.12.50.6
Server
TCP/IP Router
132.12.0.1
132.12.64.1
Netmasker: 255.255.192.0
Segment: 132.12.0.0 - 132.12.63.0
Boekhoudafdeling
Host C
132.12.85.6
Laptop
Host D
132.12.115.90
Workstation
Netmasker: 255.255.61.0
Segment: 132.12.64.0 - 132.12.130.0
Netwerk:
132.12.0.0
Grafische afdeling
Warriors of the Net
Gereserveerde IP adressen
In de IP wereld zijn een aantal gereserveerde adressen.
Deze IP adressen mogen niet als IP adres ingevuld worden.
Het netwerkadres (Bijv. 213.46.83.0, dus de 0 bit) hebben we al besproken
Het broadcast adres is soortgelijk, deze is altijd het 255 adres
Een Hostadres zal NOOIT een 255 adres hebben
(Bijv: 213.46.83.255 en 210.40.255.255 zijn ONGELDIGE IP adressen)
Andere gereserveerde IP ranges:
192.168.0.0 tot 192.168.255.255 en 10.0.0.0 tot 10.0.255.255
Gereserveerd voor intern LAN gebruik, deze IP’s komen NIET op het internet voor
NAT
(Network Adress translation)
Om een heel bedrijf een apart Internet IP adres te geven kan zeer kostig zijn.
Tevens is dit niet erg veilig (elke bedrijfsPC direct op het internet)
Om een heel netwerk op Internet te zetten via het LAN is een truc bedacht
Deze truc maakt het mogelijk om via 1 IP adres een heel netwerk op het internet te zetten
Dit heet NAT (Network Adress Translation)
192.168.10.2
192.168.10.37
192.168.10.6
Computer
Computer
Server
192.168.10.218
Minicomputer
Workstation
Satellite dish
LAN
Laptop
Workstation
192.168.10.0
192.168.10.1
Internet IP
195.241.50.21
Router
Internet
Satellite
NAT
(Network Adress translation)
Hoe werkt NAT ?
Op alle clientPC’s in het LAN word de router als Gateway ingevuld bij de TCP/IP instellingen, als dit word
gedaan zal ELK adres dat BUITEN het netmasker valt via de Router aangesproken worden.
De router zal vervolgens tabellen bijhouden welk intern IP op het LAN, een request doet naar welk IP op
het Internet. Alle data die dan van dat IP terugkomt zal naar die Interne host worden teruggestuurd. In
praktijk werkt dit ZO goed, dat het lijkt alsof het Internet een deel van het LAN is
192.168.10.2
192.168.10.37
192.168.10.6
Computer
Computer
Server
Satellite dish
192.168.10.0
192.168.10.218
Minicomputer
Workstation
LAN
Laptop
Workstation
192.168.10.1
Netmasker: 255.255.255.0
Internet IP
195.241.50.21
Router
Internet
Satellite
NAT
Port forwarding
Het kan voorkomen dat een bedrijf zelf een webserver heeft staan
Een mogelijkheid is dan hiervoor een apart IP adres aan te vragen, aangezien de router op het
huidige IP adres staat. Nadeel is natuurlijk wel dat dit extra kosten meebrengt
Een andere mogelijkheid is om al het INKOMENDE verkeer van de webserver (al het inkomende
verkeer op poort 80, de WWW poort) door te sturen naar de webserver.
Zo is het mogelijk op het interne LAN servers te hebben die met 1 of meer poorten gelijk op
het buitennetwerk staat (virtueel gezien dan)
Simpeler gezegd:
De router zal een directe link leggen tussen het Internet en de Webserver op poort 80
Computer
Webserver
Virtuele link op poort 80
Internet
LAN
Router
Computer
NAT
Port forwarding
Voorbeeld
www.mijnbedrijf.nl
Tikt http://www.mijnbedrijf.nl/ in
Computer
Computer
Webserver
Virtuele link op poort 80
(poort 80 verzoek)
Internet
LAN
Computer
Antwoord op poort 80
Router
De ROUTER heeft het IP adres van
www.mijnbedrijf.nl, niet de webserver
En dus krijgt de PC de site van het bedrijf te zien
Firewalls
Een firewall zorgt ervoor dat ongewenst verkeer vanaf het Internet niet op het LAN terecht
komt, maar deze zorgt er ook voor dat bepaalde gegevens niet op het Internet komen.
Een firewall kan worden gezien als een filter, alles wat er niet door mag word eruit gefilterd
De meeste tegenwoordige routers hebben een ingebouwde firewall functie
Als er op een netwerk bijvoorbeeld geen IRC (Chat) naar het internet mag worden gebruikt, is
het mogelijk om de uitgaande IRC poort (6667) dicht te zetten voor verkeer.
De instelbare firewall regels zijn erg flexibel, het is bijvoorbeeld mogelijk om een bepaalde
Interne IP range alleen maar toegang tot het chatten te geven.
Een ander voorbeeld is dat een bepaalde IP range niet op de webserver mag kijken en dus wordt
geblokkeerd
Einde basiscursus TCP/IP
Eventueel naslagwerk: Datacommunicatie TM7
W.J. Roos, A.H. Martens
ISBN: 90-401-0782-3
Download