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