LAN-ok özekapcoláa Számítógépe Hálózatok 0 8. LAN-ok özekapcoláa; Hálózati réteg Packet orwarding, Routing Hálózatok, 0 Hálózatok, 0 Repeater Hub 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 A tartalmat (biteket) nem interpretálja Repeaterek a hálózatot fizikai zegmenekre oztják A logikai topológia megmarad A catlakozó kábelek közö ütközéi tartományt alkotnak Kábeleket köt öze cillag topológiában Haonló a Repeaterhez A zignálokat minden catlakozó kábelen továbbítja izikai réteg komponene A tartalmat nem interpretálja A catlakozó kábelek egy ütközéi tartományt alkotnak Hálózatok, 0 Hálózatok, 0
Switch Terminálokat cillag topológiába kapcol öze Adatkapcolati réteg komponene Kollíziók egy zegmenen belül maradnak A 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 ridge Lokáli hálózatokat kapcol öze llentétben witch-ekkel (azok cak állomáokat -- eredetileg) Adatkapcolati réteg komponene lkülöníti a kollíziókat Megvizgálja az érkező frame-eket A frame-et cak a megfelelő kábelen továbbítja ak korrekt frame-eket továbbít Az átmenet bridge é witch között folyamato Özekapcolhat többféle LAN tiput Hálózatok, 0 Hálózatok, 0 Switche & bridge Tipiku kombináció: bridge cak egy máik állomá a wich zámára Switch ridge Switch ackward learning a bridge-ekben ackward learning triviali witch-ekben mi a helyzet a bridge-ekben? Példa: A küld frame-et -nek Tegyük fel, é tudja, hogy hol van azt fogja látni, hogy A frame-je LAN-ből jön Mivel nem tud LAN-ről, azt feltételezi, hogy A LAN-ben van Ami jó! továbbítani fog minden A-nak küldött comagot LAN-nek, amely LAN-be érkezik Hálózatok, 0 7 Hálózatok, 0 8
ackward learning a bridge-ekben boottrapping Az 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 Azon hálózat kivételével, ahonnan érkezett Az 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 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 LAN-t a nagyobb megbízhatóág miatt LAN LAN végtelen cikluba kerül Hogy kerüljünk el ilyen cikluokat? Az frame küldée imeretlen célhoz Hálózatok, 0 9 Hálózatok, 0 0. 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 A 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! Hálózatok, 0 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 A comagok cikluai cak akkor jöhetnek létre, ha a gráf, amit a bridge-ek definiálnak kört tartalmaz Tekintük a LAN-okat é a bridge-eket comópontoknak gy LAN-comópont é egy bridge-comópont öze van kötve egy éllel, ha a LAN 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 LAN-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 80.: Spanning Tree Protocol (STP), gy fezítőfa I 80.w: Rapid Spanning Tree Protocol (RSTP) Hálózatok, 0
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 A 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 (Adatkapcolati réteg): Az útvonalakról a forgalom megfigyeléével gyűjt információt Imeretlen célcím eetén a broadcat problémákat okoz Az Internet kb.0 Mio. lokáli hálózatot tartalmaz... Nagy hálózatokban a comagok továbbítáához útvonal információk zükégeek. A hálózati réteg feladatai Az útvonal információk felépítée (route detection) A comagok továbbítáa (packet forwarding) Az Internet-Protokoll lényegében hálózati réteg protokoll Hálózatok, 0 Hálózatok, 0 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 A 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 Amikor 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 Az adatok a küldőtől a cél-állomáig IP-comagokban kerülnek átvitelre A comagok fejléce tartalmazza a cél IP-címét IPv: it-címek IPv: 8 it-címek 0 8 Ver HL ToS Total Length Identification - M ragment Offet 0 octet TTL Protocol Source Addre Header etination Addre Option (max. 0 octet) ata IPv comag Hálózatok, 0 Hálózatok, 0
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 - 0 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source Addre etination Addre Option (max. 0 octet) Ha TTL 0 akkor packet-forwarding a routing-tábla alapján Ha TTL = 0 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 0 during tranit), melyben Küldő IP címe = aktuáli IP cím él IP címe = az eredeti küldő IP címe 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 A routing-táblát manuálian építjük fel Ki é tatiku LAN-ok eetén értelme inamiku routing A 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, 0 7 Hálózatok, 0 8 Legrövidebb utak fája ingle ource hortet path Adott: gy irányított gráf G = (V,), w : R 0 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 ijktra algoritmua Ötlet: A 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. Az 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). A nem kéz comópontok halmazát, amelyeket egy current ditance d[v] kéz comópontból egy éllel elérünk, horizont-nak nevezzük. 0 ready ource node horizon Hálózatok, 0 9 Hálózatok, 0 0
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[]:=0, ready[]:=true, Minden v V \ {} comópontra: d[v]:=, ready[v]:=fale. minden v zomzédjára: d[v]:=w(,v), pred[v]:=, ready[v]:=fale, Q.Inert(v,d[v] ). 0 ijktra algoritmua Az 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 Adj[v] := { u : (v,u) }, v V, a v-hez adjacen comópontok halmaza minden u Adj[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 Adj[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. 0 Hálózatok, 0 Hálózatok, 0 ijktra algoritmua ijktra algoritmua ijktra(g,,w) Output: egy legrövidebb utak fája T=(V, ) G-ben gyökérrel 0 := Ø; 0 ready[] := true; 0 ready[v] := fale; v V \ {}; 0 d[] := 0; 0 d[v] :=; v V \ {}; 0 priority_queue Q; 07 forall v Adj[] do 08 pred[v] := ; 09 d[v] := w(,v); 0 Q.Inert(v,d[v]); od while Q Ø do v := Q.eleteMin(); := U {(pred[v],v)}; ready[v] := true; forall u Adj[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); 0 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 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ő # A 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, 0 Hálózatok, 0
ijktra: Példa ellman-ord algoritmu zimmetrikuan irányított élek 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) 0 forall v V do 0 d[v] := ; pred[v] := 0 d[] := 0 0 for k := to V do 0 forall (u,v) do 0 if d[u] + w(u,v) < d[v] then 07 d[v] := d[u] + w(u,v) 08 pred[v] := u 09 forall (u,v) do 0 if d[u] + w(u,v) < d[v] then error negatív úlyú ciklut találtunk" Hálózatok, 0 Hálózatok, 0 ellman-ord: Példa - - - - ügg az élek feldolgozáának orrendjétől 7 - - itance Vector Routing Protokoll A ellman-ord algoritmunak az eloztott változatát haználja, azaz minden comópont cak a direkt zomzédjaival kommunikál Azinkron működé A 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 Amikor egy router megkapja a zomzéd tábláját aktualizálja a aját tábláját A Initial ditance vector of A A cot next hop - - - A vector after A received vector A cot next hop - Initial ditance vector of cot next hop A A - - A final ditance vector A cot next hop Hálózatok, 0 7 Hálózatok, 0 8