|
Hosts, werkstations en services.In tegenstelling tot veel andere netwerkoperating systemen, is er bij de implementatie van IP nooit een groot verschil geweest tussen werkstations en servers. In principe wordt ieder station een host genoemd. Of die host als server of als werkstation of als beide gebruikt wordt, is aan de beheerder / gebruiker. Mede doordat het internet gebaseerd is op open standaarden, en er door vele duizenden mensen programma's geschreven zijn op alle mogelijke platformen, zowel commercieel als niet commercieel, heeft dit protocol zo'n enorme vlucht kunnen nemen. Momenteel zijn we zover dat er voor praktisch alle platformen en toepassingen IP implementaties beschikbaar zijn.
Hoe werkt dat nu?We introduceren hier weer even het oude concept van server en werkstation. De server is de gene die de service aanbiedt, het werkstation de gene die de service wil afnemen. Dit is even tamelijk zwart-wit gesteld, in de praktijk is de scheidslijn lang niet altijd zo duidelijk te trekken. Stel ik wil een webserver en ftp server beschikbaar stellen (zodat mensen bij mij kunnen surfen en files kunnen downloaden). Hoe kan mijn "server" nou weten of iemand iets wil downloaden via FTP of komt browsen via WWW?Protocol nummersKijken we naar het IP protocol, dan komen we een aantal lagen tegen. Het eerste wat je tegen komt is een source en destination IP adres. Het destination adres wordt gebruikt om het pakket te routeren, het source adres wordt door de andere partij gebruikt om het pakket weer terug te kunnen sturen. Vervolgens komen we het protocol nummer tegen.Binnen het IP protocol zijn een aantal specifieke protocollen gedefinieerd, waarvan de protocollen tcp(6), udp(17) en icmp(1) de bekendsten zijn. (kijk op http://www.iana.org/assignments/protocol-numbers voor een uptodate overzicht. De veschillende protocollen hebben zo hun eigen eigenschappen. Zo is het ICMP protocol een puur lowlevel protocol, bedoeld voor het troubleshooten en opvragen van netwerk parameters. TCP en UDP zijn de protocollen waar we hier iets dieper opin zullen gaan.
We beginnen met UDP. Dit is het eenvoudigste protocol, omdat het een
zogenaamde connectionless service levert. Connectionless wil zeggen dat het
protocol geen idee heeft of het eerste, danwel het laatste pakketje van een
sessie verstuurd wordt en ook niet hoeft bij te houden of alle pakketjes wel
goed bij de ontvangende kant aangekomen zijn. Dit laat het protocol allemaal
over aan de hoger liggende lagen (denk nog eens terug aan het OSI model).
Willen applicaties dus zeker weten of alle pakketjes netjes aangekomen zijn,
dan moeten ze dit zelf controleren (vragen aan de partner aan de andere kant).
Typisch toepassingen voor dit protocol zijn het uploaden van configuratie
files naar devices die mogelijk onvoldoende resources hebben voor een TCP
implementatie, het sturen van systeem berichten (TCP zou in dergelijke
gevallen te traag danwel te veel overhead opleveren als er slechts 1 pakketje
verstuurt hoeft te worden) en een nieuwe toepassing is het gebruik bij
telefonie over IP (hier heeft hertransmissie immers geen zin, dan maar een
kraaktje). Poortnummers.Vervolgens worden binnen de protocollen poortnummers op de verschillende services adresseerbaar te maken. Deze poortnummers (ookwel sockets genoemd) worden gebruikt door de protocolstack om te bepalen naar welk programma de data gerouteerd moet worden. Programma's die luisteren op dergelijke poorten (deze worden ookwel deamons genoemd) moeten aan de TCP stack vertellen dat zij de data die op bijvoorbeeld poort 80 (= www) binnen komt doorgestuurd moet worden naar de webserver. Poort 21 daarentegen is in principe gereserveerd voor FTP verkeer. Deze poorten kun je in principe als beheerder vrij kiezen, echter voor de meeste protocolen zijn er in principe poorten gereserveerd. De clientapplicaties zullen deze poorten gebruiken als er verder niets anders opgegeven wordt. Kijk voor een lijst van deze poortnummers op http://www.isi.edu/in-notes/iana/assignments/port-numbers .Aan de clientkant wordt tijdens het opzetten van een sessie een dynamische poort geopend (geregistreerd in de TCP stack), waarop voor die specifiek gestarte sessie (in combinatie met het service poortnummer) geluisterd wordt. Met de hulp van de IP adressen, protocol nummers en poort nummers zullen per sessie unieke combinaties ontstaan, waardoor het gelijktijdig starten van eventueel meerdere sessie naar verschillende services mogelijk is.
Schematische weergave van een aantal gelijktijdige TCP sessiesVervolg: Bridges, switches, routers en hubs. |
|