Számítógépe Hálózatok 8 8. LN-ok özekapcoláa; Hálózati réteg Packet orwarding, Link-State-Routing, itance- Vector-Routing LN-ok özekapcoláa
Repeater Szignál-regenerátor izikai réteg komponene Két kábelt köt öze ogad egy zignált é azt regenerálva továbbítja a máik kábelen ak az elektromo vagy az optikai zignált továbbítja tartalmat (biteket) nem interpretálja Repeaterek a hálózatot fizikai zegmenekre oztják logikai topológia megmarad catlakozó kábelek közö ütközéi tartományt alkotnak Hub Kábeleket köt öze cillag topológiában Haonló a Repeaterhez zignálokat minden catlakozó kábelen továbbítja izikai réteg komponene tartalmat nem interpretálja catlakozó kábelek egy ütközéi tartományt alkotnak 4
Switch Terminálokat cillag topológiába kapcol öze datkapcolati réteg komponene Kollíziók egy zegmenen belül maradnak frame-ek célcímét megvizgálja é a frame-et cak a megfelelő kábelen továbbítja ehhez zükége puffer é tudni kell melyik állomá hol catlakozik gy táblázatot tart nyilván: Megfigyeli, hogy honnan jön egy comag, a küldőt azon a kábelen lehet elérni ackward learning 5 ridge Lokáli hálózatokat kapcol öze llentétben witch-ekkel (azok cak állomáokat -- eredetileg) datkapcolati réteg komponene lkülöníti a kollíziókat Megvizgálja az érkező frame-eket frame-et cak a megfelelő kábelen továbbítja ak korrekt frame-eket továbbít z átmenet bridge é witch között folyamato Özekapcolhat többféle LN tiput
Switche & bridge Tipiku kombináció: bridge cak egy máik állomá a wich zámára Switch ridge Switch 7 ackward learning a bridge-ekben ackward learning triviali witch-ekben mi a helyzet a bridge-ekben? Példa: küld frame-et -nek Tegyük fel, é tudja, hogy hol van azt fogja látni, hogy frame-je LN-ből jön Mivel nem tud LN-ről, azt feltételezi, hogy LN-ben van mi jó! továbbítani fog minden -nak küldött comagot LN-nek, amely LN-be érkezik 8
ackward learning a bridge-ekben boottrapping z előző példában: honnan tudja kezdetben, hogy hol van? Válaz: NM tudja Opció : kézi konfiguráció nem éppen zép megoldá! Opció : nem zámít egyzerűen továbbítja az imeretlen című comagot mindenfele zon hálózat kivételével, ahonnan érkezett z algoritmu: eláraztá (flood) ha a cím imeretlen; dobja el ha tudja, hogy nem zükége; továbbíta pecifikuan, ha a cél címe imert 9 láraztá bridge által problémák ackward learning by flooding egyzerű, de problémá Példa: gy máodik bridge i özeköti a két LN-t a nagyobb megbízhatóág miatt LN LN z frame küldée imeretlen célhoz végtelen cikluba kerül Hogy kerüljünk el ilyen cikluokat?
. Megoldá: Valahogy korlátozzuk az eláraztát Korlátozatlan, brute-force flooding nyilvánvalóan roz Kerüljük el a ciklut azáltal, hogy megjegyezzük, hogy mely frame-ek azok, amelyeket már továbbítottunk Ha már láttunk é továbbítottunk egy frame-et, dobjuk el lőfeltétel: állapot é egyértelműég ridge-eknek meg kell jegyezni, hogy mely frame-eket továbbította frame-eknek egyértelműen azonoíthatóknak kell lenni legalább küldő, fogadó é orozatzám zükége az azonoítához Nagy overhead! Különöen az állapotok tároláa a probléma, é a kereé a ok állapot között Nem igen haználják Megoldá: ezítőfák comagok cikluai cak akkor jöhetnek létre, ha a gráf, amit a bridge-ek definiálnak kört tartalmaz Tekintük a LN-okat é a bridge-eket comópontoknak gy LN-comópont é egy bridge-comópont öze van kötve egy éllel, ha a LN a bridge-hez kapcolódik Redundán élek köröket formálnak ebben a gráfban Ötlet: alakítuk át a gráfot köröktől menteé Legegyzerűbb megoldá: Számítunk ki egy fezítőfát ebben a LN-bridge gráfban efiníció: Legyen G=(V,) egy gráf. G egy olyan T=(V, T ) rézgráfját, T, ami egy fa (özefüggő é nem tartalmaz kört), G fezítőfájának nevezzük gyzerű, önkonfiguráló, nem kell kézi beavatkozá e nem optimáli: az intallált bridge-ek kapacitáát nem bizto hogy kihaználja I 8.: Spanning Tree Protocol (STP), gy fezítőfa I 8.w: Rapid Spanning Tree Protocol (RSTP)
Spanning Tree Protocol (STP) (I 8.) Minden bridge-nek van egy azonoító záma, amely a M címen pluz egy konfigurálható prioritáon alapul z a bridge lez a fezítőfa gyökere, amelynek minimáli az azonoítója lőzör a prioritát haonlítjuk öze az azonoítóban Ha ez egyenlő, akkor a M cím dönt záltal a hálózat adminiztrátora tudja meghatározni a gyökér bridge-t Minden linknek van egy költége Konfigurálható az adminiztrátor által Különböző technológiáknak különböző default költége van Pl.: Sávzéleég STP költég Mbp Mbp 9 55 Mbp 4 Mbp Gbp 4 Gbp Spanning Tree Protocol (I 8.) Minden bridge meghatározza a legalaconyabb költégű utat a gyökérhez zok a portok, amelyek ezen az úton vannak, un. root portok leznek z egy zegmenen lévő bridge-k közöen meghatározzák, hogy melyiküknek minimáli a költége a gyökérhez. port, amelyen a zegmen ehhez a bridge-hez kapcolódik, kitüntetett port lez Minden port blokkolódik, amely nem root port é nem kitüntetett port 4
Spanning Tree Protocol (I 8.) Ha a legkiebb költégű út nem egyértelmű: Ha egy bridge-től több minimáli költégű út van a gyökérhez, azt az utat válaztjuk ezek közül, amelyen a következő bridge azonoítója minimáli Ha egy zegmentől több bridge-en kereztül vezet minimáli költégű út a gyökérhez, azt az utat válaztjuk ezek közül, amelyen a következő bridge azonoítója minimáli Ha két bridge több kábellel van özekötve é egy bridge-en több port i root port lehetne, válazuk a legalaconyabb zámú portot root portnak 5 STP lgorithm z STP algoritmuban az üzenetekhez a bridge-k peciáli frame-eket, un. ridge Protocol ata Unit (PU) haználnak. gyökér meghatározáa: bridgek meghirdetik az azonoítókat. Ha változik a legalaconyabb azonoító, amit hallottak, továbbítják a zomzédaiknak. legalaconyabb azonoító eljut minden bridge-hez: legalaconyabb azonoítójú bridge lez a gyökér. zután a költégek a gyökértől eláraztáal terjednek a hálózaton. Minden bridge figyeli a legalaconyabb költégű utat a gyökérhez. Ha ez a költég változik, a bridge továbbítja ezt a zomzédai felé. Nemegyértelműég eetén a bridge-azonoítók alapján dönt. gyökér zabályo intervallumokban Hello broadcat-üzenetet küld.
Konvergencia: Switch é bridge Tradícionálian, a megkülönbözteté bridge é witch között értelme volt Ma: a legtöbb kézülék kínálja mindkét tipuú funkcionalitát Gyakran inkább marketing megkülönbözteté, mint műzaki 7 Hálózati réteg 8
hálózati réteg Lokáli hálózatokat özeköthetünk hub-okkal, witch-ekkel, bridgeekkel az alaconyabb retegekben Hub(fizikai réteg): kollíziók záma nagyon gyoran növekzik Switch (datkapcolati réteg): z útvonalakról a forgalom megfigyeléével gyűjt információt Imeretlen célcím eetén a broadcat problémákat okoz z Internet kb. Mio. lokáli hálózatot tartalmaz... Nagy hálózatokban a comagok továbbítáához útvonal információk zükégeek. hálózati réteg feladatai z útvonal információk felépítée (route detection) comagok továbbítáa (packet forwarding) z Internet-Protokoll lényegében hálózati réteg protokoll 9 Routing-tábla é comag továbbítá (packet forwarding) IP-Routing-tábla Tartalmazza cél címekhez (detination) a következő zámítógép (gateway) címét a hozzá vezető úton cél meghatározhat egy zámítógépet vagy egy egéz ub-net-et zen kívül tartalmaz egy default-gateway-t Packet forwarding (korábban packet routing-nak nevezték) IP comag (datagram) tartalmazza a küldő IP címét é a cél IP címét mikor egy IP comag megérkezik egy routerhez: Ha a cél IP cím = aját IP cím, akkor a comagot kizállítja Ha a cél IP cím a routing-táblában van, továbbítja a megadott gateway-hez Ha a cél IP-ubnet a routing-táblában van, továbbítja a megadott gatewaynek gyébként továbbítja a default-gateway-nek
Internet Protocol IP z adatok a küldőtől a cél-állomáig IP-comagokban kerülnek átvitelre comagok fejléce tartalmazza a cél IP-címét IPv4: it-címek IPv: 8 it-címek octet 4 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source ddre etination ddre Option (max. 4 octet) Header ata IPv4 comag omag továbbítá az Internet Protokollban IP-comag (datagram) tartalmazza TTL (Time-to-Live): hop-ok zámát Küldő IP címét él IP címét gy comag kezelée a routerben TTL = TTL - Ha TTL akkor packet-forwarding a routing-tábla alapján Ha TTL = vagy probléma lép fel a packet-forwarding-nél: Töröljük a comagot Ha a comag nem IMP-comag (Internet ontrol Meage Protocol), akkor Küldjünk IMP-comagot (TTL equal during tranit), melyben Küldő IP címe = aktuáli IP cím él IP címe = az eredeti küldő IP címe 4 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source ddre etination ddre Option (max. 4 octet) ata
Statiku é dinamiku routing orwarding: omagok továbbítáa Routing: Útvonalak meghatározáa, azaz routing-tábla felépítée (rute detection) Statiku routing routing-táblát manuálian építjük fel Ki é tatiku LN-ok eetén értelme inamiku routing routing-tábla felépítée é aktualizáláa automatizált entalizált algoritmu, pl. Link State gy/minden állomának imerni kell minden információt ecentráli algoritmu, pl. itance Vector minden routeren lokálian dolgozik, lokáli információkkal Legrövidebb utak fája ingle ource hortet path dott: gy irányított gráf G = (V,), w : R nem negatív élúlyokkal Kezdő comópont V Legyen P útvonal úlya w(p) := e P w(e) az élek úlyainak özege P-ben u é v távolága G-ben, u,v V, egy legrövidebb út úlya G-ben u é v között : d(u,v) := min{ w(p) : P egy út u-tól v-hez G-ben}. Kereük: egy legrövidebb utat kezdő comóponttól minden má v V \ {} comóponthoz G-ben eltezük, hogy minden v V \ {} elérhető -ből. Nem elérhető comóponthoz nem létezhet legrövidebb út em Megoldá: gy fa, melynek gyökere é minden v V \ {} comóponthoz tartalmaz egy legrövidebb utat -től v-hez G-ben 4
ijktra algoritmua Ötlet: legrövidebb utakat hozuk zerint növekvő orrendben zámítjuk ki. Minden v V comóponthoz kizámítjuk a következő értékeket: d[v]: egy legrövidebb út hoza -től v-hez, pred[v]: a v-t megelőző comópont egy legrövidebb úton -től v-hez. z algoritmu végrehajtáa után az élhalmaz { (pred[v],v) : v V \ {} } megadja egy legrövidebb utak fáját gyökérrel G-ben. gy v comópontot kéz -nek jelölünk: ready[v] = true, ha már meghatároztunk egy legrövidebb utat -től v-hez (röv. legrövidebb -v utat). nem kéz comópontok halmazát, amelyeket egy kéz comópontból egy éllel elérünk, horizont-nak nevezzük. ource node ready 5 horizon current ditance d[v] 5 ijktra algoritmua Invariánok: Minden horizont beli comópontot egy Q priority-queue-ban tárolunk, úgy hogy minden v Q comópontra a következő érvénye: d[v] egy legrövidebb -v út hoza mindazon utak között, melyek v-n kívül cak kéz comópontokat tartalmaznak, Inicializálá pred[v] a v-t megelőző comópont egy ilyen úton, v prioritáa Q-ban d[v] d[]:=, ready[]:=true, minden v zomzédjára: d[v]:=w(,v), pred[v]:=, ready[v]:=fale, Q.Inert(v,d[v] ). Minden v V \ {} comópontra: d[v]:=, ready[v]:=fale.
ijktra algoritmua z invariánok megőrzée egy iteráció után Minden lépében egy új comópont lez kéz, egy comópont v minimáli prioritáal. d[v] már tartalmazza a helye értéket. Mivel v minimáli prioritáú comópont, minden olyan -v út úlya, amely nem kéz comópontot i tartalmaz, legalább olyan nagy, mint annak az útnak a hoza, amit már megtaláltunk a cak kéz comópontokat tartalmazó utak között. Legyen dj[v] := { u : (v,u) }, v V, a v-hez adjacen comópontok halmaza minden u dj[v], ha u Q, meg kell vizgálni, hogy -től u-hoz direkt v-ből egy rövidebb út vezet-e, mint azok az utak, amik cak v-től különböző kéz comópontot tartalmaznak. Ha igen, akkor aktualizáljuk pred[u] := v é d[u] := d[v] + w(v,u), cökkentük u prioritáát Q-ban. minden u dj[v], ha u Q é u nem kéz : pred[u] := v, d[u] := d[v] + w(v,u), u-t be kell zúrni Q-ba d[u] prioritáal. 5 7 ijktra algoritmua ijktra(g,,w) Output: egy legrövidebb utak fája T=(V, ) G-ben gyökérrel := Ø; ready[] := true; ready[v] := fale; v V \ {}; 4 d[] := ; 5 d[v] :=; v V \ {}; priority_queue Q; 7 forall v dj[] do 8 pred[v] := ; 9 d[v] := w(,v); Q.Inert(v,d[v]); od while Q Ø do v := Q.eleteMin(); 4 := U {(pred[v],v)}; 5 ready[v] := true; forall u dj[v] do 7 if u Q and d[v] + w(v,u) < d[u]) then 8 pred[u] := v; 9 d[u] := d[v] + w(v,u); Q.ecreaePriority(u,d[u]); ele if u Q and not ready[u] then pred[u] := v; d[u] := d[v] + w(v,u); 4 Q.Inert(u,d[u]); 5 fi od 7 od 8
9 ijktra algoritmua utái idő (ibonacci Heap-pel): # Q.Inert(): n (comópontonként ) -- O(n) idő # Q.eleteMin(): n (comópontonként ) -- O(n log n) idő # Q.ecreaePriority(): m (élenként ) -- O(m) idő # tezt a 7. é. orban: m (élenként ) -- O(m) idő Inicializálá: O(n) idő Özeen: O(n log n + m) idő Tárigény: O(n+m) ijktra: Példa 5 4 5 4 5 4 5 4 zimmetrikuan irányított élek
ellman-ord algoritmu Negatív élúlyok eetén ijktra algoritmua nem működik ellman-ord algoritmu (957) megoldja a problémát O( V ) idő alatt. inamiku programozá: a k-adik iteráció után, k=,, V -, minden v V: ha d[v], akkor d[v] egy -v út P v úlya é d[v] nem nagyobb mint egy legrövidebb -v út úlya, amely k élt tartalmaz pred[v] = ha d[v] =, egyébként pedig (pred[v],v) az utoló él a P v úton ellman-ord(g,,w) forall v V do d[v] := ; pred[v] := d[] := 4 for k := to V do 5 forall (u,v) do if d[u] + w(u,v) < d[v] then 7 d[v] := d[u] + w(u,v) 8 pred[v] := u 9 forall (u,v) do if d[u] + w(u,v) < d[v] then error negatív úlyú ciklut találtunk" ellman-ord: Példa ügg az élek feldolgozáának orrendjétől - - 4 7-4 5-4 5-4 5-5
itance Vector Routing Protokoll ellman-ord algoritmunak az eloztott változatát haználja, azaz minden comópont cak a direkt zomzédjaival kommunikál zinkron működé comópontoknak nem ugyanabban a körben kell információkat cerélniük Minden router nyilvántart egy táblát minden lehetége célhoz egy bejegyzéel (ditance vector) egy bejegyzé tartalmazza a legrövidebb út (becült) költégét (delay, vagy #hop) a következő comópont címét ezen az úton (next hop) minden router imeri a költéget a direkt zomzédaihoz Periodikuan elküldi a tábláját minden zomzédjának mikor egy router megkapja a zomzéd tábláját aktualizálja a aját tábláját Initial ditance vector of cot next hop - - - vector after received vector cot next hop - 4 Initial ditance vector of cot next hop - - final ditance vector cot next hop 5 4 ount to Infinity Probléma Jó hír gyoran terjed Új kapcolat létrejöttekor gyoran aktualizálódnak a táblák itance vector of cot next hop - itance table of cot next hop itance vector of Röviddel utánna itance table of cot next hop cot next hop Roz hír laan terjed Kapcolat kieik zomzédok felváltva növelik a távolágokat ount to Infinity Probléma é nem tudja, hogy nem elérhető (amíg a távolág el nem ér egy limitet, amit -nek tekintenek) ikluok keletkezhetnek itance table of 7 cot next hop cot next hop cot next hop 7 itance table of 5 cot next hop cot next hop 5 cot next hop 9 4
ount to Infinity Probléma Módoítáok a itance-vector routing protokollokban a ping-pong-cikluokat (count to infinity) megakadályozáához plit horizon: olyan utakat nem küld viza a comópont annak a zomzédjának, amit tőle tanult a példában nem küldi a (,,) ornak megfelelő utat viza -nek, mert azt -től kellett tanulnia plit horizon with poion revere: negatív információt küld viza pl. (,) utat küldi viza -nek Mindkét módzer cak két comópontból álló ciklut kerül el itance table of itance table of cot next hop cot next hop - 5 Link State Protokoll Minden Link State router tárolja a hálózat topológiáját egy nem-eloztott legrövidebb utak algoritmut haznál routerek Link State Packet (LSP) által cerélnek ki információkat LSP tartalmazza az LSP-t létrehozó r router IP címét a költégét r minden direkt zomzédjához orozatzámot (SQNO) TTL (time to live) mezőt Megbízható eláraztá (Reliable looding) minden comópont aktuáli LSP-jét tároljuk továbbítjuk az LSP-ket minden zomzédo comóponthoz azon comópont kivételével, amely az LSP-t felénk továbbította továbbítánál cökkentjük a TTL értékét periodikuan létrehozunk egy új aját LSP-t növekvő SQNO-val
lapo routing korlátai Link State Routing O( n) bejegyzére van zükég, ahol n a routerek záma, a maximáli fok Minden comópont minden má comópontnak el kell hogy küldje az információit itance Vector O(n) bejegyzé routerenként ikluokat okozhat Konvergencia ideje a hálózat méretével nő z Internet több mint routert tartalmaz ezek a u.n. lapo routing módzerek nem haználhatók az egéz Internetre Megoldá: Hierarchiku routing 7 utonomou Sytem (S), Intra-S é Inter-S routing utonomou Sytem (S) gy két zintű modellt ad a routinghoz az Interneten Példa S-re: elte.hu Intra-S-routing routing az S-en belül pl. RIP, OSP, IGRP,... Inter-S-routing a Kapcolódái pont: átjáró (gateway) teljeen decentráli routing Mindeki aját maga határozza meg az optimalizálái kritériumát pl. GP, GP (korábban).b Inter-S routing between and.a Gateway b.c Hot a d c b Intra-S routing within S.a a Gateway c b Intra-S routing within S Hot 8
Intra-S routing: RIP Routing Information Protocol (R 58) itance Vector algoritmu távolág metrika = hop zám (linkek záma) távolág vektorokat (ditance vector) minden router minden Repone-üzenettel (advertiement) adja át a zomzédjának zomzédok zintén egy új advertiement-et küldenek ha a táblájuk ezáltal megváltozott Minden dvertiement-ben célhálózathoz hirdetik meg az utakat UP-vel (UP port 5) Ha 8-ig nem kap a router advertiement-et egy zomzédjától az utakat a zomzédon kereztül érvénytelennek deklarálja új dvertiment-eket küld a zomzédainak Hogy elkerülje a ping-pong-cikluokat (count to infinity), plit horizon with poion revere módzert haznál Végtelen távolág = Hop (limitet zab a hálózat átmérőjére) 9 Intra-S routing: OSP routing (Open Shortet Path irt) open = nyilvánoan rendelkezére álló Link-State algoritmu LS comagok terjeztée a topológiát minden comópontban tárolja az útvonalakat ijktra algoritmuával zámítja ki OSP-advertiment TP-vel, növeli a biztonágot (ecurity) az egéz S-be eláraztja (broadcat) több egyenlő költégű útvonal lehetége 4
Intra-S routing -- Hierarchiku OSP Nagy hálózatokhoz két hierarchia zint: Lokáli terület é gerinchálózat (backbone) Lokáli: Link-tate advertiement Minden comópont cak az irányt zámítja ki má lokáli területek hálózataihoz Local rea order Router: aját lokáli területeik távolágait foglalják öze zeket má Lokal rea order Router-eknek meghirdetik (advertiement) ackbone Router OSP protokollt haználnak a gerinchálózatra korlátozva oundary Router: Má S-ekkel kapcolnak öze 4 Intra-S routing: IGRP (Interior Gateway Routing Protocol) ISO-Protokoll (98-a évek közepe), a RIP utódja itance-vector-protokoll, mint a RIP Holddown time Split horizon Poion revere Különböző költég metrikákat támogat elay, andwidth, Reliability, Load, tb TP-t haznál a routing információk kicerélééhez 4
utonóm rendzerek (S) tipuai Stub-S ak egy má S-hez kapcolódik Multihomed S Több S-hez kapcolódik Nem továbbítja má S-ek forgalmát Tranit S Több kapcolat Továbbítja má S-ek üzeneteit (pl. ISP) Large company ackbone ervice provider ackbone ervice provider onumer ISP Peering point Large company Small company onumer ISP 4 Inter-S-Routing Inter-S routing Inter-S-Routing nehéz... between and.b Gateway Szervezetek megtagadhatják az.a üzenetek továbbítáát.a Gateway Hot (pl. cak fizető ügyfelek b a.c c a comagjait továbbítja) a b Hot Politikai követelmények d c Intra-S routing b within S Továbbítá má orzágokon Intra-S routing kereztül? within S Különböző S-ek routing-metrikái okzor nem özehaonlíthatók Útvonal optimalizálá lehetetlen! Inter-S-Routing megpróbálja legalább a comópontok elérhetőégét lehetővé tenni Méret: inter-domain routereknek ma kb. 4. hálózatról kell tudni 44
Inter-S routing: GP (order Gateway Protocol) z inter-s routing tandard GPv4 Path Vector protokoll Haonló a itance Vector protokollhoz Minden order Gateway meghirdeti minden zomzédjának (peer) az egéz utat (S-ek orozata) a célig (advertiement) TP-t haznál mikor Gateway X az utat Z-hez Peer-Gateway W-nek küldi akkor W válazthatja ezt az utat, vagy éppen nem Optimalizálái kritériumok: költégek, politika, etc Ha W az X által meghirdetett utat válaztja, akkor meghirdeti Path(W,Z) = (W, Path (X,Z)) Megjegyzé X tudja zabályozni a hozzá érkező forgalmat a meghirdetéek által. Komplikált protokoll 45