1.6. De betekenis van Workunits, blokjes, packets, keyservers en meer… Al die te testen sleutels moeten verdeeld worden over de duizenden computers van deelnemers. Daar is het volgende systeem voor bedacht: er is een computer, de master keyserver, die de te testen sleutels uitgeeft. Ook houdt hij bij welke sleutels getest zijn en welke nog niet. De master keyserver staat in contact zijn kleine broertjes de keyservers. Deze verspreiden het werk dat gedaan moet worden over alle deelnemende computers.
De gegevens die een keyserver verstuurd naar een client heten packets. Alle packets zijn 132 bytes groot. Het packet heeft een identificatie code, zodat de master keyserver kan bijhouden dat deze packet is uitgegeven of terug is gekomen. Als de client begint aan een packet zet hij in enkele bytes het besturingssysteem, client versie, het e-mail adres van de deelnemer en enkele andere dingen erin. Voor de rest bevat een packet workunits. Een ander (oudere) term voor workunit is blocks of blokjes, maar het betekent hetzelfde. Workunits is waar het ons om gaat.
Een workunit is gegevens welke sleutels de client moet testen. Elke workunit is een collectie van 268.435.456 sleutels (2^28). Wordt deze workunit getest op een Pentium 400 (die 1 miljoen sleutels per seconde test) zou het testen van 1 workunit 268 seconden duren. Ongeveer 4 minuten.
Het is moeilijk voor te stellen hoeveel werk er verricht wordt. Ik heb zojuist de laatste statistieken van de Dutch Power Cows bekeken. Vandaag hebben we 3.020.250 workunits (of blokjes) teruggestuurd naar distributed.net. Het duurde 4 minuten om alle sleutels van 1 workunit te testen op een Pentium 400. Laten we aannemen dat de gemiddelde computer die een koe draait ook een 400 MHz is. 1 Pentium 400 doet 360 workunits als hij 24 uur per dag aan staat. 3020250 / 360 = 8389. 8389 computers die alleen al voor de Dutch Power Cows draaien!
Het ophalen van packets heet fetchen (halen) en het terugsturen van packets heet flushen (doortrekken). Iedere dag worden er door distributed.net statistieken gemaakt en kun je zien hoeveel workunits jij en je teamgenoten gedaan hebben. De statistieken zijn meestal beschikbaar vanaf 10:00 ’s morgens, 7 dagen in de week. En alle DPC leden zijn er aan verslaafd! Als je inbeld naar Internet via een telefoonlijn, en pas over enkele dagen weer op Internet bent, kun je de client zo instellen dat hij genoeg werk ophaalt voor die 2 dagen. Hoe dat moet wordt uitgelegd in hoofdstuk 2. Stel dat 1 packet 1 workunit bevat. Dat is dus 132 bytes per 4 minuten. Dat lijkt niet veel, maar om die 2 dagen door te komen heb je waarschijnlijk 500 workunits nodig. 500 * 132 = 66.000 bytes. Als je dat flushed of fetched door je modem duurt meer dan 5 minuten. Daarom kan een packet tot 32 workunits bevatten. De grootte van 1 packet blijft nog steeds 132 bytes. 500 / 32 = 16 packets. Je hoeft nu nog maar 16 * 132 = 2112 bytes aan werk op te halen. Dat heb je binnen 10 seconden geflushed of gefetched! Door 32 workunits per packet in te stellen o.i.d., heeft een keyserver ook minder te doen. Dat is goed voor de snelheid waarmee statistieken worden aangemaakt en de betrouwbaarheid hele netwerk.
Hierbij moet wel worden vermeld dat ook al heb je ingesteld in je client dat je zoveel mogelijk workunits in 1 packet wilt hebben, de keyserver er af en toe wel eens een packet met minder workunits doet. Maar dat is niet zo’n probleem. Het kan voorkomen dat een packet wel uitgegeven wordt, maar niet teruggestuurd. Bijvoorbeeld doordat een hardeschijf is stuk gegaan. Het zou kunnen dat de juiste sleutel daar tussen zit! Dan hebben we 100% van de sleutels getest, maar de juiste zat er niet tussen! Wees maar niet bang! Alle packets die wel uitgegeven worden, maar niet terugkomen worden na 90 dagen weer aangemerkt voor nieuwe uitgifte. Het is niet zo dat direct na het verstrijken van die 90 dagen een packet weer uitgegeven wordt. Maar om veilig te zitten is het belangrijk een gefetched packet binnen 90 dagen weer te flushen.
Het aantal sleutels dat je processor kan doen, wordt gemeten in megakeys (mkeys/s) of kilokeys (kkeys/s) per seconde. Mega en Kilo staan niet zoals in de computerwereld voor 1024 (1 Kilobyte) of 1.048.576 (1 Megabyte), maar gewoon voor 1000 of 1.000.000 (de waardes gebruikt in elektrotechniek).
Je zou denken dat een 800 MHz PIII twee keer zoveel sleutels kan testen als een 400 MHz PII. Dat is niet zo! Doordat instructies en technologie verbeterd worden is het waarschijnlijk dat een 800 MHz CPU meer dan twee keer zoveel keys doet. Het tegengestelde kan ook. Dat zag je bij AMD K6 processoren. Een AMD K6 500 MHz test evenveel sleutels als een Pentium II 333 MHz. Dat hoeft niet te betekenen dat K6 een slechte processor is. Het kan liggen aan een paar instructies die niet goed zijn geoptimaliseerd, maar juist voor het testen van RC5 sleutels nodig zijn.
Er zijn veel distributed.net keyservers op alle continenten. Naast de keyservers van distributed.net zijn er Pproxy’s (personal proxies). Deze worden beheert door leden van teams en subteams. Het voordeel daarvan is dat het mogelijk is bij te houden waar alle workunits vandaan komen en snel statistieken te maken. Omdat er zoveel computers voor DPC flushen, is het niet mogelijk om alles over een (aantal) Pproxy’s te flushen. Het zou wel makkelijk zijn, maar vrijwel onmogelijk. Wij van Coldfusion hebben ook onze eigen keyserver. Verderop in dit hoofdstuk staat er wat meer informatie over.
Om snel belangrijke informatie te verspreiden onder gebruikers heeft een keyserver de mogelijkheid om een berichtje te laten zien als de client ermee contact zoekt. Omdat het project zonder grote problemen verloopt is deze functie niet echt nodig en wordt hij gebruikt door keyserverbeheerders om een eigen boodschap te laten zien.
Op distributed.net wordt je herkent aan je e-mail adres. Het is zeer belangrijk om dit in te stellen. Als je dat niet doet zijn alle workunits die jij hebt uitgerekend voor distributed.net zelf! Je hoeft niet bang te zijn voor spam en andere junk mail. Jij zult alleen een e-mail krijgen als je het winnende packet hebt teruggestuurd. Anders niet! Je kunt het e-mail adres later wijzigen, maar schrijf je in met het e-mail adres dat je denkt het langst te houden. Je kunt zoveel clients op een e-mail adres laten draaien als je wilt (en hebt).
MOL heeft voor het laatst aan deze pagina gewerkt op: 05-02-2001 . Copyright © 2000-2001 by Team Coldfusion. All rights reserved.