1) Forgalomirányító (Router) A forgalomirányító (Router) több fizikai csatlakozóval (Interface) rendelkezik, melyek a példánkban egy egy hálózathoz kapcsolódnak. A forgalomirányító a csatlakozóin beérkező csomagokat, a csomagban található célcím (destination address), illetve a csatlakozóihoz rendelt hálózatcímek alapján továbbítja a megfelelő kimenő csatlakozóra. A feladatunk egy univerzális forgalomirányító modellezése. Az egyik adatsor (fájl) forgalomirányító fizikai csatlakozóit, és az azokhoz csatlakoztatott hálózatokat írja le. A másik adatsor pedig a forgalomirányító csatlakozóin beérkező csomagokat. A routerhez beérkező csomagokról tudjuk, hogy az mely interface en érkezett, illetve mely célhálózat felé tart. A router a célhálózat alapján dönti el, hogy mely kimenő interface e felé továbbítsa a csomagot. Emellett a csomagok három féle prioritási osztályba sorolhatók (alacsony/normál/magas), és a méretük is ismert. A csomagok mérete legfeljebb 1500 byte lehet, az ennél nagyobb méretű beérkező csomagokat minden egyéb vizsgálat nélkül eldobja a router. File1 Interfaces #Interfacenum(unsigned) ConnectedNetworkAddress(unsigned) Interface 1 ConnectedNetworkAddress 200 Interface 3 ConnectedNetworkAddress 500 Interface 4 ConnectedNetworkAddress 300 Interface 5 ConnectedNetworkAddress 400 Interface 6 ConnectedNetworkAddress 900 Interface 8 ConnectedNetworkAddress 200 Interface 9 ConnectedNetworkAddress 700 File2 Packets #Num InputInterface DestinationAddress Priority(LOW/NORMAL/HIGH) Size(max. 1500 byte) Packet 0 Interface 3 Dest 200 Priority HIGH Size 526 Packet 1 Interface 4 Dest 600 Priority HIGH Size 458 Packet 2 Interface 3 Dest 550 Priority NORMAL Size 2526 Packet 3 Interface 5 Dest 200 Priority LOW Size 980 Packet 4 Interface 1 Dest 200 Priority LOW Size 579 Packet 5 Interface 9 Dest 200 Priority NORMAL Size 784
2) Tűzfal A tűzfal feladata a számítógéphez érkező csomagok szűrése. Feladatunk egy rugalmasan paraméterezhető tűzfal program elkészítése. A tűzfal konfigurációja szabályokat tartalmaz arra vonatkozóan, hogy a beérkező csomagokkal mi a teendő. A szabályok kiértékelése sorszám szerint növekvő sorrendben történik. Egy szabály engedélyezheti (allow), vagy éppen megtilthatja (deny) egy egy csomag feldolgozását. Az egyik adatsorban (fájl) a tűzfal aktuális konfigurációja, azaz a szabályok találhatók. Minden szabály tartalmaz egy sorszámot, mely a szabályok kiértékelési sorrendjét határozza meg. Emellett a szabály lehet engedélyező vagy tiltó jellegű. A szabály vonatkozhat minden csomagra (Global), illetve csak a saját hálózaból érkező csomagra (Local) is. Ezután megadható, hogy mely protocol (tcp vagy udp) milyen portszámaira (0 65535) vonatkozik a szabály. Lehetőség van egy adott protocol összes portjára vonatkozó szabály megadására is, ebben az esetben a portszám 1 értékű. A másik adatsorban a tűzfalhoz beérkező csomagok szerepelnek. Minden csomagot egyedi sorszámmal azonosítunk, ezután szerepel, hogy a beérkező csomag helyi hálózatról, vagy egyéb helyről érkezett. A csomagok három különböző prioritási osztályba vannak sorolva, ami 3 féle LOW/NORMAL/HIGH, lehet. Végül pedig a csomagok mérete van megadva bájtokban. File1 Szabályok #NR allow/deny Local/Global tcp/udp port 10 allow Local tcp 21 15 deny Global tcp 21 20 deny Global udp 55 15 deny Local tcp 21 100 deny Global udp 1 (összes port) File2 Csomagok #Num L/G Protocol Port Priority Size Packet 0 Local tcp 75 Priority HIGH Size 526 Packet 1 Global udp 55 Priority HIGH Size 458 Packet 2 Local tcp 3 Priority NORMAL Size 2526
3) 5 ös lottó Feladatunk egy heti lottósorsolás eredményeinek feldolgozása. A lottószelvényeket különböző lottózókban árulják, melyeket egyedi azonosítóval azonosítanak, emellett nevüket és címüket is ismerjük. Minden lottószelvényt ilyen hivataloz lottózóban adnak ki, szintén egyedi lottósorszámmal. A lottószelvényeken az azonosító adatokon felül természetesen szerepel az öt db lottószám is 1 90 között. Az egyik adatállományban (file) szerepelnek a lottózók adatai, míg a másikban az eladott lottószelvények szerepelnek. A heti nyertes lottószámokat a billentyűzetről lehet megadni a fájlban tárolt adatok feldolgozása után. File1 Lottózók #Lottózó azonosító név cím 59 Déli pu. aluljáró 1013 Budapest 1. kerület, Magyar Jakobinusok tere 21 1024 Budapest 2. kerület, Margit krt. 95. 85 Fény utcai piac 1024 Budapest 2. kerület, Lövőház utca 12. 404 Új Udvar 1036 Budapest 3. kerület, Bécsi út 38 44. File2 Lottószelvény #Lottósorszám Lottózó azonosító szám1 szám2 szám3 szám4 szám5 26068 59 5 17 43 55 73 87852 21 16 33 22 69 85 31074 85 63 22 46 87 13 61176 85 45 61 42 38 27 82235 59 82 21 66 72 89
4) Kapcsoló (Switch) A kapcsoló feladata a helyi hálózatokon (LAN) belül forgalmazott adat keretek(frame) továbbítása. Feladatunk egy általános több csatlakozóval (interface) rendelkező kapcsoló működésének szimulálása. A keretek továbbítását a kapcsoló egy kapcsolótáblázat alapján végzi. Kezdetben ez a kapcsolótáblázat üres. A kapcsolóhoz beérkező minden keret tartalmazza az üzenet forráscsomópontjának (source) és cél csomópontjának (destination) címét, amely alapján a kapcsoló a kereteket továbbítja és felépíti kapcsolótábláját. Amikor az első keret beérkezik a kapcsoló egy interface én, a kapcsolótáblázatba feljegyzi a forrás címet a bejövő inteface mellé, innen tudja majd később, hogy az adott csomópont merre található. Mivel a cél cím nem található az kapcsolótáblázaban, ezért kezdetben a keretet az összes interfaceén kiküldi, kivéve, amelyiken beérkezett. Az üzenet így eljut mindenkihez, de csak a címzett válaszol rá. A többi csomópont nem foglalkozik a másnak címzett üzenetekkel. A válasz üzenet kerete szintén beérkezik a kapcsolóhoz, mely ismét feljegyzi a kapcsolótáblába a forráscímet a bejövő interface mellé, majd megvizsgálja a kapcsolótábláját, melyben már szerepel az előzőleg feljegyzett cím, és az is, hogy melyik interface felé található a címzett, így csak arra az interfacere továbbítja a keretet. A feladatban egyetlen ilyen kapcsoló működését kell bemutatni. Az egyik adatállományban (fájl) a kapcsoló csatlakozói vannak felsorolva, mindegyik egy egy egész számmal azonosítva. A másik adatállományban pedig a kapcsolóhoz beérkező keretek. A keretekről tudjuk, hogy mely interface en érkezett, a cél és forráscímeket, valamint a méretüket is. File1 Csatlakozók Interface 1 Interface 3 Interface 6 Interface 8 Interface 9 File2 Keretek Frame 0 Interface 3 Dest 200 Source 500 Size 526 Frame 1 Interface 4 Dest 600 Source 200 Size 458 Frame 2 Interface 3 Dest 550 Source 800 Size 2526 Frame 3 Interface 5 Dest 200 Source 100 Size 980 Frame 4 Interface 1 Dest 200 Source 550 Size 579 Frame 5 Interface 9 Dest 200 Source 600 Size 784
5) Busz topológiájú hálózat Feladatunk a helyi hálózatokban is alkalmazott busz topológiájú hálózatot kell modellezni. A hálózat minden csomópontja egy központi (busz) vezetékhez kapcsolódik, melyen keresztül adatokat küldhetnek egymásnak. A vezetékre küldött adatokat minden állomás megkapja, de csak a címzett olvassa el az üzenetet. Miután minden állomás ezt a központi vezetéket használja, az adatátvitelre ezért előfordulhat az, hogy két állomás üzenetei összekeverednek. Ez akkor fordul elő, ha mindkét csomópont közel egyszerre szeretne üzenetet küldeni. A küldés előtt megvizsgálják a vezetéket és mindketten úgy érzékelik, hogy nincs adás, tehát küldhetnek üzenetet. Mindketten elkezdik küldeni a saját üzenetüket, de azok a vezetéken összeütköznek, és használhatatlanná válnak. Tudjuk, hogy ha két vagy több üzenet 10 ms on belül érkezik a vonalra, akkor azok biztosan összeütköznek, így nem jut el egyik sem a címzetthez. Az egyik adatállományban (fájl) a közös buszhoz kapcsolódó csomópontok azonosítói vannak felsorolva, míg a másik állományban a csomópontok által küldött üzenetek szerepelnek. A küldött üzenetek szintén egyedi azonosítóval rendelkeznek, ismerjük a küldésük időpontját ezredmásodperc pontossággal, a feladó és a célállomás címét, valamint az üzenet hosszát bájtokban mérve. Az üzenet hossza maximálisan 1500 bájt lehet. File1 Nodes Node A Node B Node C Node D Node E File 2 Data Traffic 0 idő 08:47.170 Source A Dest D Size 152 Traffic 1 idő 08:47.185 Source B Dest C Size 359 Traffic 2 idő 08:47.215 Source E Dest D Size 827 Traffic 3 idő 08:47.618 Source D Dest C Size 266 Traffic 4 idő 08:48.127 Source A Dest E Size 1352 Traffic 5 idő 08:48.518 Source A Dest C Size 156 Traffic 6 idő 08:48.935 Source C Dest A Size 498
6) Kézilabda Feladatunk egy kézilabda mérkőzés eseményeit feldolgozó program készítése. Az egyik adatállományban (fájl) a mérkőző csapatok névsora, míg a másik adatállományban a mérkőzés eseményei vannak rögzítve. A játékosokat csapatszámuk és mezszámuk azonosítja, a mérkőzés eseményeit pedig másodperc pontossággal vezetik. A lehetséges események közül csak a gólokat, illetve a szabálytalanságokat rögzítjük (Események: Gól, Szabaddobás, 7 méteres, Ideiglenes kiállítás (2 perc), Sárga lap, Piros lap, Végleges kiállítás). File1 Csapatok(2 db) Név 1 Mezszám 1 csapatszám 1 Név 2 Mezszám 2 csapatszám 1 Név 3 Mezszám 3 csapatszám 1 Név 4 Mezszám 4 csapatszám 1 Név 5 Mezszám 5 csapatszám 1 Név 6 Mezszám 6 csapatszám 1 Név 7 Mezszám 7 csapatszám 1... Név 14 Mezszám 14 csapatszám 1 Név 1 Mezszám 1 csapatszám 2 Név 2 Mezszám 2 csapatszám 2 Név 3 Mezszám 3 csapatszám 2 Név 4 Mezszám 4 csapatszám 2 Név 5 Mezszám 5 csapatszám 2 Név 6 Mezszám 6 csapatszám 2 Név 7 Mezszám 7 csapatszám 2... Név 14 Mezszám 14 csapatszám 2 File2 Események idő 01:13 Gól csapat 1 Mezszám 7 idő 08:47 7 méteres csapat 2 Mezszám 3 idő 01:13 Gól csapat 2 Mezszám 3 idő 13:25 Szabaddobás csapat 1 Mezszám 9 idő 15:23 Sárga lap csapat 1 Mezszám 7 idő 21:19 Piros lap csapat 2 Mezszám 1 idő 35:24 Ideiglenes kiállítás(2 perc) csapat 2 Mezszám 4 idő 41:19 Végleges kiállítás csapat 1 Mezszám 5
7) Hálózati útvonalak A feladat egy hálózat által kiszolgált igények modellezése. A hálózatot csomópontok és összeköttetések alkotják, melyből a csomópontokat külön nem modellezzük. Az összeköttetések adott forrás és nyelő csomópont között biztosítanak átvitelt, valamekkora átviteli kapacitással. A hálózaton által kiszolgált igények pont pont átvitelt jelentenek a hálózat két csomópontja közt. Az igények átviteli útvonala, az összeköttetések sorozatával adott. Az átviteli igények minden hordozó kiszolgáló összeköttetésen egységnyi kapacitást igényelnek. A hálózat csak olyan igényeket képes kiszolgálni, amelyek útjukban folytonosak, és a kiszolgáló kapacitásokat sehol sem haladják meg. Az egyik adatállomány tartalmazza a hálózat összeköttetéseit, míg a másikban az átviteli igények találhatók. A összeköttetések egyedi sorszámmal azonosítottak, ismerjük azok forrás és cél csomópontjait, valamint átviteli kapacitásukat. Az átviteli igények útjai szintén egész számmal azonosítottak, az útvonalat alkotó összeköttetések pedig soronként sorban vannak felsorolva. File1 Összeköttetések Link 1 Source A Dest B Capacity 10 Link 2 Source B Dest C Capacity 15 Link 3 Source C Dest H Capacity 5 Link 4 Source S Dest H Capacity 9 Link 5 Source T Dest J Capacity 7 Link 6 Source G Dest L Capacity 30... File2 Igények útvonala Path 1 Link 2 Path 1 Link 3 Path 1 Link 5 Path 1 Link 7 Path 1 Link 9 Path 1 Link 10 Path 1 Link 12 Path 2 Link 1 Path 2 Link 3 Path 2 Link 4 Path 3 Link 7 Path 3 Link 5...
8) Super TV csatorna rendező Feladatunk egy TV csatorna rendszerező program megírása. Manapság egyre több TV csatorna érhető el egy egy háztartásban. A csatornák száma pedig több száz, akár ezres nagyságrendű is lehet. Emiatt a vevőkészüléken célszerű valamilyen rugalmas csatornarendező és csoportosítást támogató program megvalósítása. A programban lehessen tetszőleges számú és elnevezésű saját csoportot kialakítani. Minden csatorna hozzátartozik egy alapértelmezett (Default) csoporthoz. Emellett a csatornákat legfeljebb 5 külön kategóriához lehessen sorolni. A program feljegyzi, hogy egy adott csatornát mennyi ideig néztek, ez alapján a kedvenc csatornákat tartalmazó csoport automatikusan előállítható. Az egyik adatállományban (fájl) az egyedi sorszámmal azonosított csoportok vannak felsorolva, melyet a felhasználó tetszőlegesen bővíthet. A másik adatállományban a csatorna azonosítója, felbontása (SD/HD), majd az az idő szerepel amennyit a csatornát néztük. Ezután legfeljebb 5 db kategóriaazonosító szerepel, melyekhez a felhasználó a csatornát rendelte, az üres helyeken a 0 s (alapértelmezett) csoportazonosító szerepel. File1 Csoportok #id category name 0 Default 1 Movie 2 Sports 3 Hobby 4 News 5... File2 Csatornák #id channelname SD/HD watch_time categories[5] 0 M1 HD 15:41:22 4 3 0 0 0 1 Eurosport HD 03:15:22 2 0 0 0 0 2 Digi Sports HD 05:44:12 2 0 0 0 0