hálózati réteg Számítógépe Hálózatok 0 8. Hálózati réteg Packet orwarding, Routing, itance Vector Routing, Link State Routing, RIP, OSP, IGRP 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 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 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 8 Ver HL ToS Total Length Identification - M ragment Offet 0 octet TTL Protocol Source ddre Header etination ddre 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 ddre etination ddre 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 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, 0 Hálózatok, 0 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 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 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 7 Hálózatok, 0 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, 0 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. 0 Hálózatok, 0 9 Hálózatok, 0 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 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 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, 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 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 Hálózatok, 0 Hálózatok, 0
ount to Infinity Probléma Jó hír gyoran terjed Új kapcolat létrejöttekor gyoran aktualizálódnak a táblák 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 vector of cot next hop - itance table of cot next hop itance table of cot next hop cot next hop 7 cot next hop 7 Röviddel utánna itance vector of cot next hop itance table of cot next hop itance table of cot next hop cot next hop cot next hop 9 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 - Hálózatok, 0 7 Hálózatok, 0 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 Hálózatok, 0 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 Hálózatok, 0 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 b Hot Inter-S routing between and Gateway.a.a Gateway Hot.c c a a b c Intra-S routing b within S d Intra-S routing within S 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) Hálózatok, 0 Hálózatok, 0 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 Hálózatok, 0 Hálózatok, 0
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 Hálózatok, 0