Simulace TCP - Didaktick´a akˇcn´ı hra Uˇzivatelsk´a pˇr´ıruˇcka 18. prosince 2012
Obsah ´ 1 Uvod
2
2 Popis hry
2
3 Posty a role hr´ aˇ c˚ u
2
4 Instalace 4.1 Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 2 3
5 Zah´ ajen´ı hry 5.1 Spuˇstˇen´ı serveru . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Pˇripojen´ı hr´ aˇc˚ u . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 4
6 Hran´ı hry 6.1 Objekty ve hˇre 6.2 Odes´ıl´ an´ı zpr´ av 6.3 D´elka paketu . 6.4 Pouˇz´ıv´ an´ı skill˚ u 6.5 Konec hry . . .
5 5 5 5 5 6
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
7 Jak zaˇ r´ıdit, aby mohla hr´ at najednou cel´ a tˇ r´ıda
7
8 Z´ avˇ er
7
1
´ Uvod
1
Tato hra vznikla jako semestr´ aln´ı pr´ace pˇredmˇetu Softwarov´ y t´ ymov´ y projekt na ˇ Fakultˇe informaˇcn´ıch technologi´ı CVUT. Nicm´enˇe cel´ y program nab´ yv´a rozsahu, kter´ y by vyˇzadoval v´ıce ˇcasu neˇz jeden semestr, aby byl dotaˇzen do fin´aln´ı podoby. Hra je v souˇcasn´e f´ azi schopna provozu a je na n´ı moˇzn´e prezentovat principy TCP protokolu a poˇc´ıtaˇcov´ ych s´ıt´ı. Jej´ı ambice ovˇsem nebyly zcela naplnˇeny a nˇekter´e vˇeci byly z ˇcasov´ ych d˚ uvod˚ u vyˇreˇseny kompromisem. Hru mohou v souˇcasn´e podobˇe hr´ at maxim´alnˇe 4 hr´aˇci a hra samotn´a je omezena na 3 minuty. Pokud by mˇel nˇekdo z´ajem nav´azat na v´ yvoj rozpracovan´eho projeku a dot´ ahnout tento TCP simul´ator do konce, budeme jedinˇe r´adi. Kontaktujte pros´ım v takov´em pˇr´ıpadˇe supervizora tohoto projektu pana inˇzen´ yra Ivana Ryanta (
[email protected] ).
2
Popis hry
Akˇcn´ı s´ıt’ov´ a hra pro v´ıce hr´ aˇc˚ u, kter´a m´a simulovat fungov´an´ı TCP protokolu. C´ılem hry je pˇren´est co nejv´ıce paket˚ u od odes´ılatele k pˇr´ıjemci a z´ıskat nejv´ıce bod˚ u. Sekund´ arn´ım c´ılem hry je, aby ˇz´aci pochopili princip pˇren´aˇsen´ı zpr´av v paketov´ ych s´ıt´ıch. Zpr´ avy jsou rozdˇeleny na pakety, kter´e mohou b´ yt pˇri pr˚ uchodu s´ıt´ı ztraceny chybovost´ı s´ıtˇe. Kaˇzd´ y hr´aˇc dost´av´a body za spr´avn´e doruˇcen´ı paketu od zdroje k c´ıli. Kaˇzd´a zpr´ava m´a urˇcen´ y c´ıl podle sv´e barvy. Barva serveru reprezentuje jeho IP adresu. Na routru se pakety rozhoduj´ı, kam poputuj´ı podle barvy ˇsipky. Hr´aˇc tyto ˇsipky m˚ uˇze pˇrenastavovat. Vyhr´av´a hr´aˇc s nejv´ıce z´ıskan´ ymi body.
3
Posty a role hr´ aˇ c˚ u
Uˇcitel (server) • vytv´ aˇr´ı hru • nastavuje parametry hry • reguluje pˇripojen´e hr´ aˇce ˇ ak (hr´ Z´ aˇc) • nastav´ı si svoje jm´eno • pˇripoj´ı se k vytvoˇren´emu serveru • odes´ıl´ a pakety ke spr´ avn´emu c´ıli • snaˇz´ı se z´ıskat co nejv´ıce bod˚ u a vyhr´at
4 4.1
Instalace Windows
Podporovan´ y operaˇcn´ı syst´em: Windows 7. Pro ostatn´ı operaˇcn´ı syst´emy hra nebyla testov´ana. 2
1. staˇzen´ı souboru tcp.zip do sv´eho lok´aln´ıho adres´aˇre 2. rozbalen´ı sloˇzky win“ z archivu tcp.zip do sv´eho lok´aln´ıho adres´aˇre ” 3. soubory v adres´ aˇri win: TCP server.exe, TCP client.exe
4.2
Linux
1. staˇzen´ı souboru tcp.zip do sv´eho lok´aln´ıho adres´aˇre 2. rozbalen´ı souboru pˇr´ıkazem: unzip tcp.zip; chmod 0744 tcp/* 3. soubory v adres´ aˇri linux: TCP server, TCP client
5
Zah´ ajen´ı hry
5.1
Spuˇ stˇ en´ı serveru
• Uˇcitel spust´ı serverovou aplikaci s n´azvem: TCP server.exe resp. TCP server • Nastav´ı parametry hry – Mapa – vybere dostupnou mapu ze seznamu – Max hr´ aˇc˚ u – nastav´ı maxim´aln´ı poˇcet hr´aˇc˚ u v intervalu 1-4 • Klikne na tlaˇc´ıtko: Zaloˇ zit hru
Obr´ azek 1: Uk´ azka hlavn´ıho okna serverov´e aplikace
• Nyn´ı se objev´ı pr´ azdn´ a tabulka hr´aˇc˚ u. Jakmile se hr´aˇci postupnˇe budou pˇripojovat k serveru, v tabulce pˇrehledu se budou objevovat hr´aˇci pˇripojen´ı k serveru.
3
• Uˇcitel m´ a pr´ avo nˇekter´eho hr´aˇce odpojit. Hr´aˇce odpoj´ı zatrˇzen´ım checkboxu ve sloupeˇcku: Vykopnout a kliknut´ım na tlaˇc´ıtko: Kick dojde k odpojen´ı hr´ aˇce ze hry. • Pokud jiˇz vˇsichni hr´ aˇci nastavili pˇr´ıznak: Pˇripraven, je moˇzn´e zah´ajit hru tlaˇc´ıtkem Start
Obr´ azek 2: Tabulka pˇripojen´ ych hr´aˇc˚ u k serveru a jejich sk´ore.
5.2
Pˇ ripojen´ı hr´ aˇ c˚ u
• Kaˇzd´ y hr´ aˇc spust´ı aplikaci s n´azvem: TCP client.exe resp. TCP client • V z´ aloˇzce Nastaven´ı si hr´aˇc vypln´ı sv´e jm´eno. • V z´ aloˇzce Pˇripojit se hr´ aˇc m˚ uˇze pˇripojit k serveru a zaˇc´ıt hr´at. • Do formul´ aˇre zad´ a pˇresnou IP adresu serveru a klikne na tlaˇc´ıtko Pˇ ripojit pˇ r´ımo • IP adresu se dozv´ı od uˇcitele, kter´ y hru vytv´aˇrel. Tomu se zobraz´ı IP adresy vˇsech jeho interface v hlavn´ım oknˇe serverov´e aplikace, viz obr´azek ˇc. 2. • Po kliknut´ı na tlaˇc´ıtko se hr´aˇci zobraz´ı pˇrehled protihr´aˇc˚ u. Pokud je hr´aˇc pˇripraven, zaˇskrtne tlaˇc´ıtko Pˇripraven • Ve chv´ıli, kdy budou vˇsichni hr´aˇci pˇripraveni, uˇcitel na stranˇe serveru zaloˇz´ı hru. • Vˇsem hr´ aˇc˚ um se nyn´ı zobraz´ı hrac´ı okno aplikace, jako je na obr´azku ˇc. 3. • Nyn´ı hra zaˇc´ın´ a.
4
6
Hran´ı hry
6.1
Objekty ve hˇ re Poˇc´ıtaˇc hr´ aˇce – Zdroj odchoz´ıch paket˚ u hr´aˇce. Poˇc´ıtaˇc protihr´ aˇce – Zdroj odchoz´ıch paket˚ u protihr´aˇce. Routr – Routuje pˇr´ıchoz´ı pakety z jedn´e s´ıtˇe do druh´e podle barvy a smˇeru ˇsipky. Server – C´ılov´ y prvek v s´ıti odes´ılan´ ych zpr´av. Je identifikov´an barvou.
6.2
Odes´ıl´ an´ı zpr´ av
Ve spodn´ı ˇc´ asti hrac´ıho okna se nach´az´ı seznam a fronta zpr´av. Seznam zpr´av d´ av´ a hr´ aˇci na v´ ybˇer, kterou zpr´avu si zaˇrad´ı do fronty zpr´av. Vˇsechny zpr´avy um´ıstˇen´e ve frontˇe zpr´ av jsou postupnˇe odes´ıl´any. Pro pˇresouv´an´ı zpr´av mezi frontou a seznamem slouˇz´ı tlaˇc´ıtka s popiskem ’B’ a ’C’. Kaˇzd´ a zpr´ ava m´ a svoji barvu. Podle barvy zpr´avy se mus´ı hr´aˇc snaˇzit zpr´avu doruˇcit do spr´ avn´eho c´ıle. Spr´avn´ y c´ıl paketu je urˇcen podle barvy vys´ılan´e zpr´ avy. Za spr´ avn´e doruˇcen´ı paketu dost´av´a hr´aˇc 100 bod˚ u. Za ztr´atu paketu nebo chybn´e doruˇcen´ı se hr´ aˇcovo bodov´e sk´ore nemˇen´ı. Jakmile se ve frontˇe zpr´ av nach´az´ı nˇejak´e zpr´avy, m˚ uˇze hr´aˇc zaˇc´ıt vys´ılat pakety. Kliknut´ım na tlaˇc´ıtko Vys´ılat se zaˇcnou z fronty odes´ılat zpr´avy. Na hrac´ı ploˇse se vˇsem hr´ aˇc˚ um zaˇcne zobrazovat putov´an´ı paket˚ u v s´ıti.
6.3
D´ elka paketu
Hr´ aˇc m˚ uˇze podle sv´eho uv´ aˇzen´ı mˇenit velikost odes´ılan´eho paketu. D´elka paketu v naˇs´ı simulaci znamen´ a poˇcet odes´ılan´ ych p´ısmen. Hr´aˇc m˚ uˇze volit d´elku paketu v rozmez´ı od 1 do 5 p´ısmen. D´elka paketu je standardnˇe nastavena na velikost 1. Zmˇenu d´elky paketu je moˇzn´e prov´est ve spin boxu vedle tlaˇc´ıtka Vys´ılat. Pro ˇ ım je paket vˇetˇs´ı, velikost paketu a rychlost odes´ıl´an´ı plat´ı nepˇr´ım´a u ´mˇera. C´ t´ım menˇs´ı je rychlost odes´ıl´ an´ı zpr´avy od zdroje k c´ıli.
6.4
Pouˇ z´ıv´ an´ı skill˚ u
Ve hˇre jsou tˇri tlaˇc´ıtka, kter´e pom´ahaj´ı hr´aˇci bojovat s protihr´aˇci. Tlaˇc´ıtka se nach´ azej´ı vedle ˇsipky nad seznamem zpr´av a maj´ı tento u ´ˇcel: 1. Tlaˇc´ıtko ˇsipka – zmˇena smˇeru paket˚ u. Kaˇzd´ y hr´aˇc m´a moˇznost mˇenit smˇer ˇsipky podle jeho uv´aˇzen´ı. Kliknut´ım na tlaˇc´ıtko ’⇒’ nad seznamem zpr´ av m˚ uˇze hr´ aˇc mˇenit jakoukoliv ˇsipku. To provede tak, ˇze klikne myˇs´ı na ˇsipku, kterou chce pˇrenastavit (t´ım se dan´a ˇsipka zv´ yrazn´ı) a pot´e klikne na objekt v s´ıti, na kter´ y m´a ˇsipka smˇeˇrovat. Zmˇena ˇsipky se projev´ı u vˇsech hr´ aˇc˚ u stejnˇe. Po zmˇenˇe ˇsipky nast´av´a ˇcasov´a prodleva v ˇr´adech sekund, kdy je hr´ aˇci znemoˇznˇeno prov´est zmˇenu jak´ekoliv ˇsipky. V danou chv´ıli je tlaˇc´ıtko nefunkˇcn´ı.
5
2. Tlaˇc´ıtko bomba – slouˇz´ı k sestˇrelen´ı paket˚ u protihr´aˇce. Po aktivov´an´ı skillu staˇc´ı kliknout na paket, kter´ y chcete sestˇrelit. 3. Tlaˇc´ıtko led – Na nˇekolik sekund znemoˇzn´ı jak´emukoliv hr´aˇci odes´ıl´an´ı paket˚ u. Kliknut´ım tohoto tlaˇc´ıtka na protihr´aˇc˚ uv poˇc´ıtaˇc dojde k doˇcasn´emu zastaven´ı vys´ılan´ ych paket˚ u. Tlaˇc´ıtko m´a dlouhou ˇcasovou prodlevu.
6.5
Konec hry
ˇ Hra konˇc´ı vyprˇsen´ım ˇcasov´eho limitu. Casov´ y limit je stanoven na 180 sekund. Po uplynut´ı t´eto doby se vˇsem hr´aˇc˚ um hra pˇreruˇs´ı a zobraz´ı se bodov´a tabulka ostatn´ıch hr´ aˇc˚ u. V´ıtˇez´ı hr´ aˇc s nejvyˇsˇs´ım poˇctem bod˚ u. Po skonˇcen´ı hry se vypne serverov´ a i klientsk´ a ˇc´ ast. Pro opakov´an´ı hry je nutn´e spustit vˇse odznovu.
Obr´ azek 3: Uk´azka bˇeˇz´ıc´ı hry
6
7
Jak zaˇ r´ıdit, aby mohla hr´ at najednou cel´ a tˇ r´ıda
Jiˇz dˇr´ıve bylo zm´ınˇeno, ˇze program nen´ı ve fin´aln´ı verzi. Z tohoto d˚ uvodu spolu mohou hr´ at maxim´ alnˇe 4 hr´ aˇci. Aby si hru vyzkouˇsela cel´a tˇr´ıda najednou, doporuˇcujeme tento postup. Rozdˇelte tˇr´ıdu na ˇctyˇrˇclenn´e nebo menˇs´ı skupinky. V kaˇzd´e skupince jeden student zaloˇz´ı server a sdˇel´ı ostatn´ım student˚ um v jeho skupince svou IP adresu. Pro zjednoduˇsen´ı tohoto postupu se po zaloˇzen´ı serveru v serverov´e aplikaci zobraz´ı seznam IP adres dan´eho poˇc´ıtaˇce. IP adres se zobraz´ı nˇekolik, protoˇze kaˇzd´ y poˇc´ıtaˇc m´a ve vˇetˇsinˇe pˇr´ıpad˚ u v´ıce r˚ uzn´ ych IP adres a kaˇzd´ a m´ a sv˚ uj u ´ˇcel. Je tˇreba vybrat tu spr´avnou. Pokud budou studenti hr´at na poˇc´ıtaˇc´ıch v lok´ aln´ı s´ıti, tak bude spr´avn´a IP adresa pravdˇepodobnˇe zaˇc´ınat 192.168.. Student, kter´ y zaloˇzil hru, si spust´ı tak´e klientskou ˇc´ast hry a pˇripoj´ı se k pˇredvolen´e IP adrese (127.0.0.1), coˇz je loopback adresa. Pokud se student˚ um podaˇrilo pˇripojit ke hˇre, tak se jiˇz v tuto chv´ıli nauˇcili nˇekolik d˚ uleˇzit´ ych informac´ı o s´ıt´ıch a to jeˇstˇe ani nezaˇcali hr´at:) Nechte vˇsechny skupinky at’ odehraj´ı hru a pot´e m˚ uˇzete napˇr´ıklad nechat hr´at v´ıtˇeze proti v´ıtˇez˚ um a poraˇzen´e proti poraˇzen´ ym. Cel´ a hodina m˚ uˇze t´ımto vy´ ustit v TCP turnaj.
8
Z´ avˇ er
Douf´ ame, ˇze simul´ ator TCP protokolu pom˚ uˇze student˚ um l´epe porozumˇet fungov´ an´ı poˇc´ıtaˇcov´ ych s´ıt´ı z´ abavnou formou a ˇze zpestˇr´ı v´ yuku nejen ˇz´ak˚ um, ale i uˇcitel˚ um.
7