Inleiding Deze praktische opdracht gaat over hoe computers elkaar vinden op internet.
Het binaire stelsel De gegevens in de computer worden opgeslagen in zogenaamde bits. Een bit is een getal wat slechts de waarde van een 1 of een 0 kan aannemen. Dit zijn een soort elektrische schakelaars. Deze bits kunnen twee waarden hebben: aan (geladen = 1) of uit (ongeladen = 0). Ook wel true (1) or falls (0) genoemd.
Om de waarde van de bits numeriek weer te geven, wordt er gebruik gemaakt van enen en nullen, bijv. 0-0-1-0-1-1-0-1.
De enen vertegenwoordigen de waarde \"aan\" en de nullen de waarde \"uit\".
Nu zult u zich waarschijnlijk afvragen hoe de computer nu in staat is om, alleen gebruik makend van die enen en nullen, alle andere tekens zoals de getallen van twee tot en met negen (nul en één kent hij al) het gehele alfabet in kleine én hoofdletters en natuurlijk alle andere symbolen zoals #, &, é enz. weer te geven.
Dit ga ik nu proberen uit te leggen.
De computer verwerkt alle bits in paren van acht. Zo\'n paar van acht wordt een byte genoemd.
Zo zijn alle waarden mogelijk tussen de 00000000 en de 11111111. Dit zijn exact 256 mogelijkheden, van 0 (00000000) tot en met 255 (11111111). Waarom dit er precies 256 zijn, vertel ik later. Twee bytes heten een word en twee word’s (is vier bytes) heten een double of een longword. Een longword bestaat dus uit 32 bits, en 8 bytes. Een longword is dus vier keer een cijfer tussen de 0 en 255.
Als de computer een bepaalde waarde heeft gelezen uit de bytes, wordt die waarde vergeleken met een tabel die de waarden van 0 tot en met 255 bevat met bij elke waarde een uniek symbool. Deze tabel wordt ook wel de ASCII tabel genoemd.
Zo vertegenwoordigt ASCII waarde 48 (binaire code: 0-0-1-1-0-0-0-0) bijvoorbeeld het getal \'0\' en hoort de hoofdletter M bij de ASCII code 77 (binaire code: 0-1-0-0-1-1-0-1).
Niet alleen de leesbare symbolen hebben een ASCII waarde, maar ook bijvoorbeeld de ENTER toets (ASCII waarde 13, binaire code: 0-0-0-0-1-1-0-1) of SPATIE (ASCII waarde 2, binaire code: 0-0-0-0-0-0-1-0).
Hieronder een tabel waarin een aantal veelgebruikte symbolen staan met daarachter de bijbehorende ASCII waarde:
0 = 48 A = 65 K = 75 U = 85 a = 97 k = 107 u = 117 spatie = 32
1 = 49 B = 66 L = 76 V = 86 b = 98 l = 108 v = 118 ! = 33
2 = 50 C = 67 M = 77 W = 87 c = 99 m = 109 w = 119 , = 44
3 = 51 D = 68 N = 78 X = 88 d = 100 n = 110 x = 120 . = 46
4 = 52 E = 69 O = 79 Y = 89 e = 101 o = 111 y = 121 è = 138
5 = 53 F = 70 P = 80 Z = 90 f = 102 p = 112 z = 122 é = 130
6 = 54 G = 71 Q = 81 [ = 91 g = 103 q = 113 ê = 136
7 = 55 H = 72 R = 82 \\ = 92 h = 104 r = 114 ö = 148
8 = 56 I = 73 S = 83 ] = 93 i = 105 s = 115 % = 37
9 = 57 J = 47 T = 84 * = 94 j = 106 t = 116 @ = 64
Als de computer dus de binaire waarde 01100011 (is 99 in decimaal getalstelsel) leest, en hij vergelijkt die waarde met de ASCII tabel, weet hij dus dat er een kleine letter \"c\" wordt bedoeld.
Het binaire getallenstelsel Wij kennen allemaal het tientallige, decimale stelsel. In het decimale stelsel tel je van 0 tot en met 9 en dan zijn alle daarin gebruikte cijfers op. Wil je verder tellen, dan zet je een 1 voor het eerste cijfer en tel je verder (10, 11, 12, 13, enz). Als je dan bij 19 bent aangekomen, en je wilt verder tellen, wordt de 1 aan het begin een 2 (20, 21, 22, 23 enz). Zo ga je door totdat je bent aangekomen bij 99.
Daarna zet je er weer een 1 voor en je telt weer verder. Nu kun je weer verder tellen tot en met 999 voordat er weer een cijfer voor komt.
In het binaire stelsel gaat dit net zo, maar er is één verschil: Er zijn maar twee cijfers, een 0 en een 1.
Hiermee kun je dus tellen van 0 tot 1 en dan zijn de cijfers op. Als je nu verder wilt tellen, zet je een 1 voor het eerste cijfer en tel je verder (10, 11). Bij 11 aangekomen zijn de cijfers weer op en zet je weer een 1 voor het getal (100, 101, 110, 111) en zo ga je door.
Om het een beetje te verduidelijken geef ik hieronder een tabel met de getallen 1 tot en met 25 met daarachter hun binaire waarden:
1 = 00000001 2 = 00000010 3 = 00000011 4 = 00000100 5 = 00000101
6 = 00000110 7 = 00000111 8 = 00001000 9 = 00001001 10 = 00001010
11 = 00001011 12 = 00001100 13 = 00001101 14 = 00001110 15 = 00001111
16 = 00010000 17 = 00010001 18 = 00010010 19 = 00010011 20 = 00010100
21 = 00010101 22 = 00010110 23 = 00010111 24 = 00011000 25 = 00011001
Van binair naar decimaal Als je een binair getal wilt omrekenen naar een decimaal getal, maak je dus gebruik van machten van twee.
Binaire getallen worden gelezen van rechts naar links.
Een handige manier om binaire getallen om te rekenen naar decimale getallen, is om boven elke positie de bijbehorende waarde te schrijven. De rechter bit krijgt waarde 20 = 1, de bit links daarvan krijgt waarde 21 = 2, die daar weer links van krijgt waarde 22 = 4 en zo ga je door totdat alle bits een waarde hebben. Om dit wat duidelijker te maken geef ik een voorbeeld van een binair getal in de onderstaande tabel (met het binaire getal 10101101):
Waarde 128 64 32 16 8 4 2 1
Getal (bin) 1 0 1 0 1 1 0 1
Om nu de decimale waarde van het getal 10101101 te berekenen doe je het volgende:
bereken bij elke positie Waarde x Getal en tel deze bij elkaar op:
1 x 128 + 0 x 64 + 1 x 32 + 0 x 16 + 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 173
Een snellere manier (het komt eigenlijk op hetzelfde neer) is: tel alle waarden waarbij het getal 1 is bij elkaar op:
128 + 32 + 8 + 4 + 1 = 173
Aan de hand van deze methode is het ook gemakkelijk om het maximaal haalbare getal met één byte (= 8 bits) te berekenen. Dit is namelijk het geval als alle bits 1 als waarde hebben:
Waarde 128 64 32 16 8 4 2 1
Getal (bin) 1 1 1 1 1 1 1 1
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
Het aantal mogelijkheden kun je nu ook uitrekenen: de maximale waarde +1 (Omdat er ook een waarde 00000000 bestaat).
Er is ook een rekenkundig handigheidje om het aantal mogelijkheden uit te rekenen:
De waarde van de hoogste bit moet met twee vermenigvuldigd worden. Bij acht bits is het aantal mogelijkheden dus: 2 * 128 = 256.
IP adres (Internet Protocol address) Een internet adres is gekoppeld aan een IP adres (als je dus het IP adres van bijv. de Kaj Munk site intikt in plaats van het ‘gewone’ www.kajmunk.nl kom je ook ‘gewoon’ op de site van het Kaj Munk College). Het IP adres van het maandblad KIJK is bijv. 193.172.33.2 dit zou je gewoon in de ‘adresbalk’ van uw internet programma (Internet Explorer of Netscape) kunnen tikken, dit heeft hetzelfde effect als dat je ‘gewoon’ www.kijk.nl intikt. Een IP adres is een getal dat eigenlijk een double of een longword is. Door middel van een DNS server kan het IP adres van een site gevonden worden, waarna de computer naar het IP adres (site) gaat.
Hoe veel IP adressen zijn er theoretisch mogelijk? Een IP adres bestaat uit een double of een longword , dat is dus vier keer een byte. Een byte heeft 256 mogelijkheden. Dus 2564 of wel 256x256x256x256. Het antwoord is 4.294.967.296. In de praktijk is dit aantal iets kleiner omdat er een aantal IP adressen gereserveerd zijn.
Maar…
Twee jaar geleden kwam de Internet Assigned Numbers Authority erachter dat deze 4 miljard mogelijkheden eigenlijk ietwat aan de krappe kant waren. Zeker als je bedenkt dat in de toekomst iedere mobiele telefoon, televisie enz. zijn eigen IP adres krijgt. Dus leek het de IANA een geruststellende gedachte om de ‘gewoonlijke’ 32-bits code te vervangen door een 128-bits code(dat zijn dus 4 longwords, en 16 bytes).
Er zijn nu dus (ga er even voor zitten) 340.282.366.920.938.463.374.607.431.786.211.456 nieuwe adressen beschikbaar.
DNS (Domain Name System) Een DNS server is een server waarop adressen samen met de bij behorende IP adressen staan. Zie de DNS server als een soort bibliotheek. Je vraagt een titel, de bibliotheekjuffrouw zoekt de titel op (mits je haar heel lief aankijkt), jij krijgt de titel. Maar aan die titel alleen heb je niets, en dus klap je het boek open en begint de informatie uit het boek te halen. Zo ongeveer werkt een DNS server. Aan de hand van het IP-adres kan de computer de site vinden. Als de DNS server het adres niet kent, gaat hij kijken hoe ver hij het wel kent. Daarna wordt het bericht naar de volgende DNS server gestuurd die weer gaat kijken of hij het kent. Als dat niet het geval is stuurt die het weer verder tot het IP-adres gevonden wordt. Tenzij het IP adres nog niet in gebruik is. Dan stuurt de server het bericht dat de site niet gevonden kan worden (de wellicht bekende HTTP 404 foutmelding).
Hoe een DNS server werkt… Een DNS server werkt volgens het binaire zoeken. Het binaire zoeken bestaat uit een digitaal schema (lijst) wat een beetje lijkt op het principe van een kansboom. Elk object (site of programma) heeft een eigen ‘key’. Een soort vingerafdruk, een pincode, iets wat specifiek is voor elk object. Zo’n key is een veelvoud van 2. Voorbeeld: een lijst bestaat uit 32 sites, hebben de sites ieder een eigen code, van 0 tot 31, dus 00000 tot 11111. Als er, een ander voorbeeld, een lijst is die slechts bestaat uit 29 sites worden er twee (31) zogenaamde dummy keys aan toe gevoegd. De getallen moeten immers voorkomen in het binaire stelsel. De 29 sites kunnen dus van 0 tot 28 genummerd worden, dus 00000 tot 11100. De dummy keys zijn nu; 11101, 11110 en 11111.
Nu we dit weten kunnen we gaan zoeken. Ik ga nu een site zoeken die als nummer 5 staat geregistreerd. Ik neem, om het een beetje moeilijk te maken, een tabel (boom) met 13 sites, er zijn dus 3 dummy keys want 16 is het eerst volgende binaire getal. Een DNS server vindt de site door middel van de volgende strategie toe te passen. De server ‘splitst’ de tabel (boom) in tweeën. Hij kijkt in beide helften of de gezochte site er in voor komt. De helft waar de site niet in voor komt laat hij ‘links liggen’. De helft waar de site in voor komt splitst hij nogmaals, en dit gaat zo door tot de server de site gevonden heeft. Althans de key, hij heeft de key gevonden.
Ik zal het nu even verduidelijken door het visueel voor te stellen.
Een key stelt een x voor.
De gewenste key (site) stelt een + voor.
Een dummy key stelt een o voor.
xxxx+xxxxxxxxooo De ‘orginele’ lijst
xxxx+xxx xxxxxooo De gesplitste lijst
xxxx+xxx De lijst die ‘verder mag’
xxxx +xxx De nogmaals gesplitste lijst
+x xx De gesplitste lijst
+ x De server heeft hem bijna
+ De key is gevonden
U moet zich nu even voor stellen dat wanneer u thuis een internet adres intikt de DNS server voor u ongeveer ditzelfde doet, enkel er zijn geen 13 keys en 3 dummy keys, er zijn miljarden keys die de server gaat splitsen. En, de server werkt niet met x, + of o, nee de server werkt met binaire getallen die uit honderden zoniet duizenden nullen en ééntjes bestaat. Een key bestaat dus honderden zoniet duizenden nullen en ééntjes!
Proxy server Een proxy server is een server welke gebruikt word door internetproviders, zoals World Online of Planet Internet. Een proxy server is een server die IP adressen onthoud zodat de computeradressen waar hij al eerder geweest is makkelijk vind. En dus niet eerst aan de DNS server hoeft te vragen wat het IP adres is. Bovendien is de proxy server een apparaat dat onder meer de functie heeft van een firewall. Een firewall is iets wat hackers op afstand moet houden, een firewall blokkeert de toegang voor ongewenste gasten. Een groot misverstand is dat een proxy server géén gebruikt maakt van cookies, een ‘gewone’ PC doet dat wel, maar dat is meer om wachtwoorden en inlognamen te bewaren en ze tevoorschijn te toveren als men weer op de desbetreffende site komt. Zoals e-mail sites zoals Hotmail en Yahoo! of online casino’s e.d.
TCP/IP (Transmission Control Protocol/Internet Protocol) IP is een techniek om adres pakketjes met informatie te verzenden van de ene computer naar een andere computer op het netwerk. Het pakketje bevat het adres van de zender en de ontvanger (hier maken hackers gebruik van om codes van creditcards te kraken e.d. omdat zo’n pakketje nog veel meer informatie bevat). Deze informatie wordt gebruikt als route naar de gewenste computer. Met behulp van een DNS server. De ontvangende computer stuurt dan de internetsite terug naar de andere computer. Omdat er een limiet is aan informatie die je kunt versturen word de informatie in kleine pakketjes verpakt (gecomprimeerd en in stukjes gehakt, dit verklaart het verschijnsel dat wanneer men plaatjes ‘laad’ het plaatje stukje voor stukje binnenkomt) en dan op gestuurd. Daarom is er TCP. TCP garandeert dat de pakketjes aan komen of als dit niet het geval is dat er een fout melding komt. Misschien kent u het fenomeen portscannen wel. Hackers gaan dan op de ‘loer liggen’ bij uw poorten, en zodra er iets ‘interessants’ binnenkomt onderschept de hacker dit. TCP ziet dan dat het pakketje niet is aan gekomen en stuurt nogmaals het pakketje. De gebruiker heeft echter niet in de gaten dat hij ‘gescand’ wordt. TCP is een verbinding georiënteerd protocol, dat houdt in dat de zendende en ontvangende computers verbinding houden tot alle informatie is over gebracht of tot de verbinding is verbroken. Dit houdt dus in dat je nooit maar een halve internetsite hebt, maar altijd een complete site of een foutmelding en dus niets.
Poorten Een poort is een extra word wat toegevoegd word aan het IP adres. Op een computer staan meerdere programma\'s die luisteren of er iets binnen komt op hun poort. Als jij een internetsite op vraagt (een http) dan gaat dat naar de desbetreffende computer die ziet dat het een http is en stuurt het dan naar poort 80. Het goede programma stuurt dan in dit geval de internetsite terug. Dit kan ook met een ftp dan is het poort 21. Als je een bepaalde poort wilt gebruiken kan je dat achter het adres zetten na een dubbele punt (http://…). Zo kun je met hetzelfde adres dus meerdere programma\'s aan spreken (afhankelijk van de poort die je er achter zet).
REACTIES
1 seconde geleden
J.
J.
hallo
Ik moet een sectorwerkstuk maken.
Dit werkstuk gaat over hoe computers verbinding met elkaar maken d.m.v. ip enz.
Heb je nog wat informatie vor me.
Stuur het dan maar over de e-mail naar: s.vanassen@hccnet.nl
alvast bedankt.
groeten: jan gooitzen van assen
22 jaar geleden
Antwoorden