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
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 2526
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
10
allow Local tcp
21
15
deny Global tcp
21
20
deny Global udp
55
15
deny Local tcp 21
100
deny Global udp
tcp/udp
port
‐1 (összes port)
File2 ‐ Csomagok #Num L/G
Protocol
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
Port
Priority Size
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
85
Fény utcai piac 1024 Budapest 2. kerület, Lövőház utca 12.
404
Új Udvar
1024 Budapest 2. kerület, Margit krt. 95. 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
idő
csapat 1
Mezszám 7
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
0
M1
1 2
categories[5]
HD
15:41:22
4
3
0
0
0
Eurosport
HD
03:15:22
2
0
0
0
0
Digi Sports
HD
05:44:12
2
0
0
0
0