Számítógépe Hálózatok 7. LN-ok özekapcoláa; Hálózati réteg Packet orwarding, Routing Hálózatok, LN-ok özekapcoláa Hálózatok,
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 Hálózatok, 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 Hálózatok,
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 Hálózatok, 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 Hálózatok,
Switche & bridge Tipiku kombináció: bridge cak egy máik állomá a wich zámára Switch ridge Switch Hálózatok, 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 Hálózatok, 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 Hálózatok, 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? Hálózatok,
. 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 Hálózatok, 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) Hálózatok,
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 Hálózatok, Hálózati réteg Hálózatok,
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 Hálózatok, 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 Hálózatok,
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 IPv: it-címek IPv: 8 it-címek octet 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source ddre etination ddre Option (max. octet) Header ata IPv comag Hálózatok, 7 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 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source ddre etination ddre Option (max. octet) ata Hálózatok, 8
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 Hálózatok, 9 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 Hálózatok,
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 horizon current ditance d[v] Hálózatok, 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, pred[v] a v-t megelızı comópont egy ilyen úton, v prioritáa Q-ban d[v] Inicializálá 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. Hálózatok,
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. Hálózatok, 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 \ {}; d[] := ; 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(); := U {(pred[v],v)}; 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); Q.Inert(u,d[u]); fi od 7 od Hálózatok,
Hálózatok, 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) Hálózatok, ijktra: Példa zimmetrikuan irányított élek
ellman-ord algoritmu Negatív élúlyok eetén ijktra algoritmua nem mőködik ellman-ord algoritmu (97) 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[] := for k := to V do 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" Hálózatok, 7 ellman-ord: Példa ügg az élek feldolgozáának orrendjétıl - - 7 - - - - Hálózatok, 8