Számítógépe Hálózatok 0 9. Hálózati réteg Packet orwarding, Link-State-Routing, itance- Vector-Routing 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.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. 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
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 IPv: it-címek IPv: 8 it-címek 0 octet 0 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source ddre etination ddre Option (max. 0 octet) Header ata IPv 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 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 0 8 Ver HL ToS Total Length Identification - M ragment Offet TTL Protocol Source ddre etination ddre Option (max. 0 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 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 7 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 0 ready horizon current ditance d[v] 8
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 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. 0 9 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. 0 0
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 dj[] 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 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); 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 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 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) 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"
ellman-ord: Példa ügg az élek feldolgozáának orrendjétıl - - 7 - - - - 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 - Initial ditance vector of cot next hop - - final ditance vector cot next hop
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 cot next hop cot next hop cot next hop 9 7 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 orokat nem küld viza a comópont annak a zomzédjának, amit tıle tanult a példában nem küldi a (,,) ort 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 cot next hop itance table of cot next hop - 8
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 9 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 0 routert tartalmaz ezek a u.n. lapo routing módzerek nem haználhatók az egéz Internetre Megoldá: Hierarchiku routing 0
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 Intra-S routing: RIP Routing Information Protocol (R 08) itance Vector algoritmu távolág metrika = hop zám (linkek záma) távolág vektorokat (ditance vector) minden router minden 0 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 0) Ha 80-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)
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 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
Intra-S routing: IGRP (Interior Gateway Routing Protocol) ISO-Protokoll (980-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 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
Inter-S-Routing Inter-S-Routing nehéz... Szervezetek megtagadhatják az üzenetek továbbítáát (pl. cak fizetı ügyfelek a comagjait továbbítja) Politikai követelmények Továbbítá má orzágokon kereztül? b Hot 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. 0.000 hálózatról kell tudni.b.a a d b Intra-S routing within S Inter-S routing between and Gateway.a Gateway Hot.c c a b c Intra-S routing within S 7 Inter-S routing: GP (order Gateway Protocol) z inter-s routing tandard GPv 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 8