Tárgy kódja: IP-18eTKHG
Ez az estis gyakorlatok hivatalos honlapja. Az itt megtalálható információk elsődlegesen irányadóak. Amennyiben korábbi információk, vagy a gyakorlaton elhangozttak ellentmondanak az itt szereplő információknak, jelezd a gyakorlatvezető felé. Az oldal tartalma a félév során frissülhet!
Alap információk
A gyakorlag a félévben online zajlik. MS Teams csoportok kódja Neptun üzenetben lett elküldve 2022. február 9.-én. A teljes gyakorlatról videófelvétel készül, ami minden alkalommal nem sokkal a gyakorlat után felkerül egy OneDrive mappában, melynek a linkje az MS Teams csoportban található meg. A gyakorlatok ideje 45 perc és a Neptunban lévő időpontban indul és ér majd véget, de minimális eltérés lehetséges. Önálló munkára az idő hiányában nem lesz lehetőség a gyakorlaton, de bátran kérdezzetek közben és én is igyekszem majd kérdésekkel interaktívvá tenni az alkalmakat.
A félév első felében hálózati programok írását fogjuk elsajátítani. Ezek Python 3 nyelven lesznek majd implementálva. A félév második felében hálózati protokollok gyakorlati konfigurációja lesz, melyhez Mininet emulációs környezetet használunk majd. A félév közepén egy zárthelyi dolgozat lesz, ennek időpontja később kerül kihirdetésre.
Korábbi évek tapasztalatai a gyakorlatról
Estis hallgatóknak készítettem egy kérdőívet, amin keresztül visszajelezhettek a tárgyról. Nagyjából a résztvevők 60%-a töltötte ki ezt a kérdőívet. Néhány érdekes tanulság:
- Nagyjából a hallgatók fele tudott minden egyes gyakorlaton résztvenni, többiek néhány alkalommal hiányzotak. Ennek ellenére sokan teljesítették a tárgyat (többen mint 50%) így nem kell aggódni, ha nem tudsz minden alkalmon résztvenni.
- A hallgatók túlnyomó többsége elégedett volt a követelmények kommunikációjával, de igyekeztem javítani ezt az előző évadhoz képest.
- A hallgatók túlnyomó többsége hasznosnak találta a tárgyat, ez remélhetőleg nem fog változni. :-)
- A visszajelzések alapján a számonkérést korrektnek érezték a hallgatók
- A hallgatók több mint fele nagyjából annyi időt fordított a tárgyra, mint más tárgyakra. 25% kicsit kevesebbet, 9% kicsit többet.
- A hallgatók több mint fele szerint a legtöbbet azzal lehetne javítani a gyakorlaton, ha hosszabb lenne mint 45 perc, mert elég gyors a tempó.
A szöveges visszajelzéseket is figyelembe vettem, remélhetőleg javára válnak majd a kurzusnak.
Követelmények
Az órán elhangzottak könnyebb rögzülését beadandó házi feladatok segítik a félév során. Négy darab házi feladat lesz, ezek a félév első felében kerülnek majd feladásra. A megoldásokat TMS rendszerben lehet majd feltölteni. A határidők és a feladatok kihirdetésre kerülnek a gyakorlaton és itt a honlapon is meg fognak jelenni. A határidő letelte után nincs lehetőség megoldás beküldésére!
A félév felénél zárthelyi dolgozatot írunk. A dolgozatban egymásra épülő hálózati programozással megoldandó részfeladatok lesznek. Segédeszközök használata megengedett, de kommunikáció és közös feladatmegoldás tilos
A félév második felében hálózati protokollok konfigurációjával fogtok megismerkedni. Ez Mininet hálózati emulációs környezetben fog történni. A félév vége felé egy nagyobb konfigurációs beadandó lesz, melyet szintén Mininetben kell majd megoldani és beküldeni. Ennek az osztályzása százalékos, tehát részmegoldásokat is elfogad és pontoz a rendszer.
Házi feladatok
A házi feladatokra a megoldást TMS rendszerben kell beküldeni. Ha nem látod a csoportod azt kérlek jelezd a gyakorlatvezetőnek. A megoldások értékelését egy automatikus kiértékelő rendszer kéri. A kiértékelés időbe telik, kérlek légy türelemmel. A megoldást a feladat kiírásában megfelelő módon kell beküldeni. Fontos, hogy a zip-ben lévő fájlok ne kerüljenek be további mappába, olyankor a kiértékelő nem fogja megtalálni, valamint az is fontos, hogy a fájlok nevei a feladat által kért nevek legyenek!
Lehetséges, hogy a feladatok kiértékelési ideje a határidő közelében a sok egyidejű beküldés miatt megnyúlhat! Érdemes ezzel kalkulálni, sajnos így előfordulhat hogy egy hibás megoldás javítására már nem lesz lehetőség, mert lejár a határidő. A határidő csak a beküldésre vonatkozik, így az nem probléma, ha a lejárta után értékeli ki a TMS, arra ugyan úgy megadja a pontot!
Ping/Traceroute - az első és második gyakorlatokon tárgyalt ismeretek szükségesek hozzá. A helyes megoldás több szálon fut és alfolyamatokat is használ. TMS-ben többször is lehet próbálkozni, de ne használjátok a TMS-t fejlesztésre - csak olyan kódot küldjetek be, ami nálatok már ki lett próbálva és működött! A feladatról és a megoldás formátumáról további információt a slideokban találok: Gombos Gergő slidejai, 14 oldal. Határidő: 2022.03.10
Áramkör szimuláció - az első és második gyakorlaton tárgyalt ismeretek szükségesek a feladat megoldásához. Többszálas programozásra és alfolyamatokra nincs szükség, a feladat a hallgató algoritmizációs képességeit teszteli. A feladat leírása itt található, a kapcsolódó slideok pedig itt érhetőek el és a 18-as slidetól kezdődően van a feladat leírása. A feladatról rövid videós ismertető található hazi2_aramkor.mkv
néven. Határidő: 2022.03.24
Barkóba - a negyedik és a hatodik gyakorlat anyaga szükséges a megoldáshoz. Több klienset kezelő szervert kell írni. A szerver dolga egyszerű: fogadja a klienst, generál egy véletlen számot és hagyja hogy a kliens tippelegessen. A szám 0 és 100 közötti, a kliens intervallumfelezéssel képes kell legyen kitalálni. Fontos: a kliens és a szerver is jól kell legyen megírva, a tesztelő nem egymással fogja tesztelni őket. Ez azt jelenti, hogy előfordulhat olyan, hogy hibás megoldás működik, mert ugyan az a hiba a kliensben és a szerverben, de a tesztelő ezt nem fogja elfogadni. Határidő: 2022.04.06
NetCopy - az összes socket programozással kapcsolatos ismeretre szükség van a feladat megoldásához. Több kliesn kezelése, hash, stb. A teljes leírás megtalálható itt.
Aktuális házi feladat
Mininet beadandó - Ez a feladat három részfeladatból tevődik össze. Ezek további részfeladatokként vannak kezelve, így ha nem tökéletes a megoldás, részpontokat akkor is ad az értékelő rendszer. Az alfeladatok: * IP konfigurációk: minden gép el kell érje a többieket, legyenek jók a routing beállítások * Routing konfiguráció: mindenki arrafelé érje el a másik gépet, amerre a feladat kéri * Tűzfal és NAT: legyenek megfelelő tűzfal és NAT szabályok
Jegy számítás
A házik, a Mininet beadandó és a ZH kerül értékelésre és ezekből áll össze a végső százaléka a teljesítménynek, ami alapján a jegy bekerül. Ennek a képlete:
(házik % * 1/3 + mininet % * 1/3 + zh % * 1/3) * 100
Jegy határok:
- 2-es: 50% fölött
- 3-as: 60% fölött
- 4-es: 75% fölött
- 5-ös: 85% fölött
Minimum százalék egyik részből sincs, tehát akár házik nélkül is teljesíthető a gyakorlat nagyon jó ZH-val és Mininet beadandóval.
Példa: 4-ből 2 házi sikeres, a ZH 6 pontos lett a 10-ből, a Mininet beadandó pedig 75%-os lett. Ekkor a képlet szerint a végső százalék:
(0.5 * 1/3 + 0.6 * 1/3 + 0.75 * 1/3) * 100 = 61.6% (nem egész szám esetén felfelé kerekítve: 62%)
A 62% az 3-as gyakorlati jegyet jelent.
Gyakorlatok anyagai
Lehetséges, hogy egy gyakorlat anyaga még nem tölthető le, próbálkozz a félév későbbi részében. Bármi hibát tapasztalsz, jelezd a gyakorlatvezetőnek.
- Gyakorlat #1 (Python alapok: szintaxis, file I/O)
- Gyakorlat #2 (Python alapok: thread, subprocess, JSON)
- Gyakorlat #3 (Hálózati protokollok, elmélet)
- Gyakorlat #4 (Szöveges és bináris TCP kliens és szerver)
- Gyakorlat #5 (Checksum hibakezelés és UDP kommunikáció)
- Gyakorlat #6 (Több kliens kezelése TCP és UDP esetén)
- Gyakorlat #7 (Proxy)
- Gyakorlat #8 (Minta ZH feladat és megoldás)
- Gyakorlat #9 (ZH)
- Gyakorlat #10 (Layer 2 és ARP)
- Gyakorlat #11 (STP és bridgeing)
- Gyakorlat #12 (IP routing)
- Gyakorlat #13 (Iptables tűzfal és NAT)