Professional Documents
Culture Documents
1 Bevezető 9
1.1 Az információs technológia (IT) jelene
1.2 Az Internet fogalma
1.3 Számítógép hálózatok felépítése
1.4 A jövő
1.5 Kommunikáció
1.6 Számítógép hálózati szolgáltatások teljesítménymutatói
1.7 Számítógép hálózatok gyakorlati felépítése
1.8 Számítógép hálózatok biztonsága
1.9 A számítógép hálózatok elméleti alapjai
1.10 Ellenőrző kérdések
1.11 Irodalomjegyzék, további olvasnivalók
1.12 Kompetenciák és tanulási eredmények
2 Hálózati biztonság 23
2.1 A kriptográfia alapjai
2.2 Üzenet integritás, digitális aláírás
2.3 Ellenőrző kérdések
2.4 Irodalomjegyzék, további olvasnivalók
2.5 Kompetenciák és tanulási eredmények
3 Alkalmazás réteg 35
3.1 A hálózati alkalmazások háttere
3.2 WWW
3.2.1 HTTP 1.1 alapok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.2 HTTP Gyorsítótárazás, CDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.3 HTTP Biztonság, azonosítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.2.4 HTTP 2.0, 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2.5 REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 DNS
3.3.1 DNS architektúra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.2 DNS adatbázis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.3 DNS protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.4 DNS gyorsítótárazás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.5 DNS biztonság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.4 Email
3.5 SMTP protokoll
3.5.1 Email biztonságossá tétele - PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.6 P2P
3.6.1 BitTorrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.6.2 Paxos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.7 Videó
3.7.1 Videó tömörítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.7.2 Videó folyam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.8 Ellenőrző kérdések
3.9 Irodalomjegyzék, további olvasnivalók
3.10 Kompetenciák és tanulási eredmények
2 Általános rész 67
4 Szállítási réteg 69
4.1 Szállítási réteg szolgáltatások
4.1.1 A szállítási réteg alapelvei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.1.2 A szállítási réteg és más rétegek kapcsolatai . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.1.3 A szállítási réteg és az Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Multiplexelés/Demultiplexelés
4.2.1 Kapcsolatmentes multiplexelés és demultiplexelés . . . . . . . . . . . . . . . . . . . . . . 72
4.2.2 Kapcsolatorientált multiplexelés és demultiplexelés . . . . . . . . . . . . . . . . . . . . . 73
4.3 Kapcsolatmentes átvitel: UDP
4.3.1 UDP szegmens struktúra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3.2 UDP ellenőrző összeg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.4 A megbízható átvitel alapjai
4.4.1 Adatátvitel egy tökéletesen megbízható csatornán: rdt1.0 . . . . . . . . . . . . . . . 76
4.4.2 Adatátvitel egy bithibás csatornán: rdt2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4.3 Adatátvitel egy bithibás és adatvesztő csatornán: rdt3.0 . . . . . . . . . . . . . . . . 79
4.4.4 Cső szervezésű megbízható adatátviteli protokollok . . . . . . . . . . . . . . . . . . . . 81
4.5 Kapcsolatorientált átvitel: TCP
4.5.1 TCP kapcsolat kiépítés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.5.2 TCP szegmens struktúra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.5.3 Megfordulási idő és időtúllépés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.5.4 Megbízható adatátvitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.6 A torlódásvezérlés alapjai
4.7 TCP torlódásvezérlés
4.7.1 Torlódásvezérlés algoritmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.7.2 TCP igazságosság . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.7.3 Explicit torlódás értesítés (ECN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.8 Ellenőrző kérdések
4.9 Irodalomjegyzék, további olvasnivalók
4.10 Kompetenciák és tanulási eredmények
5 Hálózati réteg 101
5.1 Hálózati réteg elemek
5.2 Hálózati réteg felbontása
5.3 Hálózati réteg: adatsík
5.3.1 A forgalomirányítók felépítése . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3.2 Az IP protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.3.3 IP címzés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.3.4 Hálózati címfordítás, NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.3.5 Dinamikus cím kiosztás (DHCP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.3.6 IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.3.7 Általánosított továbbítás - Szoftverrel Definiált Hálózat - SDN . . . . . . . . . . . . . 112
5.4 Hálózati réteg: vezérlősík
5.4.1 Bevezető . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.4.2 Forgalomirányító protokollok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.4.3 Autonóm rendszeren belüli protokollok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.4.4 Autonóm rendszerek közötti protokollok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.4.5 Az SDN vezérlő síkja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.4.6 Az ICMP protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.4.7 Hálózatmenedzsment - SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.5 Ellenőrző kérdések
5.6 Irodalomjegyzék, további olvasnivalók
5.7 Kompetenciák és tanulási eredmények
3 Függelékek 187
Bibliográfia 189
Szójegyzék 193
Ábrajegyzék 218
1
Programozó centrikus rész
1 Bevezető 9
1.1 Az információs technológia (IT) jelene
1.2 Az Internet fogalma
1.3 Számítógép hálózatok felépítése
1.4 A jövő
1.5 Kommunikáció
1.6 Számítógép hálózati szolgáltatások
teljesítménymutatói
1.7 Számítógép hálózatok gyakorlati felépítése
1.8 Számítógép hálózatok biztonsága
1.9 A számítógép hálózatok elméleti alapjai
1.10 Ellenőrző kérdések
1.11 Irodalomjegyzék, további olvasnivalók
1.12 Kompetenciák és tanulási eredmények
2 Hálózati biztonság 23
2.1 A kriptográfia alapjai
2.2 Üzenet integritás, digitális aláírás
2.3 Ellenőrző kérdések
2.4 Irodalomjegyzék, további olvasnivalók
2.5 Kompetenciák és tanulási eredmények
3 Alkalmazás réteg 35
3.1 A hálózati alkalmazások háttere
3.2 WWW
3.3 DNS
3.4 Email
3.5 SMTP protokoll
3.6 P2P
3.7 Videó
3.8 Ellenőrző kérdések
3.9 Irodalomjegyzék, további olvasnivalók
3.10 Kompetenciák és tanulási eredmények
1. Bevezető
1.1: IT trendek
kommunikálni képes eszközt. Ezen eszközöket egy közös néven végrendszernek (end system)
nevezzük. Amennyiben figyelembe vesszük az erőforrással kapcsolatos szerepköröket, akkor
szerver (szerver) - erőforrás megosztó és kliens (kliens/host) - erőforrás felhasználó kategóriákra
bonthatjuk tovább az eszközöket. A végrendszerek csomagokat küldenek egymásnak, ezen
csomagok jelentik a kommunikáció alapját. Maga a kommunikáció kommunikációs vonalakon
(communication link) valósul meg, ehhez pedig közegfüggő konkrét kommunikációs módszert (pl.:
máshogyan kell vezetéken és rádióhullámokon kommunikálni) alkalmaznak. A kommunikációs
módszernek nem csak a közeghez kell illeszkednie, hanem a kommunikáló felek igényeihez is
(pl.: szeretném-e titkosítani a tartalmat, szeretnék-e garantált kézbesítést ...). Az Internet szintén
madártávlatból nézve ezen igények kielégítésére számos szolgáltatást nyújt a kommunikáló feleknek.
Az eszközök közötti együttműködést kommunikációs protokollok írják le. A protokollok lehetnek
nyílt protokollok (mindenkinek hozzáférhető) és zárt protokollok(adott cég saját megoldása és
ezt nem publikálja). A nyílt protokollokat különböző szervezetek szabványosítják, a számítógép
hálózatok területén a legismertebbek az IETF és az IEEE. A különböző szoftverek ezen protokollok
által specifikált interfészeken keresztül férnek hozzá az Internet/számítógép hálózat szolgáltatásaihoz.
vezetékmentes közegen keresztül. Itt az energiafelhasználás egy kritikus szempont azaz az óra
és a telefon kapcsolatához olyan megoldást kell választanunk amely energiatakarékos. Egész
más kihívások vannak a WAN-ban ahol a sebesség és a megbízhatóság a kritikus szempont.
A felhasználókhoz közeli, azoknak közvetlenül Internet elérést biztosító hálózatokat határ /
hozzáférési hálózatoknak nevezzük (access / edge network). Ezen hálózatok a gerinc hálózat
(core) segítségével kapcsolódnak egymáshoz és ezzel az Internethez. A hozzáférési hálózatok
feladata adott fizikai közegek segítségével a felhasználók azonosítása, a szolgáltatás szintjük
mérése, biztosítása. A szolgáltatás megvalósítására vezetékes (optikai kábel, kábel TV) vagy
vezetékmentes (4G, LTE stb... , vagy WiFi) technológiákat alkalmaznak. Magát a szolgáltatói
hálózat és a végfelhasználói végpont POP (Point of Presence) közötti részt utolsó mérföldnek
(last mile), hozzáférési vonalnak (access link) nevezik. Egy kábel TV vagy optikai hálózat esetén
a POP egy kihelyezett modem (vagy set-top-box) lehet, amely a szolgáltató hálózatát összeköti
a helyi hálózattal. A helyi hálózat lehet otthoni hálózat, de céges, egyetemi hálózat is. A helyi
hálózat célja az adott fizikai helyen lévő eszközök közötti kapcsolat megvalósítása és igen gyakran
az Internet elérés biztosítása. Technológiát tekintve a helyi hálózatok leggyakrabban WiFi vagy
Ethernet megoldásokat alkalmaznak. Azon cégeket, akik az Internet elérést, mint szolgáltatást
biztosítják, ISP-nek (Internet Service Provider) nevezzük. Ezen szolgáltatók lehetnek globálisak,
lokálisak vagy regionálisak. A szolgáltatók a hálózataikat a forgalomkicserélő pontokban (IXP
- internet exchange point) kötik össze. Ilyen például a BIX (Budapest Internet Exchange point).
Az Internet nem más tehát, mint hálózatok hálózata, melyek egymással a világ különböző részein
lévő forgalomkicserélő központokban találkoznak. Az Internet maga nem központilag tervezett,
nincs egy olyan hatóság amely megmondaná, hogy ki kivel és hogyan kapcsolódjon össze, nincs
központja, nincs egy olyan hely ahol ki lehet kapcsolni, de ennek ellenére magán hordozza a
mérnöki tervezettség jeleit.
A különböző hálózatok mérete, anyagi lehetősége adottság, amely más területekhez hasonlóan
kialakítja a nagy, közepes és kis játékos (szervezet/cég) kategóriákat. Az ISP-ket is méretük,
képességeik szerint kategóriákba szervezzük: ezek a Tier1, Tier2 és Tier3 (1.4 ábra). A Tier1-es
szolgáltatók globális, gyakran transzatlanti kapcsolatokkal bíró hálózatok (1.3 ábra), ők egymással
a kölcsönös forgalomtovábbítás elve mentén gyakran pénzdíj nélkül kötik össze a hálózataikat.
A Tier2-es méretű hálózatok nagyobb méretű lefedettséggel bírnak de nem globális játékosok,
ők fizetnek a Tier1-es hálózatoknak a kapcsolatért és egymással vagy kölcsönösség elvén, vagy
ellentételezés mentén kötik össze a hálózataikat. A Tier3-as szolgáltatók érik el közvetlenül
a végfelhasználókat. Ők jellemzően a Tier2-es szolgáltatóktól vásárolják az Internet elérést,
1.4 A jövő 13
1.4 A jövő
Az előzőekben ismertetett klasszikus hierarchikus elv már a tartalomszolgáltatókkal, azok saját
hálózataikkal jelentősen átalakult, de ezen átalakulások eltörpülnek a közvetlen műholdas utolsó
mérföld és gerinc hálózat okozta változások mellett. A napjainkban kiépülő hálózatok (pl.: (1.5
ábra)) több 10.000 műholdat terveznek alacsony (LEO - Low Earth Orbit kb. 300 km) pályára
helyezni. Ezek a műholdak nem csak a közvetlen hozzáférést adják a felhasználóknak, hanem
a forgalmat egymáson átjátszva, a közvetlen összeköttetést is, azaz gerinc hálózat funkciókat
is ellátnak. A hálózat használatához egyenlőre egy dedikált vevőegységre van szükség. Nem
használható közvetlenül a mostani mobil telefonokkal vagy laptopokkal, de jó eséllyel a dedikált
14 1. fejezet - Bevezető
vevőt igénylő technikai akadályok elhárulnak és nemsokára új globális szolgáltatók jelennek meg a
mobiltelefonok piacán is.
1.5 Kommunikáció
Az előző fejezetben láthattuk az Internet felépítését és az alapvető felbontását gerinc hálózatra és
hozzáférési hálózatra. Jelen fejezet célja e két rendszer működésének magasszintű áttekintése. A
kommunikáció megvalósításához erőforrásokra van szükség. Amikor például egy előadó előadást
tart a diákoknak, akkor kommunikációs közeg a levegő és 90 percig ő birtokolja ezt (azaz Ő beszél
a hallgatók hallgatnak), hogy elmondhassa a mondanivalóját. Itt a kommunikációhoz dedikált
erőforrást (a levegő az erőforrás és csak ő befolyásolhatja az állapotát) rendelünk. Számítógép
hálózatoknál az ilyen megoldást áramkör-kapcsolt (circuit switched) megoldásnak nevezzük
mert a kommunikáló feleknek a kommunikáció idejére garantáljuk a kommunikációhoz szükséges
erőforrást. Bár ezen megoldás jónak tűnik, de az adathálózatoknál, ahol az adat csomós (burst), a
lefoglalt erőforrások az idő nagy részében nem lennének kihasználva. Így a klasszikus telefonhálózatoktól
eltérően az adathálózatok (és ezen keresztül ma már gyakorlatilag minden szolgáltatás) csomagkapcsolt
(packet switched) és legjobb szándék szerinti (best effort) továbbításon alapul. A küldő tehát
elküldi a csomagot az első forgalomirányítónak, amely amennyiben tudja akkor továbbküldi, ha
nem, akkor kidobja. Ez első körben meredeknek tűnik, de erre a megbízhatatlan szolgáltatásra is
lehet megbízható szolgáltatásokat építeni (például a TCP segítségével). Itt még érdemes tisztázni
azt ,hogy miért nem tudja a csomagot továbbítani. Adott fizikai közegre épített adattovábbítási
csatornának megvan a maga átviteli kapacitása (ezt leggyakrabban bit / s-ban mérik), amennyiben
azonos időben több csomagot is ugyanarra a csatornára kellene továbbítani, úgy ütközés lép fel, ezt
az ütközést a forgalomirányító a beépített memóriája segítségével kezeli, ott egy várakozási sorban
rendezi a csomagokat. Amikor ez betellik, akkor adott algoritmus szerint eldob csomagokat. A
várakozási sorral a kapcsolathoz késleltetés is hozzáadódik (1.6 ábra)).
a legjobb útvonal, kinek küldje tovább a csomagot? Ennek megállapítása szintén leginkább itt
történik és a forgalomirányító forgalomirányító táblájában (routing table) tárolják. Ezen táblák
karbantartását végzik a forgalomirányító protokollok.
A helyi és a hozzáférési hálózat esetén a konkrét fizikai közeg megfelelő használata a legfontosabb
kérdés. A közeg megosztása a párhuzamos igények között számos módon megvalósítható. Az
ismertebb módszerek, időalapú, frekvencia alapú, kód alapú és tér alapú közeg megosztás. (TDMA,
FDMA, CDMA, SDM). A fizikai közeg ma gyakorlatilag az elektromágneses hullámokra korlátozódik.
Amennyiben a hullámok terjedése adott közeg segítségével irányított, akkor vezetett hullámokról
beszélünk, egyéb esetben irányítatlan hullámokról. Az vezetett hullámok esetén fontos szerepe
van az optikai kábelek (optical cable) a koaxiális kábelnek(coaxial cable) és a csavart érpáras
kábelnek (twisted pair TP). Míg a koaxiális és a csavart érpár jellemzően a helyi illetve a
hozzáférési hálózatban fontos, úgy az optikai kábel a gerincek által használt fizikai médium.
Kedvező tulajdonságai miatt azonban az optikai kábel egyre nagyobb teret hódít a hozzáférési
hálózatokban is (FTTH - Fiber To Home). Optikai kábelek segítségével akár 100 km-es távolság is
áthidalható ismétlő, erősítő beiktatása nélkül. Az átviteli kapacitása is a terabit / s tartomány felé
halad a technológia fejlődésével. Optikai kábel nélkül nem létezne Internet. A csavart érpár variációi
(UTP Unshielded Twisted Pair) pedig szinte egyeduralkodók a helyi hálózatok kialakításában.
A vezetett hullámú összeköttetésnél nem gond a rádiófrekvenciás médium lefoglalása, mivel
ez nem lép ki a közegből. Ettől eltérő problémák lépnek fel irányítatlan közeg esetén, ahol
ugyanazt a közeget szeretné mindenki használni és az adás nem áll meg például az épület
falánál. Annak érdekében, hogy adott szolgáltatás minőséget biztosítani lehessen, az államok
16 1. fejezet - Bevezető
Általában a csomagok megérkeznek de több oka is lehet annak, hogy ez mégsem következik be. A
csomagvesztés leggyakoribb oka a torlódás. Ilyenkor a forgalomirányító várakozási sora betelik
és a beállításától függően elkezdi a beérkező/várakozási sorban lévő csomagokat eldobni. Ez a
forgalom intenzitásától (traffic intensity) függ. A beérkező csomagok és a kibocsátó képesség
hányadosával szokták megadni (La /R). Amikor ez tartósan nagyobb mint 1, akkor elkezdődik a
várakozási sor betellése és a csomageldobása. Adott fizikai közegen is lehet akkora zaj, hogy a jel
nem érkezik meg, ezért fontos metrika még a csomagvesztési arány (packet loss ratio).
ide.
A különböző rétegbeli protokollok a szükséges információt a társentitásnak a felső protokolltól
kapott adatstruktúra kiegészítésével küldik el. A felsőbb rétegbeli adatot beágyazva, azt kiegészítve
hozzák létre a saját adat struktúrájukat (lásd a 1.12 ábrát).
1.12: Egymásra épülő rétegek és azonos szinten lévő rétegek együttműködése beágyazással1
tudta nélkül olyan tevékenységet folytatnak ami a felhasználóra nézve így vagy úgy kártékony
(jelszó gyűjtés, spam küldés...). Egy-egy nagyobb botnetben a fertőzött gépek száma összevethető
a Google szerverparkjával (több százezer gép).
2.1: Biztonság-Funkcionalitás-Hasznosság
Fontos A titkosító metódust nem szabad titokban tartani, az nyugodtan az ellenség kezébe
kerülhet. A titkosság csak a kulcs titkosságán kell, hogy múljon.
Ilona számára tehát a nyilvános algoritmus és titkos kulcs jelenti a járható utat. A probléma
amivel szembesültek nem új. Ehhez azonban néhány alapfogalommal meg kell ismerkedniük.
Szabadszövegnek (cleartext) nevezzük (“m” a lenti képletben) a titkosítandó információt. Titkosító
eljárás (cipher) az az eljárás, amivel a szabad szöveget titkosított szöveggé (ciphertext) transzformáljuk.
A kulcs (key) az az információ (KÁ és KTI ), amely a titkosító eljárásnak meg kell adnunk a
titkosításhoz illetve esetenként a visszafejtéshez. A titkosított adat visszafejtését a visszafejtő
(decrypter) végzi el.
Fontos Amennyiben a titkosító és a visszafejtő kulcs azonos KÁ (KÁ (m)) = m akkor szimmetrikus
kulcsú titkosításról beszélünk egyébként aszimmetrikus kulcsú titkosításról KTI (KÁ (m)) = m..
Fontos Egy titkosítási eljárásnak elégséges kulcsteret kell biztosítania annak érdekében, hogy
a nyers erő támadások ne legyenek megvalósíthatóak.
például angol nyelvű anyag, akkor az angol nyelvben ismert karakter gyakoriságok segítségével
megbecsülhetjük az egyes helyettesítő karaktereket.
Fontos A jó titkosítás ismérve az, hogy attól függetlenül, hogy a támadó milyen információval
bír, semmilyen újabb információhoz sem juthat a szabad szöveggel kapcsolatban.
A mai szimmetrikus kulcsú titkosítási eljárásokat blokk alapú titkosítás (block cipher) és folyam
alapú titkosítás (stream cipher) eljárásokra bonthatjuk. A blokk alapú eljárások, mint láthattuk,
blokkokat helyettesítenek blokkokra. Ilyen látható az ábrán. k=3 a kulcshossz, 3 bites blokkokat
cserélnek 3 bites blokkokra. Ezen eljárás k=3 értékkel nehezen tekinthető biztonságosnak, hiszen a
kulcstér 23 azaz 8 szimbólumból áll, ezek kombinációja 8! azaz 40230 variáció. Egy naiv javítási
megoldás lehetne, hogy 3 bites blokkok helyett például 64 bites blokkokat alkalmazunk, ekkor
már 264! a kulcstér. Ezzel a megoldással az a gond, hogy itt a két kommunikáló félnek egy 264
méretű táblát kellene kezelnie. Ehelyett a blokk titkosítók olyan funkciókat használnak, amelyek
véletlenszerűen permutált táblákat (randomly permuted table) szimulálnak. A 2.8 ábrán egy
ilyen látható. A 64 bites bemenetet 8 bites részekre bontják és ezekre alkalmazzák a helyettesítést
- külön-külön táblákkal(8 x 28 méretű tábla már kezelhető méretű). Ezután a 8 bites elemeket
összefűzik egy 64 bites elembe, ahol ezután az egyes pozíciókat permutálják a 64 bites kimenethez.
Ezzel a kimenettel kezdik a következő kört. N ciklus után előáll a helyettesítő 64 bites blokk. A
ciklusok célja az, hogy minden bitnek legyen hatása minden kimenő bitre. Itt az algoritmus ismert,
a kulcs a csak két fél által ismert 8 db táblázat.
A fenti elvet alkalmazzák napjaink ismert szimmetrikus titkosítás alapú algoritmusai, ilyen a
DES (Data Encryption Standard), 3DES, AES (Advanced Encryption Standard). Táblázatok
helyett mindhárom algoritmusban ilyen függvényeket alkalmaznak. A DES 64 bites blokkokkal
2.1 A kriptográfia alapjai 29
és 56 bites kulcsokkal míg az AES 128 bites blokokkal és 128, 192 vagy 256 bites kulcsokkal
dolgozik. Az 56 bites kulcsot 2011-ben akkori infrastruktúrával sikerült feltörni (internet szinten
összeadott erőforrásokkal). Az AES 128 bites és nagyobb kulcsterű algoritmusait ez a veszély
még nem fenyegeti (több milliárd év ezzel a megközelítéssel). Ezen eljárások alkalmasak egy-egy
önálló állomány titkosítására. Vannak olyan esetek azonban amikor egy hosszabb adatfolyamatot
kellene titkosítani. Ilyenkor a naiv megközelítésmód, hogy bontsuk azt adott hosszúságú részekre
és azokat külön-külön titkosítsuk az adatfolyam struktúrájának megismerésének veszélyét rejtheti
magában. Ha például két egymást követő adatdarab is csak üres karaktereket tartalmaz, akkor ez a
titkosított állományban is megfigyelhető (az, hogy a két egymást követő adat blokk azonos). Ezen a
problémán segítenek a rejtjeles blokkok láncolása (cipher block chaining) megközelítések. Az
ötlete az, hogy adott véletlenszerűséget viszünk a bemeneti szövegbe annak érdekében, hogy az
identikus bemeneti blokkok ne adjanak identikus kimeneti blokkokat. Egy egyszerű algoritmus:
m(i) = Ks (c(i) × r(i)), ahol m(i) az i. jelzi, hogy az adatfolyam melyik elemével foglalkozunk,
Ks a szimmetrikus titkosító, c(i) az eredeti szöveg adott blokkja, míg r(i) egy minden blokkhoz
külön legyártott véletlen szám. E megoldásnál Tündérszép Ilona az m(i) mellet az r(i)-t is átküldi
a Árgyélus királyfinak. Ez már jó megoldásnak tűnik, de Tündérszép Ilonának még dupla annyi
adatot kell átküldenie (m(i), r(i)). Ezt kiküszöbölendő egy véletlen számot fog csak átküldeni ez
az inicializáló vektor (Initialization Vector) - IV. A két oldal ezen IV számsorozat segítségével
minden egyes blokkhoz kiszámítja az aktuális véletlen számokat. Ezzel az algoritmussal fogunk a
WiFi WEP titkosításánál találkozni.
Az eddigiekben áttekintett rejtjelező algoritmusok a szimmetrikus kulcsú rejtjelezők osztályába
tartoztak. Számos biztonsággal kapcsolatos problémát tudnak megnyugtató módon kezelni, egyet
kivéve, ez pedig a két fél között a közös kulcs elosztása. Az 1970-es évekig erre számos fizikai
megoldás létezett. Caesar idejében például a fürdőben beszélték meg egymással. Belátható, hogy
a mi modellünk esetén ez nem igazán megoldható, hiszen a harmadik fél minden üzenetváltást
lát. Ezen a problémán segített a Diffie-Hellman kulcscsere algoritmus, amely elvezetett az
aszimmetrikus kulcsú (asymmetric key), vagy nyilvános kulcsú (public key) titkosításhoz. Itt
egy kulcs helyett kettők alkalmaznak. Az 2.9 látható Árgyélus királyfi titkos (private) KÁ− és
nyilvános (public) kulcsa KÁ+ Tündérszép Ilona megkapja Árgyélus királyfi publikus kulcsát, ez
mindenkinek hozzáférhető. Ezzel a kulccsal titkosítja az m üzenetet KÁ+ (m). Ezt Árgyélus királyfi
a saját titkos kulcsával fejti vissza KÁ− (KÁ+ (m)) = m. Számos algoritmus ismert, amely a fenti
képességeket biztosítja, de a legelterjedtebb az RSA (az alkotói után kapta a nevét Ron Rivest, Adi
Sharmin, Leonard Adleman).
30 2. fejezet - Hálózati biztonság
volt sokáig MD5 amely 128 bites kivonatot készített, ma az SHA-1 et tartják biztonságosabbnak
(bár ezt is feltörték már), amely 160 bites kivonatot készít. Az üzenet integritásának ellenőrzésére
alkalmas az üzenet azonosító kód (MAC message authentication code). Ez esetben Tündérszép
Ilona és Árgyélus királyfi az alábbi lépéseket teszi meg:
2.2 Üzenet integritás, digitális aláírás 31
• Az üzenetet és egy titkos kulcsot - azonosító kulcs (authentication key) összefűzi és ezt
kivonatolja H(m + s)
• Tündérszép Ilona átküldi az üzenetet ( m ) és a MAC kódot H(m + s)
• Árgyélus királyfi ismeri az azonosító kulcsot, ezért ő a megkapott üzenetből elő tudja állítani
a H(m + s) kivonatot és amennyiben ez megegyezik a megkapott H(m + s)-sel, akkor az
üzenet nem lett megváltoztatva és Tündérszép Ilona küldte (mert csak ő ismeri s-t).
A fenti eljárás már működőképes, de az s elosztása továbbra is gond. Ezt a problémát oldja
meg a digitális aláírás (digital signature). Az előző eljárás annyiban módosul, hogy a kivonatot
Árgyélus királyfi a saját privát kulcsával titkosítja és azt mindenki vissza tudja fejteni akinek
megvan Árgyélus királyfi nyilvános kulcsa. Itt már csak az lehet a probléma, hogy honnan
tudjuk azt biztosan, hogy adott nyilvános kulcs valóban Árgyélus királyfié-e. Ebben viszont segít
a digitális tanúsítvány (digital certificate). Ennek a segítségével adott megbízható szervezet,
Tanúsító Hatóság (Certification Authority) biztosít bennünket arról, hogy adott publikus kulcs
adott személyhez tartozik. Az elv ugyanaz, mint a digitális aláírásnál, csak most a tartalom arról
szól, hogy adott publikus kulcs adott személyhez tartozik-e és ezt a tartalmat látja-e el digitális
aláírással a szervezet. Ennek egyik szabványos formája az X.509-es tanúsítvány. Honnan tudjuk,
hogy a tanúsító hatóság nyilvános kulcsa valóban az, amit megkaptunk? Egyrészt, mert az ezeket
leíró digitális tanúsítványok fel vannak töltve a használt operációs rendszerekbe, másrészt ezen
tanúsítvány biztosító hatóságok egy hierarchia mentén továbbadhatják a tanúsítványikadási jogot.
Ilyen digitális tanúsítványokat alkalmaz a HTTP alatt lévő TLS protokoll is, ettől lesz HTTPS. A
CA hierarchia a 2.13 ábrán látható. Az első két szinten online nem elérhető hatóság van annak
érdekében, hogy a privát kulcsok semmiképpen se szivárogjanak ki. A harmadik szint az operatív
(ő az aki üzemszerűen fogad igényeket), ahonnan további tanúsítványkiadó szintek nyílnak, de
32 2. fejezet - Hálózati biztonság
persze normál tanúsítványokat is kiadnak. A következő táblázat az X.509 tanúsítvány főbb mezőit
foglalja össze. Amennyiben itt saját magunk által aláírt tanúsítványokat használunk, akkor az
közbeékelődéses támadásnak (man in the middle) lehet kitéve a kapcsolatunk, mivel ekkor a
másik oldalnak nincs lehetősége ezt egy független forrással validálni, így azt sem veszi észre,
hogy beült valaki a kommunikációs csatornába és kicserélte a tanúsítványt egy olyanra, ami
közbeékelődőé. Ezt a kommunikáló felek nem veszik észre.
Fontos A PKI tehát csak a tanúsítvány biztosító hierarchiával együtt nyújt megfelelő
biztonságot.
Jelen fejezet bővebb áttekintése a referencia könyv [2] 8. fejezetének 621-641 közötti részén
található meg. Egy mélyebb áttekintés például a [1] könyvben érhető el
2.3 Ellenőrző kérdések 33
bárhol elérhető. Erre a közműre lehet építeni olyan szolgáltatásokat ahol adott infrastruktúrát
bérelhetünk és csak annyit fizetek, amennyit ebből felhasználtunk. A felhő alapú számítástechnikai
infrastruktúra is egyfajta közmű lett.
Fontos A felhő lényege az, hogy a felhasználók önkiszolgáló jelleggel tudnak virtuális
erőforrásokat bérelni (pl.: virtuális gép, adatbázis, telefon teszt farm...) amelyet használat alapon
fizetnek ki.
a program milyen erőforrásokat és hogyan érhet el. Egy ilyen alapvető környezet a különböző
operációs rendszerek által biztosított futtatási környezet. Itt a különböző alkalmazásokat és azok
futtatott példányait processzusokba (process) - futtatott példányokba - csomagolja a környezet.
Ezen példányok saját memóriával bírnak és ezek szeparálása, menedzsmentje az operációs rendszer
feladata. A programok egy alapvető építőeleme tehát a processzus (adott esetben pl.: IOS
programozás, ahol ez nem látható, de ott is ez az alapegység).
Az előzőekben láthattuk, hogy a hálózat rétegekre bontható és ezen rétegekben adott protokollok,
illetve ezek halmaza, a protokoll verem biztosítanak adott szolgáltatásokat. Ezen protokollok a
szoftverfejlesztő számára gyakran csőszerű interfészt biztosítanak. Az egyik oldalon belerakja
a csőbe az adatokat, a másik oldalon pedig kiszedi ezeket. Egy ilyen alapvető alacsony szintű
interfész a szoftvercsatorna (socket). A szoftvercsatorna lehetővé teszi a processzus - processzus
kommunikációt azzal, hogy a gépen túl a processzus is azonosítja és biztosítja a cső absztrakciót.
A cső absztrakció szolgáltatás szintje különböző lehet, mivel az alkalmazások is különböző
igényekkel léphetnek fel. Az alapvető metrikákat már tárgyaltuk, ezek a csomagvesztés, átviteli
kapacitás és a késleltetés. A táblázat néhány alkalmazás igény mátrixát ábrázolja. Ebben nincs
szerepeltetve több, olyan fontos dimenzió mint például a biztonság és ennek metrikái, vagy az
energiahatékonyság és ennek metrikái.
A továbbiakban néhány szakmailag vagy didaktikailag fontos alkalmazás rétegbéli protokollt
fogunk áttekinteni.
3.2 WWW
A legfontosabb protokoll család, a legtöbb mai alkalmazás alapja. A telefonok az itt specifikált
protokollal (HTTP) érik el a szervereket, maga a telefonon futó szoftver felhasználói interfésze
pedig gyakran a szintén itt specifikált felhasználói felületet leíró nyelvvel van megadva (HTML).
Az egyes szerveren lévő erőforrásokat pedig a szintén itt specifikált címzési módszerrel (URI)
címezi meg. A World Wide Web egy igaz sikertörténet, az 1990 évek elején Tim Berners-Lee
specifikálta az alapelveit és ezen alapelvek mentén az architektúráját és ennek alapelemeit. Az
38 3. fejezet - Alkalmazás réteg
szabványosított WWW egyik forradalmi újítása az erőforrások címzési módszerének kialakítása volt.
Ennek alapja az URI (Uniform Resource Identifier), ennek segítségével különböző területeken
(telefon, gps, SSBN...) globálisan egyedi azonosítókat lehet létrehozni. Az URI specializált verziói
az URL (Uniform Resource Locator), mely a fenti ábrán is látható, vagy az URN (Uniform
Resource Name) és más ebből származtatott azonosító. Ezek napjaink szoftverfejlesztésben igen
fontosak, Android program fejlesztése esetén például a fent látható “tel: xxx“ minta alapján lehet
a telefonhívást, szolgáltatást (intent) kérni a rendszertől. Az URL lehetővé teszi élő, elérhető
erőforrások megcímzését. Ezen erőforrások elérésében segít a HTTP protokoll.
3.2 WWW 39
• egyedi: 440 - lejárt bejelentkezés: A munkamenet lejárt, így a kliensnek újra be kell
jelentkeznie (az Internet Information Server ezt használja).
A második sortól a válasz fejlécek helyezkednek el. Itt vannak azok, amelyek szabályozhatják
például a gyorsítótárazást (pl.: Cache-Control: max-age=3600), de itt kérik fel a kérést azonosításra
is (pl.: WWW-Authenticate: Basic).
A fejlécek után helyezkedik el törzs (body). A törzs tartalma és az egész protokoll szövegesen kerül
továbbításra. A tartalom értelmezésének módja a Content-Type fejléc mezőben kerül átküldésre. A
fejlécben megadható értelmezéseket az IANA által karbantartott MIME type lista adja meg. Lehet
például text/html, ekkor egyszerű szöveges leírásban HTML kódot várunk, de lehet image/heic,
ekkor a beágyazott tartalom adott kódolással szöveggé alakított HEIC formátumú kép.
Az előzőekben bemutatott kérés/válasz megközelítéssel a kliens a szervertől kér erőforrásokat. Van
azonban mód arra, hogy a szerver megkérje a klienst adott információk tárolására. Ezek a sütik
(cookie). Adott esetben a szerver (a rajta futó alkalmazás) szeretné valamilyen módon nyomon
követni a böngészőt. Az adott weboldal a felhasználó beléptetése/azonosítása nélkül is szeretne
személyre szabott tartalmat (ez gyakran reklám) biztosítani a felhasználónak. Ilyenkor a szerver
egy kis azonosítót ment el a kliensen, amit a kliens minden kérésnél elküld neki, így tudja, hogy
melyik böngészőtől/felhasználótól kapja a kérést. Precízebben leírva:
• a szerver a Set-cookie: x fejléc segítségével megkéri a böngészőt az x érték eltárolására
Set-Cookie: CSRF=e8b667; Secure; Domain=example.com - tárold el a CSFR névre az
e8b667 értéket, amikor az example.com doménen értelmezett URL-hez megy kérés, akkor
küldd ki, de csak akkor, ha a kapcsolat biztonságos
• a kliens minden kérésbe a elküldi a Cookie: CSRF=e8b667 sütit
A felhasználók adott oldalakra vagy globálisan is letilthatják a sütik küldését, tárolását.
A HTTP a fent látható kérés/válasz párok küldésére alkalmazhat perzisztens vagy nem perzisztens
kapcsolatot. Perzisztens kapcsolat esetén a kérés elküldésére létrehozott kommunikációs csatornát
nem zárják le a válasz beérkezése után, hanem ugyanazon a csatornán (TCP) további kérés-válasz
üzenetváltások mehetnek. A nem perzisztens kapcsolat esetén minden üzentváltásra újabb csatorna
lesz létrehozva.
protokoll konkrét fejléc mezők segítségével tudja az azonosítást támogatni. Adott esetekben a fejléc
és a törzs is szerepet játszik az azonosításban. A HTTP által támogatott azonosítási megoldásokat
az IANA tartja karban és ezek technikai részleteit az IETF RFC-k formájában szabványosítja.
Az azonosítást a legtöbb esetben kihívás/válasz (challenge/response) alapon valósítják meg. Ez
esetben a GET kérésre a szerver a 401-es kóddal és WWW-Authenticate fejléccel válaszol, ahol
adott esetben plusz információkat is megadhat (kihívás / challenge). Ilyen lehet a kívánt azonosító
eljárás és a védett tartomány neve (<type> <realm>). Erre a szerver ugyanúgy egy GET kéréssel
válaszol, csak abban meg lesz adva az Authorization fejléc is a megfelelő azonosítási módszernek
megfelelő tartalommal. A legegyszerűbb, csak a szervert és a klienst magába foglaló azonosítási
megoldások az alábbiak:
• alap (basic) - Ez esetben a felhasználónév: jelszó páros így, szabad szövegesen lesz átküldve
(pontosabban BASE64-es kódolással, ami egy 64 karakterből álló kódolási forma - NEM
TITKOSÍTÁS). Ekkor a szervernek ismernie kell a szabad szöveges jelszavat, ami ma komoly
biztonsági hibának minősül.
• kivonatolt (digest) - Ez esetben a szerver a visszajátszásos támadások elkerülésére egy
nagy véletlen karakterláncot küld át (nonce), ezt kell a kliensnek összefűznie a jelszó
kivonatával és kivonatolnia.
Sok esetben azonban nem csak két, hanem több entitás is szerepel az azonosítási láncban.
Ilyen amikor Proxy szerver van a böngésző és a web szerver között. Itt a folyamat ugyanaz lehet
mint az előzőekben, csak ilyenkor a Proxy és a kliens között játszódik le. A proxy a 407 Proxy
Authentication Required válasszal és
textbfglsproxy-Authenticate fejléccel szólítja fel a klienst az azonosítás adott típusára, a kliens pedig
a Proxy-Authorization fejléc segítségével a kijelölt módszerrel azonosítja magát a proxy-nak. A
Proxy alapú azonosításnak komoly szerepe van, amikor több webszerver előtt egy külön dedikált
ponton szeretnénk egy közös azonosítása és hozzáférés vezérlést tenni. Ettől egy komplexebb eset,
amikor az erőforrás (resource), azonosítás (authentication), jogosultságkezelés (authorization)
szerepkörök nem egy helyen vannak megvalósítva. Az előző példákban vagy a proxy vagy a
webszerver játszotta el az összes szerepkört, ezen túl az egyszerű kliens-szerver modell mentén
történt az információcsere. Ez a modell mobil alkalmazások esetén problémás, mert:
• Harmadik fél által készített mobil alkalmazásban ehhez le kell tárolni a felhasználó szabad
szöveges jelszavát (mivel nem szeretnénk másodpercenként megkérni arra, hogy írja be a
jelszavát)
• Az ilyen alkalmazások a jelszó birtokában a felhasználó kontrollja nélkül hozzáférhetnek a
3.2 WWW 43
védett erőforrásokhoz
• A felhasználó nem tudja ezt a jogot visszavonni
Az ilyen szeparált szerepköröket támogató eljárások egyik HTTP azonosítás típus a vivő (bearer)
típus. Ezt több módon is lehet használni, de a szabványos mód az OAuth azonosítás megvalósítása.
Az OAuth 2.0 a fenti problémák megoldására definiál egy keretrendszert. Az alapötlet, hogy az
erőforrásokhoz egy zseton (token) segítségével lehet hozzáférni, amelynek már szabályozható a
lejárata, hatóköre. Vegyük észre, hogy itt nem csak az azonosítás a kihívás, hanem a jogosultságkezelés
is. Az OAuth 2.0 által definiált szerepkörök az alábbiak:
• erőforrás birtokos (resource owner): általában a végfelhasználó (user) az ő erőforrásaihoz
(pl.: Tweetekhez) szeretne adott rendszer szereplő hozzáférni
• erőforrás szerver (resource szerver): a védett erőforrásokat kezelő szerver (pl.: tweeter.com,
a konkrét API amit el szeretnénk érni)
• kliens (kliens): a védett erőforrásokat elérni kívánó entitás (pl.: mobil alkalmazás)
• jogosultságkezelő szerver (authorization szerver): a zsetonokat kibocsátó szerver (amely
biztosítja azt a webes felületet ahol a felhasználó azonosítja magát)
Az OAuth 2.0 szabvány a kliens és a többi szerepkör közötti interakciókat szabványosítja, nem
foglalkozik például az erőforrás szerver és a jogosultságkezelő szerver közötti lehetséges protokollal.
Az interakciók a 3.11 ábrán láthatóak. Attól függően, hogy a felhasználó elérhető-e vagy nem,
illetve hogy a kód hol fut, négy fajta OAuth 2 folyamatot definiáltak. Ezen folyamatok alapvetően
44 3. fejezet - Alkalmazás réteg
3.14: OAuth 2.0 Erőforrás tulajdonos (felhasználó) azonosító adatok alapú hozzáférés
alkalmazás készítőjének erőforrásait szeretnénk védeni. Ma gyakran van, hogy egy-egy mobil
alkalmazás nem az alkalmazás készítője által üzemeltetett háttérszolgáltatást használ (pl.: térkép),
ezen szolgáltatások jellemzően tranzakciószám vagy egyébb mért jellemző alapján számláznak
a szolgáltatás igénybevevőjének. A különböző alkalmazás fejlesztők API kulcsok (API key)
segítségével azonosítják a saját alkalmazásukat, ezeknél a szolgáltatóknál ez képezi a számlázás
alapját. Ez egy a szolgáltató által generált karakterlánc amelyet jellemzően az URL-ben küld el a
kliens. Az azonosítás és az ezzel kapcoslatos problémák részeletseb btárgyalását megtalálhatjuk
például ebben a könyvben: [7] illetve az OAuth-ról egy jó összefoglaló található ezen a weboldalon
[6]
3.2.5 REST
Az előzőekben már az azonosítás kapcsán is említettük, hogy a WWW a humán-gép interakció
mellett a gép-gép interakciót is támogatja. Ennek egy konkrét szoftver architekturális megvalósítása
a REST (Representative State Transfer). Az alapvető elképzelése az, hogy a szerverek erőforrásokat
tárolnak, ezekhez a kliensek úgy férnek hozzá, hogy adott reprezentációjukat letöltik, ezt manipulálják,
majd visszatöltik. Ezen architekturális mintát ma leginkább a WWW protokoll család segítségével
valósítják meg:
• URL segítségével azonosíthatjuk az erőforrásokat
• HTTP protokoll segítségével letölthetjük azokat egy reprezentációját
• a reprezentáció JSON vagy adott MIME enkódolású
• a REST infrastruktúrában a WWW fejezetben látott összes elve, protokoll megjelenik
(gyorsítótárazás, azonosítás, jogosultságkezelés, ...)
3.3 DNS 47
A 3.19 ábrán látható egy REST API végpont lista amely a műveletek és azok paramétereit ábrázolja.
Mellette pedig egy munkakörnyezet entitás egy reprezentációja látható JSON formátumban.
3.3 DNS
A DNS szoftvejlesztés szempontjából azért is érdekes lehet, mert sokáig ez volt az emberiség
által létrehozott legnagyobb elosztott adatbázis. Mélyebb szakmai szempontból egy jó példa azon
rendszerekre, ahol a válaszképességet helyezik előtérbe a konzisztencia helyett. Ezzel a mai felhő
rendszerek egyik előfutáraként tekinthetünk rá. A DNS eredeti célja egészen egyszerű volt: ember
által is megjegyezhető neveket rendelni a gépek által ugyan kezelhető, de ember által kevésbé
megjegyezhető címekhez (IP címek). Az első hálózatokban ezt a hozzárendelést a gépeken lévő
fájlok segítségével oldották meg, ezek voltak a még ma is megtalálható hosts fájlok. Ezek ugyan
ellátták az alapvető hozzárendelést mint feladatot, azonban komoly kihívást jelentettek az alábbiak:
• lapos névtér - több azonos nevű géppel nem tudott mit kezdeni
• változások kezelése - minden gépen kézzel kellett átírni a bejegyzéseket
• a központi szervezés hiánya - a sok helyi fájlnak nem volt egy központi felelőse aki például
eldönthette volna hogy mi legyen a közös névvel
A fenti problémákat oldották meg több iterációban 1973 és 1987 között. A ma is ismert DNS
működését e két dokumentum írja le. RFC 1034 és RFC 1035. Ennek első referencia megvalósítása
a bind nevű ma is használt (azóta persze frissített) szoftver lett. A DNS alapvetései (az RFC 1034
alapján):
48 3. fejezet - Alkalmazás réteg
• konzisztens névtér - szabályozott felépítés, a neveknek nem kell a hálózati ID-t tartalmaznia
• elosztott rendszer - a kérések és frissítések gyakoriságát nem tudja egy központi rendszer
kiszolgálni
• nem a konzisztencia az első - kompromisszumot kell kötni a frissítések sebessége és a
gyorsítótárakban tárolt adatok pontossága között
lévő TLD - Top Level Domain neveket a nonprofit ICANN tartja karban. Egy-egy TLD nevet
adott szervezet, cég, ország vesz meg és az alatta lévő névterek az ő tulajdonát képezik. Ezt a lépés
3.3 DNS 49
A későbbiekben majd látjuk, hogy a terhelés elosztást a DNS is megvalósíthatja, ebben segít a
preferencia. A másik fontos elem a TTL mező amely azt mutatja, hogy adott sor mennyi ideig
gyorsítótárazható az MX rekord esetében, ez például 3 hét. Ahol ez nem szerepel külön, ott az
alapértelmezett 2 nap a lejárati idő. Adott RR bejegyzéshez is tartozhat több sor, ez látható a 3.23
ábra alsó részén ahol a WWW tartoményt 3 IP-hez kötjük. Ilyenkor a DNS szerver round-robin
elven ad vissza más-más IP címet. Ez az első szint a webes rendszerek terheléselosztásában.
adott szerver:
• rekurzív lekérés: ez esetben a kérést megkapó DNS szerver mint feloldó működik és
végigjárja a hierarchiát (a válaszok alapján továbbkérdezősködik) annak érdekében, hogy egy
teljesen feloldott választ (azaz a végeredményt) tudjon visszaadni (vagy hibát). (opcionális
működésmód)
• iteratív lekérdezés: ez esetben amennyiben a DNS szerver tudja a választ, akkor válaszol rá,
egyébként csak egy a következő delegációs szintre mutató hivatkozással tér vissza (kötelezően
megvalósítandó működésmód)
Amennyiben több lehetséges DNS szerver is van, mint információforrás akkor a lekérdező DNS
szerver több módon is dönthet, hogy melyiket szólítja meg. Egy a BIND által megvalósított mód
az RTT mérése (megjegyzi, hogy melyik milyen gyorsan válaszolt) (round - trip -time a kérés
küldés és a válasz beérkezése között eltelt idő), ez alapján a legrövidebb válaszidejűt választja
ki.
A normál DNS kiszolgálás mellett a zóna fájlok menedzsmentje is a DNS protokoll segítségével
történik. A zóna fájlok elosztott tárolása a mester - szolga (master - slave) architekturális
minta mentén van megvalósítva. A mester lehet rejtett mester is, ekkor a TLD-ből a szolgákra
hivatkoznak. Minden zónafájlnak van egy mester szervere ahol ez írható és olvasható. Ezen
túl tetszőleges helyen tárolható, de csak olvasható formátumban (ezek a szolgák). A zónafájl
karbantartását (maintenance) több módon is meg lehet valósítani:
• teljes zóna átvitel (AXFR) - a szolga adott időközönként rákérdez a szerverre, hogy
van-e változás (a SOA sn - serial number mezője segítségével, ennek gyakori formája:
yyyymmddss), ha van, akkor átmásolja (AXFR - TCP-n keresztül). (a SOA refresh értéke
52 3. fejezet - Alkalmazás réteg
szolga szerverek mellett az a másik nagyon fontos architekturális minta, amely lehetővé teszi
a DNS extrém robosztusságát és skálázhatóságát. Vannak olyan DNS kiszolgálók is, akik nem
tárolnak zóna fájlokat, egy zónának sem mérvadó kiszolgálói. Az ilyen csak gyorsítótárazó DNS
szervereket továbbító (forwarding) névszervereknek nevezzük. Ezt olyan helyeken alkalmazzák,
ahol az Internetkapcsolat teljesítmény problémákkal bír. Az előzőekben említett rejtett mester
szerver akkor érdekes, amikor külön információt szeretnénk szolgáltatni a belső és a külső hálózatra.
Ilyenkor a mester csak szűrt információt ad át szolgának. Az eddigiekben a DNS név-azonosító
3.3 DNS 53
hozzárendelés képességéről beszéltünk. Vannak azonban olyan esetek, amikor az azonosító adott
(IP cím) és a névre vagyunk kíváncsiak (ez leginkább biztonsági ellenőrzés esetén szokott érdekes
lenni). Az ilyen jellegű keresésekhez külön név hierarchia van kialakítva (.IN-ADDR). Itt az
információ PTR rekordokban van tárolva. A lekérdezés a magasabb szintű (hálózati rész) IP cím
daraboktól halad az alacsonyabb szintű részekig.
kéretlenül egy választ küldünk adott A vagy egyébb rekorddal, ezt ő be fogja tenni a
gyorsítótárába és ezen adatot fogja a későbbi kérdésekre kiküldeni)
A fenti problémákra egy rendszerszintű megoldást nyújt a DNSSEC úgy, hogy kriptográfiai
aláírásokkal látja el az egyes rekordokat. Ezen aláírások validálásával a kliens meggyőződhet
arról, hogy adott információ hiteles vagy sem. Az aláírások a publikus kulcsú infrastruktúra
segítségével készülnek el, ami egy a gyökértől lefelé haladó hierarchia mentén van kialakítva
(ugyanúgy mint a delegáció). Ezen láncolat mentén vannak aláírva a zóna fájlok és az egyes
rekordok is. Ennek első lépése az azonos típusú rekordok halmazokba gyűjtése (RRset), ezek
együtt lesznek aláírva. Az aláírás és annak validálása a zónához tartozó privát és publikus
kulcspárral valósul meg (ZSK). Az RRSet aláírásokat RRSIG rekordokban tárolják. A publikus
kulcsot pedig a DNSKEY rekordban teszik elérhetővé. Adott rekord típusok lekérdezésekor a
DNS szerver az RRSIG rekordokat is visszaadja. Annak érdekében, hogy a DNSKEY is validálható
legyen, a DNS kiszolgáló a saját privát kulcsával aláírja (KSK - key signing key) ez is egy RRSIG
rekord lesz de az a DNSKEY-hez. Ezt a kulcsot a szülő szerver is eltárolja kivonatolva, erre a DS
rekordot használja, így a kulcsot ugyan nem, de annak kivonatát át tudja adni adott lekérdezéshez,
melynek segítségével a kulcs validálható és ha az valid akkor az aláírt adat is.
A DNSSEC penetrációja a TLD szinten jelentős 90% fölötti a digitálisan aláírt zónák aránya,
de a második szinten ez az arány már csak 4%, a DNS lekérdezések 24%-a tartalmaz DNSSEC
validációt. Így ezen a területen van még tennivaló. A DNS egy jóval részletesebb bemutatását
találjuk meg itt: [1]
3.4 Email
Az email a Internet ősének (ARPANet) is az egyik első szolgáltatása volt (1998). Az akkor
kidolgozott protokollokat alkalmazzuk ma is. A szereplők a rendszerben:
• felhasználói ügynök (user agent): Ez a levelező kliensünk, ezt használja a végfelhasználó.
Enélkül is megvalósítható az email küldés/fogadás, csak ekkor a felhasználónak ismernie
kellene a megfelelő protokollokat.
• levelező szerver (mail szerver): A feladata a levelek tárolása és továbbítása.
3.5 SMTP protokoll 55
szolgáltatással bír. Az email szolgáltatások egyik legkomolyabb kihívása a kéretlen levelek özöne,
a SPAM. Külön ajánlások vannak az email szerver üzemeltetők részére, hogy hogyan akadályozzák
meg a szerverük felhasználását SMAP küldésére. Az egyik legfontosabb elem a küldő szerver
érvényességének vizsgálata. Itt is a DNS-t használjuk mint tudásbázist, a fogadó szerver ott nézi
meg például, hogy a küldő szerver IP címe valóban a levél küldőjének doménjéhez tartozik-e.
A SPAM mellett az email-ek meghamisítása is komoly kihívás, mivel maga az email átviteli
formátum, egy egyszerű szöveges adat és hasonlóan a DNS-hez, csak egyszerű mezőket tartalmaz
mindenféle kriptográfiai validációs lehetőség nélkül. A levél felépítése a 3.34 ábrán látható. A
boríték tartalmazza az SMTP szerver által leginkább fontos információkat, míg a fejléc inkább a
56 3. fejezet - Alkalmazás réteg
felhasználónak szól.
Az SMTP protokoll segítségével tudja a levelező ügynök elküldeni a levelet a saját SMTP szervere
segítségével, amely szintén SMTP segítségével küldi el a címzettek SMTP szerverére. A protokoll
azonban nem alkalmas arra, hogy a levelező ügynök le is töltse a szerveren lévő leveleket.
Erre a feladatra az IMAP és a POP3 protokollokat szokták alkalmazni. A POP3 egy nagyon
egyszerű, csak a levelek letöltését támogató protokoll, míg az IMAP egy bonyolultabb protokoll, de
segítségével a szerveren tudjuk a leveleket kezelni, mappákba helyezni.
Mint ahogy láthattuk, az email küldőjére és az email tartalmára semmilyen biztonsági validációs
lehetőséget sem ad az SMTP protokoll. Ezen hiányosság kezelésére számos protokoll kezdeményezés
látott napvilágot, ezek közül a legismertebb a PGP (Pretty Good Privacy). A PGP csak az
email törzsével foglalkozik, ott biztosít tartalom védelmet és igény esetén titkosítást. A megfelelő
működéséhez szükség van megfelelő tanúsítvány kiadó hierarchiával bíró publikus kulcsú infrastruktúrára.
Működésének áttekintése a 3.36 ábrán látható. Tündérszép Ilona az “ü” üzenetet szeretné elküldeni
Árgyélus Királyfinak, a digitális aláírás létrehozása érdekében kivonatolja az üzenetet H() ,majd
titkosítja a saját privát kulcsával. Ezt hozzáfűzi az üzenethez és egy, ehhez az egy email küldéshez
létrehozott szimmetrikus kulccsal titkosítja. Ezt a szimmetrikus kulcsot titkosítja Árgyélus Királyfi
publikus kulcsával és hozzáadja a levél törzséhez, ezt együtt küldi el Árgyélus Királyfinak. Mivel a
PGP nem az SMTP része, ezért a felhasználó ügynöknek kell ezt támogatnia. Van ahol egyszerűbb
és adott (pl.: GMAIL esetén FlowCript) és van ahol ez nehézkes (pl.: IPhone esetén).
3.6 P2P 57
3.6 P2P
Az eddig ismertetett protokollok és megoldások a kliens-szerver elven alapultak. A szerver
erőforrásait használták a kliensek. A gyakorlatban ezzel a megközelítésmóddal találkozunk a
leggyakrabban. Amennyiben azonban benézünk a motorház alá, kiderül, hogy számos kliens
szerver paradigmát kiszolgáló szerver oldali erőforrás kezelés a háttérben P2P (Peer to peer)
architektúrára épül. A mai nagy felhő infrastruktúra kivétel nélkül P2P protokollokra épít. Mint
ahogyan később látni fogjuk a klasszikus forgalomirányító algoritmusok is P2P elven működnek.
Ahol tehát nem 5-10 hanem több 10.000, akár több 100.000 elem együttműködését kell megoldani
úgy, hogy nem csak olvasást, hanem írást is ki kell szolgálni, ott csak a P2P megoldások jöhetnek
számításba. A P2P architektúra előnyei:
• Skálázhatóság: újabb kiszolgáló erőforrások hozzáadásával nagyobb adatmennyiséget,
lekérdezés számot tud kiszolgálni
• Robosztusság: nincs egy meghibásodási pont, a rendszer elviseli adott számú elem kiesését.
A továbbiakban két gyakorlati példa protokoll segítségével mutatjuk be a P2P elvet.
3.6.1 BitTorrent
A P2P rendszerek közös jellemzője az erőforrások egyenrangú megosztása. Ilyen erőforrás
lehet a tár kapacitás és a fel- illetve letöltési sávszélesség. A BitTorrent e két erőforrás koordinált
megosztását valósítja meg annak érdekében, hogy adott megosztott állományt minél gyorsabban el
lehessen osztani. A P2P megközelítés előnye a tárolókapacitások megosztásánál nyilvánvaló, de
ami sokkal fontosabb ebben az esetben, hogy a hálózati kapacitásokat is megosztják. Amennyiben
összevetjük a kliens-szerver elven és a P2P elven történő megosztást, úgy a következő formulákkal
58 3. fejezet - Alkalmazás réteg
NF F
Dcs = max , (3.1)
us dmin
F F NF
DP2P = max , , (3.2)
us dmin us + ∑Ni=1 ui
Itt Dcs a kliens szerver, míg DP2P a P2P, N a kliensek száma, F fájl mérete, us a szerver feltöltési
kapacitása, míg ui és di az i. résztvevő fel- és letöltési kapacitása. Látható, hogy a kliens-szerver
esetén a teljes igénylő csoport ellátását vagy a legkisebb letöltési kapacitással bíró elem, vagy a
szerver feltöltési sávszélessége korlátozza. A csoport méretének növelésével (N) az idő lineárisan
nő (lásd a 3.38 ábra középső részén lévő grafikonon). A P2P esetben viszont az N-től függő
harmadik tag esetén láthatjuk, hogy nem csak a nevezőben, hanem a számlálóban is van
N-től függő tag, így a teljes letöltési idő jóval a lineáris alatt fog lenni. A BitTorrent protokoll a
fenti megközelítést alkalmazza és azontúl, hogy lehetővé teszi a felöltési sávszélességek megosztását,
tartalmaz néhány praktikus, gyakorlati heurisztikát is:
• a fájl darabokra bontása: Annak érdekében, hogy a nagy fájlok letöltése megszakítható
legyen, célszerű azokat darabokra bontani. Ezek után már egy-egy fájl darab letöltése a cél.
• nincs fájl tároló szerver: A fájlt a résztvevők egymás között osztják meg. Van ugyan olyan
elem, aki ezt kezdetben biztosítja (seed), de ez a csoporttag bármikor távozhat.
• központi adatbázis: Van egy kiemelt szerepkör (követő-Tracker), amely a központi tudást
biztosítja a csoportban résztvevők számára. Itt vannak nyilvántartva az egyes résztvevők,
és hogy kinél milyen fájl darab található. Ez a szerepkör lehet dedikált szerverként, de
elosztott algoritmussal is megvalósítva (pl.: DHT). a résztvevők fájl darabokat cserélgetnek
egymással: Egy-egy résztvevő a követő szerverből kiválasztja, hogy mely fájl darabokat
szeretné letölteni, és azt is, hogy melyik résztvevőtől fogja azt elkérni.
• legritkább darabok először: Mivel a BitTorrent csoportban önkéntesen vesznek részt
csomópontok, előfordulhat hogy egy csomópont, miután letöltötte a fájlt, kilép. Ekkor
előfordulhat, hogy adott fájldarabok csak nála vannak meg (itt nincs dedikált szerver, egymás
között osztják meg a fájlt). Az ilyen esetek elkerülése érdekében minden csomópont a
legritkább darabokat fogja letölteni, így lehetővé téve a darabok egyenletes elosztását
• legjobb szomszédok kiválasztása: A BitTorrent csoport akkor lesz sikeres, ha a résztvevők
nem mohók, azaz nem csak letölteni, hanem feltölteni is segítenek, azaz darabokat osztanak
meg a többiekkel. Ennek elősegítése érdekében a legtöbb társat a társak által biztosított
feltöltési sebesség alapján választja. Azaz a gyors fel/letöltési sebességgel bíró csoporttagok
3.6 P2P 59
egymással fognak leginkább fájl darabokat csereberélni. Ez azért jó, mert így a lehet
leggyorsabban szétteríthető a tartalom, és mindenki arra van kényszerítve, hogy ossza meg a
feltöltési kapacitását.
• véletlen szomszédok kiválasztása: Annak érdekében, hogy új és nem bizonyított résztvevők
is kaphassanak darabokat, illetve a kis sávszélességű résztvevők se maradjanak ki teljesen, a
csomópont adott számú szomszédját nem teljesítmény, hanem véletlenszerűen választja ki
(azaz enged neki letölteni).
A BitTorrent tehát egy jó példa arra, hogy egy igen változékony környezetben központi menedzsment
nélkül hogyan lehet megosztani a csomópontok között erőforrásokat. A következő algoritmus nem
elsősorban a sávszélesség, hanem a közös konzisztens tár létrehozásában játszik kulcsszerepet.
3.6.2 Paxos
Az elosztott, több helyen futó rendszerek esetén a konzisztencia kérdése kritikus fontosságú. A
programozók számára egy fontos kérdés, hogy mikor és milyen jellegű konzisztencia szintet
valósítanak meg. Gondoljunk csak egy egyszerű mobil telefonon futó játékra, ahol a a játékosok
versenyeznek. A pontszámok egy szerveren vannak eltárolva. Egy fontos kérdés, hogy a telefonon
futó alkalmazás milyen gyakran frissítse a saját adattárát a szerverről. Miről kell itt döntenünk? Egy
szempont lehet a szerver terhelése, vagy a telefon energia fogyasztása (az energia fogyasztás jelentős
részéért a vezetékmentes interfész felel) és az adat frissessége. Mennyire engedjük meg elavult
adatok megjelenését a képernyőn? Erre nincs általános válasz, adott esetben amikor ez egy külön
oldal amit ritkán néznek elfogadható az is ha néhány percenként frissül. A példánk egy viszonylag
egyszerű konzisztencia problémát vázolt, ahol az adat érvényes (adott időpontban az volt), és
ha a szerveren nem változik akkor a kliensen előbb-utóbb szintén érvényes, aktuális lesz. Ezt
nevezik BASE - Végsősoron konzisztens (Basic Availability Soft-state Eventual consistency)
megközelítésmódnak. Jóval komolyabb problémánk van amikor nincs egy ilyen kiemelt központi
szerver, hanem sok szerverünk van és nem csak az olvasás, hanem írás művelet is van. E probléma
szemléltetésére jó példa a két tábornok története.
Két hadsereg egy erődítményt szeretne megtámadni. Mindkét sereg a város mellett van egy-egy
völgyben melyeket a közöttük lévő hegyen átfutó ösvény köt össze. Ez azonban az erődítmény
védői által felügyelt terület ahol bármikor elfoghatják a futárokat. A két sereget vezető tábornok
megegyezett ugyan abban, hogy közösen támadnak, de az időpontban nem egyeztek meg. Ahhoz,
hogy az erődítményt elfoglalják egyszerre kell támadniuk. Amennyiben nem együtt támadnak
akkor a támadó sereg megsemmisül. Kommunikálniuk kell tehát egymással annak érdekében,
hogy a támadást koordinálják. Mivel bármelyik futárt elfoghatja az ellenfél ezért végtelen számú
futár esetén tudnak csak konszenzusra jutni. Ez az alapprobléma a számítógép hálózatokban is
megjelenik. A futárok a hálózaton átküldött üzenetek míg a tábornokok a programok melyeknek
szinkronba kellene lenniük. A fenti probléma egy ötletes kezelését valósítja meg a 2000 éves Paxos
algoritmus melyet ma a nagy felhő szolgáltatók alkalmaznak a több 100.000 gépes parkjaikban
a konzisztencia fenntartása érdekében. A két tábornok problémáját nem oldja meg a Paxos sem,
de azt garantálja hogy ha támadhatnak (azaz elegendő futár jutott át) akkor ez közös támadás lesz.
Azaz a konzisztencia garantált a haladás nem.
A továbbiakban a [4] cikk gondolatmenetét és ábráit követve mutatjuk be az algoritmust.
A 3.39 ábra A felén az alapprobléma látható az S1 szerver dolgozza fel a C1 és C2 kliensek kéréseit.
A kérdések mi -vel vannak jelölve. A kérések hatására a szerver állapota megváltozik és ennek
hatására σikl az i-szerver k és l üzenetek feldolgozása utáni állapotát mutatja (k és l ebben a
sorrendben) ezt az állapotot fogja elküldeni hσikl i. Az egy szerveres esetben 3.39 ábra A felén,
látható, hogy egy szerveres esetben a kliensek konzisztens állapotot látnak mivel a szerver az
üzeneteket az elküldés sorrendjében kapja meg és ez alapján változik az állapota is.
Egy szerverrel azonban nem tudunk üzembiztos rendszert megvalósítani mert ha az leáll akkor
60 3. fejezet - Alkalmazás réteg
a rendszerünk is leáll. A megoldás erre a problémára újabb szerverek beállítása, 3.39 ábra B
fele. Ez egy gyakori megoldás, elsődleges tartalék szervernek szokták nevezni. Ilyen megoldást
fogjunk látni a például DHCP protokoll esetén. A szerverek között nincs koordináció, a kliensek
egyszerűen nem egy hanem két szervernek küldik el üzeneteiket. A probléma az, hogy ezek
az üzenetek különböző sorrendben érkezhetnek be a szerverkehez amelyek ezeket különböző
sorrendben dolgozzák fel. Az S1 szerver m1 , m2 sorrendben kapja meg míg az S2 szerver m2 , m1
sorrendben. Ez alapján a szerver állapotok is különbözni fognak. C1 valószínűleg a σ11 , σ221
válaszokat kapja míg a C2 valószínűleg a σ22 , σ112 válaszokat kapja. A probléma valós, a hálózaton
a késleltetés nem determinisztikus. Első megoldásként megpróbálhatjuk a két szerver működését
koordinálni. Legyen az egyik szerver a vezető (mester). A vezető elfogadás üzenetet küld a másik
munkáját mint ahogyan azt az egy szerveres üzemmódban is tette. A 3.41 ábra A részén láthatjuk a
3.41: szerver leállás naív protokoll probléma, várakozás amíg a közös állapot elterjed
problémát ezzel a naív megközelítéssel. A vezető szerver S1 válaszol az m1 kérésre még az előtt,
hogy S2 látta volna a hACC, m1 , 1i üzenetet. Az S1 leáll azelőtt, hogy ezt újraküldené. Az S2 átveszi
a vezérlést és mivel nem kapta meg a helyes információt a sorrendről ezért m2 -t fogja először
feldolgozni (nincs ismerete az abszolút sorrendről). A probléma itt az volt, hogy az S1 vezető úgy
küldött ki információt a belső állapotáról (hσ11 i) hogy megbizonyosodott volna arról, hogy ez már
közös tudás a másik szerverrel. A megoldás, tehát az, hogy előbb megbizonyosodik arról, hogy az
állapotváltozás ismerete elterjedt és csak ezután válaszol 3.41 ábra B oldala.
Az eddigiekben nem beszéltünk arról, hogy hogyan detektáljuk a hibát. Az, hogy a szerver leállt,
vagy nem elérhető ugyanazt jelenti a másik oldal számára, így a detektálás sima időtúllépésen
alapul. Rendszerszinten azonban nem mindegy, hogy a rendszer adott része leállt és ezért nem
érhető el, vagy működik ugyan de mondjuk hálózati hiba miatt nem érhető el.
Fontos Amikor egy rendszer több működő, de egymást el nem érő elemre esik szét hálózati
partíciónak nevezzük (network partition)
Amennyiben hálózati partíció lép fel (vagy túl kevés időt várunk a szerver válaszára ami tulajdonképpen
identikus hatású) akkor a 3.42 ábra A felén látható módon két párhuzamos rendszerre esik szét
a rendszerünk ahol a kliensek más-más állapotot fognak látni. Egy megoldás a fenti problémára,
ha dönteni tudunk arról, hogy a működő ágak közül melyiket tekintjük helyesnek. Ennek egyik
megvalósítása a többségi elven történő döntés. A 3.42 ábra B felén láthatjuk, hogy a rendszerbe
még egy szervert vonunk be. Ekkor az a partícióm mehet tovább ahol a többség van.
Már majdnem jó a megoldásunk de nem tudja egyszerre kelezni a partíciót és az összeomlást.
A 3.43 ábrán A oldalán látható, hogy helytelen detektálás esetén (többen gondolják magukat
vezetőnek) még mindég inkonzisztens állapot alakulhat ki. Esetünkben S1 és S2 is állapot üzenetet
küld S3 -nak akinek a többségről döntenie kellene. Mivel S3 újraindul nem tudjuk, hogy melyik
62 3. fejezet - Alkalmazás réteg
többséget szavazta meg (a gond nem ez, hanem, hogy közben köztes információt küldött C2 -nek).
Egy megoldás a fenti problémára, ha kizárjuk a több vezető egyidejű meglétét. A vezető csere előtt
az a szerver amely vezetőnek érzi magát előbb megígérteti a többi szerverrel, hogy a régi vezetőtől
nem fogadnak el üzeneteket. Csak ezen ígéretek (a többség) beérkezte után kezd el üzeneteket
fogadni az új vezető. Ezt láthatjuk a 3.43 ábrán B oldalán. Itt annak érdekében, hogy a vezetők
megkülönböztethetőek legyenek egy-egy azonosítót kapnak. Az ígérethez a hPREP, S2 i és az erre
érkező hPROM, −, S2 i üzenet kéri és erősíti meg. Annak érdekében, hogy tudják a többiek az
eddigi abszolút sorrendet, az elfogadott üzeneteket is elküldik (ez most üres .- jel a prom üzenetben).
Ha ez nem üres akkor az új vezető ezekre újra küldi az elfogadó üzenetet, hogy ezt az információt
elterjessze.
Amikor két partíció összeolvad akkor a vezető újraküldi az elfogadás üzeneteket azoknak a
szervereknek amelyek még ezt nem kapták meg. Előfordulhat, hogy az összeolvadt partíció
most több vezetővel is rendelkezik. A döntést itt prioritás segítségével lehet egyértelművé tenni.
Ez a fix prioritásos megoldás azonban adott szervereket bebetonozhat. A Paxos algoritmus ezért a
folyamat körökre van osztva és minden körhöz előre ki vannak jelölve azok a szerverek akik akkor
beszélhetnek (pl.: S1 1, 4, 7 körökben szólhat, az S2 2, 3, 6 körökben szólhat...)
A bemutatott megoldás 2 f + 1 szerver esetén f leállását tudja tolerálni amennyiben gondoskodunk
az információ elterjedéséről. A kliensek C1 ,C2 minden szervernek elküldik az üzenetet és a
szerverek csak akkor haladnak tovább ha a többségtől (itt most 3) megkapták a nyugtát. A
tranzakciót tehát a vezető indítja, de mindenki mindenkivel kommunikál és 3 egyetértés esetén
3.7 Videó 63
fogadják el azt.
3.7 Videó
Az internet legtöbb forgalmat produkáló alkalmazása a videó megosztás. E szolgáltatás ma már a
klasszikus televízió szolgáltatásokat is lassan lecseréli. A videótékák megszűntek, helyettük számos
online platform kínál videó nézési lehetőséget. Sokan úgy keresnek pénzt, hogy érdekes, nézett
videókat gyártanak és az ezekhez kapcsolt reklámok bevételéből részesednek. A videó szolgáltatás
tehát ma az egyik legnépszerűbb szolgáltatás az Interneten. A továbbiakban megnézzük ennek a
jelenleg is alkalmazott technológiai hátterét.
aktuális sávszélességét jobb vagy rosszabb minőségű film darabot kér a szervertől. Ezen koncepció
megvalósítása a HTTP felett a DASH (Dynamic Adaptive Streaming) protokoll. A böngésző
HTTP protokollon elkéri a videó mester lejátszási listáját (pl.: m3u8 formátumban) ez tartalmazza
az egyes felbontású videók lejátszási listáját (egyszerű szövegfájl, lásd a lenti ábrán) amelyek
magukat a fájl darabok hivatkozásait (URL) tartalmazzák. Ezeken az URL-eken lévő erőforrásokat
kéri el ezután a böngésző HTTP protokollon megfelelő GET kérés segítségével. A videó lejátszás
egy olyan terület ahol kiemelten fontos a CDN alkalmazása, mivel egy központi szeverből, helyről
nem igazán lehetne a nagyszámú és nagy adatforgalmi igényű felhasználót kiszolgálni, így a videók
kiszolgálása a mai CDN megoldások egyik legfontosabb szolgáltatása. Egy gyakorlati példa mentén
szemléltetve látható a DNS és a HTTP infrastruktúra használatával megvalósított CDN kiszolgáló
által biztosított videó lejátszást.
4 Szállítási réteg 69
4.1 Szállítási réteg szolgáltatások
4.2 Multiplexelés/Demultiplexelés
4.3 Kapcsolatmentes átvitel: UDP
4.4 A megbízható átvitel alapjai
4.5 Kapcsolatorientált átvitel: TCP
4.6 A torlódásvezérlés alapjai
4.7 TCP torlódásvezérlés
4.8 Ellenőrző kérdések
4.9 Irodalomjegyzék, további olvasnivalók
4.10 Kompetenciák és tanulási eredmények
Az alkalmazási és a hálózati réteg között található az ún. szállítási réteg, amely a réteges
hálózati architektúrának egyik központi alkotóeleme. Ez a réteg biztosítja közvetlenül a különböző
gépeken futtatott alkalmazás processzusok felé a logikai kommunikációt, amelyet a hálózati
rétegbeli kommunikációra épít. A kommunikáció alapelemei a gyakorlatban alkalmazott Internet
protokollokban is megtalálhatóak, a TCP-ben és az UDP-ben. Jelen fejezet terjedelmi korlátok
miatt csak a legfontosabb ismereteket mutatja be, a referencia könyv [1] 3. fejezetének (215-333)
olvasása ez esetben is javasolt.
alkalmazás
szállítás
hálózat
adatkap.
fizikai
alkalmazás
szállítás
hálózat
adatkapcs.
fizikai
A fogadó oldalon a hálózati réteg kibontja a szállítási rétegben található szegmenst és továbbítja azt
a szállítási réteg felé. A fogadott szegmenst a szállítási réteg feldolgozza, és a benne lévő tartalmat
továbbítja a fogadó alkalmazás processzus felé.
Az egyszerűbb megértés végett tekintsük az alábbi analógiát! Vegyünk két nagy családi házat,
amelyek elhelyezkedése az ország két egymástól legtávolabbi pontján található. Mindkét ház
egy-egy tucatnyi gyermeknek ad otthont, azonban a két házban élő testvérek egymással szoros
rokoni kapcsolatban állnak. A gyermekek szeretnek egymással levelezni, így minden héten írnak
egymásnak, a leveleket pedig postai úton küldik az ország egyik pontjából a másikba. Így mindkét
háztartás 144 levelet küld az ország másik végébe. Mindegyik háztartásban van egy-egy kijelölt
személy (Anna és Botond), aki felel a levelek összegyűjtéséért és kézbesítéséért. Az összegyűjtött
elküldendő leveleket el kell vinni a postára, a megérkezett leveleket pedig a címzett testvéreknek
át kell adni. Ebben a példában Anna és Botond valósítja meg a logikai kommunikációt a rokonok
között azzal, hogy a küldésre szánt leveleiket összegyűjtik és eljuttatják a posta felé, illetve a
postától beérkező leveleket eljuttatják a címzett testvérekhez. Mindketten a végpontokon vannak,
és szerves részei a kommunikációnak. Ha az analógiát tovább bontjuk alkotóelemekre, akkor az
alábbi megfeleltetések igazak.
4.2 Multiplexelés/Demultiplexelés 71
4.2 Multiplexelés/Demultiplexelés
Ahogy azt korábban tárgyaltuk, a szállítási réteg fogadja a szegmenseket a hálózati rétegtől,
melyeket kibontva és továbbítva az alkalmazás processzusokhoz jut az adat. Azonban egy
végrendszeren egy adott időpillanatban nem csak egyetlen processzus fut, így nem triviális, hogy
az üzenetet hogyan juttassuk el a kívánt processzushoz. Tekintsük az alábbi példát!
Tegyük fel, hogy egy felhasználó a számítógépe mögött ül, amelyen meg van nyitva egy
böngészőben egy web-oldal, eközben pedig él egy FTP és két Telnet kapcsolat is. Így összesen
négy aktív processzus van - egy HTTP, egy FTP és két Telnet. A szállítási réteg felel azért, hogy a
beérkező adat a négy processzus közül a megfelelőhöz eljusson... de hogyan?
Minden processzusnak van egy vagy több szoftvercsatornája (socket), amelyek mintegy
"ajtóként" funkcionálnak. Ezeken a csatornákon át jutnak az adatok a hálózatból a processzusba és
a processzusból a hálózatba. Mivel a végrendszeren egyidejűleg több szoftvercsatorna is élhet, így
a megkülönböztetés végett mindegyik csatorna rendelkezik egy egyedi azonosítóval. Az azonosító
formátumát a szállítási rétegbeli protokoll határozza meg. A beérkező szegmensben dedikált
fejléc mezők biztosítják azt, hogy az adat a megfelelő csatornába kerülhessen. Az adat megfelelő
csatornába juttatását nevezzük demultiplexelésnek. A fordított irányú adatáramlást - amikor az
adat csonkok fejléc információkkal szegmenseket alkotva a hálózati rétegbe jutnak - azt nevezzük
multiplexelésnek (4.2 ábra).
A korábbi fejezetben bevezetett analógiánkhoz visszatérve, tekintsük át a multiplexelés és
demultiplexelés folyamatát! Anna és Botond felel küldés esetén a levelek összegyűjtéséért, azok
postai feladásáért, fogadás esetén pedig a postástól átvett levelek szétosztásáért, hogy azok a
címzett személyhez kerülhessenek. Jelen analógiában Anna és Botond az, akik a multiplexelés és
demultiplexelés folyamatáért felelnek. A testvérek által feladni kívánt levelek összegyűjtése, és azok
eljuttatása a postára a multiplexelés művelet jelen forgatókönyv szerint. A küldemények átvétele, és
72 4. fejezet - Szállítási réteg
alkalmazás
Egy processzus, amely üzenetet szeretne küldeni egy másik processzusnak, tetszőlegesen nyithat
egy UDP csatornát. Egy csatorna létrejöttekor, a szállítási réteg automatikusan hozzátársít egy
olyan szabad portszámot az 1024-65535 intervallumból, amely az adott időpillanatban nincs más
processzushoz rendelve a kliens végrendszerén. Szerver oldalon a csatorna nyitás egy picit eltérő
módon történik, ugyanis a szerveren futó processzus megszólításához a kliensnek ismernie kell az
ott elérhető portszámot. Ezért jellemzően a szerver oldalon az alkalmazásban specifikált portszámon
történik a csatorna nyitás. Az UDP csatornák portszámának ismeretében tökéletesen leírható az
UDP multiplexelés és demultiplexelés.
Tekintsük meg a 4.3 ábrát! Az A számítógépen futó processzus adatcsonkot szeretne küldeni a
45124-es porton keresztül a B szervernek a 8080-as portján hallgató processzusához. Az A oldalon
a szállítási rétegben létrejövő szegmens tartalmazza az alkalmazás által küldeni kívánt adatot,
valamint a forrás (45124) és cél (8080) portszámokat. A létrejött szegmens továbbításra kerül a
hálózati réteg felé, ami a szegmenst beburkolja egy IP datagramba, majd továbbítja azt a fogadó
szerver felé. A B szerver által fogadott datagramból a szegmenst feldolgozza a szállítási réteg, és a
fejlécben megjelölt cél portszám (8080) alatt futó csatornába juttatja.
Az UDP csatornák egyértelműen azonosíthatóak egy cél IP-cím és cél portszám kettőssel.
Így kijelenthetjük, hogy a különböző forrásokból ugyanarra az IP-cím és port párosra érkező
szegmensek ugyanazon a csatornán keresztül ugyanabba a processzusba jutnak. Ettől függetlenül a
forrás IP-cím és portszám is fontos, hiszen ez alapján küldhető válasz üzenet.
4.3 Kapcsolatmentes átvitel: UDP 73
Kliens processzus
A hoszt Szoftvercsatorna B szerver
C hoszt
A hoszt
szoftverfejlesztő UDP-t? A válasz: attól függ... Az UDP mellett szólnak az alábbi érvek:
• kifinomult alkalmazás szintű vezérlése annak, hogy milyen adatot és mikor küldünk,
• nincs kapcsolat kiépítés, így gyorsabb,
• nincs kapcsolatállapot sem a küldőnél, sem a fogadónál, amely további mezők és értékek
kezelését igényelné, kicsi fejléc méret.
32 bit
forrásport # célport #
hossz ellenőrzőösszeg
alkalmazás adat
(tartalom)
0110011001100000 // 1. szó
0101010101010101 // 2. szó
1000111100001100 // 3. szó
0110011001100000 // 1. szó
0101010101010101 // 2. szó
————————
1011101110110101 // összeg
(Az utolsó összeadásnál vegyük figyelembe, hogy az eredmény túlcsordult, így a sor elejére
kerülő 1-es bitet a sor végére mozgatjuk, és ennek megfelelően korrigáljuk jobbról balra haladva
ismét az értékeket.) Most vegyük a végeredményül kapott 16 bites egésznek az 1-es komplemensét,
azaz minden 0-t írjunk át 1-esre, és minden 1-est 0-ra.
Ez az a szám, amely bekerül az elküldött UDP szegmens ellenőrző összeg mezőjébe. A fogadó
oldalon az ellenőrző összeg segítségével detektálható a hiba. De hogyan? A fogadó fél szintén
kiszámítja a fogadott UDP szegmens ellenőrző összegét, majd a kiszámított ellenőrző összeghez
hozzáadja a fogadott szegmensben lévő ellenőrző összeget. Hibamentes csomag esetén a két
76 4. fejezet - Szállítási réteg
megbízhatatlan
csatorna
A megbízható adatátvitel protokollját nevezzük rdt-nek (reliable data transfer). A küldő oldal
meghívja az rdt_send()-en keresztül az átviteli protokollt. Az rdt hívja meg az udt_send() utasítást,
hogy továbbítsa az adatot a nem megbízható csatornán. A fogadó oldalon az rdt_rcv() utasítás
hívódik meg, amikor csomag megérkezik a csatorna fogadó oldalára. A deliver_data() felel azért,
hogy az adat a magasabb rétegbe jusson. (Mivel a fejlesztésünk nem csak az Internet szállítási
rétegére vonatkozik, hanem általánosságban a számítógép hálózatokra, ezért maradjunk a "csomag"
szó használatánál "szegmens" helyett.)
műveleteit. Ahogy a 4.7 ábrán is látható, mind a küldőnek és a fogadónak is csupán egyetlen
állapota van. A nyilak hivatottak az állapotátmeneteket jelölni, amelyek jelen esetben ugyanabba
az állapotba viszik a gépeket. Az átmenetet kiváltó eseményeket leolvashatjuk az állapot melletti
címkéről, a vízszintes vonal felett, az esemény bekövetkeztekor végrehajtandó műveleteket pedig a
vonal alatt találjuk. Amennyiben nincs esemény vagy művelet egy átmenet során, akkor azt a ∧
jellel jelöljük a vonal felett vagy alatt. A szaggatott vonallal ellátott nyíl jelöli a kezdőállapotot.
A küldő oldalon az rdt fogadja az adatot a felsőbb rétegtől az rdt_send(data) eseményen
keresztül, majd előállítja a csomagot a make_pkt(data) művelettel, és továbbítja azt a csatornába
(udt_send(packet)).
A fogadó oldalon az rdt fogadja a csomagot a csatornából az rdt_rcv(packet) eseményen
keresztül, kibontja a csomagot az extract(packet,data) művelettel, és továbbítja a magasabb réteg
felé az adatot (deliver_data(data)). Mivel a küldés sebességére és a visszaigazolásra nem tettünk
megszorításokat, így ez a protokoll hibátlanul működik ebben a környezetben.
küldő fogadó
4.7: Az rdt1.0 protokoll állapot automatái1
Fontos A bithibák detektálásához három alapvető képességgel kell egy megbízható adatátviteli
protokollt felruházni: hibadetektálás, visszaigazolás és újraküldés.
várja a felsőbb rétegből érkező adatot. Amikor az rdt_send(data) esemény bekövetkezik, a küldő
összeállít egy csomagot (sndpkt), amely tartalmazza az adatot (data), az ellenőrző összeget
(checksum). Az így összeállt csomagot a udt_send(sndpkt) művelettel elküldi. A második
állapotban (jobb oldalon) a küldő protokoll vár egy visszaigazolást a fogadó féltől, amely vagy
egy ACK (pozitív visszaigazolás) vagy egy NAK (negatív visszaigazolás) lehet. Amennyiben a
visszaigazolás pozitív (rdt_rcv(pkt) && isACK(rcvpkt)), a küldő tudja, hogy a csomag hibamentesen
érkezett meg, így visszatér a kezdőállapotba, és vár egy újabb adatot a magasabb rétegből. Ha a
küldő NAK visszajelzést kap, úgy a küldő a legutóbb kiküldött csomagot újraküldi, és vár egy újabb
visszaigazolásra. Fontos megjegyezni azonban, hogy jelen protokollban a küldő fél mindaddig nem
fogad adatot a magasabb rétegtől, amíg a kiküldött csomagra nem kap ACK visszacsatolást. Azokat
a protokollokat, amelyek így viselkednek, "állj meg és várj" protokolloknak nevezzük, ilyen az
rdt2.0 is.
A fogadó oldal egyetlen állapottal rendelkezik. Csomag érkezésekor egy ACK vagy NAK
visszaigazolást küld a küldő félnek, függően attól, hogy a csomag helyesen vagy helytelenül érkezett
meg. Az rdt_rcv(rcvpkt) && corrupt(rcvpkt) esemény jelöli az, amikor a csomag megérkezik a
fogadó félhez, de hibásan.
Az rdt2.0 látszólag már hibatűrő, azonban mégis rejt egy komoly problémát. Amivel nem
számoltunk, az az ACK vagy a NAK bithelyes továbbítása. Ebből a bajból azonban két alprobléma
is megjelenik: a bithibás visszaigazolás következtében nem ismert, hogy a fogadónál mi történt,
illetve fölösleges újraküldés esetén duplikátum keletkezhet a fogadónál. A duplikátumok fő
problémája az, hogy a fogadónak a szállítási rétegben kellene a csomagban lévő adatot ellenőriznie.
Ezért az újraküldött csomagok kezelésére bevezetünk egy ún. szekvencia számot (sorszámot),
amellyel az újraküldendő csomagokat könnyen nyomonkövethetjük. Ehhez egy új mezőt kell
felvennünk a protokoll fejlécében, amellyel a fogadó már be tudja azonosítani a csomagról, hogy
az egy újraküldött vagy egy új adatot tartalmazó csomag. A visszaigazolások sorszámozására nincs
szükség, mivel a csatornáról feltettük, hogy nem veszít el csomagot. A továbbfejlesztett protokoll
neve legyen rdt2.1. A 4.9 és a 4.10 ábrákon látható az FSM reprezentációja a továbbfejlesztett
protokollnak a küldő és a fogadó oldalon.
Az új protokollnak mind a küldő, mind a fogadó oldalon kétszer annyi állapota lett, ugyanis
a küldőnek követnie kell, hogy milyen sorszámmal küldte el a csomagot, a fogadónak pedig
nyugtáznia kell, hogy milyen szekvencia számú csomag érkezett. A sorszámozáshoz elegendő
4.4 A megbízható átvitel alapjai 79
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
0-s hívásra ACK-ra vagy isNAK(rcvpkt) )
vár felülről NAK 0-ra vár
udt_send(sndpkt)
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt) && notcorrupt(rcvpkt)
&& isACK(rcvpkt)
Λ
Λ
ACK-ra vagy
NACK 1-re 1-re vár
rdt_rcv(rcvpkt) && vár felülről
( corrupt(rcvpkt) ||
isNAK(rcvpkt) ) rdt_send(data)
egyetlen bit (0 vagy 1), hiszen ebből jól látszik, hogy az adott csomag egy újraküldött üzenet
(a sorszám nem változott a legutóbb fogadott csomaghoz képest) vagy egy új csomag érkezett
(a sorszám eggyel nőtt az előző fogadott csomag sorszámához képest). A fent leírt változások
követéséhez elég a modulo-2-aritmetika.
Az rdt2.1 kétféle visszaigazolást használ: ACK és NAK. Azonban, ha egy hibásan megérkezett
csomag esetén az utoljára helyesen megérkezett csomagra vonatkozó ACK-t küld vissza a fogadó a
küldőnek, akkor a küldő ugyanúgy értesíthető arról, hogy a legutóbb elküldött csomag nem érkezett
meg helyesen. Ehhez azonban a küldőnek ellenőriznie kell azt, hogy melyik csomagra érkezett
ACK. A új, NAK-mentes megbízható csatornát nevezzük rdt2.2-nek. Az állapot automaták a 4.11
ábrán láthatóak.
extract(rcvpkt,data
rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK,
make_pkt chksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt)
sndpkt = make_pkt(NAK, chksum) sndpkt = make_pkt(NAK, chksum)
udt_send(sndpkt) udt_send(sndpkt)
Alulról Alulról
rdt_rcv(rcvpkt) && 0-ra vár 1-re vár rdt_rcv(rcvpkt) &&
not corrupt(rcvpkt) && not corrupt(rcvpkt) &&
has_seq1(rcvpkt) has_seq0(rcvpkt)
sndpkt = make_pkt(NAK, chksum) sndpkt = make_pkt(NAK, chksum)
udt_send(sndpkt) udt_send(sndpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
rdt_send(data)
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt) rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
0-as 0-ás ACK- isACK(rcvpkt,1) )
hívsára vár ra vár
felülről udt_send(sndpkt)
küldő FSM
darab rdt_rcv(rcvpkt)
rdt_rcv(rcvpkt) && && notcorrupt(rcvpkt)
(corrupt(rcvpkt) || && isACK(rcvpkt,0)
has_seq1(rcvpkt)) Felülről fogadó FSM Λ
0-ra vár
udt_send(sndpkt) darab
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum)
udt_send(sndpkt)
Úgy tűnik, hogy a várakozási idő egy jó taktika a csomagvesztés kezelésére, azonban mikor
mondhatjuk azt, hogy a várakozás "elegendő"?
Első megfontolásból mondhatnánk azt, hogy várjon annyit a küldő, amennyi egy csomag
"oda-vissza" útjához szükséges. Ez még nem tartalmazza a hálózatban résztvevő forgalomirányítók
puffereléssel töltött idejét, és a fogadó fél adatfeldolgozási idejét, de mindezekkel együtt becsülhető
lenne a késleltetés legrosszabb esete. Ez nagyon nehéz, továbbá a protokollnak a csomagveszteséget
a lehető leghamarabb észlelnie kellene. Egy idő alapú újraküldő mechanizmus implementációjához
szükség van egy visszaszámlálóra, amely megszakítja a küldőt egy adott idő elteltét követően. Így
a küldőnek három dolgot kell tudnia:
1. egy csomag elküldésekor az időzítőt elindítani
2. az időzítő megszakításakor a megfelelő műveletet végrehajtani
3. megállítani az időzítőt
A 4.12 ábrán nyomon követhető az rdt3.0 protokoll állapot automatája, mely a korábbi újraküldő
mechanizmuson túl az időzítő használatát is tartalmazza.
4.4 A megbízható átvitel alapjai 81
rdt_send(data)
rdt_rcv(rcvpkt) &&
sndpkt = make_pkt(0, data, checksum) ( corrupt(rcvpkt) ||
udt_send(sndpkt) isACK(rcvpkt,1) )
rdt_rcv(rcvpkt) start_timer Λ
Λ 0-s
0-s felső ACK- timeout
hívsra vár ra vár udt_send(sndpkt)
start_timer
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt) rdt_rcv(rcvpkt)
&& isACK(rcvpkt,1) && notcorrupt(rcvpkt)
stop_timer && isACK(rcvpkt,0)
stop_timer
1-es
timeout ACK- 1-re vár
udt_send(sndpkt) ra vár felülről
start_timer rdt_rcv(rcvpkt)
rdt_send(data) Λ
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) || sndpkt = make_pkt(1,
make_pkt data, checksum)
isACK(rcvpkt,0) ) udt_send(sndpkt
sndpkt)
start_timer
Λ
(b) csomagvesztés
küldő fogadó
küldő fogadó pkt0 küldése pkt0
pkt0 küldése pkt0 rcv pkt0
pkt0 fogadása ack0 ack0 fogadása
ack0 ack0 küldése ack0 fogadása
ack0 fogadása pkt1 küldése pkt1
pkt1 küldése pkt1 pkt1 fogadása
pkt1 fogadása ack1 küldése
ack1 ack1 küldése ack1
X
elveszett időtúllépés
időtúllépés pkt1 újraküldése pkt1
pkt1 fogadása
pkt1 újraküldése pkt1 pkt1 fogadása ack1 fogadása pkt0 (duplikátum detektálása)
(duplikátum detektálása) pkt0 küldése ack1 küldése
ack1 ack1
ack1 küldése ack1 fogadása pkt0 fogadása
ack1 fogadása ack0 ack0 küldése
pkt0 pkt0 küldése pkt0
pkt0 küldése pkt0 fogadása
pkt0 fogadása ack0 (duplikátum detektálása)
ack0 ack0 küldése ack0 küldése
L 8000 bit/csomag
dtrans = = = 8 mikroszekundum (4.1)
R 109 bit/másodperc
Ahogy a 4.14 és a 4.15 ábrákon látható, ha az "állj és várj" protokollt alkalmazzuk, akkor
a t = 0 időpillanatban kiküldött csomag utolsó bitje a t = L/R = 8 mikroszekundumban kerül
be csatornába a küldő oldalon. Ezt követően a csomag megteszi a 15 milliszekundumos útját a
fogadó fél felé, így a fogadó félnél az utolsó bit a t = RT T /2 + L/R = 15, 008 milliszekundum
időpillantban jelenik meg. Ha feltesszük, hogy a visszaigazolás (ACK) mérete olyan kicsi, hogy
az átviteli idő figyelmen kívül hagyható, és az utolsó bit megérkeztével azonnal küldhető, akkor a
visszaigazolás a t = RT T + L/R = 30, 008 milliszekundum időpillanatban érkezik meg a küldőhöz.
Ha a küldő (vagy a csatorna) kihasználtságát (Uküldő ) a küldő tényleges foglaltságának és az
oda-vissza úthoz szükséges idő hányadosaként írjuk fel, akkor az
L/R 0, 008
Uküldő = = = 0, 00027 milliszekundum (4.2)
RT T + L/R 30, 008
az ACK beérkezik,
küldjük a következő
csomagot
, t = RTT + L / R
küldő fogadó
az első továbbítandó bit, t = 0
az utolsó továbbítandó bit, t = L
/R
Vissza N-nel
A Vissza N-nel protokoll esetében a küldő számára megengedett, hogy több csomagot is kiküldjön
visszaigazolásra történő várakozás nélkül. A megengedésnek természetesen van egy beállított N
felső korlátja, azaz legfeljebb N még nem visszaigazolt csomag lehet a csővezetékben egyidejűleg.
A 4.16 ábrán látható a küldő fél szemszögéből a szekvencia számok. Ha az első visszaigazolatlan
csomagot jelöli base, és nextseqnum a következő szabad szekvencia számot, akkor a szekvencia
számok tartománya 4 részre osztható:
• [0,base-1]: az elküldött és visszaigazolt csomagok
• [base,nextseqnum-1]: az elküldött, de még vissza nem igazolt csomagok
• [nextseqnum,base+N-1]: az azonnal küldhető csomagok
• [base+N,∞): nem használhatóak, amíg a csővezetékben levő csomagok közül nincs újabb
visszaigazolt
A maximálisan kiküldhető nyugtázatlan csomagok számát (N) szokták ablaknak nevezni. A
fogadó nyugtázása is ennek megfelelően történik. A küldő fél egy ún. összesítő (kumulált) nyugtát
fog kapni az n. csomagról. Az n. csomag nyugtáját a fogadó akkor küldi ki, ha az n. volt a
sorban következő csomag. Ha egy soron kívüli csomag érkezik, akkor azt elveti, és nyugtát küld az
utoljára helyesen fogadott csomagról. Az n. csomag nyugtája természetesen azt is jelenti, hogy az
n szekvencia számnál alacsonyabbal ellátott csomagok is helyesen megérkeztek.
A Vissza N-nel nevét a protokoll a küldő viselkedéséről kapta. Ismét visszaköszön az időzítő
használata, amellyel az adatvesztés adta problémákat kezeljük. Egyetlen időzítőt használva,
alkalmazzuk azt a legrégebben kiküldött még nem visszaigazolt csomagra. Ha nem érkezik adott
időn belül visszaigazolás, akkor a legrégebben vissza nem igazolt csomag újraküldésre és kerül, és
84 4. fejezet - Szállítási réteg
már visszaigazolt
base nextseqnum
elküldött, de még
nem visszaigazolt
használható, még
nem elküldött
ablak méret
N
nem használható
az összes ezt követő is, hiszen a sorrendhelyesség fontos a fogadónál. A 4.17 ábra szemlélteti a
Vissza N-nel protokoll működését.
Szelektív ismétlés
Ugyan a Vissza N-nel protokoll megnövelte küldő kihasználtságát az "állj és várj" stratégiához
képest, azonban vannak olyan esetek, amikor itt is mutatkoznak teljesítmény problémák. Például, ha
az ablak méret és a késleltetés is magas, akkor egyidejűleg rengeteg csomag lehet a csővezetékben.
Egyetlen csomaghiba nagy mennyiségű csomag újraküldését eredményezi, hiszen a hibás csomagtól
kezdve minden csomagot újra kell küldeni.
A szelektív válasz protokoll pontosan ezeket a szükségtelen újraküldéseket hivatott elkerülni.
Csak azokat a csomagokat fogja újraküldeni, amelyek hibásan érkeztek meg a fogadóhoz vagy
elvesztek. Az ablak méretet továbbra is alkalmazzuk az egyidejűleg a csővezetékben tartózkodó
csomagok számának maximális korlátozásához. A szekvencia számok tere azonban változik, melyet
4.4 A megbízható átvitel alapjai 85
ablak méret
N
soron kívüli
(pufferelt), elfogadható,
de visszaigazolt az ablakon belül van
fogadó
elvárt, de még
nem érkezett be nem használható
ablak méret
N
rcv_base
0123012 pkt0
0123012 pkt1 0123 012
0123012 pkt2 01230 12
X 012301 2
X
időtúllépés
újraküldés pkt0 X
0123012 pkt0
elfogadja a 0-s sorszámút
(a) probléma
0123012 pkt0
0123012 pkt1 0123012
0123012 pkt2 0123012
012301 2
0123012 pkt3
X
0123012
pkt0 elfogadja a 0-s sorszámút
(b) nincs gond
4.20: A Szelektív ismétlés protokoll működése túl nagy ablak méret esetén1
4.5 Kapcsolatorientált átvitel: TCP 87
A gép
‘C’-t küld
Seq=42, ACK=79, data = ‘C’
B gép nyugtázza
‘C’-t, visszaküldi
‘C’-t
Seq=79, ACK=43, data = ‘C’
A gép nyugtázza a
visszaküldött
‘C’-t
Seq=43,
=43, ACK=80
egyszerű telnet
4.22: Szekvencia számok és nyugta számok egy egyszerű TCP feletti Telnet alkalmazás esetén1
200
150
100
50
0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
Idő (másodperc)
Az RTT jó közelítésében segíthet az RTT változékonyságának mérése is. RFC 6298 szerint
DevRTT közelíti SampleRTT eltérését EstimatedRTT-től. DevRTT az alábbi formulával számítható:
Az ajánlott β érték a 0,25. A legjobb időtúllépés meghatározásához a fent számított két értéket
kellene kombinálni, ezért a becsült RTT-re számolunk egy kis ráhagyást, és az így kapott időtúllépés
(TimeoutInterval) az alábbi képletből kapható meg.
SendBase
SendBase=92
Seq=92, 8 adatbájt Seq=92, 8 adatbájt
időtúllépés
időtúllépés
Seq=100, 20 adatbájt
ACK=100
X
ACK=100
ACK=120
SendBase=120
Az időtúllépés által kiváltott újraküldés egyik problémája, hogy az időtúllépési periódus nagy
is lehet. Egy szegmens elvesztésével a hosszú időtúllépési periódus miatt a küldő csak nagy
késleltetéssel tud újraküldeni, amellyel a vevő oldalon is megnövekszik a késleltetés.
Szerencsére a küldő képes detektálni csomagvesztést az időzítő lejárta előtt is, mégpedig, ha
duplikált nyugtát kap. A 1 táblázat összefoglalja a nyugta generálásának eseteit, amely az RFC
1122-ben és az RFC 2581-ben definiáltak.
Mivel a küldő sok szegmenst küld egymás után, így egy szegmens elvesztésével sok duplikált
ACK jelenne meg. Ha egy TCP küldő három duplikált nyugtát kap, az azt jelenti, hogy a háromszor
nyugtázott szegmenst követő szegmensek elvesztek. A három duplikált nyugta esetén a TCP egy
4.5 Kapcsolatorientált átvitel: TCP 91
gyors újraküldést (RFC 5681) indít a szegmensre vonatkozóan, mielőtt az időzítője lejárna. Ezt az
esetet szemlélteti a 4.25 ábra.
A gép B gép
Seq=92,
=92, 8 adatbájt
Seq=100,
=100, 20 adatbájt
X
ACK=100
időtúlléps
ACK=100
ACK=100
ACK=100
Seq=100,
=100, 20 adatbájt
Folyamvezérlés
A csőszervezésű protokolloknál használtunk először puffereket (gyorstárakat), amellyel sikeresen
megoldottuk a nem megfelelő sorrendben érkező csomagok újraküldésének problémáját. Ez a
puffer mindkét résztvevőnél létezik, és az elvárt működés szerint az alkalmazások innen olvassák be
az adatokat, de nem garantálható, hogy a szegmensek érkezésének sorrendjében kerül a pufferből ki
az adat. Ha az alkalmazás relatív lassan dolgozza fel az adatokat, akkor egy nagy sebességű küldő
esetén a vevő puffere könnyen túlcsordulhat.
Ezen probléma megoldására kínál a TCP egy ún. folyamvezérlési szolgáltatást, amellyel
megakadályozható a fogadó fél pufferének túlcsordulása. A folyamvezérlés tulajdonképpen egy
sebesség egyeztető szolgáltatás, amellyel összeegyeztethető a küldő küldési sebessége és a vevő
feldolgozási képessége. A TCP egy vevő ablak változót tart fenn a küldőnél, amely megmondja a
küldőnek, hogy a vevőnél a puffer mekkora része szabad.
Mivel a TCP kétirányú adatforgalmat von maga után, így mindkét résztvevőnél ismert a másik
vevő ablaka. Vizsgáljuk meg az alábbi példát!
92 4. fejezet - Szállítási réteg
Tegyük fel, hogy A egy nagy fájlt küld B számára TCP kapcsolat felett. B allokál egy RcvBuffer
méretű puffert a kapcsolathoz, amelyből a processzus folyamatosan olvassa az adatokat. Bevezetünk
két változót, LastByteRead jelölje az adatfolyam utoljára kiolvasott bájtját a B pufferéből, és
LastByteRcvd az utolsó pufferba betöltött (megérkezett) bájtot. Mivel a TCP nem engedi túlcsordulni
B pufferét, ezért igaz az alábbi egyenlőtlenség.
Mivel a puffer szabad területe folyamatosan változik, így rwnd dinamikus. Hogyan szabályozza
B az A küldő által kiküldött bájt folyamot?
A vevő minden visszaküldött szegmensben elküldi az aktuális rwnd értéket, ezzel tájékoztatva
a küldőt a puffer jelenlegi helyzetéről. Kezdetben az rwnd értéke RcvBuffer értékével egyenlő.
Kapcsolatkezelés
A korábbiakban felvázolt három lépéses kézfogást (three-way handshake) vesszük gorcső alá.
Ahogy azt már említettük, a kapcsolat létrejöttekor kiküldött szegmensek speciálisak. A három
lépés három TCP szegmenst jelent, amelyek az alábbi struktúrával és mező értékekkel bírnak.
1. lépés: A kliens-oldali TCP kiküld egy szegmenst a szerver-oldali TCP felé. A kiküldött
szegmens nem tartalmaz alkalmazás rétegbeli adatot, azonban a flag bitek közül a SYN beállításra
kerül 1-es értékkel. Ezért az 1. lépésben összeállított szegmenst SYN szegmensnek is nevezik.
Ezen túl a kliens véletlenszerűen választ egy iniciális szekvencia számot, amelyet bele is helyez a
kezdő TCP SYN szegmensbe. A szegmens beágyazásra kerül egy IP datagramba, és elküldésre
kerül a szerver felé.
2. lépés: A szerverhez beérkező IP datagramból kibontásra kerül a TCP SYN szegmens,
allokálásra kerül a TCP puffer, és visszaküld egy olyan szegmenst, amellyel a kapcsolódást
engedélyezi a szerver a kliensnek. Ebben a szegmensben sincs alkalmazás adat, viszont ez is
tartalmaz speciális értékeket és flag-eket. Elsőként a SYN és ACK flag bitek kerülnek beállításra
(1-es érték), valamint a nyugta mezője a TCP fejlécnek (acknowledgement number) 1-gyel nagyobb
értéket kap, mint a kliens által választott szekvencia szám. Végül, a szerver is választ egy szekvencia
számot véletlenszerűen. Ezt a szegmenst SYNACK szegmensnek szokták nevezni.
3. lépés: A SYNACK szegmens fogadásával a kliens elismeri a kapcsolódás jogát, és allokálja
a puffert és a változókat a kapcsolathoz. A kliens ilyenkor visszaküld egy nyugtát a szerver felé,
amellyel elfogadja a kapcsolódási jogot. A szegmensben kizárólag az ACK flag bit kerül beállításra
(1-es érték), a SYN ilyenkor 0-t kap. Ezt a szegmenst nevezik ACK szegmensnek is.
A 4.26 ábra szemlélteti a három lépéses kézfogást és annak lépéseit.
A nyitás áttekintése után nézzük meg a kapcsolat zárását! A kliens alkalmazás processzus le
szeretné zárni a kapcsolatot, és kibocsát egy zárás parancsot. Ezzel a kliens TCP egy speciális
szegmenst küld ki, amelyben a FIN flag bit kap 1-es értéket. Ha a szerver egy ilyen szegments
kap, akkor a kapcsolat lezárást nyugtázza (ACK), majd ő is küld egy beállított FIN bittel ellátott
szegmenst a kliensnek. A kliens szintén küld egy nyugtát a szervernek, amelyet követően minden
foglalt erőforrás felszabadul.
4.6 A torlódásvezérlés alapjai 93
Kliens Szerver
SYNbit=1, Seq=y
ACKbit=1; ACKnum=x+1
TCP SYNACK(x+1) fogadása,
ACK küldése a SYNACK-ra;
végetelen, megos
ztott, kimeneti
buffer
B gép
R/2
késleltetés
out
nagyban függ az újraküldéstől, ezért bontsuk három felé a szcenáriónkat (4.29 ábra)!
a) Tekintsük azt a valótlan(!) esetet, amikor a küldő (A) meg tudja jósolni, hogy a forgalomirányító
puffere szabad vagy sem. Csak akkor forgalmaz, ha a puffer üres. Ebben az esetben
0
adatvesztés nem történik, és teljesül a λin = λin egyenlőség. Ilyenkor az áteresztőképességet
tekintetében a teljesítmény ideális. Fontos megjegyezni, hogy a küldési sebesség itt sem
lehet R/2-nél magasabb, mivel a csomagvesztést kizártuk.
b) A küldő újraküld, ha a csomag elveszett. Tegyük fel, hogy a teljes forgalmazási ráta (eredeti
0
adat + újraküldés) λin = R/2. Ebben az esetben a vevő terhelése R/3 értéken van, hiszen az
újraküldésekre is kell sávszélességet biztosítani, de aszimptotikusan R/2 a sávszélesség még
mindig.
c) Végül vegyük azt az esetet, amikor az időzítő túl hamar lejár, és a küldő azelőtt újraküldi
csomagot, mielőtt az elveszett volna. Ilyenkor az eredeti csomag és az újraküldött is
megérkezhet a vevőhöz. Természetesen, a vevő az újraküldött csomagot eldobja, azonban az
újraküldés "pazarolta" a forgalomirányító kapacitását. Ha minden csomagot kétszer küldünk
el, akkor az áteresztőképesség aszimptotikusan eléri az R/4 sebességet, míg a terhelés közelíti
az R/2 értéket.
3. eset: Végül tekintsük azt az esetet, amikor négy küldő van, több ugrásos utak, ahogy
a 4.30 ábrán is látható. Minden hoszt megbízható adatátvitelt garantál időtúllépés és újraküldés
mechanizmusával. Minden számítógép λin bájt/másodperccel forgalmaz, és minden forgalomirányító
R bájt/másodperc kapacitással bír. Ahogy az ábrán is látható a kapcsolatok osztoznak a forgalomirányítókon:
az A-C kapcsolat R1-et és R2-t használja, a B-D kapcsolat R2-t és R3-at, a C-A R3-at és R4-et, a
D-B pedig R4-et és R1-et.
Extrém kicsi λin érték esetén a a túlcsordulás ritka, valamint az áteresztőképesség és a
kihasználtság közel egyforma. A λin kismértékű növelésével a torlódás mértéke nem növekszik, de
4.7 TCP torlódásvezérlés 95
out
out
R/4
out
’in R/2 ’in R/2 λ’in R/2
A gép
in : eredeti adat out
B gép
'in: eredeti adat, plusz
újraküldött adat
véges, megosztott,
kimeneti vonali
pufferek
R4 R1
D gép
C gép
R2
R3
in’ C/2
Ezzel látható a torlódás másik ára, azaz amikor egy csomagot eldobnak az addig igénybevett
továbbító kapacitás feleslegessé válik.
A TCP megközelítésmódja az, hogy az érzékelt hálózati torlódás alapján próbálja növelni az küldési
sebességet. Ha kis torlódást érzékel, akkor növeli a sebességet, ha nagy torlódást érzékel, akkor
csökkenti.
A küldési sebesség meghatározásához a TCP fenntart egy változót, amely a torlódási ablakot
jelöli (cwnd). Az itt tárolt érték határozza meg a küldési sebességet, konkrétan a küldő nyugtázatlan
szegmenseinek a száma nem haladhatja meg az ütközési ablak és a vevő ablak minimumát.
Torlódás elkerülés
Ebben a fázisban cwnd értéke körül-belül fele akkora, mint a torlódás bekövetkeztekor. Így ahelyett,
hogy az aktuális cwnd értéket megkétszerezzük, inkább csak növeljük mindig 1 MSS-sel minden
RTT után. Azonban felmerül a kérdés, hogy ez a lineáris növekedés meddig tarthat? A következő
4.7 TCP torlódásvezérlés 97
A gép B gép
RTT
idő idő
4.32: TCP lassú indulás1
csomag vesztésig, amelyet egy háromszorosan duplikált nyugta igazol. Ilyenkor a ssthresh
értékét frissítjük azon cwnd érték felére, amelyet a háromszorosan duplikált nyugta pillanatában
tároltunk, cwnd-t pedig visszaállítjuk a felére. Ezzel átlépünk a gyors helyreállás fázisba.
Gyors helyreállás
Ebben a fázisban cwnd értékét 1 MSS-sel növeljük minden duplikált nyugta esetén. Amikor a
hiányzó szegmensről megérkezik a nyugta a küldőhöz, az algoritmus visszalép a 2-es fázisba
(torlódás elkerülés). Időtúllépés esetén visszalépünk a lassú indulás lépéshez, és cwnd értéke ismét
1-ről indul.
A gyors helyreállás ajánlás a TCP-nél, nem szükségszerű komponens. A TCP korai verziójánál,
a TCP Tahoe-nál a torlódási ablak mindig visszaállításra került 1 MSS-re, ezzel visszalépve a lassú
indulás fázisába, függetlenül hogy az adatvesztést háromszorosan duplikált nyugta vagy időtúllépés
okozta. Az újabb, TCP Reno implementáció már tartalmazza gyors helyreállás komponenst. A
4.33 ábrán látható diagram szemlélteti a TCP különböző verzióinak működését.
A lassú indulástól eltekintve a TCP torlódásvezérlés voltaképp a torlódási ablak lineáris
növekedéséből (cwnd növelése 1 MSS-sel minden RTT után), majd annak lefelezéséből áll.
Ezt szokták nevezni a torlódásvezérlés "additív növekedés, multiplikatív csökkenés" (AIMD)
formájának is. Ez a "fűrészfog" viselkedés, mely látható a 4.34 ábrán is, igazából a sávszélesség
próbálgatását jelenti. A következő rövid fejezet azonban rávilágít arra, hogy ennek miért és mikor
van jelentősége.
12
10
8 ssthresh
6 TCP Tahoe
TCP Reno
4
0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Átviteli körök
4.33: TCP torlódási ablak evolúciója (Tahoe és Reno)1
W
Ütközési ablak
W/2
Idő
4.34: Additív növekedés, multiplikatív csökkenés (AIMD) jelenség1
Azonban, ha az UDP még igazságos is volna, akkor sem oldódna meg teljesen a sávszélesség
megosztásának a problémája, hiszen vannak olyan TCP feletti alkalmazások, amelyek párhuzamos
kapcsolatokat nyithatnak. Ilyen elven működnek a Web böngészők is. Példaként vegyünk 9
kliens-szerver alkalmazást, amelyek mindegyike TCP felett kommunikál egy R sávszélességű
vonalon. Ha megnyílik egy 10. alkalmazás, akkor minden alkalmazás küldési sebessége lekorlátozódik
R/10-re. De, ha egy új alkalmazás 11 párhuzamos TCP kapcsolatot használ, akkor az új alkalmazás
egy igazságtalan allokációval él, ami nagyobb, mint R/2.
Ahogy azt a TCP bevezetésekor tárgyaltuk, egy megbízható protokollt helyezünk a megbízhatatlan
IP-re. Mivel az IP nem ad explicit visszajelzést a TCP-nek a hálózati torlódásról, ezért ez az ő
feladata erre következtetni a csomagvesztésekből. Azonban készült egy olyan kiegészítés az IP-hez
és a TCP-hez, amellyel a hálózat explicit jelezheti a küldőnek és a fogadónak, ha torlódás van.
Az IP csomag fejlécében a ToS mezőt (2 bit) használhatja a forgalomirányító a torlódás jelzésére.
A vevő gép kezeli a torlódásvezérlést, ezért ha a vevő lát az IP-ben ECN-t a ToS mezőben, akkor a
TCP nyugtában az ECE flag bit 1-re állításával jelzést adhat a küldőnek.
4.8 Ellenőrző kérdések 99
1. TCP kapcsolat
R kapacitású vonal
2. TCP kapcsolat
4.35: Két TCP kapcsolat egy közös vonalon1
5. Ismertesd a megbízható adatátvitel alapjai. Ismertesd az RDT 3.0 alapelveit vázlatos FSM
modell segítségével.
13. Ismertesd a TCP megfordulási idő, fogalmát, mérési módját, az időtúllépés meghatározását.
Az előző fejezetben ismertetett réteg lehetővé teszi a hálózat szélein elhelyezkedő résztvevők
processzusai közötti kommunikáció. Ezt egy cső absztrakció segítségével teszi függetlenné az alatta
lévő rétegtől. Az eddig megismert rétegek mind a hálózat szélein futottak, akár kliens és szerver
környezetben, akár szerver-szerver környezetben. A végfelhasználóink tehát megvoltak, de a képből
hiányzott az, aki ezen adatokat ténylegesen eljuttatja egyik helyről a másikra. Ennek megszervezése
és megvalósítása a hálózati réteg feladata. Mint ahogyan eddig is, itt sem egyedül oldja meg a
feladatát. Épít az adatkapcsolati és a fizikai rétegre. A posta analógiára visszavezetve a hálózati réteg
adja az irányítószámokat és a postahivatalokat, az felhasználókhoz a levelet közvetlenül eljuttató
postások vagy a nagyobb hivatalok között közlekedő furgonok, postavagonok az adatkapcsolati és
fizikai rétegnek felelnek meg. A hálózati réteget szokták még a homokóra modellben is ábrázolni,
ami jól mutatja a kitüntetett szerepét. A fejezet terjedelmi korlátok miatt nem tud mindent kellő
mélységben tárgyalni, így javasoljuk a [6] tankönyv olvasását is részletek megismerése, mélyebb
megértés érdekében. Fölötte és alatta is specifikus célú protokollok vannak. De az IP minden
kapcsolatban közös. Ezt használják az üzemkritikus kórházi rendszereken túl a filmnézésen át
az okosórák frissítéséig minden kommunikációs viszonylatban. Jelen fejezetben a hálózati réteg
feladatait, felépítését és néhány fontos protokollját fogjuk áttekinteni.
102 5. fejezet - Hálózati réteg
Azt a jelenséget amikor bemeneti port várakozási sorában a csomagokat sorban dolgozza fel
és épp a továbbítandó csomagot nem tudja továbbítani a célport foglaltsága miatt HOL (sor
104 5. fejezet - Hálózati réteg
eleji blokkolásnak - head of line blocking) nevezzük. Ezt lehet úgy kezelni hogy a sorrendet
felborítva azokat továbbítja amelyeket tudja ez a nem sorrendhelyes továbbítás (out of order
delivery). Látjuk, hogy fizikai hibák nélkül is felborulhat a csomagok sorrendje és eltűnhetnek
csomagok. Ezek kezelését végzi a már megismert TCP. A várakozási sorok kezeléséhez az
eddigiekben a FIFO (először be, először ki - First In First Out) megoldásról beszéltünk, mint
legtermészetesebb algoritmusról. Van azonban olyan eset, amikor meg szeretnénk különböztetni a
forgalmat. Például a telefon hívásokat előnyben szeretnénk részesíteni a fájl letöltésekkel szemben.
Ezt a mai Internet architektúrában csak itt, a várakozási sor menedzsmentben tudjuk megoldani.
Ennek egyik lehetséges módja a prioritásos ütemezés (priority queueing). Ekkor több várakozási
sor van és a magasabb prioritásúak vannak előnyben részesítve, azaz ha ott van csomag akkor
azokat kezeli. Itt probléma lehet az alacsonyabb prioritású sorok kiéheztetése. Erre megoldást nyújt
a WFQ súlyozott igazságos ütemezés (weighted fair queuing). Ekkor adott súlynyi darabot
továbbít minden sorból. A várokozási sorok elmélete nagyon komoly múlttal és mélységgel bír a
távközlésben. Egy jó kiinduló pont lehet ez a könyv a terület mélyebb megismerésére [1].
A kapcsoló motor több módon is megvalósítható. Lehet egyszerű memória másolás, vagy osztott
memória a részvevő processzusok között. Ez a megoldás gyors, de ekkor perifériák (interfészek) is
5.3 Hálózati réteg: adatsík 105
fizikailag ugyanazon az alaplapon helyezkednek el, így ennek a skálázhatósága korlátos. Lehet busz
rendszerű is, amikor a perifériák már saját memóriával bírnak, ilyenkor egy elosztott rendszerünk
(a perifériák képesek önálló programot futtatni, különálló kis számítógépek) van és az egyes
perifériák, illetve a központ a buszon keresztül kommunikálnak egymással. Ez a megoldás már
skálázhatóbb, mert a buszra újabb és újabb perifériákat köthetünk, ezeket kicserélhetjük stb.,
de a busz sávszélessége és az, hogy egyszerre csak egy kommunikációs viszonyt engedélyez,
komoly szűk keresztmetszetet okoz. A legnagyobb kapacitású forgalomirányítók teljes rács
(crossbar) megoldással bírnak, amely egy adott pillanatban minden portot minden porttal a teljes
port sávszélességgel tud összekötni. Itt tehát egyidőben az összes port adhat/vehet bármelyik másik
porttal. Itt is probléma persze, ha több port akar egy porttal beszélni, ekkor az adott port várakozási
sora kezeli ezt az ütközést.
Azt hogy a kapcsoló motor honnan tudja, hogy kit kivel kell összekötni, az mint ahogy említettük,
csomagonként dől el: a bemeneti várakozási sorban egy helyi vagy központi processzus kiválasztja
a továbbküldendő csomagot és kiolvassa annak megfelelő mezőjét (ez IP csomagoknál a cím
mező, de mint látjuk később a szoftverrel definiált hálózatok esetén itt több mezőt is figyelembe
vehet). Ezt a mezőt vagy ezen mezőket összeveti a forgalomirányító vagy továbbítási táblázat
a megfelelő mezővel és megkeresi ott a pontosan (vagy legjobban) egyező sort és abban a
sorban megadott kimeneti portra másolja, vagy mint látni fogjuk SDN esetén adott utasításokat
hajt végre. Ez a keresés, bár egyszerűnek tűnik, korántsem triviális feladat. Ma a gerinc
forgalomirányítókon kb.: 500.000 bejegyzés van, ez még nem is olyan sok, de gondoljunk bele,
hogy olyan gyakran jönnek be csomagok, hogy ezt meg kell tenni másodpercenként 1.000.000
és 10.000.000 közötti alkalommal egy 10 GBits-os vonalon csomag mérettől függően. Ezt a
feladatot ezért jellemzően nem szoftveresen, hanem hardveresen oldják meg speciális ASIC
alkalmazásspecifikus integrált áramkör (application-specific integrated circuit) segítségével,
106 5. fejezet - Hálózati réteg
amely egy memória ciklus alatt visszaadja az egyező CAM - tartalommal címezhető memória
(content addressable memory) vagy a leginkább egyező TCAM - hármas tartalommal címezhető
memória (ternary content addressable memory) bejegyzést. Az eddig leírt működésben általánosságban
kezeltük a csomagokat, a következőekben konkrét hálózati rétegbeli protokollokat tekintünk át.
5.3.2 Az IP protokoll
Ma az Internet alapja az IP Internet Protocol. Sikere az egyszerűségében rejlik. A felső rétegből
érkező UDP vagy TCP szegemenesek jellemzően IP csomagokba burkolva lesznek elküldve
(persze ezek a fizikai közeg és az adatkapcsolati protokoll függvényében további beágyazásokba,
burkolásokba kerülnek.) Az IP csomag felépítése a 5.7 ábrán látható. Legfontosabb mezői a 32
5.7: IP csomag
bites cél és forrás cím. Az adat mezőben található az UDP vagy TCP szegmens. Fontos mező még
a Time-to-live TTL, amely a nevétől eltérően ma nem időt, hanem ugrás számot jelent. A küldő
megmondhatja e mező segítségével, hogy maximálisan mennyi forgalomirányítón keresztül mehet
a csomag. A forgalomirányítók e mezőt minden továbbítás előtt csökkentik eggyel, ha ez nulla,
akkor hibajelzést küldenek vissza és a csomagot kidobják. Ennek a megoldásnak nagy jelentősége
van az Internet stabilitása szempontjából. Láttuk, hogy több 100.000 forgalomirányítónak kell
együttműködnie. Vannak olyan esetek, amikor nem érvényes információ alapján döntenek és így
hurkok keletkezhetnek (a csomag körbejár). Enélkül a mező nélkül ezen csomagok végtelenségig
keringhetnének, nem kicsi terhelést okozva. Később majd látjuk, hogy az Ethernet protokollnak
nincs ilyen mezője, ami komoly gondot okoz a helyi hálózatokban. Egy kevésbé fontos, de érdekes
mező a Fragmentation offset (darabolás eltolás).
A felsőbb rétegekben, hogy mekkora egy szegmens, vagy mekkora információ darabot küldök
át egy HTTP kérésben, nincs ilyen szinten korlátozva. Itt viszont Ethernet esetén például 1500
bájtos lehet egy csomag, amit át tudunk küldeni. Ezt a problémát az IP réteg kezelte régen azzal,
hogy a nagyobb szegmenseket darabolta és azok darabjait küldte át. Ez a megoldás azonban
szembe megy az Internet alapelveivel - azzal hogy a gerinc állapotmentes - tehát esetünkben a
forgalomirányítónak meg kell jegyezni, hogy egy-egy csomagnál melyik darabot küldték már át.
5.3 Hálózati réteg: adatsík 107
Emiatt és egyéb problémák miatt (ha elveszett egy darab akkor újra küldheti az egészet) ma a
forgalomirányítók nem darabolnak, hanem jelzik, hogy adott csomag nagyobb mint az MTU és a
csomagot kidobják.
Az eddig bemutatott elemek a fix fejléc elemei voltak. Igény van azonban arra, hogy a protokoll
fejlődjön újabb képességekkel bővüljön. Az új igényeket opcionális fejlécek segítségével lehet
megvalósítani. Ilyen például a forrás specifikus forgalomirányítás fejléc, (LSR loose specific
routing) amikor a forrás állomás megad egy forgalomirányító listát, hogy a forgalomirányítók ezen
lista mentén küldjék a csomagot. Ezeket a mezőket ma a legtöbb forgalomirányító figyelmen kívül
hagyja.
5.3.3 IP címzés
Az IP protokoll legfontosabb képessége a címzésben rejlik. Az előzőekben láttuk, hogy a
gerinc forgalomirányítókon másodpercenként 1.000.000 és közötti 10.000.000 keresés történik
a forgalomirányító táblában minden interfészhez. Nagyon lényeges tehát e tábla mérete. Azt
is láttuk, hogy ez tipikusan 500.000 bejegyzést tartalmaz. Az előző részben ismertetett csomag
fejlécben 32 bites címek vannak amelyek segítségével a függően kb.: 2.000.000.000 címet lehet
megadni. Legrosszabb esetben a forgalomirányító táblának minden címet tartalmaznia kellene.
Így működnek a lapos címteret megvalósító címzési sémák (pl.: Ethernet). Belátható, hogy
nagyon nehéz lenne olyan rendszert megvalósítani, amely minden felhasználó 2.000.000.000
IP címét folyamatosan karban tartaná 700.000.000 forgalomirányítón és ezek képesek lennének
ennyi címben másodpercenként 1.000.000 keresést megvalósítani. Az IP címzés ezért nem lapos,
hanem hierarchikus címzési sémát alkalmaz. Az IP címek hierarchiája nagyjából követi a fizikai
hálózat hierarchiáját és a DNS hierarchiáját. A hierarchia kezelése az IANA kezében van, mely nagy
címtartományokat ad ki nagy cégeknek vagy országoknak. Ezek részben kontinens szinten rögzített
szabályok mentén valósulnak meg. Ezen nagy cégek, vagy országok pedig tovább osztják kisebb
cégeknek. Így a fizikai felépítést követi a logikai IP címzés szintű hierarchia.
Fontos Az IP címek 32 bitesek. Ezt két részre szokták bontani, az első néhány bit a hálózatot
határozza meg, a maradék bitek meg amennyiben a legalsó szinten vagyunk, akkor az állomást.
Az, hogy egy IP cím mekkora része hálózat és mekkora host, helyi jelentőségű hálózati
maszkkal szokás megadni.
A hálózati maszk egy 32 bites szám, ahol egyesek jelölik azokat a biteket, amelyek hálózati részhez
tartoznak. A 255.255.255.0 azt jelenti, hogy az első 24 bit az adott IP címben a hálózati címet adja
meg. Ezt egyszerűsítve szokták egy számmal is jellemezni /24. A forgalomirányítók a beérkező
108 5. fejezet - Hálózati réteg
csomagok cél címéből mindig csak a hálózati részre kíváncsiak, mivel nem gépet, hanem
hálózatokat keresnek. Az, hogy adott esetben milyen hosszú a hálózati maszk, a forgalomirányító
tábla bejegyzés hordozza magában. A hálózati címet szokták még előtagnak (prefix) nevezni.
Egy-egy szervezet egy IP cím tartományt kaphat, amit saját belátása szerint tovább oszthat.
/16-os hálózatnál specifikusabbat meghirdetni. Így védik a gerinc forgalomirányító táblát a cím
robbanástól.
5.3 Hálózati réteg: adatsík 109
egyediek világszinten, ezeket bárki bárhol használhatja. Ezzel megoldódott a hálózat hozzáférési
részein a címtartomány kimerülése, hiszen ezeket a tartományokat bárki újrahasznosíthatta. Ezen
címeket tartalmazó csomagok azonban értelemszerűen nem küldhetőek tovább az interneten,
mivel több helyre is mehetnének. Itt jönnek képbe az új elemek. A megoldás lényege, hogy
ahogyan azt leírtuk eddigi állapotmentes rendszerben beiktatunk köztes dobozkat (middle box),
amelyek állapottartóak és átírják a rajtuk áthaladó csomagok cél és forrás címét, illetve cél és
forráspontját. Azaz a helyi hálózat és az Internet hozzáférési pont között (vagy mélyebben ez a
CGNAT) van egy olyan eszköz amely a privát IP cím és port párokat publikus IP cím port párra
cseréli a kifelé tartó csomagokban és ugyanezt megteszi visszafelé is. Az hogy mit mire cserélt ki,
a memória táblában van nyilvántartva (állapot tartás). Így ha a szolgáltatótól kapok egy darab
publikus IP címet az otthoni hálózatomban ehhez a címhez és külső porjaihoz rendelhetek 65000
darab eszközt amennyiben mindegyik egy-egy kapcsolatot tart fenn. Összegezve tehát, a privát
IP cím tartományokkal és a köztes dobozokkal (NAT átjáró) megoldódott az IPv4 címtartomány
kimerülése. Mert itt egy-egy IP cím mögé 65.000 másik címet tudok elrejteni. A NAT szembe
megy az Internet filozófiájával, ha ugyanis egy NAT átjáró újraindul, akkor az összes rajta
keresztülmenő adatfolyamot újra kell indítani, mert nem tudja, hogy melyik címet melyik címre és
portra cserélt le. Nagyobb gond az, amikor a NAT mögött lévő eszközök egymással szeretnének
beszélgetni. Ilyenkor különböző eljárásokra van szükség, hogy megtalálják egymás publikus IP/port
párját. Van olyan eset is, amikor ez nem lehetséges. Ennek ellenére ma az Interneten lévő eszközök
nagyon nagy hányada (90% feletti része) NAT mögött van.
110 5. fejezet - Hálózati réteg
adja bérbe a címet a kliensnek. Ezt is üzenetszórás csatornán hirdeti meg. A kliens kérésére több
szerver is válaszolhat. Ez egy jó példája annak, hogy hogyan lehet magas rendelkezésre állást
megvalósítani protokoll szinten (több szerver is lehet, ezeknek nem kell egymásról tudnia).
A kliens ezután kiválasztja a címet amelyet újra üzenetszórással, vagy csoportküldéssel tudat a
szerverekkel. A kiválasztott szerver által adott IP címet az a szerver nyugtázza.
Ez a bontás akkor jelenthet gondot, ha nincs minden üzenetszórási tartományban DHCP szerver
(ami valószínű), ez esetben több megoldási lehetőség is van. Az egyik, hogy a forgalomirányítót
bekonfiguráljuk a DHCP üzenetek továbbítására (DHCP relay). A másik gyakori eset, hogy
maga a forgalomirányító játssza el a DHCP szerepet. A DHCP protokoll nem csak IP címek
kiosztására szolgál, hanem itt lehet meghirdetni a helyi DNS szerver címét, a helyi nyomtatót, az
alhálózati maszkot és sok egyéb paramétert is. A DHCP az eszköz menedzsment első szintje.
5.3.6 IPv6
Az IPv6 protokoll tervezésekor nem szerettek volna forradalmat csinálni, csak az IPv4 hiányosságait
szerették volna kiküszöbölni az új protokollal. A 5.14 ábrán látható, hogy bár a WWW-vel egyidős,
korántsem futott be olyan sikeres életutat. Ma is csak 30% alatti az elterjedtsége (azaz azon
eszközök száma, amelyek IPv6 hálózathoz is hozzáférnek). Nincs az IPv4-hez összemérhető
világméretű IPv6-os gerinc. Több helyen hiába szeretne adott helyi hálózat vagy felhasználó
IPv6-ot használni, ha a szolgáltatója nem biztosít ilyen szolgáltatást. Az IPv6 legfontosabb újításai:
• 128 bites címtér: ez ma kifogyhatatlannak tartott címtér. Gyakran két 64 bites részre osztják,
az első 64 bit a prefix - hálózati cím, míg a második 64 bites rész pedig az eszköz hardver
azonosítója.
• nincs csomag darabolás: van de alapértelmezésben nem támogatja az IP csomagok darabonkénti
továbbítását
• nincs fejléc ellenőrző összeg: ezen összeg számítása minden egyes csomag továbbítása
esetén igen komoly dedikált hardver megoldást igényelt az IPv4-nél. Itt a hop count
csökkentése után nem kell újraszámolni a CRC-t, mert nincs.
• fejléc szkóp: az opcionális fejléceket nem kell minden egyes ugrásnál feldolgozni, vannak
olyan fejlécek, amelyek csak a végállomáson feldolgozandók.
• nincs üzenetszórás: viszont van egy új kommunikációs paradigma a bárkinek küldés
(anycast), ekkor egy csoportnak küldi az állomás de elegendő ha a csoportagokból csak egy
112 5. fejezet - Hálózati réteg
állomás kapja meg. Ilyen lehet pl.: a DNS kérés elég ha egy DNS szerver megkapja. A
kliensnek meg elegendő tudnia egy világszinten elfogadott DNS szervereknek szánt anycast
címet.
Az IPv6 ma még szigetekként jelenik meg az IPv4 tengerben. Ezen szigetek között leginkább
alagutakkal teremtik meg a transzparens összeköttetést. Az alagút bejáratánál IPv4-es csomagba
teszik az IPv6-os csomagot, míg a kijáratnál a beérkező IPv4-es csomagból kiveszik az IPv6-os
csomagot és azt továbbítják.
5.16: Hálózati réteg adatsík vs. vezérlősík, általánosított továbbítás szűrő mezők1
szabály lehet például a 5.16 ábrán látható, mely az egyes bemeneti porton érkező csomagoknál
azokat, amelyek a 10.3.x.x cím tartományból érkeztek és a 10.2.x.x címtartományba mennek,
továbbítja a 4. porton. Az alapvető akciók az alábbiak lehetnek:
• továbbítás: adott portján továbbítja
• eldobás: tűzfal funkcionalitás
• mező módosítás: ilyen lehet a NAT megvalósítása
A témával részletesebben foglalkozunk a vezérlősík fejezetben.
5.4.1 Bevezető
Ahogyan láttuk a vezérlés lehet elosztott és központosított. Elosztott vezérlés esetén a forgalomirányítók
egy-egy szoftvert futtatnak és ezek a szoftverek egymással együttműködve kialakítják a világképüket
és ez alapján mindegyik kitölti a helyi forgalomirányító táblát. Ez egy valós P2P rendszer
központi szerver nélkül, csak az egyenrangú szoftverek együttműködéséből tud építkezni. Ezen
szoftvere forgalomirányító protokollokat valósítanak meg, ezen protokollok mentén kommunikálnak
egymással. A másik irány az SDN/NFV ahol a vezérlés egy központban van kihelyezve, itt nem
kell P2P algoritmust megtervezni és megvalósítani, az elosztott rendszer komplexitása el van fedve
alattunk (SDN vezérlő platform pl.: OpenDaylight).
absztrakt reprezentációja egy gráf amely csomópontjai a forgalomirányítók, míg élei linkek. Az
éleknek súlyai vannak, ezek mentén kell meghatározni a legrövidebb útvonalat (G=(N,E)).
esetén a hálózat instabil lesz, mert adott linkek súly változása folyamatos újraszámolást eredményez.
Távolságvektor alapú protokollok esetén nincs meg a precíz információ a világról. Ennek az
algoritmus családnak jól ismert képviselői a Bellman Ford egyenlőségre építő megoldások. Ez azt
116 5. fejezet - Hálózati réteg
mondja ki, hogy az x és y csomópontok között úgy tudjuk meghatározni a legrövidebb útvonalat,
ha minden lehetséges v köztes csomópontra megkeressük a v és y közötti legrövidebb útvonalat.
Ezen egyenletre alapuló elosztott algoritmus pszeudokódja és egy lefutása látható a 5.20 ábrán. A
• osztott horizont (split horizon) - Itt megjegyzi, hogy honnan hallotta és oda nem mondja
vissza ugyanazt az információt. Ez a megoldás egy egyszerű háromszög és egy csomóponthoz
kapcsolódó további csomópont esetén sem működik, ott is visszaér az információ, csak más
úton.
• mérgezett hirdetések (poisoned updates) - Ekkor egy visszafelé végtelen távolságot hirdetnek
meg az útvonalon (amikor z, y után következik az útvonalon akkor y felé nem, hogy nem
hirdeti meg ugyanazt, hanem végtelen távolsággal hirdeti azt meg). Itt ismét egy kicsit
bonyolultabb topológián visszatérhet a régi információ.
Ebben a fejezetben két elméleti protokollt ismertünk meg, a következő fejezetben ezen elméleti
protokollok konkrét megvalósításával fogunk találkozni. Az elméleti és gyakorlati protokollok
összevetéséhez számos elvet, metrikát szoktak alkalmazni, ezek közül a legfontosabbak:
• üzenet komplexitás - Az információ terjesztéshez mennyi üzenetre van szükség. A link
állapot alapú algoritmusoknál ez O(N), azaz a forgalomirányítók számával arányos a küldendő
üzenetek száma. Ha figyelembe vesszük azt, hogy ezt minden link megváltozásakor meg kell
tenni, akkor inkább O(NE) lesz. Ezzel szemben a távolságvektor alapú forgalomirányításnál
nem jelentkezik ez az E tényező (mivel ha adott link változása nem hat a teljes költségre
akkor nem is megy frissítés).
• konvergencia sebessége - Ez a link állapot alapú algoritmusoknál belátható korlátok közé
szorítható, míg a távolságvektor alapú megoldásoknál nincs garantált felső korlátja
• robosztusság - Hogyan reagál a rendszer, ha adott csomópont rossz információkat hirdet
meg? A link állapot alapú megoldásoknál ez pontszerű hiba, nem feltétlenül érinti a rendszer
egészét. A távolságvektor alapúnál teljesen át tudja alakítani a világképet egy-egy rossz
hirdetés.
Ezekből a metrikákból is látható, hogy nem létezik optimális megoldás.
Visszaidézve az Internet alapelveit azt láttuk, hogy megkülönböztetjük az adott belső hálózaton
belüli forgalomirányító protokollokat azoktól, amelyek ezen rendszere között végzik a forgalomirányítást.
mindenkihez. Ez a megoldás nem skálázható. Adott méret fölött túl sok változást kapnak a
forgalomirányítók, ami miatt folyamatosan újra kell futtatniuk a Dijkstra algoritmust. Erre egy
megoldás az, ha az OSPF rendszert belső körzetekre osztjuk. Ezen körzetek határán speciális
szerepkörű forgalomirányítók vannak. Ezek az ABR (Körzet Határ Forgalomirányító
Area Border Router)-ek. Az ő feladatuk, hogy a körzetek között szűrt információt adjanak
át. A 5.22 ábrán például az Area1-ben lévő ABR nem küldi be az Area0-ba az összes
frissítést, csak egy összegzést küld be, hogy ez a hálózat merre van. Az, hogy ezen belül
egyes forgalomirányító interfésze milyen állapotban van, nem megy át. Vegyük észre, hogy
ezzel az adott határokon távolságvektor alapú viselkedésre álltunk át, azaz nem adunk pontos
információt, csak összegzettet. Azért, hogy ebből ne legyen hurok, csak a lenti kétszintű
topológia engedélyezett. Egy 0-s gerinc körzet és ehhez csatlakozó csonk körzetek. Egy
másik speciális szerepkörű eszköz van még a hierarchiában: az ASBR (autonóm rendszer
Határ Eszköz - Autonomous System Border Router), az ő szerepe hasonló, mint az
ABR-é csak ő autonóm rendszerek között közvetít aggregált információt.
• azonosítás, tartalomvédelem az OSPF csomagoknak: Láthattuk, hogy a forgalomirányító
információ kritikus fontosságú. Nem jó, ha bárki OSPF csomagokat küldhet egy forgalomirányítónak
tetszőleges tartalommal. Itt lehetőség van minden egyes csomaghoz egy jelszó + időbélyeg
kivonatot adni, így csak azonosított csomagot fogad el majd az OSPF processzus.
• több azonos költségű útvonal kezelése: Ha több azonos költségű útvonal van, akkor
közöttük terheléselosztást képes megvalósítani. (Mi van akkor, ha több van, de nem egyforma
költségű? Az OSPF nem tud ezzel mit kezdeni. Itt jön be a képbe az MPSL vagy ma az
SDN)
aki lehet hogy csak egy gyenge műholdas kapcsolat miatt tudott rövidebb útvonalat mondani. De
hasonlóan fontos a kimenő hirdetések szűrése is.
Így a kis cég, bár ismer egy rövid útvonalat a Google felé, nem biztos hogy érdekelt abban hogy
minden szomszédja rajta keresztül küldje a Google felé a forgalmát. Azt láttuk, hogy itt az autonóm
rendszerek jelennek meg, mint csomópontok, a közöttük lévő összeköttetések pedig a gráf élei.
Ma egyetlen EGP protokollt használnak, ez a BGP (Border Gateway Protocol). Az autonóm
rendszerek itt a csomóponthoz tartozó prefixeket (hálózatokat) hirdetnek meg egymásnak. A
távolság az ugrásszám, azaz hogy két pont között mennyi autonóm rendszeren kell keresztülmenni.
A forgalomirányítás egy finomított pletyka alapú protokoll. A csomópont nem csak a távolságot
küldi tovább egy adott hálózattól, hanem az úton lévő autonóm rendszerek azonosítóit (AS number
32 bites szám, ezt az IANA kezeli) is, ez az útvonal vektor forgalomirányító algoritmus.
A BGP forgalomirányítók TCP csatornán stabil kapcsolatot építenek ki a szomszédos BPG
forgalomirányítókkal. Ezen a csatornán küldik egymásnak az útvonal hirdetéseket különböző
attribútumokkal kiegészítve. Ilyen az AS-PATH ahol az útvonalhoz tartozó AS listát küldi el, de
ilyen a NEXT-HOP is, amely a következő ugrás IP címét tárolja. Számos egyéb argumentum/címke
csatolható egy-egy prefixhez, általában a kimeneti és bemeneti szabályok ezen attribútumokra
tartalmaznak reguláris kifejezéseket (pl.: ha COMMUNITY értéke privát, akkor nem adja tovább
ezt a prefixet a szomszédnak). A BGP protokollnak két verziója szokott futni:
• eBGP: Az eBGP az autonóm rendszerek közötti összeköttetésért felel. Adott útvonal
befogadásának a hurkokat úgy kerüli el, hogy megnézi, hogy szerepel-e az AS-PATH
vektorban, ha igen, az azt jelenti, hogy hurok keletkezne, akkor nem fogadja el a hirdetést.
• iBGP: Az autonóm rendszeren belül köti össze a BGP forgalomirányítókat. Mivel az
AS-PATH-ban szerepel (ugyanazon a rendszeren belül adja tovább, de előbb beleteszi magát),
ezért a hurkok elkerülését csak úgy lehet elérni, ha külső információt a BPG csak attól
fogadja el, aki ezt közvetlenül kívülről kapta. Ez azzal is jár, hogy nem játszhatják át
egymásnak közvetett módon az információkat, azaz minden forgalomirányítónak minden
forgalomirányítóval kapcsolatot kell fenntartania. Ez ugyan nem jelent fizikai kapcsolatot,
csak egy TCP csatornát, de nem teszi egyszerűvé nagy hálózatok menedzselését.
Láttuk tehát a BGP működését és egy IGP, az OSPF működését. Amit azonban nem tárgyaltunk,
hogy ezek egymással hogyan működnek együtt. A 5.24 ábrán látható hálózat esetében tegyük
fel, hogy az AS1-ben az 1C BGP-t és OSPF-et futtat, míg a többi OSPF-et. Az AS2-ban a 2a és
2c BGP-t és OSPF-et, míg a 2b és 2d csak OSPF-et. Hogyan jut el a 10 forgalomirányító egyik
interfészén lévő PC-ről az IP csomag az AS3-ban lévő X hálózathoz? Az AS1-ben az 1c-nek van
erről információja, mivel megtudta AS2-től, aki megtudta ezt AS3-tól. Az 1a viszont OSPF-et
futtat. Megoldható a BGP információ beinjektálása az OSPF rendszerbe, de nem célszerű, mert az
500.000 bejegyzés kezelése az OSPF forgalomirányítókat túlterhelné, ha egyáltalán kezelni tudnánk.
Így az 1a nem ismeri a célcímet és annak elérhetőségét. Ha egy forgalomirányító nem ismeri egy
120 5. fejezet - Hálózati réteg
csomag cél címének elérhetőségét, akkor azt figyelmen kívül hagyja (törli). Ezen segíthetnek a
statikus útvonalak. Az AS1-nél például csak egy kijárata van a világra: az 1c. Ezért belül lehet
olyan statikus útvonalakat használni, hogy amit nem ismer, azt küldje az 1c felé. Az ilyen útvonalat
szokták alapértelmezett útvonalnak (default route) is nevezni. Ez egyszerű, amikor egy kijárat
van. Amikor azonban több van, akkor a forró krumpli (hot potato) megoldást szokták alkalmazni:
az alapértelmezett útvonal mindig a legközelebbi kijárathoz mutat. Ez a megoldás nem igen segít
a tranzit hálózatok esetében (olyan hálózat, ami nem saját, hanem átmenő forgalmat szolgál ki).
Ilyen az AS2 az ábrán. A 2a tudja, hogy a 2c felé kellene továbbítani, de ezt nem tudja elmondani
a 2b és 2d forgalomirányítóknak. Erre a problémára az MPLS fog megoldást biztosítani, ahol a
bejáratnál megcímkézik a csomagokat és a hálózaton belül ezen címkék alapján továbbítják őket.
Jelen fejezetben a BGP-t csak érintettük jóval részletesebb képet kaphatunk róla és a gyakorlati
problémákról ebben a könyvben [5]. Egy igen jó az IP forgalomiránytó protokollokat összefoglaló
könyv a következő [2].
a hálózatot különböző absztrakciós formában ábrázolja, ilyen például a gráf. A középső réteg
a legbonyolultabb. Itt valósul meg a különböző forrásból származó információk egyesítése és
adott absztrakciós szintű adattárak kialakítása. Ez az a réteg, amely technológiai értelemben
megvalósítja az elosztottságot (gyakran P2P algoritmussal). A klasszikus forgalomirányító
algoritmusokban megtalálható P2P konzisztencia felé mutató algoritmusoknak a megfelelő
eljárások itt vannak megvalósítva, de ezzel az átlagos fejlesztőnek nem kell foglalkozni. A
legalsó rétege különböző zárt vagy nyílt protokollok, technológiák mentén illeszti az eszközöket.
Az adatáramlás vezérlő és réteg szinten is kétirányú. Azaz a legalsó rétegben például nem csak
olvasnak, hanem írnak is az eszközökbe.
Az SDN koncepcióval együtt kialakított protokoll az OpenFlow. A protokoll egy TCP csatorna
segítségével olvassa és írja az OpenFlow képes eszközök adatait. Fontosabb üzenetei:
• konfiguráció (configuration) - a vezérlő le tudja kérdezni az eszköz konfigurációs paramétereit
• állapot módosítás (modify state) - a vezérlő az eszköz folyam tábláját tudja szerkeszteni
(sorok hozzáadása, eltávolítása)
• állapot olvasás (read state) - a vezérlő statisztika és számláló értékeket olvashat le az eszköz
adott eleméről (pl.: adott porton fogadott Ethernet kertek száma)
• csomag küldés (send packet) - a vezérlő tetszőleges szerkezetű csomagot tud küldeni az
eszköz adott portján; ez nagyon fontos képesség, amely segítségével egyszerűen és gyorsan
lehet új protokollokat bevezetni.
• folyam eltávolítva (flow removed) - az eszköz értesíti a vezérlőt, hogy adott folyamot
eltávolított (pl.: adott ideig nem volt forgalom)
• port státusz (port status) - szintén az eszköz szól a vezérlőnek, amelyben jelenti a dott
prot állapot változását (pl.: fizikailag bekapcsolt, vagy lekapcsolt, mert megszakadt az
összeköttetés)
• csomag be (packet in) - adott mintára illeszkedő csomagokat átküldi a vezérlőnek, ez a
protokoll megvalósítási lehetőség másik fele (csomag küldés mellett)
SDN háttérrel egy link állapot alapú forgalomirányító algoritmus megoldása is jóval egyszerűbb.
Az 5.26 ábrán látható módon az algoritmusnak adott a hálózat gráf reprezentációja. Amikor
a hálózatban változás következik be (1-es lépés), akkor ez eljut a REST API segítségével az
alkalmazáshoz, de úgy mint a meglévő gráf adott élének változása. Ezen lefuttatja a Dijsktra
algoritmust és ennek eredményeképpen adott folyam táblákat frissíti. Itt a folyam táblák közvetlen
vagy modell alapú manipulációja a vezérlő képességétől függ. Láthatjuk tehát, hogy nem
egy P2P algoritmust, nem egy párhuzamos futtatásra képes algoritmust, hanem csak egy
122 5. fejezet - Hálózati réteg
késleltetések lemérésére.
parancsait. Mint láthatjuk, nem csak információ lekérés (pl.: GetRequest) van, hanem beavatkozás
is (SetRequest), amellyel az adott eszköz adott paramétereit lehet módosítani (pl.: letiltani egy
portot, átírni az OSPF link értéket, ...). Ezen túl a push jellegű viselkedés megvalósítását láthatjuk a
124 5. fejezet - Hálózati réteg
SNMPv2-Trap üzenetben. Itt az adott eszközön lehet érték figyeléseket beállítani amelynek elérése
esetén az eszköz üzenet küld (pl.: ha adott portja kikapcsol, akkor ezt jelezze a központnak). Az
SNMP protokoll kliens-szerver paradigmát valósít meg. Egy vagy több SNMP szerver és az
aktív eszközök (menedzselhető eszközök) alkotják az SNMP menedzsment tartományt. Az
SNMP funkcionalitást a menedzselt eszközökön dedikált programok, SNMP ügynökök (SNMP
agent) valósítják meg. Maga az SNMP üzenetváltás UDP protokoll felett történik. Amit eddig
leírtunk, már működőképesnek tűnhetne, de nem beszéltünk arról, hogy egy GetRequest konkrétan
mit kér el, annak milyen ábrázolása van. Mivel az SNMP nem csak a hálózati eszközök, hanem a
hálózatra kötött eszközök menedzsmentjére, monitorozására szolgál, ezért méginkább szükség van
a közös adatmodellre. Ugyanúgy kellene lekérni egy PC-nek, telefonnak és a Cisco/HP/Huawei stb.
hálózati eszköznek is a CPU terhelését. Ezt a közös adatmodellt hozza létre a MIB (Menedzsment
Információ Bázis - Management Information Base). A MIB egy módszertan ad arra, hogy
hogyan lehet adat szintaktikát és szemantikát leírni. Ezen túl az adatmodellnek egyedi azonosítót
is (ez ma lehetne URL és JSON séma). Vannak szabványos minden gyártó által támogatott
adatmodellek (pl.: MIBII) és gyártó specifikus MIB-ek. Ezek a MIB-ek egy névtár hierarchiába
vannak rendezve, ahol a gyártók saját névteret tudnak venni maguknak. A lekérdezés is ezen
névterekből összeállított azonosítók alapján történik. Egy-egy eszköztől lekérhető a támogaott
MIB-ek listája. Az 5.30 ábra jobb oldalán látható a névtér felépítése. Ha például a MIB-2
IPv4-es információ részét szeretnénk lekérdezni, az a GetReuqets 1.3.6.1.2.1.4. címtér alatti adatok
azonosítóival tudjuk megtenni. Az azonosítókat OID-nek (Object Idenfier) nevezik. A 5.31 ábrán
egy számláló van specifikálva, amely a hibás fejlécű IPv4-es csomagok számát adja meg. Ha ezt
szeretnénk lekérni, akkor GetRequest 1.3.6.1.2.1.4.4 paranccsal tudjuk ezt megtenni.
Jelen fejezet bővebb áttekintése a referencia könyv [6] 4. és 5. fejezetében (333-464) található meg.
5.5 Ellenőrző kérdések 125
A fizikai hardver felett elhelyezkedő utolsó réteg az adatkapcsolati, amely a hálózati kommunikációra
előkészített keretek célbajuttatásáért felel a fizikai eszközök között, továbbá felel a különböző
átviteli közegek együttműködéséért és a kommunikációs vonalakon előforduló esetleges konfliktusok,
problémák feloldásáért is. Jelen fejezet terjedelmi korlátok miatt csak a legfontosabb ismereteket
mutatja be, a referencia könyv [2] 6. és 7 fejezetének (467-621) olvasása ez esetben is javasolt.
6.1 Bevezetés
Az adatkapcsolati rétegben két fontos résztvevőt különböztetünk meg: adottak a csomópontok,
amelyek az összes hálózatra kapcsolat állomást, forgalomirányítót, kapcsolót és WiFi Access
Pointot jelölik, őket kötik össze az átviteli közegek, azaz vonalak, amelyek egyaránt jelölhetnek
vezetékes vagy vezetékmentes megoldást, illetve helyi hálózatot (LAN) is. Annak érdekében, hogy
az adat eljusson a hálózat egyik végpontjából a másikba, át kell haladnia minden köztes vonalon,
amelyek a forrás és a cél közötti útvonalat kötik össze
Fontos Az adatkapcsolati réteg feladata a felsőbb rétegek által küldött datagram keretbe
foglalása, majd a keret továbbítása az adott csomóponttól a fizikailag szomszédos csomóponthoz
az őket összekötő vonalon keresztül.
Ez közel sem egyszerű feladat, hiszen egy csomag átvitele során szinte kizárólagosan vegyes
fizikai közegeket kombináló, más-más protokollok szerint felépülő útvonalak kötik össze a forrást a
céllal, az adatkapcsolati rétegnek pedig össze kell hangolnia ezeket, és garantálnia a csomag sikeres
128 6. fejezet - Adatkapcsolati réteg
célba juttatását.
A fejezet során az adatkapcsolati réteg következő elemeivel fogunk megismerkedni:
• alapvető szolgáltatások
• hibadetektálás és javítás - ha egy bit értéke megváltozik az átvitel során, azt hogyan tudjuk
detektálni és esetleg javítani a fogadó félnél
• többszörös hozzáférési protokollok (MAC-protokollok) - mi történik, ha egy átviteli közegben
egyszerre több eszköz szeretné a küldő szerepét betölteni
• LAN-ok felépítése - hogyan épülnek fel a helyi hálózatok és milyen protokollok segítségével
valósul meg a funkcionalitásuk
• vonal virtualizáció - MPLS protokoll, működése és előnyei
• adatközpont hálózatok - hogyan épül fel az adatkapcsolati réteg egy nagy vállalat több ezer
szervert tároló központjában
• vezetékmentes hálózatok - a WiFi és GSM hálózatok felépítése és működése
• mobilitás - hogyan kerül lekezelésre az, ha egy eszköz vezetékmentes hálózatot vált egy
kommunikáció folyamat közben?
6.2 Szolgáltatások
Az adatkapcsolati réteg számos szolgáltatást biztosít annak érdekében, hogy megvalósuljon a
biztonságos kommunikáció az egyes csomópontok között.
• keretezés - a felsőbb rétegektől érkező datagramokat keretekbe foglalja
• vonalhozzáférés - szabályok biztosítása olyan esetre, amikor az adott közegben egyszerre
több adó lehetséges
• megbízható átvitel a szomszédos csomópontok között (jellemzően a vezetékmentes vonalakon
• folyamvezérlés - a szomszédos küldő és fogadó csomópontok között ütemezés a keret ekbe
foglalt bitek segítségével
• bithibák detektálása és javítása
• egyirányú vagy kétirányú kapcsolatok menedzselése
réteg keretbe foglalja, ellátja a szükséges fejléccel, lezárással, illetve MAC-címekkel a fizikai
rétegen való továbbításhoz. A vonalhozzáférés definiálja a közeghozzáférési, avagy MAC-protokollt,
mely meghatározza a szabályokat, amelyek alapján a keret átvitelre kerül, amennyiben a használt
átviteli közeghez egyszerre több adó is csatlakozik. A megbízható átvitel gondoskodik róla, hogy
az átvitel során előfordulható hibák kijavításra kerüljenek
Fontos A megbízható átvitel már eleve megbízható, alacsony bithibájú átviteli közeg (optika,
csavartérpár) esetén nem kimondottan fontos, és előfordulhat, hogy ilyen esetben nem is
implementálják, ám amennyiben adott egy gyakori hibákra hajlamos vonal (a vezetékmentes
megoldások jellemzően ilyenek), az adatkapcsolati réteg hatalmas terhet képes levenni a felsőbb
rétegek protokolljairól, és nagyban növeli a kommunikáció hatékonyságát azáltal, hogy a
szállítási rétegben látott megoldásokhoz hasonló eszközökkel (újraküldés és a sikeres célbaérést
jelző elismervények) már ezen a szinten javítják a hibákat.
A hibadetektálás és javítás azért szükséges a rétegben, mert a fogadó fél tévesen 0-ként
érzékelhet biteket, amelyek eredetileg 1-esek voltak és fordítva. Emiatt számos protokoll használ
hibadetektáló biteket, melyek révén megakadályozhatják a hiba továbbterjedését. A hibajavítás
ennek egy fejlettebb formája, mely képes a hiba pontos helyét is megállapítani, és korrigálni ott a
hibás biteket.
datagram datagram
vezérlő vezérlő
küldő állomás fogadó állomás
keret datagram
6.3 Megvalósítása
Az adatkapcsolati réteg helyes működésének elengedhetetlen feltétele, hogy a hálózat minden
csomópontján implementálva legyen. A megvalósítás helye jellemzően a hálózati adapter, melyet
130 6. fejezet - Adatkapcsolati réteg
gyakran hálózati illesztőkártya (NIC) néven is ismernek. Az eszköz MAC-címe jellemzően a NIC
ROM-jáben van beégetve. Az interfész (fizikai) kulcsfontosságú komponense az adatkapcsolati
kontroller, egy integrált chip, mely hardveres implementációként tartalmazza az adatkapcsolati réteg
által biztosított szolgáltatásokat, a chip aktiválását és a címzési információk előállítását azonban
a szoftver végzi, az adapter így hardverre, szoftverre és az adapterre írt firmware kombinációja
révén működik. Az adapter maga a host rendszer buszához kapcsolódik, lényegében ugyanúgy,
mint bármely másik I/O eszköz. A hálózati adapterek egymás között keretek segítségével
kommunikálnak, melybe becsomagolják a felsőbb rétegektől kapott datagramot, ellátva a hibadetektáláshoz,
folyamvezérléshez szükséges információkkal, amelyek alapján a fogadó fél ellenőrizni tudja a keret
sértetlenségét, ütemezni az újabb keret ek küldését, fogadását, valamint helyreállítani a datagramot
és továbbítani a saját felsőbb rétegeihez a [6.2] ábrán látható módon. Ezen a szinten a keretek
hordozzák a réteg szolgáltatásaihoz szükséges információkat.
alkalmazás
szállítás
hálózat cpu memória
adatkapcs.
állomás
busz
vezérlő (pl.: PCI)
adatkapcs.
fizikai
fizikai
átvitel
hálózati illesztőkártya
6.4 Hibadetektálás
A bit szintű hibadetektálás és javítás természetesen nem egyszerű művelet. Az itt megismert
módszerek egyike sem fog garantált hibadetektálást megvalósítani.
sor paritás
oszlop
paritás
paritás
hiba
A hangsúly itt az egy biten van - a fenti faék egyszerűségű, úgynevezett egydimenziós
paritásteszt ugyanis csak olyan megbízható vonal esetén használható bármire, amin még egyetlen
bithiba esélye is kicsi, kettő vagy több egyenesen lehetetlen - ilyen esetben ugyanis ha nem egy,
hanem kettő, vagy több, páros számú bit kerül hibás átküldésre, a paritásbit ellenére helyesnek
fogjuk detektálni a D részt, és detektálatlan bithiba keletkezik. Közel sem elhanyagolható tény,
hogy ezek az átviteli hibák ha bekövetkeznek, a gyakorlatban nem egy, hanem több bitet érintenek.
Épp emiatt fejlesszük tovább a paritástesztünket egy kétdimenziós formára az alábbi módon:
rendezzük a D rész bitjeit sorokba (i) és oszlopokba (j) kb. mátrix formában, és minden sor, minden
oszlop kapjon egy paritásbitet, továbbá az paritásbit ek oszlopának és sorának keresztmetszete is
kapjon egy extra paritásbitet a [6.4] számú ábrán látható módon
Mi is történt? Egyrészt, ha egy soron vagy oszlopon belül esetleg több bithiba is történik, meg
tudjuk őket fogni, és javítani is tudjuk őket, hiszen a mátrixos elrendezésnek köszönhetően a bithiba
helye automatikusan kideríthető. Másrészt maguk a paritásbitek is kaptak egy ellenőrzőbitet, így ha
esetleg az átvitel során pont az egyik paritásbit sérülne meg, immár azt is detektálni tudjuk. Kicsit
érezhető, hogy ez a módszer még mindig sántít (mi történik, ha a paritásbitek ÉS a paritásbitek
paritásbitje is sérülnek?), ám ha feltételezzük, hogy ez a módszer eleve olyan esetekben használható
csak, ahol kicsit a bithiba esélye, a hiba pedig ha be is következik, egymáshoz közeli bitek
csoportját érinti majd, nagy valószínűséggel el tudja majd látni a szerepét. A módszereket, amelyek
132 6. fejezet - Adatkapcsolati réteg
képesek detektálni és javítani is az átviteli hibákat összefoglaló néven, FEC vagyis Forward Error
Correction technikáknak hívjuk.
Lépjünk kicsit tovább a gyakorlatiasabb irányba. Az ellenőrző összeges módszert már élesben
is használjuk az adatkapcsolati rétegben is. Az ötlet maga itt is egyszerű. A d bitből álló értékes
D részt úgy kezeljük, mintha k-bites integer számok sorozata lenne. Ezen az elven alapul az
internetes ellenőrző összeg is - az adatot 16-bites számok sorozataként kezeljük. Vesszük ezeknek
a 16 bites számoknak az összegét, majd ellenőrző összegként a keret fejlécébe írjuk az összeg
1-es komplementerét. A fogadó egyszerűen újraszámolja az összeget, majd az ellenőrző összeggel
kiegészítve megvizsgálja, minden helyiértéken 1-es áll-e. Amennyiben igen, az átvitelt helyesnek
ítéli, még eltérés esetén detektálja az átviteli hibát. A módszer nem tévedhetetlen, ám nagy előnye,
hogy hardveresen implementálható, és számos esetben már ki tudja számolni az esetleges hibákat,
míg egy szinttel feljebb, az adapterben már lehetőségünk van hatékonyabb, komplexebb megoldások
számítására is az esetleges átcsusszant hibák elfogására.
A leggyakrabban használt, adapterben szoftveresen implementált ilyen módszer a ciklikus
redundancia ellenőrzés vagyis CRC kódok, más néven polinomiális kódok, mivel az átküldendő
bitsor tekinthető polinomnak is, melyben a 0 és 1 értékek a társegyütthatók, a műveletek pedig a
polinimális aritmetika részei. A CRC használatának alapja lényegében egy matematikai számítás,
a keret értékes D részét úgy kezeli, mintha azok bináris számok lennének. A küldő és fogadó
felek az adatküldés előtt megegyeznek egy r+1 bitből álló úgynevezett generátor mintán, G-n,
melynek legbaloldalibb értéke 1. Miután ez megvan, a küldő minden esetben hozzácsatol a D
értékes részhez r darab bitet úgy, hogy az összefűzött <D,R> rész elosztva a G mintával pontosan
0 maradékot eredményezzen, azaz <D,R> = n*G. Amennyiben ennek az osztásnak a maradéka
nem nulla, a fogadó fel fogja ismerni, hogy hiba keletkezett az átvitel során. Az összes CRC
műveletet 2-es modulójú aritmetikával végzik, melyben az összeadás és kivonás műveletek egyaránt
megfeleltethetőek a bitenkénti XOR műveletnek, például:
D ∗ 2r XOR R = nG (6.1)
R megfelelő értékét pedig a fenti képlet átrendezésével az alábbi módon számítjuk ki hatékonyan:
1001 101110000
1001 D
101
000
1010
1001
110
000
1100
1001
1010
1001
110
Fontos Többszörös hozzáférésű interferenciára, vagyis ütközésre kerülhet sor, amikor egy
csomóponthoz egyszerre érkezik kettő vagy több forrásból keret, a felek pedig képtelenek
értelmezni és javítani a kavarodást, így minden átküldött, értékes adat elveszik. Az ilyen eseteket
nevezzük többszörös hozzáférési problémának, és megoldásukra használja az adatkapcsolati
réteg a többszörös hozzáférési protokollokat (MAC-protokollokat), amelyek lényegében
meghatározzák a vonalak megosztási szabályait, vagyis azt, hogy mikor melyik csomópont
hogyan töltheti be az adó szerepét. Ezeket a szabályokat a kommunikáló feleknek már a
kapcsolat kialakításakor meg kell határozniuk (viszont más megoldás híján szintén a többszörös
hozzáférésű csatornán keresztül).
Amennyiben adott egy átviteli közeg, melyen keresztül másodpercenként R bit haladhat át és
egy minden tekintetben ideális protokoll felelne a hozzáférési probléma feloldásáért, akkor:
6 rés 6 rés
keret keret
1 3 4 1 3 4
Egy fokkal hatékonyabb a TDMA közeli rokona, az FDMA, amely a felosztás alapjául az
idő helyett az átviteli közeg spektrumát bontja frekvenciasávokra, és minden csomóponthoz fixen
egy ilyen sávot rendel. Itt már nagyobb előny, hogy akár egyszerre több csomópont is adhat
az ütközés veszélye nélkül, hiszen az adás lényegében szeparált csatornákon keresztül történik
meg, ám az alacsony terheltségű hálózatok itt is hátrányokba ütköznek: amennyiben a közeget
N frekvenciasávra bontjuk le az N darab csomópont számára, az egyes csomópontok bármely
6.5 Többszörös hozzáférési protokollok 135
időpillanatban csak R/N bites átviteli sebességgel küldhetnek - még akkor is, ha a közeget épp más
nem használja küldésre.
idő
frekvencia sávok
FDM kábel
A legfejlettebb csatorna partícionáló protokoll azonban a CDMA, vagyis kód alapú felosztás,
mely minden résztvevő csomópont számára egy egyedi kódot oszt. Megfelelően kiválasztott kódok
esetén akár egyszerre küldhet a csatornát használó összes csomópont, mégsem keletkezik ütközés,
hiszen a fogadó felek a kód alapján ki tudják szűrni a számukra lényeges biteket. A CDMA-t
elsősorban vezetéknélküli hálózatokon, különösen mobilhálózatokon szokták használni - ott egy
kicsit részletesebben foglalkozunk majd vele mi is.
1. csomópont 1 1 1 1
2. csomópont 2 2 2
3. csomópont 3 3 3
C E C S E C E S S
ahol p a küldési valószínűség, N pedig a csomópontok száma. Ha meg is találjuk p* -ot, vagyis azt
a küldési valószínűséget, amely maximalizálni tudja a réselt ALOHA hatékonyságát, végtelenhez
közelítő N-el becsülve és némi kalkulus gyakorlattal azt az eredményt kaphatjuk, hogy a hatékonyságunk
1/e = 0,37 - ami azzal egyenlő, hogy a legeslegjobb esetben is csak a rések 37%-a lesz majd sikeres.
Tervezzük kicsit át a dolgokat: ha javítani próbálunk a fenti modellen, könnyen felmerülhet,
hogy talán elegendő lenne az egyik legszigorúbb korlátozást eltörölni, az időkeretek szerinti
szinkronizálást, vagyis a küldeni szándékozó csomópontok bármikor adhassanak, ne csak a keret
ek elején. Ezzel a feloldással máris megkaptuk a következő véletlen hozzáférésű protokollunkat,
az egyszerű ALOHA-t. A helyzet viszont az, hogy bármennyire is tűnik ez ésszerű megoldásnak,
valójában csak rontottunk a saját helyzetünkön. Tételezzük ugyanis fel, hogy elküldünk egy
keretet a t0 időpontban, egy keret átküldése pedig egy időegységet venne igénybe. Ha a küldések
lehetséges időpontját nem szinkronizáljuk, az azt jelenti, hogy a t0-kor elindított keretünk ütközni
fog minden olyan más kerettel, amit a [t0-1 ; t0+1] időintervallumon belül küldtek. A hatékonyságot
számoló képletünk ekkor az alábbi módon változik (a P() függvény az alábbiakban a mesterséges
intelligencia tárgyak jelölésrendszeréhez módon van értelmezve, vagyis a paraméterként megadott
esemény bekövetkezési valószínűségét jelöli)
P(sikeres küldés) = P(a kijelölt csomópont ad) * P(más csomópont nem ad [t0-1, t0] időintervallumban)
* P(más csomópont nem ad [t0, t0+1] időintervallumban)
Ami ahelyett, hogy jobb lenne mint a réselt ALOHA, durván felére csökkenti a hatékonyságot,
és alig 18% esélye lesz csak annak, hogy egy adott időegységen belül sikeres küldésre kerül sor.
Ütközik
Ütközikaa Ütközik a
keret keret
kezdetével végével
I csomópont kerete
Ezek után tartsunk egy kis biztonságos távolságot az ALOHA családfájától és tapogatózzunk
más irányban. Tanítsuk meg a csomópontjainkat egy kis alapvető illemre - még ha van is
közölnivalójuk, azt ne kezdjék el azonnal küldeni, ha közben valaki épp használja azt a csatornát.
Ez az egyszerű technika az alapja a vevő érzékelésű többszörös hozzáférésnek, vagyis carrier
sense multiple access (CSMA) protokollnak - küldés előtt a csomópont hallgasson bele az
átviteli közegbe, és csak akkor kezdjen el adni, ha épp más nem használja azt. Ettől függetlenül
természetesen még előfordulhat ütközés, ha két adásra készülő csomópont nem érzékeli egymás
adásának kezdetét, és ugyanabban a pillanatban kezdik el használni a csatornát (ezt hívjuk terjedési
késleltetésnek), és ekkor odaveszhet a teljes közlésre szánt keret. Az ütközés bekövetkezésének
valószínűsége a terjedési késleltetés és a csomópontok között távolság alapján becsülhető és
érzékelhető csupán. Erre az esetre a CSMA -nak létezik egy bővítése is, a CSMA/CD ahol a
CD utótag értelemszerűen a collision detection, ütközésészlelés jelölése. Ekkor ütközés esetén az
összes érintett csomópont befejezi az adást, majd egy véletlenszerűen meghatározott időtartamig
várakoznak, mielőtt ismét megpróbálkoznának a hallgatózással és küldéssel.
Jól hangzik, igaz? Bökkenő csak egy nagyon kézenfekvő ponton van: a gyakorlatban sajnos
közel sem egyszerű olyan gyorsan észlelni azt, hogy ütközés történt, és az átviteli közegben már
nem egy, hanem több csomópont adása vegyült értelmezhetetlen bitfolyamot előidézve. A vezetékes
LAN-okon még van egy ütőkártyánk ilyenkor, ugyanis elég, ha az adó és vevő összehasonlítják az
átviteli közegben az adott és fogadott jelerősséget - míg ütközésmentes esetben ez meg fog egyezni,
ütközés esetén a fogadó nagyobb jelerősséget fog észlelni. Vezetékmentes közegben azonban már
ezt a taktikát sem alkalmazhatjuk, hiszen ott a közegben észlelt jelerősséget befolyásolhatja a zaj is,
mint például a helyi adás.
A CSMA/CD hatékonysága így erősen függ attól is, hogy pontosan milyen közegben van
megvalósítva, továbbá a fenti detektálásos dilemmán felül a stratégiától, mellyel az összeütközött
adók eldöntik, mennyit várakoznak a következő adási kísérlet előtt. Az Etherneten implementált
CSMA/CD algoritmus például az ütközés észlelésekor egy megszakító JAM jelet ad le a közegben,
majd az érintett csomópontok a várakozási idő K értékeként egy véletlenszerű 2 hatványt választanak
- minél több csomópont volt érintett az ütközésben, lehetőség szerint annál nagyobbat. Ezt a típusú
várakozást nevezzük bináris exponenciális visszaszámlálásnak. Egy teljes, CSMA/CD működés
Etherneten így a következő módon összegezhető:
1. A csomópont NIC-je a felsőbb rétegektől megkapja a datagramot, amit keretbe foglal
2. Hallgatózik a csatornán, ha nem érzékel rajta adást, megkezdi a küldést pont ugyanabban a
138 6. fejezet - Adatkapcsolati réteg
tér
t0
t1
idő
ütközés
Ütközésdetektálási /
megszakítási idő
Ami jobb, mint az ALOHA algoritmusok hatékonysága, ráadásul olcsó és kellően egyszerű is.
adat
lekérdezés
mester
adat
szolgák
6.5.4 DOCSIS
Most, hogy alaposabban megismerkedtünk az adatkapcsolati réteg közeghozzáférési protokolljaival
és azok főbb osztályaival, vegyünk szemügyre egy gyakorlati példát, melyben mindhárom osztály
egyaránt alkalmazva van. Ez a Data-Over-Cable Service Interface Specification ( DOCSIS
), mely meghatározza a kábelhálózat architektúráját és a működéséhez szükséges protokollok
140 6. fejezet - Adatkapcsolati réteg
adat
adat
használatát. A modell középpontjában a CMTS, vagyis kábel fejállomás áll, amely több vonalon
összeköti a szolgáltatói ISP hálózatot a helyi egységekkel.
kábel fejállomás
CMTS
…
elosztó kábel
kébelmodem … modem
végződtető rendszer
ISP
felfelé tartó Internet keretek, TV vezérlés, különböző frekvenciákon
és időszletekben küldik
A DOCSIS FDMA-t használ arra, hogy felossza a kábel fejállomást modemekkel összekötő
felfelé és lefelé is irányuló frekvenciafolyamokat, minden ilyen partícionált csatorna 6 MHz széles
és csatornánként maximum 40 Mbps áteresztőképességgel rendelkezik, míg a felfelé irányuló
csatornák 6,4 MHz szélességgel és 30 Mbps maximális áteresztőképességgel rendelkeznek. Mind a
felfelé, mind a lefelé irányuló csatornák broadcast típusúak, amely a lefelé irányuló esetben nem
probléma, hiszen ezen a végponton mindösszesen egy CMTS fejállomás helyezkedik el, mely az
alá tartozó csomópontok felé sugározhat. Az ellentétes eset azonban már bonyolultabb, mivel a
CMTS felé egyszerre több állomás is küldhet, ezért a felfelé irányuló csatornákon időalapú TDM
van használatban, mégpedig egy speciális opció, a MAP vezérlőüzenet bevonásával, amit a lefelé
6.6 Helyi hálózatok 141
Fontos A MAC-címet szokás beégetett címként, fizikai címként vagy LAN címként
is emlegetni, az IP címmel ellentétben ugyanis, mely a hálózati paraméterek függvényében
változhat, a MAC az adott hardveres eszközön jellemzően állandó, a NIC ROM-jában van
beégetve - tehát ha ugyanazt a hálózati kártyát átteszem egy másik irodában egy másik gépbe,
a MAC-cím változatlan marad. A MAC-cím hat bájtból áll, melyek közül az első három
magát a gyártót, a maradék pedig a gyártó által meghatározott azonosítót jelöli, például
00-40-96-9D-68-16, ahol a 00-40-96 a Cisco által gyártott eszközök azonosítója. A MAC-cím
tartományokat az IEEE kezeli.
Amikor egy hálózatunk egy adaptere egy másik adapter számára küld keretet az adatkapcsolati
rétegben, a keretben címzettként a célpont MAC-címét helyezi el, és a helyi hozzáférési hálózaton
keresztül indítja el a küldési folyamatot. A MAC-címek közül megkülönböztetjük a speciális
felhasználású broadcast MAC-címet, melynek értéke FF-FF-FF-FF-FF-FF, amennyiben a címzettben
ez a cím szerepel, a keretet a hálózat minden csomópontja meg fogja kapni - más kérdés, hogy a
tartalma alapján csak az vagy azok fognak válaszolni is, amelyekre a tartalma vonatkozik.
Kezdjük a legalapvetőbb kihívással: a MAC-címek beégetett címek, vagyis szemben az
IP címekkel, minden csomópontnak egy fix, a gyártó által kibocsátott ilyen azonosítója van
függetlenül attól, hogy épp milyen hálózatra és hogyan csatlakozik, ellenben ez önmagában még
nem magyarázat arra, hogy hogyan találják meg így egymást ezek a helyi szinten kapcsolódó
eszközök. Itt jön be a képbe az Address Resolution Protocol vagyis az ARP.
Fontos A hálózat minden csomópontja rendelkezik egy ARP táblával, mely tartalmazza
az IP és MAC-cím megfeleltetéseket, bejegyzései pedig az IP címek dinamikus jellege miatt
rendelkeznek egy TTL (time-to-live, szavatosság) attribútummal, mely megadja, egy bejegyzés
a bekerülését követően meddig érvényes és maradhat a táblázatban.
Amennyiben a küldeni szándékozó csomópont olyan IP címre kell keretet küldenie, melynek
MAC-címe még ismeretlen számára, előbb ARP felderítő csomagokat küld a hálózat szórási
MAC-címére (FF-FF-FF-FF-FF-FF), melyet minden, az átviteli közegre csatlakoztatott csomópont
meg fog kapni. Az ARP úgynevezett plug-and-play protokoll - a táblázatok automatikusan,
rendszergazdai beavatkozás nélkül jönnek létre és töltődnek fel az érvényes, “puha” (vagyis
142 6. fejezet - Adatkapcsolati réteg
1A-2F-BB-76-09-AD
LAN
(vezetékes hálózati illesztő
vagy
71-65-F7-2B-08-53
vezetékmentes)
58-23-D7-FA-20-B0
0C-C4-11-6F-E3-98
elavulásra képes) információval, mely ráadásul, mivel az általa hordozott információ az adatkapcsolati
és a hálózati rétegre is vonatkozik, lényegében a két réteg közötti határon működik.
Nézzünk egy példát az ARP pontos működésére, ha mindkét fél azonos helyi hálózatban
található:
1. adott két csomópont azonos helyi hálózaton, az egyik, a küldő fél a 192.168.10.1-es IP
címmel, míg a másik a 192.168.10.14-es címmel
2. a küldő ismeri a célpontja IP címét, a MAC-címét azonban nem, ekkor összeállít egy ARP
csomagot, benne a lekérdezés pontos paramétereivel, köztük az IP címmel, melynek MAC
megfelelőjét keresi
3. ezt a csomagot a szórásos MAC-címre küldi (FF-FF-FF-FF-FF-FF), így az ARP csomagot
megkapja a helyi hálózat minden csomópontja
4. az ARP-nek nem feltétlenül kell eljutnia a célponthoz, vagyis ahhoz a csomóponthoz, mely
majd az IP cím alapú kommunikáció célpontja is lesz - elegendő egy olyan csomópontig
eljutnia, amely a saját ARP táblázatában már rendelkezik az érvényes hozzárendeléssel,
melyet ekkor egy válasz ARP üzenetben visszaküld a kérdezőnek
5. a kérdező a választ elmenti a saját ARP táblájában egy érvényességi, time-to-live (TTL)
értékkel, majd ezt követően már képes belekezdeni az eredetileg tervezett küldésbe is.
A helyzet bonyolultabb, ha a célpont nem azonos LAN-on helyezkedik el. Ekkor, [6.16] ábrán
is látható esetben az alábbi lépések hajtódnak végre a sikeres ARP felderítéshez:
1. feltesszük, hogy a küldő A ismeri B IP címét, továbbá ismeri a saját hálózatában az R átjáró
IP és MAC-címét is konfigurációjából és korábbi működéséből
2. Az A által létrehozott datagramot ekkor a réteg keretbe ágyazza az R átjáró MAC-címével és
B IP címével
3. R megkapja a datagramot, és továbbítja azt a saját hálózati rétegének, mely értelmezi az IP
címet és ellenőrzi a forgalomirányítási szabályait
4. Amennyiben nem rendelkezik B MAC-címével, ARP csomagot küld ki a célhálózaton,
amennyiben igen, készít egy újabb keretet, mely tartalmazza A és B IP címeit, valamint B
MAC-címét
6.7 Ethernet 143
A B
R
111.111.111.111
222.222.222.222
74-29-9C-E8-FF-55
49-BD-D2-C7-56-2A
222.222.222.220
1A-23-F9-CD-06-9B
6.7 Ethernet
A LAN-ok kialakítására több lehetséges technológia is létezik, közülük a legnépszerűbb és
legszélesebb körben használt az Ethernet, köszönhetően relatív olcsóságának, könnyű kiépíthetőségének
és magas sebességének. A 80-as évek során bukkant fel az egyik első széleskörben alkalmazott
LAN technológiaként és tett szert egyre nagyobb népszerűségre, míg a 90-es évekre a legtöbb
cég más LAN megoldások helyett már Ethernetet használt. Azóta is tartja a lépést, folyamatos
szabványai révén, melyek egyre gyorsabb, megbízhatóbb megvalósítást specifikálnak. Míg a
90-es években népszerű volt a busz topológia, melyen a csomópontok sínszerűen csatlakoztak
koaxiális kábellel egy ütközési tartományra, ezt később leváltotta az úgynevezett csillag topológia,
melyben a hálózat csomópontjai egy központi eszközön keresztül csatlakoznak egymáshoz direkt
kapcsolatok nélkül. A 90-es években a csillag középpontjában még egy hub nevű eszköz állt, mely
keretek helyett bitekként kezelte az áthaladó adatforgalmat - ezt váltotta le a 2000-es évek során a
lényegesen hatékonyabb switch vagy más néven kapcsoló.
kapcsoló
csillag
busz: koaxiális kábel
típus
záró CRC a ciklikus redundancia ellenőrző összeg a hibák detektálására a fogadó oldalán.
MAC protokoll
alkalmazás és keret formátum
szállítás
hálózat 100BASE-TX 100BASE-T2 100BASE-FX
Ethernet magját hajtó kapcsolót. Igen komoly elvárásoknak kell megfelelnie - tudnia kell tárolni
és továbbítani az Ethernet-kereteket, értelmezni és elemezni a beérkező keretekben található
MAC-címeket, CSMA/CD-vel megakadályozni az ütközéseket (ütközések esetén ahogy pár alfejezettel
korábban tanultuk, bináris visszalépéssel).
A kapcsolók a 6.20 ábrán látható módon egymással is összeköthetőek. Ekkor egy adott interfész
(fizikai)re több MAC-cím csatlakozhat, így képesek kezelni és tanulni az olyan eseteket, amikor
az egyik interfész (fizikai)en egy másik kapcsolóval van összekötve - ezeket nevezzük heterogén
vonalaknak. Ekkor, ha például az egyik kapcsoló találkozik az ismeretlen MAC-cím problémájával,
ismét a fenti elárasztásos algoritmussal próbálja meg feloldani a címet, ám a szomszédos kapcsolók,
amennyiben már rendelkeznek a szükséges információval, nem folytatják az elárasztást, hanem
a saját kapcsolótáblájuk információinak megfelelően továbbítják a keretet a cél felé, a válasz
visszaküldése során pedig az eredeti küldő is feljegyzi a MAC-címet a kapcsolótáblájában. Lássuk
ezt egy példán keresztül is:
1. A keretet szeretne küldeni I-nek. S1 és S3 ismerik a hozzájuk közvetlenül csatlakozó
eszközök MAC-címeit, a többiét azonban nem, és S4 kapcsolótáblája is üres (erre ilyen
topológia esetén a gyakorlatban elég kicsit az esély, hacsak nem közvetlenül a kiépítés után
járunk, de a példánk legalább komplexebb így)
2. S1 továbbítja a keretet S4 felé, majd S4, mivel nem tudja, melyik interfész (fizikai) én
csatlakozik I, S2-nek és S3-nak is továbbítja azt (előbb persze feljegyzi A MAC-címét a
kapcsolótáblájában).
3. S2 amennyiben még nem rendelkezett A MAC-címével, feljegyzi azt, majd szintén mindegyik
interfész (fizikai)én továbbítja a keretet, ám miután egyikről sem kap választ, eldobja azt,
S3 viszont a kapcsolótáblájából tudja, melyik interfész (fizikai)én csatlakozik I, és már csak
neki továbbítja a keretet.
4. A válasz keret küldése során mind S4, mind S1 feljegyzik I MAC-címét a megfelelő interfész
(fizikai)eiken
Egy kapcsolókkal felépített LAN egyúttal képes teljesen eliminálni az ütközéseket, a kereteket
146 6. fejezet - Adatkapcsolati réteg
S4
S1
S3
A S2
F
D I
B C
G H
E
ugyanis bufferelhetik és csak egyenként, egyenletes tempóban engedik át. Továbbá a kapcsolók
révén lényegesen könnyebbé válik a hálózat menedzselése is, ugyanis számtalan hasznos mechanizmussal
- például egy hiba hatására ugyanazt a keretet ismételgetve küldő, úgynevezett dadogó adapterek
letiltása, a különböző interfész (fizikai)ekről statisztikák gyűjtése a potenciális teljesítménybeli
problémák és hibák detektálásához.
Fontos A kapcsolók nem forgalomirányítók, és az állítás fordítva sem igaz, bár funkcionalitásuk
elsőre hasonlónak tűnhet, és mindkettő rendelkezik egy saját kapcsolótábla -típussal is, ám a
forgalomirányítók a hálózati réteg eszközei és az IP címekkel foglalkoznak, míg a kapcsolók az
adatkapcsolati réteg fejléceivel dolgoznak és a MAC-címeket veszik alapul.
6.8 VLAN
Viszont a kapcsoló és az átjáró közötti különbségeknek van egy súlyosabb következménye is: még
ha a hálózati réteg szintjén el is tudjuk különíteni a különböző logisztikai egységek kommunikációját
az alhálózatokra bontással, ezt már az adatkapcsolati rétegben nem tudjuk megtenni, nincs
lehetőség a forgalom izolálására: hiába rendelkezik két csomópont különböző alhálózatokba
tartozó IP címmel, ha ugyanahhoz a switchhez kapcsolódnak, igenis lesznek csomagok az adatkapcsolati
rétegben, amelyek a MAC-címeket használva eljuthatnak mindkettejükhöz.
Ez a hálózat típusától függően számtalan kockázati tényezővel járhat a biztonsági kockázattól
kezdve a teljesítménybeli romlásig a felhasználók kezelését illetően (gondoljunk csak bele mi
történne, ha a menedzsment ugyanazon a LAN-on próbálna cégen belüli konferenciabeszélgetést
bonyolítani, amit épp az informatikusok is leterhelnek egy épp fejlesztett hálózati alkalmazással),
amit legfeljebb több, teljes hatékonyságuknak csak töredékét kihasználó fizikai kapcsoló
bevonásával orvosolhatnánk - és egyúttal teremtenénk is magunknak új problémát, hiszen ettől
kezdve elég lenne, ha egy felhasználónak csak ideiglenesen kellene munkaállomást váltania, az
máris kábelek újrakötésével, infrastrukturális akadályokkal járna.
6.8 VLAN 147
Forrás: A
Cél: A’
A A A’
C’ B
6 1 2
AA A’
A’
5 4 3
B’ C
A’ A
A’
Ezt a problémát oldják meg a virtuális helyi hálózatok, vagyis VLAN-ok, melyek képesek egy
fizikai hálózatot több virtuális hálózatra felbontani úgy, hogy azoknak az adatkapcsolati rétegbeli
forgalma is el legyen szeparálva.
A trunk átviteli mód alapja a IEEE 802.1Q (Dot1Q) szabvány által definiált bővített keret
formátum, mely egy 4 bájtos VLAN címke mezőt helyez a keretek headerjébe és eltárolja benne a
keret eredeti VLAN-jának azonosítóját, mely a trunk vonal másik végpontján így helyreállítható.
Ez a címke mező egy két bájtos azonosítóból és egy szintén kétbájtos vezérlőinformációból tevődik
össze (természetesen az ilyen beágyazáskor, majd visszanyeréskor szükséges a CRC ellenőrző
összeg újraszámolása is). Ám önmagában még a trunk móddal sem oldható meg olyan helyzet,
amikor két különböző VLAN-ba tartozó állomás próbál kommunikálni egymással.
Fontos Amennyiben mégis szükséges a VLAN-ok közötti átjárhatóság, akkor fontos, hogy a
különböző VLAN-ok egyúttal különböző hálózati vagy álhálózati címtartományokra kerüljenek,
148 6. fejezet - Adatkapcsolati réteg
email szerver
külső hálózathoz
web szerver
forgalomirányító
IP alhálózat
ekkor ugyanis a forgalomirányítókat vehetik igénybe ahhoz, hogy egyik VLAN-ról áthelyezzék
a másikra a csomag okat.
router
1 7 9 15
2 8 10 16
… …
1 7 9 15 1 3 5 7
2 8 10 16 2 4 6 8
… …
Az MPLS hierarchiába tartozó forgalomirányítók szerepe eltér annak függvényében, hogy azok
az MPLS aktív részén peremén vagy azon belül helyezkednek el. A keretekbe ágyazott címke verem
a klasszikus verem adatstruktúrához hasonlóan működik - az MPLS router leveszi a legfelsőt, elemzi
azt a címke alapú forgalomirányító tábla szerint, majd a meghatározott szabály szerint továbbítja
150 6. fejezet - Adatkapcsolati réteg
típus
típus
cél forrás
előtag
cím cím adat CRC 802.1Q keret
20 3 1 5
a megfelelő irányba úgy, hogy általában továbbítás előtt egy új címkét helyez el a verem tetején.
Az MPLS peremén elhelyezkedő routerek feladata az első címke elhelyezése, illetve távozáskor
az utolsó címke eltávolítása. A címkék mozgatását az MPLS forgalomirányítók az az LDP -
címke elosztó protokoll által meghatározott elvek alapján végzik. Az MPLS forgalomirányítók,
amennyiben nem áll rendelkezésükre címke a veremben, vagy érvényes bejegyzés, képesek az IP
alapú forgalomirányító tábla bejegyzéseihez is fordulni.
Fontos A [6.26] ábrán látható módon egy csomag MPLS fejlécébe egy vagy több MPLS
címke kerülhet beágyazásra, melyeket az MPLS forgalomirányításra is képes routerek értelmeznek.
A címkéket tartalmazó rész a címke verem, melyben minden bejegyzés egy 20 bites címke
részből, egy 3 bites Forgalmi Osztály és Explicit Torlódási Jelzés mezőből, egy 1 bites
veremfenék jelzőből (mely akkor kerül beállításra, ha az adott címke az utolsó a veremben) és
egy 8 bites TTL mezőből áll.
R2
MPLS protokollra vonatkozóakat is terjesszék. A linkek, vonalak állapotát jelző OSPF és IS-IS
protokollok kiegészíthetőek ezzel az információval, a szállítási rétegbeli RSVP esetében viszont egy
speciális RSVP-TE protokollra van szükség annak érdekében, hogy az erőforrások lefoglalásakor
az MPLS információk is átvitelre kerülhessenek. Az MPLS kapcsán fontos még megemlíteni egy
másik fontos felhasználási módjukat is: segítségükkel megvalósíthatóak virtuális magánhálózatok
(VPN), az ISP ugyanis képes az MPLS címkéi révén izolálni és címezni egy adott felhasználó
virtuális magánhálózatát az ISP-t használó többi felhasználótól. Az MPLS egy lényeges, igen
gyakran alkalmazott technológia a TE (Traffic Engineering) igényekkel bíró hálózatokon, egy igen
jó áttekintést ad róla ez a könyv [1]
címke címke
be ki cél interfész
10 A 0 címke címke
12 D 0 be ki cél interfész
8 A 1 10 6 A 1
12 9 D 0
R6
0 0
D
1 1
R4 R3
R5
0 0
A
R2 címke címke
R1
be ki cél interfész
címke címke
be ki cél interfész 6 - A 0
8 6 A 0
Internet
Terheléselosztó
Határ forg. ir. Terheléselosztó
Tier-1 kapcsolók
B
A C Tier-2 kapcsolók
TOR kapcsolók
4 5 6 7 8
egyetemi hálózat
68.80.2.0/24
weboldal
vonatkozó alapinformációkat, mint az alapértelmezett átjáró címe (68.80.2.1), a DNS szerver címe
(68.80.0.120) és a CIDR blokk címét, vagyis más néven az alhálózati maszkot is. A DHCP ACK egy
UDP keretbe kerül, az egy IP datagramba, az pedig egy Ethernet keret be, mely azonban ekkor már
szórásos címek helyett egyértelműen rendelkezik a két kommunikáló fél MAC-címeivel. A DHCP
ACK előbb a kapcsolóhoz kerül amely, mivel öntanuló és a gépünk eredeti, szórásos üzenete alapján
eltárolta a MAC-címünket, felismeri, hogy melyik csatlakozóján kell azt továbbítania. Miután a
kapcsoló továbbítja gépünkre a keretet, a gépünk kiolvassa belőle a DHCP ACK csomagot, és
annak tartalma alapján konfigurálja a hálózati paramétereit.
DHCP DHCP
DHCP UDP
DHCP IP
DHCP Eth
Phy
DHCP
DHCP DHCP
DHCP
UDP
DHCP
IP
DHCP
Eth forgalomirányító
(DHCP-t futtat)
Phy
DNS
DNS UDP DNS szerver
DNS IP
DNS DNS DNS Eth
DNS UDP DNS Phy
DNS IP
DNS Eth
Phy
DNS
Comcast hálózat
68.80.0.0/13
forgalomirányító
(DHCP-t futtat)
HTTP
HTTP HTTP
HTTP
HTTP TCP
HTTP
HTTP IP
HTTP
HTTP Eth
Phy
forgalomirányító
HTTP HTTP (DHCP-t futtat)
HTTP TCP
HTTP
IP
HTTP Eth
Phy
webszerver
64.233.169.105
Elég hosszadalmas folyamat, ugye? Gondoljatok csak bele, ez a másodperc töredéke alatt
szokott lezajlani - sőt, bármennyire is hangzik nevetségesen, a fenti folyamat még mindig egy
borzalmasan optimista és leegyszerűsített folyamat volt: nem foglalkoztunk biztonsággal, hitelesítéssel,
titkosítással, gyorsítótárazással, nem vettük számításba azt az esetet sem, ha a kért domain IP címe
nem szerepel a DNS szerver cachében! Sőt, még ha bele is vettük volna a folyamatba, még mindig
nem kaptunk volna teljes képet - a modell további bonyolításához ugyanis bőven elegendő, ha a
gépünk esetleg kábel helyett vezetékmentes hálózatra kapcsolódik - vagy klasszikus asztali gép
helyett laptopról vagy okostelefonról próbálkozunk az oldalbetöltéssel.
Első körben ismerkedjünk meg, pontosan milyen elemeket különböztetünk meg a vezetékmentes
topológiában betöltött szerepük alapján.
hálózati
infrastruktúra
• számos forrásból származó zaj szennyezheti a közegen áthaladó jeleket, amelyek interferenciához
vezethetnek - például ugyanaz a frekvenciasáv más eszközök között is meg van osztva
• bizonyos jelek konkrétan visszaverődhetnek egyes fizikai közegekről (ezt többutas terjedésnek
is nevezzük), mely a célbaérésig akár jelentős késleltetés formájában is jelentkezhet
Fontos Az SNR arány minél nagyobb, annál könnyebb az értékes jeleket megkülönböztetni a
• Ha a fizikai közeg adott, vagyis fix tulajdonságokkal rendelkezik, akkor minél jobban növeljük
az adó teljesítményét, annál nagyobb lesz az SNR és kisebb a BER érték.
• Ha az SNR érték konstans, akkor az átviteli teljesítmény növelése a BER értéket is növeli.
• Az SNR és a BER értékek is változhatnak mobilitás esetén a fizikai réteggel együtt.
A helyzetet csak tovább komplikálja, hogy a vezetékmentes közeg jellegéből adódóan olyan
ütközésekre is sor kerülhet, amelyekkel az adatkapcsolati réteggel foglalkozó korábbi részekben
még nem foglalkoztunk. Előfordulhat olyan eset például, amikor valamilyen fizikai közeg olyan
mértékű jelgyengülést okoz két eszköz között, hogy azok egészen egyszerűen nem érzékelik egymás
forgalmát (ekkor ezeket rejtett állomásoknak nevezzük), ám egy harmadik eszköz, melynek
mindketten keretet próbálnak küldeni igen, és ütközés is alakul ki nála anélkül, hogy azt bármelyik
kommunikáló fél észlelné. Hasonló jelenséget érhetünk el akkor is, ha fizikai akadály nincs, pusztán
6.12 Vezetékmentes hálózatok 159
10-1
10-2
10-3
BER
10-4
10-5
10-6
10-7
10 20 30 40
SNR(dB)
QAM256 (8 Mbps)
QAM16 (4 Mbps)
BPSK (1 Mbps)
a két potenciális adó jelerőssége gyenge, elhalványult annyira, hogy a hatótávolságuk határán
elhelyezett harmadik fél még megkapja mindkettejük kereteit, ám ők egymást, és így a közös
közeghasználat következtében létrejött ütközéseket már nem.
A B C
C
A jel C jel
erőssége
B erőssége
A
tér
Épp ezért van szükség az esetek többségében egy újfajta többszörös hozzáférési megoldásra,
amely a korábbi fejezet során futólag említett CDMA, vagyis kód alapú csatornafelosztás lesz.
Fontos CDMA felosztás során a küldő egy saját, egyedi kód szekvencia segítségével kódolja
a küldeni kívánt adatot, így amennyiben a kódoló szekvenciák nem egyeznek, ugyanabban
a közegben, ugyanazon a frekvencián, ugyanabban az időpontban küldhetnek úgy, hogy a
potenciális ütközés ellenére a keret eredeti feladója és tartalma szinte mindig visszaállítható
160 6. fejezet - Adatkapcsolati réteg
a kódoló szekvencia ismeretében. Ennek kulcsa, hogy minden egyes küldésre került bitet
lekódolnak a kapott kódszekvencia szorzásával (ezt szokás kenő szekvenciának is hívni a
használata miatt), mely sokkal gyorsabban váltakozik (a sebességbeli különbség a daráló
arány), mint az eredeti bitszekvencia.
Hogy ezt kicsit jobban megértsük, tegyük fel a következőt: tegyük fel, hogy az időmérésünk
alapja az idő, amely alatt az eredeti bitszekvencia egy bitje eléri a CDMA kódolót, vagyis minden
egyes bit egy bitnyi résidőt igényel. Jelöljük di-vel a bitszekvenciának azt a bitjét, amely az i.
időrésben kerül átvitelre. Továbbá képzeljük el, hogy minden időrés tovább van tagolva M darab
minirésre. A kód ekkor, amit a CDMA használ, M darab értékből áll majd. A gyakorlatban M
egy meglehetősen nagy szám, a példánkban azonban legyen M = 8 a követhetőség kedvéért, a
kenő szekvenciánk pedig 11101000. Ekkor az m-edik minislot tartalma a di bit kódolásakor Zi,m
= di*cm. A továbbiakban a matematikai számítások követhetősége érdekében a 0-kat (-1)-gyel
helyettesítjük, az új ábrázolásban így a következő a kenő szekvencia: (1,1,1,-1,1,-1,-1,-1).
Ha egy egyszerű környezetben dolgoznánk, a fogadó, miután megkapta a kódolt biteket, az
alábbi képlet segítségével már vissza is nyerhetné az eredeti bitet:
1 M
di = ∗ ∑ zi,m ∗ cm (6.5)
M m=1
N
∗ s
Zi,m = ∑ Zi,m (6.6)
s=1
Ám, ha sikerült jól megválasztani a kenő szekvenciát, és azok eltérnek egymástól, a fogadó
még ebből is képes visszafejteni az eredeti jelet:
1 M ∗
di = ∗ ∑ Zi,m ∗ cm (6.7)
M m=1
6.12.2 PAN
Joggal merülhet fel a kérdés, hogy vajon mennyivel kevesebb problémával kellene foglalkoznunk,
és mennyivel hatékonyabbak lennének a vezetékmentes hálózataink, ha egészen egyszerűen
meghatároznánk, hogy viszonylag kicsit fizikai távolságra helyezkedhetnek el egymástól. A
Bluetooth alapján definiált IEEE 802.15-ös szabvány implementációja, a personal area network
(PAN) világába. Ennek lényege a lefoglalt frekvenciasáv és nagy teljesítmény révén elérhető nagy
bitsebesség, melynek ára az alacsony hatótáv - a lefedettség egy legfeljebb 10 méter átmérőjű
területet érint, a kommunikációt ráadásul ad hoc módon kialakított mester-szolga architektúra
menedzseli. Ez igazán komplex hálózatok kiépítésére természetesen alkalmatlan, ám kiváló a
különböző eszközök és perifériák vezetékmentes csatlakoztatásához és használatához.
6.13 WiFi 161
Zi,mcsatorna kimenet
Zi,m= di.cm
adat d0 = 1
1 1 1 1 1 1 1 1
d1 = -1
bitek -1 -1 -1 -1 -1 -1 -1 -1
küldő
1 1 1 1 1 1 1 1 1. rés 0. rés
kód csatorna csatorna
-1 -1 -1 -1 -1 -1 -1 -1
kimenet kimenet
1. rés 0. rés
M
Di = S Zi,m.cm
megkapott m=1
bemenet M
1 1 1 1 1 1 1 1
d0 = 1
-1 -1 -1 -1 -1 -1 -1 -1
d1 = -1
1 1 1 1 1 1 1 1 1. rés 0. rés
kód csatorna csatorna
-1 -1 -1 -1 -1 -1 -1 -1
6.13 WiFi
Most hogy megismerhettük a vezetékes hálózatok általános sajátosságait és kihívásait, ideje,
hogy szemügyre vegyük, pontosan hogy is jelennek meg ezek három széles körben használt
vezetéknélküli hálózat esetén. A hármasból az első a WiFi, vagyis az IEEE 802.11-es szabvány
által meghatározott vezetékmentes LAN. A 802.11-es szabvány valójában több különböző kisebb
szabványt ír le például 802.11a, 802.11b, melyek különböző antennaszámot, frekvenciát és
bitsebességet írhatnak le, ám kulcsfontosságú elemeik, többek közt a fenti kihívásokra adott
válaszaik és megoldásaik megegyeznek. Egy speciális CSMA/CA protokollt használnak a
közeghozzáférésre, valamint mind definiálnak infrastruktúra és ad hoc kiépítésen alapuló megvalósítást
is. A klasszikus 802.11-es szabvány például a 2.4 és 2.4835 GHz közötti frekvenciatartományban
működik, melyet 11, egymást részlegesen átfedő csatornára (két csatorna csak akkor nincs átfedésben,
ha legalább négy csatorna távolság van közöttük) oszt. A 802.11b azonos kenő szekvenciát definiál
minden állomásra. A WiFi szabványok mindegyike definiál bázis állomással és ad hoc szervezéssel
létrejött változatot is.
Fontos A WiFi elemeit cellának vagy Basic Service Set-nek (BSS) Alap Szolgáltatási
Halmaznak nevezzük. Ez infrastruktúra esetén magába foglalja a bázisállomást, amit hozzáférési
pontnak is nevezünk ( Access Point ), valamint a vezetékmentes állomásokat, amelyek a
szabvány által meghatározott módon kommunikálnak a vezetékmentes közegen keresztül.
P
S
P
fedettség
M átmérője
S P
S
P
M Mester eszköz
Szolga eszköz
S
Parkoló eszköz (nem aktív)
P
Fontos Annak függvényében, hogy a keresést az hozzáférési pont vagy az állomás kezdeményezi,
passzív és aktív felderítést különböztetünk meg. A passzív esetben a hozzáférési pontok
küldik meghatározott rendszerességgel a jelző kereteket, bennük az azonosításukra használható
SSID-vel és MAC-címmel, aktív esetben ezzel szemben az állomások sugároznak szonda vagy
felderítő keret eket, amelyekre a hozzáférési pontok válaszolnak az azonosításukra szolgáló
adatokkal. A csatlakozást opcionálisan megelőzheti egy azonosítási folyamat, melynek sikerét
követően az állomás kiküldheti a DHCP csomagokat az IP cím igénylésére és a hálózat részévé
válhat.
A 802.11-es szabvánnyal kapcsolatban kicsit feljebb volt róla szó, hogy egy speciális, CSMA/CA
nevű protokollt használ a közeghozzáférésre. Ennek egy nagyon gyakorlatias oka van: a WiFi-re
csatlakozó eszközök nagyon nehezen tudnak venni, amikor az adott pillanatban adnak is, így bár az
adás előtt belehallgathatnak a csatornába, az ütközéseket már nem képesek hatékonyan detektálni,
nem is beszélve az olyan esetekről, amikor a vezetékmentes hálózatok általános jellemzésénél is
felsorolt speciális körülmények révén egyáltalán nem is értesülhetünk az ütközésekről.
6.13 WiFi 163
1
1 1 2 2 AP 2
AP 1 AP 2 AP 1
2 3
3 4
H1 H1
A DIFS azt az időtartamot jelöli, ameddig a küldeni szándékozó csomópont várakozik a küldés
megkezdése előtt. Ha a DIFS időtartamon belül bármelyik másik csomópont elkezd adni a közegben,
azonnal visszalép, és egy véletlen időtartamú várakozást követően kezd csak ismét hallgatózni. Az
üres DIFS időtartamot követően kezd adni, mire a célpont a keret megérkezését követően hasonlóan
SIFS időtartamig hallgatózik mielőtt egy ACK keretben visszajelezne a csomag sikeres sikeres
célbaéréséről. Ha a küldő nem kap ACK-t, feltételezi az észrevétlen ütközést rejtett állomás vagy
jelgyengeség miatt, megnövelt visszalépési időtartammal ismét várakozni kezd, majd újrapróbálja
a küldési folyamatot.
Ugyan ez optimálisnak tűnhet, valójában felvet egy, a MAC-protokollok vizsgálata során
gyakran felbukkant problémát - a küldésre készülő félnek akkor is ki kell várnia a DIFS időtartamot,
ha közben senki sem készül adni, ha pedig két csomóponton pont egyszerre jár le a DIFS, az
illedelmes várakozás ellenére is ütközhetnek. Emiatt született meg az ötlet a módszer javítására,
amit RTS-CTS módszerként ismernek. Ennek lényege, hogy az adó a folyamat indítása előtt
egy aprócska request-to-send csomagot küld a bázisállomásnak, mely ekkor kiküld egy szórásos
ugyanúgy apró clear-to-send csomag ot az állomásoknak, melyben jelzi, hogy a közeget lefoglalták,
minden más küldeni szándékozó csomópont lépjen vissza. Az adó ezután ütközés veszélye nélkül
küldheti a keretét, a foglaló csomagok apró méretéből fakadóan pedig a módszer nem is növeli
túlságosan a folyamat költségeit.
Nézzünk egy példát, hogy is működik ez a gyakorlatban:
1. A és B is adni szeretnének, A azonban egy kicsit korábban kezdte meg a folyamatot és a
DIFS időtartam kivárását
2. A elküldi a BS-nek az RTS csomagot
3. BS megkapja az RTS csomagot és kiküldi a CTS-t minden állomásnak
4. B erre visszalép és várakozik, A elküldi a csomagot C-nek
5. C SIFS idő elteltével elküldi az ACK-t A-nak
6. ha a csatorna tiszta és a DIFS lejárt, B ismét megkísérli az RTS küldését BS-nek
Méltán merülhet fel ezen a ponton, hogy ha a WiFi esetén ennyi különleges opcióval és elemmel
kell számolnunk, mégis mennyire lehet bonyolult az általa definiált keret? Szerencsére a helyzet
közel sem vészes
A keret kezdetén egy kétbájtos vezérlő rész áll, amely a keret típusáról, protokolljáról, általános
céljáról tartalmaz információkat - 2 bit a protokoll verzió, 2 a protokoll típus, 4 a protokoll altípus
számára, 1-1 flag jelzi, hogy a csomag a hozzáférési ponthoz vagy hozzáférési ponttól érkezik,
majd ezt további 1 bites flagek sora követi, mint az újrapróbálkozást vagy több részben érkező
164 6. fejezet - Adatkapcsolati réteg
keret szekvencia #
a foglalt adás ideje (RTS/CTS)
(az RDT-hez)
2 2 6 6 6 2 6 0 - 2312 4
keret szekv 4. cím
időtartam 1. cím 2. cím 3. cím adat CRC
vezérlés vezérlés
2 2 4 1 1 1 1 1 1 1 1
Protokol További Teljes. Több
Típus Altípus AP-hez AP-től Újrapr. WEP Rsvd
verzió frag. mgmt adat
kerettípus
(RTS, CTS, ACK, adat)
adatot jelölő mező. Ezt a vezérlő részt követi szintén két bájtban az időtartamot leíró rész, mely
meghatározza a foglalt adás idejét az RTS-CTS módszer révén. Ezt három egymást követő hatbájtos
cím mező követi, melyek közül az első a cím, a második a forrás, a harmadik pedig a hozzáférési
ponthoz csatlakozó forgalomirányító címe. A kétbájtos szekvenciavezérlő mezőt követő negyedik
címet kizárólag ad hoc megvalósítás esetén veszik igénybe. A negyedik cím után következik a
maximum 2312 bájt terjedelmű opcionális adat vagy payload mező, majd a 4 bájtos CRC ellenőrző
összeg zárja.
Még mielőtt esetleg úgy tűnne, hogy a WiFi és a vezetékmentes világ csak és kizárólag
kihívásokat és megoldandó problémákat vet fel a mérnökök számára, fontos kitérnünk azokra
az erősségekre, amelyekkel más megoldásokkal szemben rendelkezik: a WiFi komoly öntanuló
képességekkel rendelkezik
• ha egy állomás például változatlan alhálózathoz próbál csatlakozni változatlan IP címmel,
viszont más hozzáférési ponton keresztül, képes újrabeazonosítani azt, amint megpróbál adni
• az SNR változásának függvényében automatikusan képes állítani a bázis és az állomás közötti
átvitel sebességét a BER minimalizálásnak érdekében
• képes a csatlakozott csomópontok teljesítményét is optimalizálni
A csomópontok optimalizálása a következő módon zajlik - amennyiben egy darabig nincs
kommunikáció a csomópont és a bázis között, a csomópont jelezhet, hogy a bázis következő
felderítést szolgáló jelzőkereteinek kiküldéséig nem fogad adást, majd a jelzőkeret észlelésére
felébred, és ekkor fogadja az időközben felgyülemlett beérkező csomópontokat is. Ez mobil
eszközök esetén, mivel az energiatakarékosság itt kiemelten fontos, nem elhanyagolható előny.
• titkosítás: mivel egyes keretek elveszhetnek azért a folyam alapú titkosítás magában nem
alkalmazható, majd látni fogjuk, hogy egyedi kulccsal titkosít minden keretet
• tartalomvédelem: CRC van hozzácsapva
Az azonosítás csak közös titkon alapulhat, nincs felhasználó kezelés (ma már van de nem
itt hanem a 802.11i-ben). A kilens jelzi, hogy azonosítani szeretné magát. A szerver átküld egy
szöveget (véletlen számot) ezt a kliens a közös titokból készült szimmetrikus kulccsal titkosítja.
A szerver ezt ugyanazzal a kulccsal visszafejti. ha egyezik azzal amit átküldött akkor beengedi a
klienst. Ez a megoldás ma már számos problémát vet fel (nincs felhazsnáló kezelés, egy közös titok
mindenkinek, a kliens nem azonosítja a szervert, visszajátszásos támadás ellen sem védett...), ezért
a 802.11i protokollt érdemes alkalmazni.
kulcs nem feltétlenül erős ezért azt minél ritkábban érdemes használni. A WEP minden egyes
keretet más kulccsal titkosít. A kulcs sorozatok leegyeztetés nincs benne a protokollba ehelyett
mindkét oldal azonos algoritmussal készíti a kulcs sorozatot. Annak érdekében, hogy ne lehessen
kitalálni a következő kulcsot egy álvéletlen generátort használnak megfelelő inicializációs
vektorral (IV).
IV
IV(keretenként)
(per frame)
KK – :40104-bit
s S
bites keysorozat
Kulcs sequence generator
generátor
secret
szimmetrikus ( for given KS, IV)
symmetric
k1IV k2IV k3IV … kNIV kN+1IV… kN+1IV 802.11
802.11 WEP-encrypted
WEP data
titkosítású adat
key fejléc IV
plaintext
Szabad header és CRC plus ICV
szöveges adat
&
ésframe
CRC data d1 d2 d3 … dN CRC1 … CRC4
plus CRC
c1 c2 c3 … cN cN+1 … cN+4
új IV7.8-new1:
Figure minden keretre
802.11 WEP protocol
A közös kulcs 40 bites, ezt egészíti ki minden egyes kertre egy 24 bites IV bitsorozat. Ez az
IV minden kerethez hozzá van csapva és minden keretnél más (ez nem biztos, ez a sérülékeny
pontja). Ezzel a 64 bites kulccsal XOR műveletet hajtanak végre az adat és CRC biteken ez lesz a
titkosított tartalom. Több gyenge pontja is van a megoldásnak. Egyik legismertebb probléma az
IV 24 bites tere. Ez egy 11 MBs-os vonalon néhány másodperc múlva 99%-os eséllyel ugyanaz
lesz. Ezt ki lehet használni egy ismert szöveges támadással. Ha tudjuk a titkosított tartalmat (mert
küldtünk egy email-t és a megfigyelt személy megnyitja ezt) akkor a tartalom ismeretében meg
tudjuk határozni a kulcs + IV párost. Ezután ha ugyanezzel az IV-vel érkezik üzenet azt vissza
tudjuk fejteni.
Egy korrektebb megoldás a fenti problémára az azonosítás és a jogosultságkezelés kiszervezése
(nem a hozzáférési ponton szeretné egy cég a felhasználói listát menedzselni) ez lehetővé teszi
központosított (jellemzően címtár alapú) rendszerek alkalmazását. A ragasztó a hozzáférési pont
és a központi azonosító, jogosultság kezelő rendszer között a RADIUS protokoll. A kliens és
a hozzáférési pont között a 802.11i teremti meg annak a lehetőségét, hogy a hozzáférési pont
transzparens módon átjátssza az azonosító protokollt.
Ezzel a megoldással a konkrét azonosítás protokoll a két végpont képességétől függ nem
a hozzáférési pont képességeit. A 802.11i az EAP (Kiterjeszthető Azonosítási Protokoll -
Extensible Authentication Protocol) segítségével absztrahálja az azonosítási protokollt. Ez egy
166 6. fejezet - Adatkapcsolati réteg
3 Az STA legyártja
Pár Mester Kulcsot 3 Az AS legyártja ugyanazt
a PMK,
(PMK)
elküldi az AP-nak
keret protokoll ahol a két oldal megbeszélheti, hogy a beépülő modulként a két oldalon rendelkezésre
álló protokollokból melyiket alkalmazzák. Az EAP alkalmazásán túl TLS csatorna is kiépül és
közösen rakják össze a viszonykulcsot.
6.14 Mobilhálózatok
A kis kitérőnket követően viszont ideje rátérni az igazi nagy falatra, melynek révén végre behatóbb
képet kaphatunk arról, mégis hogyan tudjuk elérni az internetet az okoseszközeink révén még akkor
is, ha épp egy tisztán védett WiFi-kel korülvett helyen tartózkodunk a használatukhoz szükséges
adatok hiányában. A technológia pontos neve Cella Alapú Internet hozzáférés, alapjai pedig a
cellák, amelyek földrajzi területeket fednek le. A terminológia ismertetéséhez a Global System
for Mobile Standards vagyis GSM szabványhalmaz nevezéktanát használjuk, mely a 90-es évek
elején jelent meg, majd napjainkra a hordozható telefonok 80%-ának működését határozza meg.
Fontos Egy klasszikus cellán belül a felépítés az IEEE 802.11-es szabványnak megfelelő
felépítéssel van dolgunk: adott egy bázisállomás, melyhez a mobilfelhasználók csatlakozhatnak.
A különböző cellákat a Mobil Kapcsoló Központok (MSC) fogják össze, melyek összekötik
őket a vezetékes hálózattal, valamint intézkednek a hívásokkal és a mobilállomások cellák
közötti mobilitásával kapcsolatos teendőkkel kapcsolatban is.
Az egyes cellákon belül a közeg megosztására kombinált FDMA / TDMA módszer (a csatornát
előbb frekvenciákra bontjuk, majd az egyes frekvenciacsatornákat időrésekre) vagy pedig CDMA
van alkalmazva. A kapcsolóközpontokat és a hozzájuk tartozó alállomásokat együttesen nevezzük
Mobil Kapcsoló Alrendszernek (MSA). A korai 2G hálózatok esetén, ez volt a meghatározó
topológia, a rendszerek a közeg megosztására TDMA és FDMA technológiákat használtak, az
alállomásokhoz csatlakoztak, a hálózat pedig még csak tisztán hang átvitelére volt képes.
6.14 Mobilhálózatok 167
Átjáró
MSC
Jelmagyarázat
Mobil felhasználók
6.14.1 3G
A már vegyesen adat és hang átvitelére is képes 3G még megőrizte az eredeti topológiát, ám
kibővítette azt olyan extra elemekkel, amelyek képessé tették a hanggal párhuzamosan az adatok
átvitelét is - lényegében implementálnia kellett az általunk immár jól ismert TCP/IP protokollhalmazt.
Ennek működéséhez az MSC-k korábbi helyét átvette az RNC vagyis Rádió Hálózati Irányítóközpont,
mely egységesen fogadta a telefonok hang és adatalapú csomagjait, ám a továbbítást két külön
irányba végezte - a hang alapú üzenet ment tovább az MSC-nek, míg az adatok Általános
Csomagalapú Rádiószolgáltatókon keresztül (GPRS) átkerültek az IP gerinchálózatra, majd ki a
publikus internetre.A GPRS hálózaton belül kétféle csomópontot különböztetünk meg, a hálózaton
belüli forgalomirányítást bonyolító SGSN szolgákat és a publikus internettel kommunikáló átjáró
GGSN-eket. A cél ezzel elsősorban az volt, hogy az új szolgáltatások megjelenése mellett a GSM
hálózat magja érintetlen maradjon.
6.14.2 4G
Ám a fejlődés következő lépcsőfoka, a 4G Long-Term Evolution (LTE) szabvány már nem
finomkodott ilyen téren, és egy lényegesen fejlettebb Rádió Hozzáférési Közeg definiálásán túl a
hálózat magját egy tisztán IP alapú hálózatra cserélte. A 4G hálózatban az adatsík és vezérlősík
teljes elkülönítésre kerültek, ahogy az eszközöket összekötő rádióhálózat és az IP alapú hálózatmag
is, az adat és a hang viszont már nem kerül elválasztásra, a teljes adatforgalom az IP magon kerül
továbbításra. Az LTE hálózaton frekvencia - és idő alapú csatornafelbontás zajlik, minden aktív
csomópont egy vagy több félmásodperces időrést kap egy vagy több csatornafrekvencián. Egy
eszköz minél több időrést kap, annál nagyobb magasabb átviteli arányt képes elérni a hálózaton, az
időrések kiosztása, allokálása pedig nagyon gyorsan, milimásodpercek alatt végbemehet. A döntés,
hogy egy adott időrésben melyik eszköz fog ténylegesen adni, az LTE üzemeltetők algoritmusaitól
függ, melyet befolyásolhatják a szolgálatók és a felhasználók közti megállapodás paraméterei. A 4G
kulcsfontosságú eleme az eNodeB - a 2G bázisállomásának és a 3G rádióközpontok örököse, mely
az LTE rádióhálózat forgalmát továbbítja az IP gerinchálózat felé GPRS alagút protokoll (GTP)
csomagba foglalva, amelyek aztán UDP, majd IP keretbe kerülnek - az így létrejött, megnövekedett
méretű IP csomag kerül továbbításra az S-GW felé. Az eNodeB-t követik a vezérlősíkon a
Mobilitás Vezérlő Entitások (MME) és Otthoni Feliratkozó Szerverek (HSS), melyek pontos
168 6. fejezet - Adatkapcsolati réteg
MSC
G Nyilvános
telefonhálózat
rádió
hálózat Átjáró
vezérlő MSC
G Nyilvános
SGSN Internet
GGSN
vezérlés
G G
Nyilvános
adat internet
S-GW P-GW
rádió hozzáférési hálózat Fejlett Csomag Mag
Universal Terrestrial Radio
Access Network (UTRAN) (EPC)
6.14.3 5G
A jegyzet írásakor a legfrissebb, még bevezetés alatt álló mobilkommunikációs szabvány az 5G
, mely azonban a hosszútávú tervek szerint, köszönhetően rendkívül magas sebességének és
stabilitásának, már nem csak okostelefonok számára biztosítaná a vezetékmentes internetelérést,
hanem akár laptopok és asztali számítógépek számára is. Ennek eléréshez a 5G jelentősen magasabb
frekvenciatartományt használ a 4G-hez képest, azonban ennek van egy jelentős hátránya is -
magasabb frekvencia egyúttal alacsonyabb hatótávolsággal jár a klasszikus 4G bázisállomásokkal
6.15 Mobilitás 169
6.15 Mobilitás
Egyetlen utolsó simítás van csak hátra ahhoz, hogy az adatkapcsolati réteget is magunk mögött
tudhassuk és rátérhessünk a hálózati biztonság minden réteget átható témakörére, ez pedig a
mobilitás kérdése. A WiFi kapcsán már kitértünk egy olyan esetre, amikor egy állomás az IP
címe és alhálózata nélkül másik hozzáférési pontot próbált használni. Ott szerencsénk volt mivel a
WiFi az ilyen jellegű problémákat megoldja a tanulási funkcióival. De mihez kezdjünk egy olyan
esetben, amikor a) a telefon több alkalommal is hozzáférési pontot vált, melynek során az IP címe
is változik, miközben b) folyamatosan forgalmat bonyolít és c) ennek hatékony megvalósítása
érdekében ezt képesnek kell lennie úgy megtenni, hogy minél kevesebb késleltetést vagy hibát
észleljen az hozzáférési pont váltások ellenére?
Ahhoz, hogy megértsük, ezt hogyan éri el az adatkapcsolati réteg, szükségünk lesz néhány
kitüntett fogalom bevezetésére.
Fontos Az otthoni hálózat az adott eszköz állandó otthona. Ezen belül a mobilitás kezeléséért
felelő elem az otthon ügynök, ezzel kommunikál a mobil eszköz, ha épp az otthoni hálózaton
kívül helyezkedik el. Az otthoni hálózaton belül az eszköz azonosítására az állandó cím szolgál,
mely az eszközön mindig megmarad, és mellyel bárhol beazonosítható. A meglátogatott
hálózat a mobil eszköz tartózkodási hálózata, melynek funkcióit az abban elérhető idegen
170 6. fejezet - Adatkapcsolati réteg
ügynök segítségével használja. A probléma magja a társ entitás - egy másik mobil eszköz, ami
a tartózkodási helytől függetlenül el akarja érni az eszközünket.
Az első ,
állandó cím
(pl.: 128.119.40.186)
meglátogatott
hálózat
wan jellegű
hálózat
állandó cím idegen ügynök
pl.: 128.119.40.186
társ entitás
Naív megközelítésben csábító lenne mindössze annyival letudni ezt a problémát, hogy ha
egyszer a különböző forgalomirányítóink amúgy is képesek a táblázataik és információik automatikus
frissítésére, miért nem adjuk át nekik ezt a terhet, és frissítgetik, cserélgetik a táblázataikat úgy,
hogy mindig nyomon tudják követni, egy adott mobil eszköz épp hol található?
Mert irreálisan költséges lenne! Képzeljünk csak el 100 olyan eszközt, amelyek folyamatos
mozgásban és hozzáférési pont váltogatásban vannak a fent meghatározott abc feltételek mellett.
A forgalomirányítóknak lényegében megállás nélkül cserélgetniük kellene az információikat és
fennállna a veszély, hogy mire a hálózat egyik pontjára eljutna az információ, az már rég elavult is
lenne. Helyette a felelősség a végrendszerekre - az otthoni és meglátogatott hálózatokra, valamint
6.15 Mobilitás 171
magukra a mobil eszközökre helyeződik. A cél az, hogy a társ entitás eléréséhez pusztán annak
otthoni ügynökével kelljen felvennünk a kapcsolatot, az pedig bármely időpontban rendelkezzen
az elérni kívánt entitás pontos tartózkodási helyével - mintha csak lenne egy személyes inas, aki
mindig tudja, a munkaadója pontosan hol tartózkodik. A megvalósítása még csak nem is bonyolult:
ahogy az eszközünk belép egy meglátogatott hálózatra, első lépése, hogy regisztrál a hálózat
idegen ügynökénél, amely azonnal propagálja ezt a tartózkodási információt az otthoni ügynökének,
beleértve a vendég címet, amelyen a saját hálózatában elérhető lesz az otthontól távol tartózkodó
eszköz.
az idegen ügynök
megkapja és
a társ entitás továbbítja a mobilnak
az idegen ügynöknek vendég
továbbítja hálózat
otthoni
hálózat
3
1 2
4
a mobil
a társ entitás
közvetlenül a társ
elkéri és megkapja a
entitásnak
vendég címet
válaszol
Így ha az eszközt egy másik keresni próbálja, nem kell tudnia semmit az aktuális tartózkodási
helyéről és épp használt címéről - bőven elegendő az állandó cím és az otthoni ügynök elérése,
mivel a megoldás transzparens, sőt, arra az esetre, ha a hálózatváltások gyorsan következnének be,
a már megnyitott kapcsolatok nyitva maradnak a váltások ellenére is.
1. A társ entitás kommunikálni próbál az eszközzel az otthoni címe alapján
2. Az otthon ügynök elkapja a csomagokat és továbbítja az eszköz legutoljára regisztrált idegen
ügynöke felé
3. Az idegen ügynök átadja a csomagokat az eszköznek
4. Az eszköz képes közvetlenül válaszolni a társ entitásnak
A módszer egyedül akkor nem hatékony, ha a két kommunikálni szándékozó fél azonos
hálózatban tartózkodik úgy, hogy arról egyikük sem tud. Az ilyen, háromszöges forgalomirányítási
problémának is nevezett esetek kiküszöbölésére van lehetőség a közvetlen forgalomirányításra
is. Ekkor a kommunikáló entitás az otthoni ügynöktől elkéri a vendég címet és azon közvetlenül
szólítja meg a másik felet.
1. A társ entitás nem az otthoni címén szólítja meg az eszközt, hanem elkéri a vendég címét
2. A társ entitás továbbítja ezt a kérést az idegen ügynöknek
3. Az idegen ügynök elküldi a vendég címet a társ entitásnak
4. A társ entitás és az eszköz közvetlen kommunikációba kezdenek
A mobilitás logikai változásokat nem idézhet elő a felsőbb rétegekben, mind a szolgáltatásmodell,
mind a TCP és UDP protokollok változatlanul működhetnek, ám a teljesítmény terén ez már nem
garantálható - a sávszélesség, a késleltetés, a hálózatváltások költségei, a horgony ügynökökön
alapuló láncolt megoldások egytől-egyig hatással vannak a teljesítményre.
otthoni hálózat
társ entitás
Home MSC
horgony MSC
PSTN
MSC
MSC
MSC
A hívásátadás pontos végrehajtása elsősorban attól függ, hogy az átadás során pusztán
bázisállomást váltunk ugyanazon MSC fennhatósága alatt, vagy MSC-k között is át kell adni
a folyamatban levő hívást. Előbbi esetben:
1. előkészítési fázis: az aktuális állomás értesíti az MSC-t a közelgő átadásról, mire az értesíti
a leendő állomást, hogy kezdje el allokálni a csatornákat az új mobil számára. Ha elkészült,
az új állomás az MSC-n keresztül jelez a réginek - minden készen áll, következhet az átadás
2. végrehajtási fázis: ha a régi állomás megkapta a jelzést, értesíti erről a hívásban levő mobilt,
mire az megszólítja a leendő állomását, hogy nyissa meg számára a lefoglalt csatornákat.
Ahogy az új csatorna megnyílt előtte, a mobil jelzi az MSC-nek, hogy átadhatja a hívást az
új bázisállomásnak, minden kész, majd miután az MSC ezt megtette és minden átkerült az új
bázisállomás alá
3. befejezési fázis: a régi állomás felszabadítja az erőforrásokat, amelyeket a telefon használt a
hívás lebonyolításához
Fontos LTE esetén kicsit más a helyzet, itt ugyanis a felhasználó (UE) szabadon mozoghat
a cellák között, a hálózat nem tárol pontos információkat az aktuális tartózkodási helyéről.
Amennyiben szükség van erre az információra, a mobilitást kezeleő MME üzenetet küld ki
minden eNodeB-nek, hogy kiderítse, épp melyikhez kapcsolódik az eszköz.
15. Mi a motivácó a VLAN mögött? Hogyan megy át a VLAN információ a kapcsolók között?
17. Ismertesd a vezetékmentes hálózatok elemeit, ezek jellemzőit! (egy vs több ugrás)
6.17 Irodalomjegyzék, további olvasnivalók 175
23. Ismertesd a 802.11 keretet és fontosabb mezőit! MIért van szükség 4 cím mezőre? Ezeket
hogyan használjuk?
elveket, amelyeket PGP esetén láttunk, de az nem lenne praktikus. Ott egy darab email titkosítása
volt a feladat, itt egy adatfolyamé. A kézfogás protokoll alatt/után helyezkedik az SSL rekord
protokoll, amely az adatfolyamot darabokra bontja, tömöríti, MAC-kel (üzenet azonosító kód
- message authentication code) tartalomvédelemmel látja el, majd titkosítja a szimmetrikus
kulccsal és ellátja egy fejléccel. A fejléc az SSL verzióját és a tartalom hosszát tartalmazza.
Az SSL képes egy transzparens, biztonságos csatornát kiépíteni a TCP csatorna felett. Az
alkalmazóknak a TCP-hez képest annyi plusz feladata van, hogy paraméterezze és egy-egy érvényes
digitális tanúsítványt adjon a két végéhez. Nem mindenhol használható azonban a csatorna
absztrakció. UDP felett például nem lenne hatékony minden egyes csomag előtt a kézfogás
lefuttatni, így szükség van egy alacsonyabb szintű csomag alapú megoldásra is. Ez az IPSec.
az IPv6-nak szerves részei, ott ki tudunk küldeni egy ping üzenetet titkosított tartalommal. Az
IPv4-be ezt az IPv6 képességeit egy csomagba szervezve IPSec néven valósították meg. A
továbbiakban az IPSec-től beszélünk, de az eredeti, ezzel egyenértékű képességek az IPv6-ban
is megtalálhatóak. Az IPSec segítségével egyes csomagokat, de még csomagok folyamát is el
tudjuk látni biztonsági képességekkel. Egy gyakori felhasználása a VPN (Virtuális Magánhálózat
- Virtual Private Network) kialakítása. Ilyenkor az összekötött hálózat szigetek között Internet
kapcsolatot használunk az összeköttetésre (bank központ és bank helyi telephely), a belső rendszerek
a szigetek között transzparens módon összeköthetőek. A 7.3 ábrán láthatóak a különböző permutációk.
Maga az elv az, hogy IP csomagba IP csomagot tesszük, azaz a belső forgalmat az interneten
átküldött IP csomagokba csomagoljuk, csak ezt ellátjuk biztonsági képességekkel. Ennek megvalósítását
végzik az IPSec fejlécek. Az IPSec kapcsolat végződhet gépen (például egy laptopon) - ezt nevezzük
szállítási (transport) módnak - ekkor a gépen egy virtuális (szoftveres) interfész lesz létrehozva
és a gépen futó programok megfelelő belső forgalma a gép forgalomirányító táblájában erre lesznek
terelve. A gépen futó programok ebből semmit sem érzékelnek, ugyanúgy IP vagy TCP vagy HTTP
protokollokkal foglalkoznak, számukra a VPN transzparens. A másik mód az alagút (tunnel)
mód amikor nem gépeket, hanem hálózatokat kötünk össze, ekkor ez a virtuális interfész nem egy
felhasználói gépen, hanem egy VPN átjárón (VPN gateway) lesz létrehozva és a forgalomirányító
tábla bejegyzései alapján adott forgalmat betereli a virtuális interfészébe. Itt nem csak a gépeken
futó programok, hanem résztvevő gépek sem tudnak a VPN létezéséről, számukra ez transzparens.
tartalomhoz (Authentication Data) - beszúrva, mint fejléc. Az ESP esetén a titkosított tartalom az,
amely a fejlécek után következik és a csomag végén van az azonosítás. Mindkét csomag elején van
egy sorszám, mely a visszajátszásos támadások ellen véd és egy SPI - Biztonsági Paraméter
Index(Security Parameter Index) mező. Ezekről bővebben a következő fejezetben írunk.
Az SSL elején láttuk, hogy a kommunikáló felek a kapcsolat elején azonosítják egymást, megegyeznek
a közös kulcsban és még néhány paraméterben. Az IPSec esetén ugyanilyen igények merülnek
fel, itt erre az SA-t használják. Az SA egy adatbázis, ahol nem egy, hanem sok közös kulcs van
egy listában minden egyes IPSec kapcsolathoz. Itt vannak a szomszédok digitális tanúsítványai
is. Amikor egy-egy csomagot küldenek akkor a listából választott kulccsal titkosítják és/vagy
látják el tartalomvédelemmel. Az SPI azt mondja meg, hogy melyik kulcsot használjuk az
adott csomaghoz. Ha tehát a két kommunikáló fél oldalán az SA szinkronban van akkor szépen
működik a rendszer. Honnan van az SA adatbázis? Egyszerű esetben ezt kézzel hozza létre a
rendszer-adminisztrátor, ha sok csomópont sok kapcsolatát kell menedzselni, akkor erre külön
protokoll van: az IKE - Internetes Kulccsere Protokoll (Internet Key Exchange), ez hasonlóan
működik mint az SSL kézfogás.
SA sorban megtalálható kulccsal. A titkosított tartalom és a fejléc kivonatolva van adott kulccsal,
és ez még a csomag végére van rakva. Így az adat titkosított és ha a titkosított részét kicserélik, azt
észrevesszük a MAC segítségével.
tűzfal szabályokkal lehet programozni. Az alapvető megközelítés az, hogy minden tilos, kivéve
ami explicit engedélyezve van. Ilyen minta szabály látható a 7.8 ábrán. Az állapotmentes
tűzfalak képessége arra terjed ki, hogy a csomagok adott mezőire lehet szabályokat mondani.
Ezzel jó lehet kezelni az IP cím csalással (IP spoofing) kapcsolatos szabályokat (külső hálózatról
nem engedek be olyan csomagot, amelynek a forrás címe az én hálózatomról származik, vagy az én
hálózatomról nem engedek ki olyan csomagot, amelynek a forrás címe nem az én hálózatomhoz
tartozik). Ez a képesség azonban nem elegendő a számítógép hálózatokban alkalmazott alapvető
koncepció megvalósításához.
A gyakorlatban ez azt jelenti, hogy a tűzfal mögött ülő felhasználók (magasabb biztonsági szint)
kapcsolatot nyithatnak az Interneten elérhető webszerver felé (alacsonyabb szint, az Internet esetén a
préri, 0 biztonsági garanciával), de a webszerver nem kezdeményezhet csak úgy magától kapcsolatot
a felhasználókhoz. Ilyen típusú képességekkel az állapottartó tűzfalak bírnak. Itt ugye nem úgy
általában szeretném a forgalmat tiltani, hanem azt a forgalmat szeretném engedélyezni, amit a
magasabb biztonsági szinten lévő kezdeményez, erre válaszolhat az alacsonyabb biztonsági szinten
lévő entitás. Az állapottartó tűzfalak a NAT-hoz hasonlóan egy táblázatban könyvelik, hogy milyen
folyamok vannak és folyam nyitást csak magasabb szintről alacsonyabb szint felé engedélyeznek.
A tűzfalak által érintett rétegek, mint az elején említettük, az első négy hálózati réteg. Adott
megvalósítások ugyan képesek lehetnek mély csomagelemzésre (deep packet inspecktion), azaz
a magasabb rétegekben lévő adatokra mintaillesztésekre, de ez nagyon erőforrásigényes, azért
nem jellemző, hogy ezt a feladatot tűzfal látná el. Ezt a feladatot proxy-val vagy alkalmazás
szintű átjáróval (application gateway) érdemes megvalósítani. Ezek mélyebb képességű elemek
azonban nem olyan általánosak mint a tűzfal, hanem specializálódtak. Míg a tűzfal nem érti a
HTTP protokollt és jellemzően nem is lehet a mezőire szűrni, egy HTTP proxy érti a HTTP
protokollt és olyat is tudok mondani, hogy a HTML felnőtt tartalmat jelző mezője alapján
adott időszakban nem engedem be a forgalmat. A proxy/alkalmazás szintű átjáró tehát adott
protokoll kezelésére alkalmas, ha több különböző protokollt szeretnénk mélyen szűrni, akkor
több, az adott protokollokat értő proxy/alkalmazás szintű átjáró kell.
Az eddigi példáinkban egyszerű hálózati architektúrát láttunk: belső hálózat - tűzfal - külső
hálózat. Bár ez az architektúra is gyakran használt, de komoly problémát okoz az olyan belső
7.3 Rendszerszintű biztonság:Tűzfal, IDS 183
szerverek kezelése, amelyek kifelé is szolgáltatásokat biztosítanak. Ilyen lehet a cég webszervere,
itt nem tudom azt mondani, hogy majd ő nyit kapcsolatokat a felhasználók felé, mert pont azt
várom, hogy az Interneten lévő felhasználók látogassák meg a weboldalt. Az ilyen az alacsonyabb
biztonsági szint felé nyitott elemeket kevésbé biztonságosnak tartjuk, ezért ezeket célszerű a
többi elemtől elkülöníteni. Erre alkalmas a DMZ - Demilitarizált Zóna (Demilitarized Zone).
A DMZ-be helyeznek el minden olyan szolgáltatást, amelyek kifelé nyitottak, ezekre külön
szabályokat lehet definiálni a belső rendszer határán lévő tűzfalon. Komolyabb cégek a DMZ-be
helyezik adott protokollokat megvalósító proxy-kat is és a belső forgalom a külvilág felé csak
ezeken a proxy-kon mehet keresztül. Láthattuk tehát, hogy a forgalom adott mélységben lévő
információi alapján szabályokat tudunk kényszeríteni a forgalomra. Mi van azonban, ha a tűzfal
mögött történik valami kevésbé várt esemény? Egy kolléga bevisz egy pendrive-ot és arról egy
vírus szabadul el a hálózatunkon. Hogyan vesszük ezt észre? Erre jók a reaktív rendszerek.
7.11: SIEM- Biztonsági Incidens és Esemény Kezelés (Security Incident and Event Management)
7.12: IDS - Behatolás Detektáló Rendszer (Intrusion Detection System) minta folyamat és leírónyelv
[2] Jon C. Snader. VPNs Illustrated: Tunnels, VPNs, and IPsec. Addison-Wesley Professional,
2005. ISBN: 032124544X (cited on page 184).
Bibliográfia 189
Szójegyzék 193
Ábrajegyzék 218
Bibliográfia
Ron Aitchison. Pro DNS and BIND 10. Berkeley, CA: Apress, 2011. ISBN: 978-1-4302-3049-6.
DOI : 10.1007/978-1-4302-3049-6_3. URL : https://doi.org/10.1007/978-1-4302-
3049-6_3 (cited on page 54).
Attahiru Sule Alfa. Queueing Theory for Telecommunications: Discrete Time Modelling of a Single
Node System. 1st. Springer Publishing Company, Incorporated, 2010. ISBN: 1441973133 (cited
on page 104).
Paul Cernick, Mark Degner, and Keith Kruepke. Cisco IP Routing Handbook. 1st. USA: John
Wiley and Sons, Inc., 2000. ISBN: 0764546953 (cited on page 120).
Jim Doherty. SDN and NFV Simplified: A Visual Guide to Understanding Software Defined
Networks and Network Function Virtualization. 1st. Addison-Wesley Professional, 2016. ISBN:
0134306406 (cited on page 122).
Niels Ferguson, Bruce Schneier, and Tadayoshi Kohno. Cryptography Engineering: Design
Principles and Practical Applications. Wiley Publishing, 2010. ISBN: 0470474246 (cited
on page 32).
Kocsis Gábor. Hálózati architektúrák és protokollok előadás. 2015. URL: http : / / irh . inf .
unideb.hu/~kocsisg (visited on 05/30/2020) (cited on pages 194, 195, 197, 199, 201, 202,
210).
Luc De Ghein. MPLS Fundamentals. 1st. Cisco Press, 2006. ISBN: 1587051974 (cited on page 151).
Robert Gibb. What is TCP Slow Start? 2016. URL: https://blog.stackpath.com/tcp-slow-
start/ (visited on 05/30/2020) (cited on page 205).
IGI Global. IGI Global - Publisher of Timely Knowledge. 2020. URL: https : / / www . igi -
global.com (visited on 05/30/2020) (cited on page 197).
Google. Introduction to HTTP/2. 2018. URL: https : / / developers . google . com / web /
fundamentals/performance/http2 (visited on 05/30/2020) (cited on page 46).
190
Paul Goransson and Chuck Black. Software Defined Networks: A Comprehensive Approach. 1st.
San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2014. ISBN: 012416675X (cited
on page 122).
IETF OAuth Working Group. OAuth 2.0. 2020. URL: https : / / oauth . net / 2/ (visited on
05/30/2020) (cited on page 206).
HTE. HTE Infokommunikációs Fogalomtár. 2020. URL: https://www.fogalomtar.hte.hu/
(visited on 05/30/2020) (cited on pages 193–213).
Vinit Jain and Brad Edgeworth. Troubleshooting BGP: A Practical Guide to Understanding and
Troubleshooting BGP. 1st. Cisco Press, 2016. ISBN: 1587144646 (cited on page 120).
Keith Ross (Author) James Kurose (Author). Computer Networking: A Top-Down Approach (7th
Edition. Pearson, 2016 (cited on pages 2, 9, 20, 32, 35, 69, 101, 124, 127, 184, 211).
Zaigham Mahmood. Fog Computing: Concepts, Frameworks and Technologies. Springer, 2018
(cited on page 10).
Stan Gibilisco Margaret Rouse Matthew Haughn. confidentiality, integrity, and availability (CIA
triad). 2020. URL: https://whatis.techtarget.com/definition/ (visited on 05/30/2020)
(cited on pages 196, 210, 211).
Patrick Marsch et al. 5G System Design: Architectural and Functional Considerations and Long
Term Research. 1st. Wiley Publishing, 2018. ISBN: 1119425123 (cited on page 169).
Hein Meling and Leander Jehl. “Tutorial Summary: Paxos Explained from Scratch”. In: Proceedings
of the 17th International Conference on Principles of Distributed Systems - Volume 8304.
OPODIS 2013. Nice, France: Springer-Verlag, 2013, pages 1–10. ISBN: 9783319038490. DOI:
10.1007/978-3-319-03850-6_1. URL: https://doi.org/10.1007/978-3-319-03850-
6_1 (cited on page 59).
Mozilla. MIME types (IANA media types). 2019. URL: https://developer.mozilla.org/
(visited on 05/30/2020) (cited on page 206).
Inc. Network Sorcery. Network Sorcery. 2020. URL: http://networksorcery.com/ (visited on
05/30/2020) (cited on page 199).
Ruckus Networks. Autonomous System Boundary Routers. 2020. URL: http://docs.ruckuswireless.
com/ (visited on 05/30/2020) (cited on page 195).
OmniSecu.com. OmniSecu.com. 2020. URL: https://www.omnisecu.com/ (visited on 05/30/2020)
(cited on page 194).
William R. Parkhurst. Cisco OSPF Command and Configuration Handbook. Pearson Education,
2002. ISBN: 1587050714 (cited on page 118).
RFC. Introducing JSON. 2020. URL: https://www.json.org/ (visited on 05/30/2020) (cited on
page 203).
RFC. RFC. 2020. URL: https://tools.ietf.org/ (visited on 05/30/2020) (cited on page 195).
Iain E. Richardson. The H.264 Advanced Video Compression Standard. 2nd. Wiley Publishing,
2010. ISBN: 0470516925 (cited on page 63).
SDxCentral. SDxCentral. 2020. URL: https://www.sdxcentral.com (visited on 05/30/2020)
(cited on pages 193, 197).
Servira. Servira. 2020. URL: https://servira.com/fogalomtar (visited on 05/30/2020) (cited
on page 206).
Jon C. Snader. VPNs Illustrated: Tunnels, VPNs, and IPsec. Addison-Wesley Professional, 2005.
ISBN : 032124544X (cited on page 184).
191
Lorenzo Spyna. An OAuth 2.0 introduction for beginners. 2018. URL: https://itnext.io/an-
oauth-2-0-introduction-for-beginners-6e386b19f7a9 (visited on 05/30/2020) (cited
on page 45).
Vajda Tamás. Számítógép-hálózatok. 2020. URL: https : / / ms . sapientia . ro / ~vajdat /
education/computernetworks/Szamitogep%20Halozatok%20kabelezese.pdf (visited
on 05/30/2020) (cited on pages 204, 212).
Techopedia. Techopedia. 2020. URL: https://www.techopedia.com/ (visited on 05/30/2020)
(cited on pages 194, 207).
tutorialspoint. tutorialspoint. 2020. URL: https : / / www . tutorialspoint . com/ (visited on
05/30/2020) (cited on pages 206, 212).
Wikipedia. Wikipedia Free Encyclopedia. 2020. URL: https://wikipedia.org/ (visited on
05/30/2020) (cited on pages 193–213).
Yvonne Wilson and Abhishek Hingnikar. Solving Identity Management in Modern Applications:
Demystifying OAuth 2.0, OpenID Connect, and SAML 2.0. Jan. 2019. ISBN: 978-1-4842-5094-5.
DOI : 10.1007/978-1-4842-5095-2 (cited on page 45).
Szójegyzék
Ü, Á, 0-9 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Z
Ü, Á, 0-9
üzenet azonosító kód Az üzenet azonosító kód (MAC, message authentication code) egy kis
méretű információ, amely a küldőt igazolja, azaz az üzenet az állított küldőtől érkezett és
az nem változott. Az üzenet azonosító kód ezentúl védi az üzenetet is. A vizsgáló a kulcs
ismeretében mindenféle módosítást képes detektálni.[19] 30
üzenetszórási tartomány Az üzenetszórási tartomány egy számítógép hálózat logikai felbontása,
ahol minden csomópont elér minden másikat szórásos üzenet segítségével az adatkapcsolati
rétegben. Egy szórási tartomány értelmezhető ugyanazon a LAN szegmensen belül vagy
áthidalással más LAN szegmensekben is.[19] 111
áramkör-kapcsolt Áramkör-kapcsolt hálózatoknak nevezzük azokat a hálózat típusokat, ahol
a végeszközök közötti kommunikáció csak a beállítást követően jöhet létre. A beállítást
követően az áramkör rendelkezésre áll az eszközök teljes kapcsolatának idejére. Pl.: analóg
telefonhálózat. [14] 14
átjáró Az átjárók azonos protokollokat használó hálózatokat összekapcsoló eszközök, például az
internetszolgáltatók azon eszközeit is szokás átjárónak nevezni, amelyekre a felhasználók
közvetlenül kapcsolódnak, támaszkodva arra az érvelésre, hogy a felhasználó által menedzselt
otthoni hálózatot és a szolgáltató által menedzselt hálózatot köti össze.[5] 109, 142, 146, 148,
153–156, 167, 179, 182, 183, 227
átviteli kapacitás Az átviteli kapacitás egy frekvencia, ami megadja, hogy hány bit halad át egy
adott (fizikai vagy elméleti) „ponton” keresztül. Mértékegysége a bit per szekundum (bit/s).
[19] 14, 15, 37, 63, 134
3DES A 3DES (Triple DES, Triple Data Encryption Algorithm (TDEA)) egy szimmetrikus kulcsú
blokk alapú titkosítás, amely a DES rejtjelező algoritmust háromszor alkalmazza minden
blokkra.[19] 28
3G A 3G egy vezeték nélküli mobilinternet szabvány. A harmadik generációt képviseli, és jóval
nagyobb adatátviteli sebességre képes (akár 21 Mbit/s HSPA + használatával, egyébként
194 Szójegyzék
max. 384 kbit/s), mint a második generációs (2G), GSM-szabványnál legfeljebb 220 kbit/s
az adatátviteli sebesség (EDGE).[19] 10, 16, 167, 168, 172, 227
4G Az információtechnológia 4G-vel a negyedik generációs vezeték nélküli szolgáltatásokat
jelöli. A 2G és a 3G rendszerek utódját, a 4G rendszereket a szakértők szerint egy átfogó
IP-infrastruktúra, nagy adatátviteli sebesség, nagy kapacitás és a nyílt internetes szabványok
használata fogja jellemezni. A 4G-nél a mobil széles sávú rendszer továbbfejlesztett
multimédiás szolgáltatásokkal bővül.[19] 10, 12, 16, 167–169, 173, 175, 227
5G Az 5. generációs mobilhálózat vagy 5. generációs vezeték nélküli hálózat, az angol név alapján
rövidítve 5G, a telekommunikációban az 1G (analóg), 2G (GSM), 3G és 4G/IMT-Advanced
után az 5. generációt képviselő technológiai standard, amelynek bevezetését Dél-Korea
kezdte meg 2019 áprilisában.[19] 16, 168, 169, 175
A
ablak Az adatátvitel gyorsítása érdekében a TCP protokoll nem várja meg a nyugtát minden egyes
szegmens elküldése előtt, mivel az nagyon lassú kapcsolatot eredményezne, helyette több
szegmens elküldését is engedélyezi a nyugta beérkezése előtt. A nyugta előtt elküldhető
szegmensek alkotják az ablakot.[19] 83–87, 91, 96–98, 225
ABR Az ABR (Area Border Router) olyan forgalomirányító, amely egy vagy több OSPF terület
határán található. Ezek jellemzően a gerinc hálózatok vagy az OSPF területek közötti
kapcsolatot teremtik meg.[17] 118
ACK Nyugtázó üzenetet jelölő bit, ezzel jelezvén az üzenet átvételét.[19] 77–79, 82, 87, 88, 90,
92, 153–156, 163
adatkapcsolati réteg Megbízható adatátvitelt biztosít egy fizikai összeköttetésen keresztül. Ezen
réteg problémaköréhez tartozik a fizikai címzés, hálózati topológia, közeghozzáférés, fizikai
átvitel hibajelzése és a keretek sorrendhelyes kézbesítése. Az IEEE két alrétegre (MAC,
LLC) bontotta az adatkapcsolati réteget.[1] 127–130, 132, 133, 135, 139, 141, 146, 147, 152,
155, 158, 169, 174, 226
adatsík A hálózati forgalomirányításban az adatsík a forgalomirányító architektúra azon része,
amely segíti továbbítani a beérkezett csomagokat a megfelelő kimenő interfészre.[19]
102–104, 113, 120, 125, 167, 225, 226
AES Az Advanced Encryption Standard (AES) egy módszer elektronikus adatok titkosítására. Az
AES a Rijndael kódolás olyan változata, ahol a blokkméret szigorúan 128 bit, a kulcs pedig
128, 192 vagy 256 bit.[19] 28–30
AH Az AH (Authentication Header) egy IPSec protokoll, amely adatintegritás, adat eredet
hitelesítés szolgáltatásokat ad hozzá az IP-hez.[11] 179–181, 227
alhálózat Egy alhálózat egy IP hálózat logikai felbontása. Ezt a gyakorlatot nevezik alhálózatokra
bontásnak.[19] 101, 108, 110, 146, 148, 154, 164, 169, 225
API Az API egy program vagy rendszerprogram azon eljárásainak (szolgáltatásainak) és azok
használatának dokumentációja, amelyet más programok felhasználhatnak. Egy nyilvános
API segítségével lehetséges egy programrendszer szolgáltatásait használni anélkül, hogy
annak belső működését ismerni kellene. Az API általában nem kötődik programozási
nyelvhez: bármilyen programnyelvből lehetséges azok meghívása, amennyiben a megfelelő
paramétereket a hívás biztosítja, és képes lekezelni az esetleges eredményt.[5] 43, 45, 47,
120, 121
ARP Az ARP az adatkapcsolati réteg egy protokollja. Elsődleges funkciója, hogy a hierarchikus
kiosztású, hálózatfüggő IP-címet egyszintű (flat) címzési struktúrájú, az eszköz fizikai
címeként használható MAC-címre oldja fel. A lokális számítógép-hálózatokban a csomagok
a fizikai címüket használva juttathatók el a címzetthez, mivel a hálózati csatolók – legalábbis
alapértelmezés szerint – csak azoknak az Ethernet-kereteknek a csomagtörzsét adják fel a
felsőbb rétegek felé, amelyek fejrészében a célpont MAC-cím mező tartalma megegyezik a
Szójegyzék 195
saját címükkel. Az Address Resolution Protocolt az RFC 826 írja le, ez az Internet Standard
STD 37.[5] 141–143, 155, 174, 226
ASBR Egy ASBR (Autonomous System Boundary Router) egy olyan forgalomirányító, amely
több protokollt futtat, és átjáróként szolgál azoknak a forgalomirányítóknak, amelyek az
OSPF tartományon kívül vannak.[10] 118
ASIC Egy alkalmazásspecifikus integrált áramkör (application-specific integrated circuit vagy
ASIC) olyan integrált áramkör, amit nem általános felhasználásra, hanem egy-egy vásárló
specifikus igényének kielégítésére terveznek. Általában több funkciót egyesítenek egy csipen.
Például egy mobiltelefon vezérlését ellátó csip is egy ASIC.[19] 105
aszimmetrikus kulcsú titkosítás Olyan kriptográfiai eljárások, melyek algoritmusai egyetlen
(titkos) kulcs helyett különböző kulcsokat, egy titkos és egy ebből származtatott nyilvános
kulcsot használnak. A rejtjelezés mellett publikus kulcsú kriptográfia segítségével megvalósíthatók
digitális aláírás sémák és kulcsmegegyezés protokollok is. A publikus kulcsú rejtjelező
eljárások (pl. RSA) egy üzenet címzettjének nyilvános kulcsával történő titkosítást tesznek
lehetővé, mely a címzett titkos kulcsával dekódolható. A szimmetrikus kulcsú eljárások
esetén felmerülő kulcscsere-probléma ezzel arra egyszerűsödik, hogy biztosítani kell a
publikus kulcs hitelességét, ami lehetséges pl. hitelesített (de nem feltétlenül titkos) kommunikációs
csatorna használatával vagy PKI segítségével.[5] 30
autonóm rendszer Egy autonóm rendszer (AS, autonomous system) egy vagy több IP-prefix
összekapcsolt csoportja, amelyet egy vagy több hálózati operátor működtet, és amely
egységes és világosan definiált útválasztási elvekkel rendelkezik.[13] 117–119, 126
B
Base64 A Base64 kódolás 64 karakterből álló ábécén alapuló tartalomkódolási forma, melynek
segítségével bináris, illetve speciális karaktereket tartalmazó adatokból ASCII karaktersorozat
állítható elő. Az ily módon kódolt adatok akár a karaktereket 7 biten ábrázoló rendszereken
is könnyen átvihetők.[19] 44
BER A BER (Number of Bit Errors) azon fogadott bitek száma, amelyek az adatfolyamban
módosultak zaj, interferencia, torzítás vagy bit szinkronizáció következtében.[19] 158, 159,
164, 227
beágyazás A (felsőbb szintről érkező) információ egy bizonyos protokoll fejléccel történő becsomagolása
(mint pl. levél küldésekor a borítékba helyezés és boríték címzés).[1] 19, 92, 106, 147, 148,
150, 177, 181, 223, 227
BGP A BGP (Border Gateway Protocol) egy autonóm rendszerek (AS) közötti forgalomirányító
protokoll, mely a különböző AS-ek hálózati adminisztrátorai által meghatározott útvonalak,
hálózati politikák és szabályrendszerek alapján hozza meg az útvonalválasztási döntéseket.
A protokoll két részre osztható: a belső átjáró protokoll (internal BGP, iBGP) egy adott
autonóm rendszer BGP-útválasztói közötti kommunikációt biztosítja, míg a külső átjáró
protokoll (external BGP, eBGP) különböző autonóm rendszerek BGP-útválasztóit köti össze,
azok kommunikációját támogatja. A BGP-protokoll első verzióját 1989-ben publikálták, a
jelenleg használatban levő BGP-4 protokollt 2006-ban szabványosították (RFC 4271), bár
azóta is számos frissítése jelent meg.[5] 119, 125
BitTorrent A hálózati sávszélesség szűkössége növeli a népszerű – gyakran nagyobb méretű –
tartalmakat szolgáltató szerverek válaszidejét. Ennek a problémának a kezelésére szolgál a
BitTorrent protokoll, amely révén a felhasználók nem arról az egyetlen gépről töltik le az
általuk kért tartalmat, amelyen az először volt elérhető, hanem minden más olyan gépről
is érkezhet adat, amelyen már megvan a keresett állomány (nyilván egy korábbi letöltés
eredményeként). A BitTorrent protokoll feltételezi valamely p2p-hálózat létét a háttérben.[5]
57–59, 65
blokk alapú titkosítás A kriptográfiában a blokk alapú titkosítás egy determinisztikus algoritmus,
196 Szójegyzék
C
CA A Tanúsító Hatóság (Certification Authority, CA) digitális tanúsítványok kibocsátásáért felel.
Egy digitális tanúsítvány hitelesíti egy publikus kulcs tulajdonjogát. Ezen alapszik a digitális
aláírás vagy a publikus kulcsokhoz tartozó privát kulcsok megbízhatósága.[19] 31
CAM A CAM a számítógépes memória azon speciális típusa, amely nagysebességű kereső
alkalmazásoknál használt. A bemenetként megadott (keresett) adatot (tag-et) összeveti
a táblájában tárolt adatokkal, és visszajuttatja azt a címet, amelynél egyezést talál.[19] 106
CDMA A kódosztásos többszörös hozzáférés (CDMA) egy olyan közeghozzáférési megoldás
osztott közegű hálózatoknál, ahol több felhasználó egyszerre használhatja ugyanazt a kommunikációs
csatornát, időszeletek és frekvenciaosztás nélkül. Az interferenciák elkerülésére minden
felhasználó egy külön kódot kap, melynek segítségével az átvinni kívánt keskenysávú jelet
egy szórt spektrumú szélessávú jellé alakítja. A kiosztott kódok egymásra ortogonálisak, azaz
ha a vevő oldalon ugyanazt a kódot alkalmazzuk, vissza tudjuk állítani az eredeti keskenysávú
jelet, egy másik kód alkalmazása esetén viszont ezt a jelet elnyomjuk, mivel az ortogonális
kódok skaláris szorzata nulla.[5] 15, 135, 159–161, 166, 175, 227
CDN Az internet fölötti magánhálózat, mely a globális internet számos pontján, a nyilvános
internethez kapcsolódó szerverekből áll. A CDN-hálózat felépítésében a kiindulópontot a
forrásszerver (Origin Server) jelenti, ahol az eredeti tartalom érhető el. Ezt egészítik ki a
területileg különböző helyeken elhelyezett ún. másolat-szerverek (CDN server), amelyeken
az eredeti tartalom másolata található, földrajzilag elosztva. A szervereket egy nagysebességű,
optimalizált, a belső forgalmat bonyolító magánhálózat kapcsolja össze. A tartalomelosztó
hálózatok lehetővé teszik, hogy a fogyasztókat egy viszonylag közeli szerverről szolgálják
ki, így a tartalomhoz való hozzáférés ideje megrövidül, és kisebb valószínűséggel lesznek
szűk keresztmetszetek az átviteli sávszélességben.[5] 39, 64, 65, 224
CGNAT A CGNAT (Carrier-Grade Network Address Translation) az IPv4-es hálózati tervezés
egyik módszere, ahol a privát címről publikusra történő címfordítást egy köztes dobot
(middlebox) végzi, mint a hálózat része.[19] 109
CIA A CIA (Confidentiality, Integrity and Availability), azaz a Titoktartás, Integritás, Elérhetőség
egy modell, amelynek segítségével adják meg a hálózatok biztonsági leírásait. A titoktartás
jelenti azt a szabályhalmazt, amely az információkhoz való hozzáférést szabályozza, az
integritás garantálja, hogy az információ megbízható és pontos, az elérhetőség pedig a
megbízható hozzáférést írja le a jogosult személyek számára.[7] 23
CIDR A CIDR (Classless Inter-Domain Routing), azaz az Osztálymentes Tartományok Közötti
Forgalomirányítás az IP címzés és forgalomirányítás egyik módszere. 1993-ban leváltotta
az címosztályokra épített címzés architektúráját az Interneten. Célja volt, hogy lelassítsa
a forgalomirányító táblák méretének növekedését az Interneten és az IPv4-es címek gyors
kimerítését.[19] 108, 125
CMTS A CMTS (Cable Modem Termination System) egy berendezés, amelyeket nagy sebességű
adatszolgáltatások (pl.: Internet, VoIP) esetén használnak.[19] 140, 141
CRC A CRC egy hibadetektáló kód, amely segít a nyers adatban bekövetkező változások észlelésében.
Szójegyzék 197
D
DASH A hálózati erőforrásokhoz és a felhasználó eszközének képességeihez alkalmazkodó
streaming megoldás. Általában HTTP-protokoll segítségével történik az adaptív átvitel,
melynek feltétele, hogy az adott médiatartalom különböző minőségben (felbontásban)
rendelkezésre álljon. A rendszer folyamatosan figyeli a felhasználói sávszélességet és
buffer-töltöttséget, majd ennek megfelelően képes a tartalom megfelelő minőségű példányát a
hálózaton továbbítani, akár átvitel közben változtatva azt. Legismertebb adaptív HTTP-streaming
megoldások a HTTP Live Streaming (HLS) és a Dynamic Adaptive Streaming over HTTP
(DASH).[5] 64, 65
demultiplexelés Az kommunikációs csatornán érkező szegmenseket a portszám alapján a csomóponton
belüli folyamatokhoz rendeli.[1] 71, 72
DES A DES a Data Encryption Standard rövidítése. 56 bites kulcs bemenetű szimmetrikus kulcsú,
azaz 1 kulccsal rendelkezik ami privát és csak a titkosítást és visszafejtést végző felek képesek
az adott kulccsal titkos üzeneteket egymással közölni egy csatornán.[19] 28, 30
DHCP Ez a protokoll azt oldja meg, hogy a TCP/IP hálózatra csatlakozó hálózati végpontok
198 Szójegyzék
E
EAP Az EAP (Extensible Authentication Protocol) egy autentikációs keretrendszer, amelyet
hálózati kapcsolatok esetén gyakran használnak.[19] 165, 166, 175
ECN Az ECN (Explicit Congestion Notification) az IP kiterjesztése (RFC 3168). Az ECN lehetővé
teszi a vég-vég értesítést a hálózaton előforduló torlódásokról úgy, hogy csomag eldobás
nem történik.[19] 98
EGP Az EGP (Exterior Gateway Protocol) protokoll az Internet forgalomirányítási proktolljla,
amelyet Eric C. Rosen of Bolt és társai specifikáltak 1982-ben. Ezt a protokollt használva
cserél forgalomirányítási információkat egymással két szomszédos átjáró autonóm rendszerek
hálózatában.[19] 117–119
ellenőrző összeg Általános elnevezése az adategységnek arra a részére, amelyet hibadetektálás
vagy hibajavítás céljából adunk hozzá a hasznos bitsorozathoz. Az ellenőrző összeget az
Szójegyzék 199
adatrészből egy specifikus szabály alkalmazásával állítjuk elő.[5] 74–77, 87, 111, 132, 144,
147, 164
elégséges kulcstér elv Egy titkosítási eljárásnak elégséges kulcsteret kell biztosítania annak érdekében,
hogy a nyers erő támadások ne legyenek megvalósíthatóak. 26
Email Privát, címzett, aszinkron, közel valós idejű, írásos, hálózati kommunikációs forma. Megengedi
tetszőleges állomány csatolását az üzenethez.[5] 24, 49, 55, 56, 224
ESP Az ESP fejléc biztonsági szolgáltatásokat nyújt az IPv4-nek és az IPv6-nak. Az ESP
alkalmazható önállóan is, de kombinálva is az AH-val.[9] 179–181, 227
Ethernet A DEC, Intel és Xerox cégek által kidolgozott alapsávú LAN-ra vonatkozó specifikáció.
Az Ethernet hálózatok az ütközések feloldására a CSMA/CD-t használják. Számos kábeltípuson
(koax, csavart érpár, stb.) működik legalább 10 Mbps sebességgel.[19] 12, 18, 102, 103, 106,
107, 121, 132, 137, 143–145, 147, 148, 153–156, 164, 174, 226
F
FDMA A frekvenciaosztásos többszörös hozzáférés (FDMA) egy olyan közeghozzáférési megoldás
osztott közegű hálózatoknál, ahol a különböző felhasználók egy vagy több dedikált frekvencián
kommunikálhatnak folyamatosan, egymástól függetlenül. A frekvenciák kiosztása lehet
statikus vagy dinamikus, attól függően, hogy a kiosztásnál figyelembe vesszük-e az adott
felhasználó aktuális forgalmát.[5] 15, 134, 135, 140, 166, 174, 223, 226
FEC Az előremutató hibajavítás, angolul forward error correction – FEC a hibajavítás egy
rendszere a telekommunikációban. Abban különbözik az általánosan használt hibajavító
rendszerektől, eljárásoktól, hogy arra tervezték, hogy a hibajavításhoz ne legyen szükséges –
ellentétben a többi hibajavító rendszerrel – az üzenet újraküldése.[19] 132
fejléc A távközlésben a fejléc olyan kiegészítő adatokat jelent, amelyek a továbbítandó adatblokkot
megelőzően találhatóak. Az adatot (üzenetet), amely a fejléc után található, törzsnek (body)
szoktuk nevezni.[19] 40–42, 44, 45, 50, 55, 71, 74, 81, 87, 107, 111, 122, 124, 129, 130, 132,
146, 150, 178–181, 227
felhő Az IT infrastruktúrát mint közművet megvalósító szolgáltatás. A felhő infrastruktúra lényege,
hogy virtualizált erőforrásokat bárki bármikor igénybeveheti és ezért annyit fizet amennyit
használta. 9, 10, 26, 35, 36, 47, 57, 59, 101, 112, 127, 169
FIFO A FIFO (First-In-First-Out) elv egy módszer egy adatstruktúrában lévő elemek manipulálására.
Az adat struktúrába legrégebben (elsőként) bekerült elem kerül leghamarabb feldolgozásra.[19]
104
FIN Kapcsolat bontására irányuló kérést jelölő bit.[19] 87, 88, 92
fizikai réteg Elektromos és mechanikai jellemzők procedurális és funkcionális specifikációja két
(közvetlen fizikai összeköttetésű) eszköz közötti jeltovábbítás céljából. Bitek csatornára
bocsátása.[1] 129, 144, 158
folyam alapú titkosítás A folyam alapú titkosítás egy szimmetrikus kulcsú titkosítás, ahol a nyílt
szöveget pszeudorandom rejtjel folyammal kombinálják.[19] 28, 165
folyamvezérlés A folyamvezérlés az a folyamat, amely az adatküldési arányt szabályozza két
csomópont között annak érdekében, hogy a gyors küldők ne árasszák el a lassú fogadót.
Ez a mechanizmus a fogadó kezében van, ő kontrollálja a küldési sebességet az elárasztás
elkerülése érdekében.[19] 71, 91, 93, 128, 130
forgalom intenzitás A forgalom intenzitás mértéke a beérkező csomagok és a kibocsátó képesség
hányadosa.[19] 17, 138
forgalomirányító Egy képesség/szolgáltatás, gyakran egy eszköz amely a hálózati réteg információi
alapján csomagok továbbítását végzi. 11, 14, 15, 17, 18, 20, 36, 57, 69, 70, 80, 93–95, 98,
101–103, 105–108, 110–115, 117–122, 125–127, 146, 148–150, 152, 157, 164, 170, 174,
179, 225
forgalomirányító protokoll Egy forgalomirányító protokoll specifikálja, hogy a forgalomirányítók
200 Szójegyzék
G
gerinc hálózat A gerinc hálózat a számítógép hálózatok azon része, mely biztosítja az információ
(adat) áramlását a hálózat komponensei (helyi hálózatok, alhálózatok) között. A gerinc
hálózat kapacitása jellemzően nagyobb, mint azon hálózatoké, amelyek kapcsolódnak
hozzá.[19] 12–14
GPRS A GPRS egy 2.5G mobil adatátviteli technológia, azaz a második generációs (2G) és
harmadik generációs (3G) mobil hálózatok közötti átmeneti megoldás. Az áramkörkapcsolt
GSM-hez képest a GPRS egy csomagkapcsolt IP-alapú technológia, azaz nincs egy folyamatosan
rendelkezésre álló áramkör kiépítve két végfelhasználó kommunikációjának biztosítására,
hanem helyette IP-csomagok egymást követő független továbbításával valósul meg az
adatátvitel.[5] 167
GSM A GSM a legismertebb és legnagyobb felhasználói bázissal rendelkező második generációs
(2G) mobilkommunikációs technológia, melyet az ETSI szabványosított 1991-ben, és rövid
időn belül a világ több mint 200 országában elterjedt.[5] 128, 166, 167, 177
gyorsítótár A gyorsítótár (cache) a számítástechnikában az átmeneti információtároló elemeket
jelenti, melyek célja az információ-hozzáférés gyorsítása. A gyorsítás egyszerűen azon
alapul, hogy a gyorsítótár gyorsabb tárolóelem, mint a hozzá kapcsolt, gyorsítandó működésű
elemek, így ha ezen területek tartalma korábban már bekerült a gyorsítótárba (mert már
valaki/valami hivatkozott rá korábban), az ilyen adatokat nem a lassú működésű területről,
hanem a gyors cache tárolóból lehet előhívni.[19] 39–41, 44, 46, 48, 50, 52–54, 63, 155, 156,
224
H
heurisztika A problémamegoldás, a felfedezés, a feltalálás, felismerés alkotó tevékenységének
törvényszerűségeit és módszereit tanulmányozza. A heurisztika általában olyan eljárások
Szójegyzék 201
I
IANA Az IANA (Internet Assigned Numbers Authority) az ICANN (Internet Corporation for
Assigned Numbers and Names) egy szervezeti egysége, mely felelős az internetes szabványokban
használt globálisan egyedi nevek és számok kiosztásáért. Ide tartozik egyfelől az IP-címek és
az autonóm rendszer azonosítók (AS number) globális tartományának felosztása a különböző
Regionális Internet Regiszterek (RIR) között, a tartománynévrendszer (DNS) gyökérzónájának
a kezelése, illetve egyedi értékek társítása is egy internetes szabványban leírt protokoll
202 Szójegyzék
129, 141–143, 146, 148–151, 153–156, 162, 164, 167, 169, 172, 174, 175, 177, 179, 182,
183, 224, 225, 227
IPSec Az Internet Protocol Security (IPsec) egy protokoll csomag az Internet Protokoll (IP) alapú
kommunikáció biztonságosabbá tételére a kommunikációs viszony minden egyes csomagja
hitelesítésével és titkosításával.[19] 177–181, 184, 227
IPv4 Az IPv4 az Internet Protocol 4. verziója, az internetet működtető alapvető protokollok
egyike, amelyet az RFC 791 definiál. Az IPv4 a csomagkapcsolt hálózatokban használható
összeköttetésmentes protokoll, amelynek fő feladatai a végpontok közötti legjobb szándék
szerinti (best effort) csomagtovábbítás – vagyis a címzés egy 32 bites címmel és ennek
alapján a csomag célbajuttatása – és a csomagok feldarabolásának és újbóli összeállításának
támogatása.[5] 18, 49, 103, 109, 111, 112, 124, 125, 177–179, 226
IPv6 Az IPv6 az Internet Protocol 6. verziója, amelyet a jelenleg is széleskörűen használatos
IPv4 leváltására terveztek. Az IPv4 32 bites címeivel szemben 128 bites címeket használ
két 64 bites részre osztva amelyek a hálózatot és azon belül a hosztot azonosítják. Egy
hálózati csatolóhoz több címet is hozzárendelhetünk, lehetővé téve az eszközök nagyobb
mobilitását.[5] 18, 49, 103, 109, 111, 112, 122, 125, 178, 179, 226
ISO-OSI modell Az ISO által szabványosított modell összekapcsolt rendszerek architektúrájának
leírására. A hierarchikus, hét egymásra épülő rétegből álló modell lényege, hogy egy adott
réteg funkcionalitását, valamint a felette ill. alatta lévő rétegek felé az illeszkedést (interfészt)
definiálták, de az adott funkció megvalósítását, tehát a réteg “belsejét” nem. Ez lehetővé tesz
különböző megvalósításokat. Az OSI-modell (gyakran: ISO-OSI-modell) ma már kevésbé
használatos, szerepét más referenciamodellek ill. referencia-architektúrák vették át, mint
amilyen a TCP/IP-architektúra az internet világában, vagy az IEEE 802.X architektúra a
lokális hálózatoknál. [5] 17, 18
ISP Az internetszolgáltató (angolul Internet Service Provider, ISP) egy olyan üzleti vállalkozás
vagy nonprofit szervezet, amelynek feladata a publikus internethez való csatlakozás fizikai és
adminisztratív kialakítása.[19] 12, 21, 40, 125, 140, 151
IXP Egy forgalomkicserélő pont (IXP) egy fizikai infrastuktúrát valósít meg, amelyen keresztül
az Internet szolgáltatók (ISP-k) és a tartalomelosztó hálózatok (CDN-ek) kapcsolódnak, és
Internet forgalmat biztosítanak a hálózataiknak.[19] 12
J
JSON A JSON (JavaScript Object Notation) egy könnyűsúlyú adatcserélő formátum. Ember
számára könnyen írható és olvasható, gépek számára pedig könnyen feldolgozható és
generálható. A JSON alapjai a JavaScript programozási nyelv szabványából (ECMA-262)
származnak. Ez egy szöveges formátum, amely teljesen nyelv független, de más ismert
programozási nyelvekből ismert konvenciókat alkalmaz.[12] 44, 46–48, 124, 224
K
kapcsoló Egy képesség/szolgáltatás, gyakran egy eszköz amely az adatkapcsolati réteg információi
alapján keretek továbbítását végzi. 11, 18, 112, 125, 127, 141, 143, 145–148, 152–154, 157,
174, 226
kapcsoló motor A kapcsoló motor egy topológia, amelyben különböző hálózati csomópontok
vannak egymással összekötve számos kapcsolóval.[19] 103–105
Kerckhoff elve A titkosító metódust nem szabad titokban tartani, az nyugodtan az ellenség kezébe
kerülhet. A titkosság csak a kulcs titkosságán kell, hogy múljon. 25
keret Egy keret a digitális adatátvitel egysége a számítógép hálózatoknál és a távközlésben.
Csomagkapcsolt hálózatok esetén a keret egy egyszerű tárolója a csomagnak.[19] 18, 45, 46,
127–139, 141–150, 153–159, 162–168, 174, 175, 226, 227
kliens Eredeti jelölésben olyan program, amely erőforrásokat, szolgáltatásokat vesz igénybe egy
204 Szójegyzék
ugyanazon vagy másik gépen futó másik programtól, azonban gyakran jelölik vele magát a
kliens programot futtató eszközt is. 11, 36, 39, 41–46, 53, 54, 57–66, 72, 73, 87, 92, 98, 101,
110–112, 124, 164, 165, 224
koaxiális kábel Ez a széles körben használt átviteli közeg. Egy tömör rézhuzalból áll, amelyet
szigetelő burkol. A szigetelőt egy hengeres vezetőveszi körbe, amelyet árnyékolja, a kábelt a
külső zajokkal szemben. Az árnyékolást ismét egyműanyagburkolat zárkörül. Felépítésének
köszönhetően nagyon védett zajokkal szemben, és hosszú távú átvitelre is alkalmas.[16] 15,
143, 144
kommunikációs protokoll Szabályrendszer, mely meghatározza, hogy két kommunikáló fél
hogyan képes egymással kapcsolatot kiépíteni, majd kommunikálni egy kommunikációs
vonalon keresztül. Lehet nyílt és zárt is, előbbieket különböző szervezetek szabányosítják.
Jellemzően egyértelmű interfészeket specifikálnak a szoftverek számára, amelyek a szabályaik
szerint próbálnak kommunikálni. 11
kommunikációs vonal A médium, a közeg, amelyen keresztül a kommunikáló felek kiépítik és
fenntartják egymással a kapcsolatot, lehet vezetékes és vezetékmentes is. 11, 16, 18, 127
kriptográfia A kriptográfia az információvédelem algoritmikus módszereivel foglalkozó tudományág.[5]
25, 33, 54, 55, 185
kriptográfiai kivonat függvény Egy kriptográfiai kivonat függvény (CHF, cryptographic hash
function) egy matematikai algoritmus, amely tetszőleges méretű adatot (üzenetet) rögzített
méretű bit karakterláncként (hash) feleltet meg. Ez egy egyirányú függvény, amely gyakorlatilag
visszafordíthatatlan.[19] 30
kérés-válasz Kérés-válasz az egyik alapvető módszere a számítógépek közötti kommunikációnak,
ahol a kezdeményező számítógép küld egy adatra vonatkozó kérést, majd a fogadó fél
válaszol a kérésre.[19] 41
késleltetés A késleltetés a jel átvitelének ideje a rendszerben vagy hálózaton, pontosabban a jel
adása és vétele között eltelő idő értéke. Digitális átvitelnél a bitfolyam adott bitjének az
adása és ugyanennek a bitnek a vevőoldalon történő vétele közötti időintervallum. Szokás
végpontok közötti (end-to-end) késleltetésnek nevezni. Csomagkommunikációs hálózatokban
egy adott csomag átvitelének ideje a hálózatban.[5] 30, 37, 40, 60, 73, 80, 84, 90, 91, 93, 94,
96, 123, 137–139, 158, 168, 169, 172, 225
kézfogás A biztonságos adatátvitelhez szükséges paraméterek a résztvevők közti megosztása. 73,
87, 144, 178, 180
köd A számítás és a tárolás a vég rendszerekben valósul meg. pl.: kamera feldolgozza a videót és
csak a megszámlát autók számát küldi tovább. 9, 10
közbeékelődéses támadás A közbeékelődéses támadás vagy középreállásos támadás (angolban:
man-in-the-middle attack, MITM) során a két fél közötti kommunikációt kompromittálja
egy támadó úgy, hogy a kommunikációs csatornát (tipikusan valamilyen számítógépes
hálózatot) eltérítve mindkét fél számára a másik félnek adja ki magát. Így a két fél azt
hiszi, hogy egymással beszélget, miközben valójában mindketten a támadóval vannak
csak kapcsolatban, aki így kijátszhatja az ilyen támadásra fel nem készített kihívás/válasz
protokollokat, egyszerűen továbbítva a kihívást a másik félnek, majd visszaküldve annak
válaszát.[19] 32
köztes doboz A köztes doboz (middlebox) egy hálózati eszköz, amely manipulálja a forgalmat, de
nem forgalomirányítási célból.[19] 109, 112
L
LAN A számítógép- és távközlő hálózatokban elterjedt a lefedett terület szerinti osztályozás, mely
szerint megkülönböztetünk LAN-okat (Local Area Network - helyi hálózat), MAN-okat
(Metropolitan Area Network - nagyvárosi hálózat) és WAN-okat (Wide Area Network –
nagyterületű hálózat). A helyi hálózat egy jól körülhatárolt, kis kiterjedésű (tipikusan néhány
Szójegyzék 205
km-es méretű) földrajzi környezetben köt össze felhasználókat egymással, a helyi hálózat
erőforrásaival, illetve a hálózati hierarchia magasabb szintjeivel, mivel a helyi hálózatok
általában egy nagyobb kiterjedésű, sokszor hierarchikus szervezésű hálózatok részei.[5] 11,
127, 128, 132, 137, 141–143, 145, 146, 161, 175, 226
lassú indulás A lassú indulás a TCP által használt algoritmus, amely a hálózati kapcsolat sebességét
hivatott egyensúlyozni. A lassú indulás fokozatosan növeli az elküldött adat mennyiségét
egészen addig, amíg a hálózat maximális fogadó képességét el nem éri.[2] 96, 97, 225
leghosszabb előtag szerinti keresés Mivel forgalomirányító tábla bejegyzései egy alhálózatot
specifikálnak, egy cél cím több tábla bejegyzéssel is egyezhet. A leghosszabb előtag
egyezés szerint az a bejegyzés kerül kiválasztásra, ahol a legmagasabb helyiértékű biteken a
legnagyobb egyezés mutatkozik.[19] 108
legjobb szándék szerinti továbbítás A legjobb szándék szerinti továbbítás esetén a hálózat maga
nem garantálja sem az adat megérkezését, sem a szállításra vonatkozó szolgáltatás minőségét
(QoS).[19] 71, 103
LEO Az alacsony Föld körüli pálya (Low Earth Orbit, rövidítve LEO) olyan műholdpálya, ahol
a Föld felszínétől legfeljebb 2000 km távolságra lévő műholdak keringenek. Mivel a 200
km alatt keringő testek gyorsan veszítenek a magasságukból, ezért általánosan a földfelszín
fölött 200–2000 km-re keringő műholdakra használják ezt a kifejezést. Pályájuk nagy
általánosságban kör alakú, és nagyjából 90 perc alatt kerülik meg a Földet. [19] 13, 16
LSR Az LSR (Loose Source Routing) egy IP opció, amelyet címfordításra használnak. Az IP
hálózatoknál a mobilitást is LSR segítségével implementálják.[19] 107
LTE Az LTE (mozaikszó az angol Long Term Evolution kifejezésből, tükörfordításban „hosszútávú
fejlődés”) egy negyedik generációs vezeték nélküli adatátviteli szabvány, melyet a 3GPP
Release 8 szabvány ír le.[19] 12, 16, 167, 169, 173, 174
M
MAC-cím A MAC-cím (Media Access Control) egy hexadecimális számsorozat, amellyel még a
gyártás során látják el a hálózati kártyákat.[19] 129, 130, 141–143, 145, 146, 153–156, 162,
174
MAC-protokoll Az IEEE 802.X protokollarchitektúra alrétege, amely lokális hálózatokban a
közös átviteli közeg megosztásáért felel. Közös átviteli közeg lehet a legrégebbi lokális
hálózatokban alkalmazott koaxiális kábel, a sokpontos ismétlő (multiport repeater), vagy
vezeték nélküli LAN-oknál a rádiócsatorna.[5] 128, 129, 133, 134, 144, 163, 174
MAN A számítógép- és távközlő hálózatokban elterjedt a lefedett terület szerinti osztályozás, mely
szerint megkülönböztetünk LAN-okat (Local Area Network - helyi hálózat), MAN-okat
(Metropolitan Area Network - nagyvárosi hálózat) és WAN-okat (Wide Area Network –
nagyterületű hálózat). A MAN-ok a LAN-oknál lényegesen nagyobb, de nem korlátlanul
nagy területet lefedő hálózatok. Az elnevezés arra utal, hogy tipikusan egy nagyváros területe
az, amelyet a vonatkozó technológiák kifejlesztésénél megcéloztak.[5] 11
MANET A MANET (Mobil Ad-Hoc Network) egy folyamatosan önkonfigurálódó, önszerveződő,
infrastruktúra-mentes mobil eszköz hálózat, ahol vezetékmentes kapcsolat van.[19] 157
metrika Mérési adatok és statisztikák halmaza, amelyek leírják a teljesítményt vagy monitorozzák
az outputok, eredmények és hatások fejlődését. A metrikariportokban mutatókat (indikátorok)
azonosítanak, valamint alapvonalakat, időtartományokat, amelyekben egy előre kitűzött célt
kellene elérni.[5] 16, 17, 114, 115, 158, 226
MIB Az SNMP protokollt kifejezetten bővíthetőre tervezték. Ezt a MIB-ek (management information
base: menedzsment információk csoportja) segítségével érik el. Egy MIB bizonyos eszközök
által használt speciális tulajdonságokat ír le, így külön MIB áll rendelkezésre például
nyomtatók, routerek, vagy szerverek számára.[19] 124, 226
MIME A MIME (Multipurpose Internet Mail Extension) egy szabvány, amely egy dokumentum
206 Szójegyzék
vagy fájl formátumát írja le. Az RFC 6838 definiálja.[8] 18, 41, 46
MPLS Az MPLS, magyarul többprotokollos címkekapcsolás (RFC 3031), csomagkapcsolt hálózatokban
használatos technológia. Az IP feletti szolgáltatások megvalósítását is támogatja. Ez olyan
módon történik, hogy az MPLS-t használó hálózatba való belépéskor a 2. rétegbeli fejléc után
beillesztünk egy MPLS-fejlécet. Az MPLS-fejléc legnagyobb eleme a 20 bites címke. Ezután
az MPLS-képes eszközök a csomagot a címke alapján kezelik, vagyis az IP-hálózatokban
a csomagtovábbítás nem egyedileg, a csomag fejléce alapján történik, hanem az azonos
címkéjű csomagokat ugyanazon az úton továbbítjuk, tulajdonképpen kapcsoljuk. Ezeket
az útvonalakat címkekapcsolt utaknak (label switched path, LSP) hívjuk. Ahhoz, hogy a
kiosztott címkéket – és azt, hogy az egyes címkékhez milyen kezelési szabályok (irányítás,
prioritás) tartoznak – az MPLS-hálózat (tulajdonképpen egy overlay) elemeivel tudassuk,
szükség van az információ terjesztésére, amire a Label Distribution Protocol (LDP, RFC
5036) használatos.[5] 120, 128, 148–151, 174, 227
MSC Az MSC (Mobile Switching Station) egy 2G gerinc hálózat elem, amely vezérli a hálózat
kapcsoló alrendszer elemeit.[19] 166, 167, 173, 174
MSS Maximális szegmens méret, amely a TCP fejlécének egyik mezője. Ez jelöli a szegmensenkénti
adat méretet bájtokban megadva. 87, 96, 97
MTU Az MTU a Maximum Transmission Unit, vagyis a Maximális Átviteli Egység rövidítése.
Az MTU egy hálózati kifejezés, és azt határozza meg, hogy mekkora az a maximális
csomagméret, melyet a hálózaton keresztül küldhetünk.[15] 106, 107
multiplexelés Multiplexelés alatt a telekommunikációban azt az eljárást értik, amikor két vagy több
csatornát összefognak egy csatornába úgy, hogy a demultiplexeléssel elő tudják állítani az
eredeti csatornákat. Az eredeti csatornák egy úgynevezett kódolási sémával azonosíthatóak.[19]
71–74, 87, 225
N
NAT A nevéből következően a NAT (Network Address Translation vagy Network Address
Translator) egy hálózati címeket cserélő/fordító/virtualizáló protokoll. A NAT egy aktív
hálózati építőelem, amelyet tipikusan két hálózatot köt össze. A belső hálózaton általában
olyan IP-címtartományt használunk, amelyet az útvonalválasztók nem továbbítanak. A külső
hálózat irányában általában néhány, a belső hálózaton elhelyezkedő számítógépek számához
képest kevesebb számú csatolóval (és ennek következtében hálózati címmel) rendelkezik,
viszont az ezekről származó forgalmat a hálózati útvonalválasztók továbbítják. Ennek az
eljárásnak az általános szaknyelvi megnevezése az IP masquerading.[5] 69, 101, 109, 110,
112, 113, 125, 182, 226
NFV Az NFV (Network Functions Virtualization) a hálózati szolgáltatások (pl.: tűzfal, forgalomirányítás)
virtualizációja, amelyeket hagyományosan fizikai eszközök valósítanak meg. A szolgáltatások
virtuális gépek formájában érhetőek el.[19] 112, 113
NIC Az NIC (Network Interface Card) egy hardver komponens, amelynek hiányában egy számítógép
nem tud hálózathoz csatlakozni. Ez egy számítógépbe telepített áramköri lap, amely hálózati
kapcsolatra kínál lehetőséget.[18] 130, 137, 141
nyugta A megbízható kézbesítés garantálja, hogy a kommunikáció során elküldött adatok veszteség,
vagy kettőződés nélkül elérik a céljukat.[19] 79, 87, 88, 90–92, 97, 225
O
OAuth 2.0 Az OAuth 2.0 ipari szabvány protokoll a jogosultságkezelésre. Az OAuth 2.0 a
fejlesztők tekintetében az egyszerűségre fókuszál, miközben specifikus autorizációs megoldásokat
biztosít web-alkalmazásoknak, asztali alkalmazásoknak, mobil alkalmazásoknak és egyéb
eszközöknek. A specifikáció és annak kiterjesztései az IETF OAuth Working Group
fejlesztésein belül történik.[4] 43–46, 224
Szójegyzék 207
optikai kábel Az optikai szál egy igen tiszta, néhány tíz (a technológia megjelenése idején
még néhány száz) mikrométer átmérőjű üvegszálból és az ezt körülvevő, kisebb optikai
törésmutatójú héjból álló vezeték. Működési elve a fénysugár teljes visszaverődésén alapul:
A fénykábel egyik végén belépő fényimpulzus a vezeték teljes hosszán teljes visszaverődést
szenved, így a vezeték hajlítása esetén is – minimális energiaveszteséggel – a szál másik
végén fog kilépni.[19] 12, 13, 15, 144, 223
OSPF Az Open Shortest Path First (OSPF) az egyik legismertebb tartományon belüli (intra-domain)
útválasztó algoritmus, mely kapcsolat-állapot hirdetések használatára épül. Minden útválasztó
hirdeti a teljes hálózatban, hogy mely másik útválasztóval áll közvetlen kapcsolatban, és
milyen ennek a kapcsolatnak az állapota, mekkora a költsége. E hirdetések alapján minden
csomópont egységes módon felépíti saját magánál a tartományon belüli teljes hálózati
topológiát, ezen pedig a Dijkstra-algoritmust futtatva kiszámolja a legrövidebb utakat bármely
forrás-cél címpárra.[5] 117–119, 123, 125, 151, 226
P
P2P A Peer-to-Peer (P2P, magyarul kb. egyenrangú) modell olyan hálózati architektúra, melyben
nincs központosított erőforrás-elosztás és a csomópontok kliens- illetve szerverfunkciókat
is egyszerre látnak el. A P2P-hálózatba kötött számítógépek egyikének sincs kitüntetett
szerepe a hálózati architektúra szempontjából, ellentétben a hagyományos kliens-szerver
modellel, ahol az erőforrásokat, szolgáltatásokat dedikált szerverek nyújtják a hozzájuk
kapcsolódó kliensek számára. A gépek emellett erőforrásaik egy részét a többi gép számára
is rendelkezésre bocsátják a hálózaton keresztül. A P2P-hálózat két csomópontja tehát
közvetlenül egymással kommunikál, az üzenetküldésnél nincs szükség további szereplőre.
A P2P modell legismertebb alkalmazási területét az ingyenes zene- és filmletöltést segítő
fájlcserélő rendszerek jelentették, de erre a modellre épülnek a közösségi gazdaság (sharing
economy) egyre népszerűbb alkalmazásai is.[5] 35, 36, 57, 58, 64–66, 110, 113, 120, 121,
125
PAN A személyi hálózatok a PAN-ok (Personal Area network) olyan számítógép hálózatok,
amelyet egyes embereknek szántak. Például egy vezeték nélküli hálózat, amely az egeret
összeköti a számítógéppel.[19] 11, 160, 162, 227
paritásbit Egy paritásbit egy karakterlánc bináris kódjához hozzáadott bit. A paritásbit használata
a hibadetektáló kód legegyszerűbb formája.[19] 131, 226
paritásteszt A paritásteszt az a folyamat, amely alátámasztja, hogy az adatátvitel két csomópont
között pontosan megtörtént.[17] 131
PGP A PGP (Pretty Good Privacy) egy széles körben elterjedt szoftver, mely fájlok (e-mailek)
digitális aláírását, rejtjelezését és visszafejtését teszi lehetővé. A kereskedelmi forgalomban
lévő PGP mellett, az eredeti PGP-forráskódból kiinduló OpenPGP nyílt szabvány szabadon
hozzáférhető.[5] 56, 57, 65, 178, 224
PKI A nyilvános kulcsú infrastruktúra (angol nevén: public key infrastructure, röviden: PKI)
szerepek, irányelvek, eljárások sorozata, amely ahhoz szükséges, hogy létrehozzunk, kezeljünk,
terjesszünk, használjunk, tároljunk és visszavonjunk digitális tanúsítványokat, illetve kezeljük
a nyílt kulcsú titkosításokat. A PKI célja, hogy megkönnyítse az információ biztonságos
áramlását és továbbítását számos munkaterületen, többek között az e-kereskedelem, az
internetes bankolás, illetve a bizalmas e-mailezés terén.[19] 23, 32
pont-pont Egy-egy ágens van a kommunikációs helyzet két oldalán, az adó és vevő pontokon.
Általában címzési technikával lehet biztosítani. Példa rá a telefonálás, két ember közti
párbeszéd, email, levél, chat. Ugyanebben az értelemben használják még a 1:1-es vagy az
egy az egyhez kommunikáció kifejezéseket is.[5] 76, 87, 110, 132, 181
POP3 A POP-protokoll segítségével történik az elektronikus levelező rendszerekben a levélszervereken
tárolt levelek lekérése a levelező kliensek számára. A POP a legegyszerűbb erre a célra
208 Szójegyzék
alkalmazott protokoll, egy másik, fejlettebb, több szolgáltatást lehetővé tevő lekérdező
protokoll az IMAP. A kliens és a szerver közötti azonosítást követően a kliens letölti a levelet
és leggyakrabban törli is a szerverről. Lehetőség van arra is, hogy a szerveren ne törlődjön,
ebben az esetben egy másik kliensről a levél újra lekérdezhető. Jelenleg használt változata a
POP3.[5] 56, 65, 66, 177
port A számítógép hálózatoknál a port egy kommunikációs végpontot jelöl. Szoftver szinten, a
port egy logikai objektum, amely azonosít egy processzust vagy hálózati szolgáltatást.[19]
18, 49, 72, 74, 87, 103, 109, 121, 145, 153, 155, 156
PPP A Pont-pont protokoll (általánosan használt rövidítéssel: PPP az angol Point-to-Point Protocol
kifejezésből) egy magas szintű adatkapcsolati protokoll kétpontos vonalakhoz. Széleskörűen
alkalmazott megoldás az Internetben.[19] 132
processzus Egy processzus egy számítógépes program példánya, amelyet egy vagy több szál
futtat. Operációs rendszertől függően egy processzus futhat több szálon is, ahol a műveletek
konkurens módon futhatnak.[19] 18, 37, 101, 105, 118
protokoll verem A protokoll verem egy vagy több protokoll (szoftveres) implementációja.[19] 20,
37, 177, 181
Proxy Proxy szervernek nevezzük az olyan szervereket, amelyek kliensek megbízásából tevékenykednek,
és azok kéréseit (request-jeit) továbbítják azokhoz a szerverekhez, vagy azon szerverek
felé, amelyek a kéréseket ki tudják szolgálni, továbbá a szerverek felől érkező válaszokat
(response-okat) továbbítják a klienseknek. Szűrik és feldolgozzák valamennyi hozzájuk
érkező IP-csomagot, és eldöntik, hogy a klienstől hozzájuk érkező kérésekből melyek azok,
amelyeket saját gyorsítótárolójukból ki tudnak szolgálni és melyeket küldjenek ki egy távoli
szerverre a kliens nevében. A proxyk legfontosabb feladatai: szűrés vírusok és kártékony
szoftverek ellen, erőforrások elérésének felgyorsítása.[5] 42, 43, 224
PWA A PWA olyan web-alkalmazás, amely a legismertebb web technológiákkal készült (HTML,
CSS, JavaScript). Működését tekintve elvárt, hogy minden olyan platformon működjön,
amely a szabványoknak megfelelő böngészőket támogatja. Funkcionalitásai közé tartozik
az offline működés, push értesítés, eszköz hardveres hozzáférése. Asztali gépen és mobil
eszközön is hasonló a felhasználói élménye a natív alkalmazásokéhoz. [19] 40
Q
QoS A szolgáltatásminőség (quality of service, QoS) az infokommunikációs hálózatok egyes
szolgáltatási osztályaira előírt műszaki jellemző paraméterek összessége, amely biztosítja
az egyes szolgáltatásosztályok megfelelő minőségét a szolgáltatási osztályok felhasználói
számára, bármely időszakban.[5] 16
R
REST A REST (Representational State Transfer) egy szoftverarchitektúra típus, elosztott kapcsolat
(loose coupling), nagy, internet alapú rendszerek számára, amilyen például a világháló. A
Representational State Transfer kifejezést Roy Fielding vezette be és definiálta 2000-ben a
doktori disszertációjában. Fielding egyike a HTTP (HyperText Transfer Protocol) specifikáció
szerkesztőinek.[19] 35, 41, 46–48, 120, 121, 224
RSA Ronald Rivest, Adi Shamir és Leonard Adleman (valamint tőlük függetlenül Clifford Cocks)
által kifejlesztett publikus kulcsú rejtjelező eljárás, mely napjainkra széles körben elterjedt.
Az SSL/TLS protokoll része.[5] 29, 33
RTS-CTS Az RTS-CTS jeleket eredetileg egyidejűleg egyirányú modemekre tervezték (pl.: Bell
202). Az adó és a vevő között az RTS és CTS üzenetek jelzik az adatküldés kezdetét, és
egyidejűleg a többi küldő csomópont tiltását.[19] 163, 164
RTT Az RTT (round-trip-time) a távközlésben az adat küldésétől a megérkezésről szóló nyugta
fogadásáig eltelt idő.[19] 51, 81, 88, 89, 96, 97
Szójegyzék 209
S
SA Az SA (Security Association) teszi lehetővé, hogy közös biztonsági attribútumokat alkalmazzon
két egyed, ezzel is támogatva a biztonságos kapcsolatot.[19] 180, 181
SDN Egy megoldás olyan számítógép-hálózatok létrehozására, melyekben elkülönül az úgynevezett
kontroll-sík, azaz az alrendszer mely eldönti hova küldjük a forgalmat, és az adat-sík, mely
magát az adattovábbítást végzi a választott célállomás felé. Ez a technológia egyszerűsíti a
hálózatok működését, és lehetővé teszi, hogy a kontroll-sík közvetlenül programozható legyen
egy hálózati adminisztrátor által, aki így központilag felügyelheti a hálózati forgalmat anélkül,
hogy fizikai hozzáférésre lenne szüksége a különböző hálózati hardver eszközökön.[5] 36,
101, 105, 112, 113, 118, 120–122, 125, 226
set-top-box DVB-jeleket vevő, dekódoló és videó- és audiójelekké visszaalakító előfizetői eszköz.[5]
12
SIEM A SIEM (Security Information and Event Management) a számítógépes biztonság egy
részterülete, ahol a szoftver termékek és a szolgáltatások egyesítik a biztonsági információ
menedzsmentet (SIM) és a biztonsági esemény menedzsmentet (SEM). Lehetővé teszik az
alkalmazások és a hálózati eszközök által generált riasztások valós idejű vizsgálatát.[19] 183,
184, 227
SMTP Az SMTP az elektronikus levelező rendszerekben a levelek továbbítását végző protokoll.
Amikor az SMTP-kliens levelet szeretne küldeni, kétirányú kapcsolatot hoz létre az SMTP-levélszerverrel,
amely lehet a levél végső állomása. Ha nem az, akkor a küldő levélszerver SMTP-protokoll
segítségével továbbítja a levelet a címzett kliens levélszerveréhez. A kliensek és a szerverek
közötti, illetve a szerverek közötti adatcsere az SMTP-protokoll alkalmazásával történik.
Az SMTP az üzenetek továbbítására a TCP-protokollt használja. Megjegyezzük, hogy az
SMTP-protokollnak nem feladata a leveleknek a címzett kliensnek való eljuttatása, ezt a
feladatot más protokollok, a POP ill. az IMAP látják el.[5] 55, 56, 65, 66, 224
SNMP Az SNMP a Simple Network Management Protocol, azaz az egyszerű hálózat menedzsment
protokoll rövidítése. A TCP/IP család része, az IETF hozta létre. AZ SNMP protokoll egy
egyszerű "kérdezz-felelek" protokollnak tekinthető, ahol az NMS-en (Network Management
System) futó alkalmazások folyamatosan vagy egy előre meghatározott időközönként lekérdezik
a felügyeleti eszközökhöz rendelhető változókat, amelyek valamilyen választ fognak adni
további feldolgozás céljából. Lényeges, hogy egy elosztott felügyeletű protokollról van szó,
amely a hálózatra kötött eszközök vezérlését, adatainak lekérdezését szolgálja.[19] 122–125,
226
SNR Jel-zaj viszony, angol kifejezéssel Signal-to-noise ratio (rövidítésekben SNR vagy S/N)
a hasznos és a zavaró jel (zaj) aránya dB-ben kifejezve. Általában a villamosmérnöki
gyakorlatban használatos, de informálisan, a kifejezést használják különböző internet szolgáltatásokkal
kapcsolatosan tágabb értelemben is, például Usenet.[19] 158, 159, 164, 227
SPAM A spam a fogadók által nem kért, elektronikusan, például e-mailen keresztül tömegesen
küldött hirdetés, felhívás vagy lánclevél. [19] 55
SPI Az SPI egy azonosító mező hozzárendelése a fejléchez IPSec használatakor. Ez a mező segít
megkülönböztetni két forgalmat egymástól, ahol eltérő titkosítási szabályok és algoritmusok
lettek alkalmazva.[19] 180
SSID Minden vezeték nélküli helyi hálózatot (WLAN) egy egyedi hálózatnév azonosít. Ez más
néven az SSID (Service Set Identifier, szolgáltatáskészlet-azonosító). A WiFi hálózati adapter
beállításakor meg kell adni az SSID-t. Ha létező WLAN-ra szeretne csatlakozni, akkor annak
a nevét kell használnia. Ha saját WLAN-t hoz létre, akkor Ön választhat nevet, és minden
számítógépen ezt a nevet kell használnia. A név legfeljebb 32 karakterből állhat, és csak
betűket és számokat tartalmazhat. Az SSID vagy hálózatnév a hozzáférési pontban vagy
vezeték nélküli útválasztóban adható meg.[19] 162
210 Szójegyzék
SSL Az SSL (Secure Sockets Layer) egy kriptográfiai protokoll, amellyel biztonságos HTTP feletti
kommunikációt tettek lehetővé a hálózaton.[19] 177–180, 184, 227
SYN Szinkronizációs üzenet, kapcsolat létrehozására, illetve fenntartására irányuló kérést jelölő
bit. Emellett a sorszámok szinkronizálása is ezen bit segítségével történik.[19] 87, 88, 92,
156
szegmens Az Internet terminológiában szegmenseknek nevezzük a szállítási rétegben előállított
csomagrészeket, melyek tartalmazzák az alkalmazás rétegbeli üzenetet. 18, 70, 72, 74–76,
87, 88, 90–92, 96, 103, 106, 153, 155, 156, 225
szekvencia szám A szekvencia szám az aktuálisan küldendő adat első bájtját jelöli, amelynek
értéke a legutóbb beérkezett nyugtaszámnál 1-gyel nagyobb.[19] 78, 79, 81, 83–88, 90–92
szerver Egy ugyanazon vagy másik eszközön futó program vagy processz, amely szolgáltatásokat,
erőforrásokat biztosít a kliens alkalmazások számára. A klienshez hasonlóan a szerver is
jelölheti magát az eszközt is, melyen a szerver alkalmazás fut. 10, 11, 17, 20, 24, 36, 37,
39–44, 46, 49–66, 72, 73, 87, 92, 98, 101, 102, 110–113, 124, 128, 152–156, 165, 166, 178,
182, 183, 224, 227
szimmetrikus kulcsú titkosítás A szimmetrikus kulcsú rejtjelező eljárásokban a titkosításhoz
és dekódoláshoz használt kulcs azonos. Ennek megfelelően a biztonságos kommunikáció
megkezdése előtt a feleknek meg kell egyezniük a felhasznált (titkos) kulcsban.[5] 28
szoftvercsatorna A számítógép-hálózatokban a szoftvercsatorna, csatlakozó, Internet socket vagy
egyszerűen socket egy Internet Protocol-alapú számítógépes hálózatban, például az interneten
valamely kétirányú folyamatközi kommunikációs (IPC) hálózati folyam végpontja.[19] 37,
71, 72
szállítási réteg Megbízható hálózati összeköttetést létesít két csomópont között. Feladatkörébe
tartozik pl. a virtuális áramkörök kezelése, átviteli hibák felismerése/javítása és az áramlásszabályozás.[1]
69–76, 78, 87, 93, 129, 151
sávszélesség Sávszélességen az elektromos jelek frekvenciatartománybeli komponensei – röviden:
spektruma – által elfoglalt, illetve ezek által igényelt tartomány nagyságát értjük.[5] 16, 17,
57–59, 63, 64, 73, 94, 97, 98, 105, 114, 115, 135, 138, 172
T
TCAM A TCAM (Ternary Content-Addressable Memory) egy speciális típusa a nagy sebességű
memóriának, amelyben a keresési műveletek a teljes tartalmon egyetlen órajelen belül.[7]
106
TCP A TCP/IP-protokollarchitektúra összeköttetés-alapú szállítási protokollja, amely a hálózat
végpontjaiban futó alkalmazások (pontosabban:processzek) közötti kapcsolatok felépítéséről,
fenntartásáról és lebontásáról gondoskodik. Fő szolgáltatásai a processzek közötti megbízható
adatátvitel biztosítása. A megbízható átvitelt nyugtázási-újraküldési mechanizmus alkalmazásával
valósítja meg. A végpontok egyes alkalmazásait speciális címek, ún. portszámok segítségével
éri el.[5] 14, 18, 41, 46, 51, 55, 64, 69, 71–73, 76, 87–93, 95–99, 104, 106, 109, 119, 121,
144, 156, 172, 177–179, 225
TCP/IP A TCP/IP-architektúra az internet elődjének, az ARPANET-hálózatnak a megalkotásakor
bevezetett négy rétegű protokoll-architektúra, az internet és a számítógép-hálózatok világában
ma is elterjedten használatos, gyakran internet-protokollarchitektúrának is nevezik. A
négy réteg közül a két középső, a hálózati vagy internetworking réteg és a szállítási vagy
host-to-host réteg a legfontosabbak, az azokat megvalósító IP- ill. TCP-protokollokkal, innen
az architektúra neve. Minden további, a TCP/IP-protokollegyüttest használó internet-protokollt
a legfelső, alkalmazási (application) rétegbe soroltak, és minden, az IP-csomagokat továbbító
protokoll - mint amilyenek a lokális hálózaton belüli és a fizikai kommunikációt megvalósító
protokollok -, pedig a legalsó, az ún. interfész-, vagy link-rétegbe tartozik.[5] 17, 18, 21, 167,
223
Szójegyzék 211
U
UDP A TCP/IP-protokollarchitektúra összeköttetésmentes szállítási protokollja, amely a hálózat
végpontjaiban futó alkalmazások (pontosabban: processzek) közötti kommunikációról
212 Szójegyzék
V
VANET A VANET-et (Vehicular Ad-Hoc Network) járművek és országúti berendezések közti
kommunikációra használják. Az InVANET (Intelligent Vehicular Ad-Hoc Network) egy
mesterséges intelligenciával felruházott megoldás, amely segíti a járműveket a döntéshozásban
(pl.: ütközés, baleset felismerése). A járművek rádióhullámokat használnak a kommunikációra.[19]
157
vezérlősík A hálózati forgalomirányításban a vezérlősík a forgalomirányító architektúra azon
része, amely a forgalomirányító táblában tárolt információkat kezeli. Ez definiálja, hogy egy
beérkező csomagot mely útvonalon kell továbbítani.[19] 104, 113, 125, 167, 169, 225, 226
VLAN A számítógép-hálózatok körében a virtuális helyi hálózat vagy látszólagos helyi hálózat
(röviden VLAN) hálózati eszközök egy olyan csoportja, aminek tagjai úgy kommunikálnak,
mintha ugyanabba a szórási tartományba tartoznának, fizikai elhelyezkedésüktől függetlenül.[19]
127, 147–150, 174, 226, 227
VPN A virtuális magánhálózat (Virtual Private Network) koncepciója lehetővé teszi a felhasználóknak,
hogy úgy kommunikáljanak egymással, úgy vegyenek igénybe szolgáltatásokat a nyilvános,
nyílt hozzáférésű hálózaton keresztül, mintha az eszközeik közvetlenül a – többnyire zárt és
védett – magánhálózathoz csatlakoznának. [5] 151, 177, 179, 227
várakozási sor A várakozási sor egy absztrakt adatstuktúra, amely a vermekkel ellentétben
mindkét oldalán nyitott. A sor egyik végén az adatok beszúrása, a másik oldalon az adatok
kivétele történik. A várakozási sor a FIFO (First-In-First-Out) elvet követi, azaz az elsőként
behelyezett elem kerül ki legelőször.[18] 14, 17, 103–105, 125, 223, 225
végfelhasználói végpont A végfelhasználói pont (PoP) egy hozzáférési pont vagy fizikai hely,
ahol hálózati eszközök osztoznak egy kapcsolaton. Például, egy Internet végfelhasználói pont
egy olyan hozzáférési pont, ahol több felhasználó kapcsolódhat az Internethez a szolgáltatón
(ISP-n) keresztül.[19] 12
végrendszer A számítógép hálózat szélein lévő rendszer, jellemzője az, hogy mások forgalmát
nem továbbítja adatot fogat, vagy szolgáltat. 11, 18, 19, 36, 69–72, 74, 87, 170, 172
vírus A számítógépes vírus olyan programkód, amely saját másolatait helyezi el más, végrehajtható
Szójegyzék 213
W
W3C A W3C nemzetközi konzorcium, amelyik protokollokat és nyílt szabványokat („ajánlásokat”)
dolgoz ki a Web hosszú távú működésének biztosítása érdekében. Céljuk, hogy a mindenhol,
mindenki által elérhető internet szolgálja az együttműködést, a tudás megosztását, és ezáltal
a globális szinten megvalósuló bizalom kiépülését.[5] 38
WAN A számítógép- és távközlő hálózatokban elterjedt a lefedett terület szerinti osztályozás, mely
szerint megkülönböztetünk LAN-okat (Local Area Network - helyi hálózat), MAN-okat
(Metropolitan Area Network - nagyvárosi hálózat) és WAN-okat (Wide Area Network –
nagyterületű hálózat). A WAN-technológiák gyakorlatilag területi megkötés nélkül, akár
globális hálózatok kialakítására alkalmasak. WAN-hálózat volt a klasszikus telefonhálózat,
ilyenek a mai távközlési hálózatok és a nyilvános Internet is. [5] 11, 12
Web A WWW-projekt keretében definiált protokollok és szabványok mentén kialakult, böngészőn
keresztül elérhető, hálózati hipertextrendszer.[5] 10, 37, 40, 66
WEP A Wired Equivalent Privacy (WEP) = Vezetékessel Egyenértékű (Biztonságú) Hálózat
mára már egy korszerűtlen algoritmus az IEEE 802.11-ben megfogalmazott vezeték nélküli
hálózatok titkosítására. A vezeték nélküli hálózatok rádiójelek segítségével sugározzák szét
az üzeneteket, ami sokkal könnyebben lehallgatható, mint a vezetékes hálózatok. A WEP
1997-es bemutatásakor arra szánták, hogy hasonló bizalmas hálózatként működjön, mint egy
általános vezetékes hálózat.[19] 164–166, 175, 227
WFQ A WFQ (Weighted Fair Queueing) egy hálózati ütemező algoritmus, amely egy vonal teljes
kapacitását egyenlő részekre osztja a folyamok között, és ütemezi, hogy adott folyam részére
mely kapacitás hányadokat bocsátja rendelkezésre.[19] 104
WiFi A WiFi az IEEE által kifejlesztett vezeték nélküli mikrohullámú kommunikációt (WLAN)
megvalósító, széleskörűen elterjedt szabvány (IEEE 802.11) népszerű neve.[19] 11, 12, 16,
18, 102, 127, 128, 157, 161–164, 166, 169, 227
WWW Az 1990-es évek elején a WWW-projekt létrehozta azokat az eszközket, megoldásokat,
szabványokat, amelyek laikus felhasználók számára is lehetővé tették az IP-protokollon
keresztül megvalósuló hálózati kommunikációt. Ahhoz, hogy bárki könnyedén kommunikáljon
a hálózat világában, szükség volt egy szabványos dokumentumleíró nyelvre (HTML), amely
révén egységesen lehetett a tartalmak rögzítését, megjelenítését kezelni, szükség volt arra,
hogy könnyen lehessen a tartalmakat felkínálni az adó, és elérni a vevő oldalán.[5] 9, 10, 35,
38, 41, 46, 50, 65, 111, 224
X
X.509 Az X.509 egy szabvány, amely definiálja a publikus kulcsok formátumát. X.509 tanúsítványokat
számos Internet protokollnál használnak, pl.: TLS/SSL, amely a HTTPS alapja, a megbízható
protokoll a böngészéshez.[19] 31, 32, 224
Z
zsaroló program A zsaroló program olyan rosszindulatú program, amely érzékeny adatok nyilvánosságra
hozásával fenyegeti a felhasználót, vagy blokkolja a hozzáférést, amíg a váltságdíj nem kerül
kifizetésre.[19] 19
zseton Egy objektum, ami (gyakran kizárólagos) jogot biztosít egy művelet elvégzéséhez: munkamenet
azonosítás, hozzáférés, meghívás, stb.[19] 43, 44, 139
[1] Kocsis Gábor. Hálózati architektúrák és protokollok előadás. 2015. URL: http://irh.inf.
unideb.hu/~kocsisg (visited on 05/30/2020) (cited on pages 194, 195, 197, 199, 201,
202, 210).
214 Szójegyzék
[2] Robert Gibb. What is TCP Slow Start? 2016. URL: https://blog.stackpath.com/tcp-
slow-start/ (visited on 05/30/2020) (cited on page 205).
[3] IGI Global. IGI Global - Publisher of Timely Knowledge. 2020. URL: https://www.igi-
global.com (visited on 05/30/2020) (cited on page 197).
[4] IETF OAuth Working Group. OAuth 2.0. 2020. URL: https://oauth.net/2/ (visited on
05/30/2020) (cited on page 206).
[5] HTE. HTE Infokommunikációs Fogalomtár. 2020. URL: https://www.fogalomtar.hte.
hu/ (visited on 05/30/2020) (cited on pages 193–213).
[6] Keith Ross (Author) James Kurose (Author). Computer Networking: A Top-Down Approach
(7th Edition. Pearson, 2016 (cited on page 211).
[7] Stan Gibilisco Margaret Rouse Matthew Haughn. confidentiality, integrity, and availability
(CIA triad). 2020. URL: https://whatis.techtarget.com/definition/ (visited on
05/30/2020) (cited on pages 196, 210, 211).
[8] Mozilla. MIME types (IANA media types). 2019. URL: https://developer.mozilla.
org/ (visited on 05/30/2020) (cited on page 206).
[9] Inc. Network Sorcery. Network Sorcery. 2020. URL: http : / / networksorcery . com/
(visited on 05/30/2020) (cited on page 199).
[10] Ruckus Networks. Autonomous System Boundary Routers. 2020. URL: http : / / docs .
ruckuswireless.com/ (visited on 05/30/2020) (cited on page 195).
[11] OmniSecu.com. OmniSecu.com. 2020. URL: https://www.omnisecu.com/ (visited on
05/30/2020) (cited on page 194).
[12] RFC. Introducing JSON. 2020. URL: https://www.json.org/ (visited on 05/30/2020)
(cited on page 203).
[13] RFC. RFC. 2020. URL: https://tools.ietf.org/ (visited on 05/30/2020) (cited on
page 195).
[14] SDxCentral. SDxCentral. 2020. URL: https : / / www . sdxcentral . com (visited on
05/30/2020) (cited on pages 193, 197).
[15] Servira. Servira. 2020. URL: https://servira.com/fogalomtar (visited on 05/30/2020)
(cited on page 206).
[16] Vajda Tamás. Számítógép-hálózatok. 2020. URL: https://ms.sapientia.ro/~vajdat/
education/computernetworks/Szamitogep%20Halozatok%20kabelezese.pdf (visited
on 05/30/2020) (cited on pages 204, 212).
[17] Techopedia. Techopedia. 2020. URL: https : / / www . techopedia . com/ (visited on
05/30/2020) (cited on pages 194, 207).
[18] tutorialspoint. tutorialspoint. 2020. URL: https://www.tutorialspoint.com/ (visited
on 05/30/2020) (cited on pages 206, 212).
[19] Wikipedia. Wikipedia Free Encyclopedia. 2020. URL: https://wikipedia.org/ (visited
on 05/30/2020) (cited on pages 193–213).
Kompetenciák és tanulási eredmények
• elméleti: 80%
• gyakorlati: 20%
A tanóra[1] típusa: előadás és óraszáma: 30 óra az adott félévben, (ha nem (csak) magyarul
oktatják a tárgyat, akkor a nyelve: angol (Computer Networkings).
Év végi írásbeli számonkérés: a tematika témaköreit érintve egy ábrázolt hálózati modell
segítségével a résztvevő hálózati eszközök közötti kommunikációnak a leírása szükséges
"beugró" szinten, majd további kérdések megválaszolása a tematika különböző témaköreihez
kapcsolódóan jobb érdemjegyért.
216 Kompetenciák és tanulási eredmények
Jeles: A hallgató a felrajzolt modell és a hozzá kapcsolódó leírás alapján hibátlanul fel tudja
sorolni a komponensek közötti kommunikáció egyes lépéseit a megfelelő sorrendben, és a
leírtak alapján helyesen ki tudja tölteni a feladathoz tartozó összefoglaló táblázat minden celláját.
Ismeri az alapvető hálózati fogalmakat és azokat megfelelő kontextusban tudja használni. A
feltett elméleti kérdések közül mind a hármat ki tudja fejteni néhány mondatban, a lényeget
összefoglalva, a témakörhöz tartozó szakkifejezések megfelelő használatával.
Jó: A hallgató a felrajzolt modell és a hozzá kapcsolódó leírás alapján hibátlanul fel tudja
sorolni a komponensek közötti kommunikáció egyes lépéseit a megfelelő sorrendben, és a
leírtak alapján helyesen ki tudja tölteni a feladathoz tartozó összefoglaló táblázat minden celláját.
Ismeri az alapvető hálózati fogalmakat és azokat megfelelő kontextusban tudja használni. A
feltett elméleti kérdések közül legalább kettőt ki tud fejteni néhány mondatban, a lényeget
összefoglalva, a témakörhöz tartozó szakkifejezések megfelelő használatával.
Közepes: A hallgató a felrajzolt modell és a hozzá kapcsolódó leírás alapján hibátlanul fel tudja
sorolni a komponensek közötti kommunikáció egyes lépéseit a megfelelő sorrendben, és a
leírtak alapján helyesen ki tudja tölteni a feladathoz tartozó összefoglaló táblázat minden celláját.
Ismeri az alapvető hálózati fogalmakat és azokat megfelelő kontextusban tudja használni. A
feltett elméleti kérdések közül legalább egyet ki tud fejteni néhány mondatban, a lényeget
összefoglalva, a témakörhöz tartozó szakkifejezések megfelelő használatával.
Elégséges: A hallgató a felrajzolt modell és a hozzá kapcsolódó leírás alapján hibátlanul fel
tudja sorolni a komponensek közötti kommunikáció egyes lépéseit a megfelelő sorrendben, és a
leírtak alapján helyesen ki tudja tölteni a feladathoz tartozó összefoglaló táblázat minden celláját.
Ismeri az alapvető hálózati fogalmakat és azokat megfelelő kontextusban tudja használni.
Elégtelen: A hallgató a felrajzolt modell és a hozzá kapcsolódó leírás alapján nem tudja leírni
a hálózati komponensek közötti kommunikáció egyes lépéseit vagy a feladat összefoglaló
táblázatát helytelenül tölti ki.
Témakörök/tartalom:
1. Bevezető, a félév áttekintése
2. Alkalmazás réteg I.
3. Alkalmazás réteg II.
4. Szállítási réteg I.
5. Szállítási réteg II.
6. Hálózati réteg - adatsík
7. Hálózati réteg - vezérlés I.
8. Hálózati réteg - vezérlés II.
9. Adatkapcsolati réteg I.
10. Adatkapcsolati réteg II.
11. Vezetékmentes technológiák
12. Hálózati biztonság I.
13. Hálózati biztonság II.
• James Kurose, Keith Ross: Computer Networking: A Top-Down Approach (7th Edition),
Pearson; 7 edition (May 6, 2016), ISBN: 978-0133594140
• Andrew S. Tanenbaum, David J. Wetherall: Számítógép hálózatok, Panem Kft.; Harmadik,
bővített kiadás (2013), ISBN: 978-9635455294
a) tudása
• Ismeri és érti az informatikai szakterület legfontosabb általános elméleteit,
összefüggéseit, tényanyagát és az ezekhez szükséges felépítő fogalomrendszert,
különösen az alábbi területen: számítógépes hálózatok.
• Ismeri az informatikai szakterület tervezési, fejlesztési, működtetési és irányítási
folyamatainak alapvető feladatmegoldási elveit, módszereit és eljárásait, különösen
- választott specializációjának megfelelően - a következő területeken: internet
eszközök és szolgáltatások fejlesztése, információbiztonság.
• Ismeri a szakszerű és hatékony szakmai kommunikáció speciális informatikai
eszközeit és módszereit.
• Ismeri és érti az informatikai szakterület legfontosabb etikai és jogi, közgazdasági
vonatkozásait, társadalmi hatásait.
b) képességei
• Képes az informatikai szakterület tudásanyagát alkalmazni WEB-es alkalmazások
fejlesztésére.
• Anyanyelvén képes szakmai szakterületi kommunikációra és kooperációra.
• Képes a szakmai információforrások használatára, a megoldandó problémához
szükséges ismeretanyag megkeresésére.
c) attitűdje
• Nyitott a képesítésével, szakterületével kapcsolatos szakmai, technológiai fejlődés
és innováció megismerésére és befogadására.
• Elfogadja az informatikai szakma munka- és szervezeti kultúra szabályait, etikai
elveit.
• Munkája során figyelembe veszi az informatikai szakterület jogi előírásait.
d) autonómiája és felelőssége
• Felelősséget vállal szakmai tevékenységéért.
• Törekszik a hatékony és minőségi munkavégzésre.
• Felelősséggel dönt saját tudásának fejlesztéséről és karrierjének építéséről.
• Munkáját az információbiztonsági szempontok tiszteletben tartásával végzi.
219
1.1 IT trendek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Caption for LOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Óceánok alatti optikai kábelek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 Szolgáltató szintek1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Starlink műholdas hálózat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Csomagkapcsolás várakozási sor1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Forgalomirányító döntés 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8 TDMA és FDMA közegmegosztás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.9 Népszerű vezetett hullámú megoldások . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.10 Csomagtovábbítás késleltetések1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.11 ISO OSI és TCP/IP referencia modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.12 Egymásra épülő rétegek és azonos szinten lévő rétegek együttműködése
beágyazással1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.13 Kártékony programok kategóriái . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1 Biztonság-Funkcionalitás-Hasznosság . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2 IT rendszer feltörés lépései . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Biztonsági probléma rendszer modell . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Rejtjelezés alapelemei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5 Ceasar titkosítása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 Az angol nyelv betűinek gyakorisága . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.7 Blokk titkosítás1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8 Véletlenszerűen permutált tábla1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.9 Asszimmetrikus kulcsú titkosítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.10 Kivonatoló eljárás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.11 Kivonatoló eljárás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.12 Digitális tanúsítvány . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.13 Tanúsító hierarchia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
224 ÁBRAJEGYZÉK