Transport layer: Summary principles behind transport layer services: o multiplexing/demultiplexing o reliable data transfer o flow control o congestion control instantiation and implementation in the Internet o UDP o TP pplication UDP TP IP Link Physical Network 20 Network Layer Goals: Overview: understand principles behind layer services: layer services IP addressing routing principle: path o routing (path selection) o dealing with scale o how a router works o advanced topics: IPv6, multicast instantiation and implementation in the Internet selection hierarchical routing next time o IP o o o o Internet routing protocols reliable transfer intra-domain inter-domain what s inside a router? IPv6 multicast routing Network 2 Network layer functions transport packet from sending to receiving hosts layer protocols in every host, router three important functions: path determination: route taken by packets from source to dest. Routing algorithms switching: move packets from router s input to appropriate router output call setup: some architectures require router call setup along path before data flows application transport application transport Network 22
service abstraction Network service model Q: What service model for channel transporting packets from sender to receiver? guaranteed bandwidth? preservation of inter-packet timing (no jitter)? loss-free delivery? in-order delivery? congestion feedback to sender? The most important abstraction provided by layer:? or datagram??? virtual circuit Network 23 Hur förmedlar man data? Identifierare i headern o Virtual circuit (connection-oriented) o Datagram (connectionless) o Source routing Vad krävs o Unika adresser o Identifiera enskilda portar i en router/switch Network 24 Virtual ircuit Switching (VS) V - Virtual circuit Tre steg o Uppkoppling (connection setup) permanent - PV via signaler - SV o Dataöverföring o Nedkoppling Varje paket har en V identifierare Varje router på vägen lagrar tillstånd för varje koppling Länk- och routerresurser kan allokerars Network 25 2
Virtual circuits: signaling protocols Permanent Virtual ircuit o setup by administrator o much work in large s Switched (signalled) V o used to setup, maintain teardown V used in TM, frame-relay,.25 not used in today s Internet application transport 5. Data flow begins 6. Receive data 4. all connected 3. ccept call. Initiate call 2. incoming call application transport Network 26 Kännetecken för VS Minst RTT fördröjning Liten OH för varje datapaket Vid fel, riv allt och koppla nytt Hur vet switchen vägen till destinationen? När kopplingen är uppe o En väg finns o Meddelanden kommer att skickas vidare o Resursallokering Network 27 Datagram s: the Internet model Varje paket har info om destinationen, ingen call setup Routers har inga tillstånd Forwarding tabell, uppdateras av bakgrundsprocess Kännetecken o Paket kan skickas när som helst och var som helst o Sändaren vet inte om paketet kan levereras o Paket hanteras oberoende av varandra o Kan hitta vägar runt problem application transport. Send data 2. Receive data application transport Network 28 3
Datagram eller V nätverk ontention o Flera paket vill till samma länk samtidigt ongestion o När köerna i switchen är fulla och paket börjar slängas Datagram o Bryr sig inte, kontroll högre upp o Högt utnyttjande o Smarta ändsystem VS o Hop-by-hop flödeskontroll o Konservativt o QoS o Dumma ändsystem Network 29 Source routing Sändaren har info för att skicka till dest Ett sätt: o Ett nummer för varje utport för varje växel/router o Ordnad lista o Kännetecken Sändaren måste veta allt Varierande header-längd Varianter på hantering av headern Kan användas i både datagram och VS Skalningsproblem Network 30 The Internet Network layer Host, router layer functions: Transport layer: TP, UDP Network layer Routing protocols path selection RIP, OSPF, BGP routing table Link layer layer IP protocol addressing conventions datagram format packet handling conventions IMP protocol error reporting router signaling Network 3 4
IP ddressing: introduction IP address: globally unique 32-bit identifier for host, router interface interface: connection between host, router and link o router s typically have multiple interfaces o host may have multiple interfaces o IP addresses associated with interface, not host, router 223... 223..2. 223...2 223...4 223..2.9 223...3 223..3. 223..3.27 223..2.2 223..3.2 223... = 0 0000000 0000000 0000000 223 Network 32 IP ddressing IP address: o part (high order bits) o host part (low order bits) What s a? (from IP address perspective) o device interfaces with same part of IP address o can ly reach each other without intervening router 223... 223..2. 223...2 223...4 223..2.9 223...3 223..3. 223..3.27 LN 223..2.2 223..3.2 consisting of 3 IP s (for IP addresses starting with 223, first 24 bits are address) Network 33 IP ddresses given notion of, let s re-examine IP addresses: class-full addressing: class 0 host B 0 host 0 host D 0 multicast address 32 bits.0.0.0 to 27.255.255.255 28.0.0.0 to 9.255.255.255 92.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 Network 34 5
Speciella adresser Nätverksadresser har HostId fylld med 0 27.0.0. - Reserverad för loopback 0.0.0.0 - Den här maskinen Bara 0 or i NetId - Maskin på detta nät Bara or - Broadcast i lokalt nät Bara or i HostId - Broadcast i NetId Det krävs en IP-adress för varje interface i en maskin Network 35 Svagheter i Internetadresseringen Om en maskin flyttas måste också adresser bytas Om ett -klass nätverk växer till mer än 254 maskiner måste alla adresser bytas Rutten baseras på adressen - vägen till en multi-homed host påverkas av adressen Network 36 Skalbarhet 2 7 + 2 4 + 2 2 olika nätverksadresser i IP Det blir stora tabeller om varje router ska hitta alla nätverk Hur får man routing att skala? Network 37 6
Routing Routing protocol Goal: determine good path (sequence of routers) thru from source to dest Graph abstraction for routing algorithms: graph nodes are routers graph edges are links o link cost: delay, $ cost, or congestion level 2 5 3 B 5 2 F 3 2 D E good path: o typically means minimum cost path o other def s possible Network 38 Routing lgorithm classification Global or decentralized information? Global: all routers have complete topology, link cost info link state algorithms Decentralized: router knows lyconnected neighbors, link costs to neighbors iterative process of computation, exchange of info with neighbors distance vector algorithms Static or dynamic? Static: routes change slowly over time Dynamic: routes change more quickly o periodic update o in response to link cost changes Network 39 Link State Förutsättning o Varje nod kan kolla om närmsta granne är uppe/nere och kan kostnaden för varje länk Basidé o lla noder vet hur de ska nå närmsta granne, låt alla veta det (alla får komplett bild) o Beror av två mekanismer Tillförlitlig spridning av link-state information Beräkning av vägar från summan av all ackumulerad information Network 40 7
Link-State Routing lgorithm Dijkstra s algorithm net topology, link costs known to all nodes o accomplished via link state broadcast o all nodes have same info computes least cost paths from one node ( source ) to all other nodes o gives routing table for that node iterative: after k iterations, know least cost path to k dest. s Notation: c(i,j): link cost from node i to j. cost infinite if not direct neighbors D(v): current value of cost of path from source to dest. V p(v): predecessor node along path from source to v, that is next v N: set of nodes whose least cost path definitively known Network 4 Dijsktra s lgorithm Initialization: 2 N = {} 3 for all nodes v 4 if v adjacent to 5 then D(v) = c(,v) 6 else D(v) = infinity 7 8 Loop 9 find w not in N such that D(w) is a minimum 0 add w to N update D(v) for all v adjacent to w and not in N: 2 D(v) = min( D(v), D(w) + c(w,v) ) 3 /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ 5 until all nodes in N Network 42 Forward Search lgorithm Två listor - bekräftade() och möjliga (T). onfirm = {s} 2. Kalla senaste till adderade nod NET 3. För varje granne till NET beräkna kostnaden som summan av kostnaden från s till NET och NET till granne (a) Om grannen ej finns i eller T, lägg i T (b) Om grannen finns i T och den nya kostnaden är lägre, uppdatera 4. Om T är tom avbryt, annars ta den med lägst kostnad i T och flytta till samt hoppa till 2 Exempel på tavlan Network 43 8
Dijkstra s algorithm, discussion lgorithm complexity: n nodes each iteration: need to check all nodes, w, not in N n*(n+)/2 comparisons: O(n**2) more efficient implementations possible: O(nlogn) Oscillations possible: e.g., link cost = amount of carried traffic +e 2+e 0 0 2+e 2+e 0 D 0 0 B D +e B D 0 0 B D B 0 e 0 0 +e 0 +e e e recompute recompute recompute initially routing Network 44 Distance Vector Routing lgorithm iterative: continues until no nodes exchange info. self-terminating: no signal to stop asynchronous: nodes need not exchange info/iterate in lock step! distributed: each node communicates only with directly-attached neighbors Distance Table data structure each node has its own row for each possible destination column for each directlyattached neighbor to node example: in node, for dest. Y via neighbor Z: D (Y,Z) = = distance from to Y, via Z as next hop Z c(,z) + min {D (Y,w)} w Network 45 Distance Table: example 7 E D (,D) E D (,D) B E 8 2 D 2 D c(e,d) + min {D (,w)} w = = 2+2 = 4 D c(e,d) + min {D (,w)} w = = 2+3 = 5 cost to destination via E D () B D loop! E B D (,B) = c(e,b) + min {D (,w)} w = 8+6 = 4 loop! Network 46 destination B D 7 6 4 4 8 9 5 5 4 2 9
Distance table gives routing table cost to destination via E D () B D 4 5 Outgoing link to use, cost, destination B 7 6 8 9 5 4 destination B D,5 D,4 D 4 2 D D,4 Distance table Routing table Network 47 Distance Vector Routing: overview Iterative, asynchronous: each local iteration caused by: local link cost change message from neighbor: its least cost path change from neighbor Distributed: each node notifies neighbors only when its least cost path to any destination changes o neighbors then notify their neighbors if necessary Each node: wait for (change in local link cost of msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors Network 48 Distance Vector lgorithm: t all nodes, : Initialization: 2 for all adjacent nodes v: 3 D (*,v) = infty /* the * operator means "for all rows" */ 4 D (v,v) = c(,v) 5 for all destinations, y 6 send min D (y,w) to each neighbor /* w over all 's neighbors */ w Network 49 0
Distance Vector lgorithm (cont.): 8 loop 9 wait (until I see a link cost change to neighbor V 0 or until I receive update from neighbor V) 2 if (c(,v) changes by d) 3 /* change cost to all dest's via neighbor v by d */ 4 /* note: d could be positive or negative */ 5 for all destinations y: D (y,v) = D (y,v) + d 6 7 else if (update received from V wrt destination Y) 8 /* shortest path from V to some Y has changed */ 9 /* V has sent a new value for its min wd V (Y,w) */ 20 /* call this received new value "newval" */ 2 for the single destination y: D (Y,V) = c(,v) + newval 22 23 if we have a new min w D (Y,w)for any destination Y 24 send new value of min w D (Y,w) to all neighbors Exempel 25 på tavlan 26 forever Network 50 Distance Vector: link cost changes Link cost changes: node detects local link cost change updates distance table (line 5) if cost change in least cost path, notify neighbors (lines 23,24) 4 Y 50 Z good news travels fast algorithm terminates Network 5 Distance Vector: link cost changes Link cost changes: 60 good news travels fast Y 4 bad news travels slow - count to infinity problem! Z 50 algorithm continues on! Network 52
Distance Vector: poisoned reverse If Z routes through Y to get to : Z tells Y its (Z s) distance to is infinite (so Y won t route to via Z) will this completely solve count to infinity problem? 60 4 Y 50 Z algorithm terminates Network 53 omparison of LS and DV algorithms Message complexity LS: with n nodes, E links, O(nE) msgs sent each DV: exchange between neighbors only o convergence time varies Speed of onvergence LS: O(n**2) algorithm requires O(nE) msgs o may have oscillations DV: convergence time varies o may be routing loops o count-to-infinity problem Robustness: what happens if router malfunctions? LS: o node can advertise incorrect link cost o each node computes only its own table DV: o DV node can advertise incorrect path cost o each node s table used by others error propagate thru Network 54 Distance Vector - Link State Link State o lla pratar med alla o Berättar bara om sina egna länkar Distance Vector o Varje nod pratar endast med närmsta granne o Berättar allt den vet Network 55 2
Hierarchical Routing Our routing study thus far - idealization all routers identical flat not true in practice scale: with 50 million destinations: can t store all dest s in routing tables! routing table exchange would swamp links! administrative autonomy internet = of s each admin may want to control routing in its own Network 56 Hierarchical Routing aggregate routers into regions, autonomous systems (S) routers in same S run same routing protocol o intra-s routing protocol o routers in different S can run different intra- S routing protocol gateway routers special routers in S run intra-s routing protocol with all other routers in S also responsible for routing to destinations outside S o run inter-s routing protocol with other gateway routers Network 57 Intra-S and Inter-S routing a.b b d.a a b inter-s, intra-s routing in gateway.c.c c B.a a B c Gateways: perform inter-s routing amongst b themselves perform intra-s routers with other routers in their S layer link layer layer Network 58 3
Intra-S and Inter-S routing a Host h.b b.a Inter-S routing between and B.c a d b c Intra-S routing within S B.a a B c b Host h2 Intra-S routing within S B We ll examine specific inter-s and intra-s Internet routing protocols shortly Network 59 Summary layer services IP addressing scalability routing principle: path selection hierarchical routing Network 60 4