TCP/IP in verhouding tot OSI model

advertisement
Termen





LAN
Local Area Network
WAN
Wide Area Network
Node
Via verbinding bereikbaar netwerkstation
Broadcast Een bericht aan ALLE node’s in het netwerk
RAS (Remote Access Service)
 SLIP (Serial Line IP)(niet gecrypt of gecomprimeerd, dus onveilig)
 PPP (Point to Point Protocol) (tot provider data gecrypt)
 PPTP (Point to Point Tunneling Protocol)(gecrypt IN een nieuw IP pakket)
 VPN (Virtual Private Networking)(verbind je eigen netwerken via internet)
Er zijn verschillende soorten netwerken.
Tegenwoordig wordt voornamelijk ethernet gebruikt, voorheen ook wel tokenring
Ethernet (sitecom’s netwerkkaarten) is goedkoper als tokenring en daardoor breder
toepasbaar.
Ethernet is ook bekent als IEEE 802.3 standaard en werkt op basis van CSMA/CD:
Carrier Sensing Multiple Acces / Collision Detect, hetgeen betekent dat de netwerkkaart
luistert of er ‘verkeer’ op de kabel is, zo niet gaat de kaart ‘zenden’. Mocht er een botsing
(collision) plaatsvinden, ontvangt de kaart zijn eigen signaal ‘verminkt’ terug.
Bij tokenring (IBM - IEEE 802.5) bevinden de netwerkstations zich achter elkaar in een
cirkel en zenden om de beurt.
De Nodes mogen om de beurt 10ms zenden. Elke volgende node stuurt dit signaal door.
Voordelen boven Ethernet:
 Geen collision (nodes zenden om de beurt)
 Je weet of je bericht aankomt (anders komt het bij je terug)
 Je weet of het bericht verminkt is
 Je weet of de ontvanger bezig is
 Door vaste zendtijd (10 ms) meer efficientie bij snelheidsvehoging
Ik beperk me verder tot ethernet.
Schematische voorstelling
Stel bovenstaande eens voor met betrekking tot onze e-mail:
Outlook (applicatie) gaat verzenden en ontvangen en vraagt Windows (OS) dit te regelen.
Windows doet een beroep op de service (Exchange) tot ontvangen van mail.
Exchange stuurt een aanvraag naar het TCP/IP protocol (taal)
Het TCP/IP protocol maakt hier een begrijpbaar pakketje van, voor de Adapter (driver)
De driver stuurt dit pakketje naar de hardware (netwerkkaart).
Nu bestaan er 1000-en applicaties en even zoveel soorten hardware, met elk hun eigen driver.
Het is onmogelijk om voor elke applicatie/hardware combinatie een protocol te maken welke
deze aan elkaar koppelt. Het protocol moet dus aan een standaard voldoen.
Deze standaard wordt meestal OSI-model genoemd: (Open Systems Interconnect):
Laag 1: Fysieke laag
Deze laag is verantwoordelijke voor de besturing van de hardware: Manier van transport, pin
layout van de netwerkkaart, PCI of ISA bus etc.
Laag 2: Adressering
Deze laag voegt logische informatie toe aan de data afkomstig van de fysieke laag, zoals
informatie waar de data naar toe moet, welke computer de data verzend, etc.
Laag 3: Routering
Deze laag voegt het fysieke adres van de ontvanger toe aan het pakket ontvangen van de
eerste 2 lagen. (IP-adres vertalen in MAC adres) en kent prioriteiten toe. (sommige
dataverzending heeft een hogere prioriteit dan andere. BV e-mail is minder snelheids
afhankelijk als video). Daarnaast verzorgd het de juiste route van het pakket.
Laag 4: Transport
Deze laag is verantwoordelijke voor de controle of het pakket foutloos is ontvangen. Ook
‘hakt’ het te lange pakketten in kleinere pakketjes(segmenten).
Ook is deze laag verantwoordelijk voor het ontvangen van dit soort segmenten en voor het
weer correct aan elkaar ‘plakken’ tot een geheel pakket. Ook is deze laag verantwoordelijk
voor ‘ontvangstbevestiging’. Deze laag is voornamelijk verantwoordelijk voor foutcontrole.
Laag 5: Sessie
Deze laag definieert hoe 2 computers een verbinding opbouwen, synchroniseren,
onderhouden en be-eindigen. Hier wordt “Heb je de data die ik je stuurde, juist ontvangen”
geregeld.
Laag 6: Presentatie
Deze laag zorgt ervoor dat de data welke verzonden wordt er bij de ontvanger hetzelfde
uitziet.
BV. Wanneer ik een ‘5’ intik op een MAC, ziet dit er in bitjes anders uit als op een Windows
PC. Deze laag zorgt ervoor dat wanneer ik een ‘5’ verstuur vanaf een MAC, een windows PC
ook een ‘5’ ontvangt.
Laag 7: Applicatie
Deze laag bepaald hoe de uitwissling plaatsvind tussen het fysieke netwerk en de
netwerkapplicatie (zoals bv een e-mail service, file/print service, etc.)
Het meest gebruikte netwerk protocol TCP/IP werkt ook volgens het bovenstaande OSI
model.
Eigenlijk is TCP/IP geen protocol, maar een protocol stack, waarin meerdere protocollen zijn
samen gebracht.
TCP/IP bestaat uit de volgende protocollen:





IP (Internet Protocol)
Geeft een netwerkadres aan een node
ARP (Adres Resource Protocol)
Koppelt een Mac. Adres aan een IP adres
ICMP (Internet Control Message Protocol)
‘memo’ berichten voor protocollen onderlingen (bv ping opdracht)
UDP (User Datagram Protocol)
Spreekt direct een service poort aan.
Applicatie wil printen op een netwerkprinter
UDP send deze aanvraag direct naar UDP van de (in dit geval) printerserver, welke
vervolgens antwoord geeft. Echter vind er geen controle plaats (vandaar de vraag van
windows “Is de testpagina goed afgedrukt” aangezien de applicatie dit op geen enkele
manier kan weten)
TCP (Transmission Control Protocol)
Doet hetzelfde als UDP, echter met foutcontrole. Datapakketten kunnen onderweg in de
war raken of kwijtraken (Packetloss, kan alleen bij routers plaatsvinden, immers op een
goede kabel vind geen verlies plaats) controlle vind plaats via ‘3-way handschake’
3-way handshake
- Ik ga zenden
- Ik let op
- Ok ik weet dat je op let
TCP/IP in verhouding tot OSI model
NETBIOS
NetBIOS is ontwikkeld door IBM.
In een grijs verleden hoorde de netwerkhardware en software (applicatie en driver) bij elkaar.
Door deze custom made systemen was het noodzakelijk, wanneer er over gestapt werd naar
andere netwerkhardware, men ook andere netwerksoftware moest gebruiken.
Men stapte dus niet snel over van hardware.
Omdat IBM graag hun netwerkkaarten wilde verkopen, heeft men een algemeen ‘protocol’
ontwikkeld, welke elke applicatie aan elk soort hardware kon koppelen.
Feitelijk de voorloper van de netwerkkaart driver.
Windowsapplicaties maken nog steeds gebruik van NetBIOS over TCP/IP, als service. Het is
zelfs nog rechtstreeks te gebruiken via het NetBeui protocol (netbios extended user interface).
WINS
Netbeui kan geen nummers (ip-adressen) en namen koppelen op een ander subnet. Dit is op te
lossen dmv een WINS service (Windows Internet Naming Service).
WINS gebruiken we dus alleen wanneer we met het netbeuiprotocol en meerdere subnetten
werken.
IP-Routing
Wanneer je twee of meer aparte netwerken hebt (stel je bv de situatie sitecom/pirox voor),
welke wel fysiek met elkaar verbonden zijn dmv een netwerkkabel, kan je de PC’s in de twee
of meer aparte LAN’s toch met elkaar verbinden, zonder tussenkomst van een router.
Je kan een PC namelijk ook IP-routing laten doen.
Stel 3 netwerken voor, 1 in 10.0.0.0 range, 1 in 20.0.0.0 range en een derde in 30.0.0.0.
Zelfs wanneer een PC uit 10.0.0.0 dmv een hub verbonden is met 30.0.0.0, is een verbinding
tussen die twee pc’s niet mogelijk zonder IP-Routing.
Bovenstaand voorbeeld schematisch weer gegeven:
In het schematische voorbeeld zie je de laatste PC uit de 10.0.0.0 range ‘koppelen’ met de
eerste PC uit de 20.0.0.0 range. Dit is mogelijk door die PC’s twee IP-adressen te geven. De
laatste pc van 10.0.0.0 maakt dan dus deel uit van zowel de 10.0.0.0 range als de 20.0.0.0
range:
De PC uit de verschillende segmenten zijn nu nog steeds niet bereikbaar, we moeten in elke
PC een routing-tabel opgeven.
Dit kunnen we doen in een dos-box met het commando:
route add <segment ip> mask <segment mask ip> <gateway ip>
In bovenstaand voorbeeld moeten we het volgende opgeven in desbetreffende PC’s:
PC 10-1
Route add 20.0.0.0 mask 255.0.0.0 10.0.0.3
Route add 30.0.0.0 mask 255.0.0.0 10.0.0.3
PC 10-2
Route add 20.0.0.0 mask 255.0.0.0 10.0.0.3
Route add 30.0.0.0 mask 255.0.0.0 10.0.0.3
PC 10-3
Route add 30.0.0.0 mask 255.0.0.0 20.0.0.4
(fysiek al verbonden met 10 en 20, dus alleen routeren naar 30)
PC 20-1
Route add 10.0.0.0 mask 255.0.0.0 20.0.0.1
Route add 30.0.0.0 mask 255.0.0.0 20.0.0.4
PC 20-2
Route add 10.0.0.0 mask 255.0.0.0 20.0.0.1
Route add 30.0.0.0 mask 255.0.0.0 20.0.0.4
PC 20-3
Route add 10.0.0.0 mask 255.0.0.0 20.0.0.1
(fysiek al verbonden met 20 en 30, dus alleen routeren naar 10)
PC 30-1
Route add 10.0.0.0 mask 255.0.0.0 30.0.0.1
Route add 20.0.0.0 mask 255.0.0.0 30.0.0.1
PC 30-2
Route add 10.0.0.0 mask 255.0.0.0 30.0.0.1
Route add 20.0.0.0 mask 255.0.0.0 30.0.0.1
PC 30-3
Route add 10.0.0.0 mask 255.0.0.0 30.0.0.1
Route add 20.0.0.0 mask 255.0.0.0 30.0.0.1
Nu kunnen alle pc’s in elk segment elkaar bereiken
Subnetten
Het subnet masker bepaalt welk gedeelte van het IP-adres variabel is:
192.168.0.1
255.255.255.0
In dit voorbeeld is door het subnetmasker bepaalt dat de eerste 3 getallen de range bepalen.
Het laatste getal is variabel. We kunnen dus 255 PC in de range 192.168.0 gebruiken.
Wanneer we meer dan 255 netwerkstations (nodes) willen gebruiken, maskeren we allen de
eerste 2 getallen van de range
192.168.0.1
255.255.0.0
Nu kunnen we 255 x 255 PC’s gebruiken in de range 192.168
Voor hele grote netwerken kunnen we alleen het eerste getal maskeren:
192.168.0.1
255.0.0.0
Nu kunnen we totaal 255 x 255 x 255 nodes gebruiken in de range 192
Deze manieren van maskeren heten klasse A, B en C
A. 255.0.0.0
B. 255.255.0.0
C. 255.255.255.0
Klasse C is het meest gebruikt. Toch ‘verspillen’ we hier vaak IP-adressen mee.
Immers al gebruik je in een klasse C subnet maar 3 nodes, blijven 252 IP adressen ongebruikt.
Meestal is dit geen probleem, echter in sommige situaties wel. We kunnen ook binair
maskeren:
We gaan uit van een range 10.32.0.0
Ip adressen gaan nooit verder dan 255 (8-bits)
10 = 00001010. 32 = 00100000. 0 = 00000000. 0 = 00000000
10.32.0.0 = 00001010.00100000.00000000.00000000
Kortom, alleen de EERSTE 11 bits bepalen de range, we kunnen dus ook volstaan met de
eerste 11 bits maskeren:
00001010.00100000.00000000.00000000
11111111.11100000.00000000.00000000
255
224
0
0
10.32.0.0
255.224.0.0
Dit is een 10.32.0.0/11 subnet. In deze range kunnen we tot 10.63. maskeren zonder verlies
van IP-adressen:
00001010.00111111.00000000.00000000
10
63
0
0
11111111.11100000.00000000.00000000
255
224
0
0
Troubleshooting
Altijd beginnen bij het meest eenvoudige:
Kaarten goed geinstalleerd
Link lampje brandt
Gebruikers fout:
RTFM
(Read The Fucking Manual)
EEOC
(Equipment Exceeds Operators Capability)
PEBCAK
(Problem Exists Between Chair And Keyboard)
ID ten T error (ID10T)
Ping opdracht: pakket data wordt verstuurd over het netwerk, de ontvangende kaart geeft
antwoord.
Wanneer een PING opdracht werkt, is hardwarematig alles in orde.
Immers een ping opdracht vind plaats in het ICMP protocol van het TCP/IP stack, BOVEN de
fysieke lagen van het OSI model.
TTL gegevens in een ping opdracht staan voor het aantal gepasseerde routers.
Je kan je voorstellen dat wanneer 2 routers per ongeluk naar elkaar zouden verwijzen, de ping
opdracht eeuwig in een virtueel ping-pong spel gevangen zou komen. Om dit te voorkomen
telt TTL bij elke router 1 af. TTL begint op 128, en wanneer 0 bereikt wordt zonder op de
plaats van de bestemming te zijn aangekomen krijgen we een ‘time-out’
Tracert opdracht: het ‘volgen’ van een ping opdracht.
Vooral handig wanneer bepaalde pagina’s op internet niet openen.
Tracert geeft namelijk aan over welke ‘knooppunten’ een pakket gaat. Er is dus terug te
vinden welke router als laatste succesvol bezocht werd. Wanneer het laatste IP-adres zich
NIET lokaal bevind, is weer duidelijk dat de hardware prima functioneert
ARP opdracht: wie heb ik gepingt en door wie ben ik gepingt
Download