4/4/2011                                                                                                                  ...
4/4/2011                         Virtual circuits                                                      Virtual circuits: s...
4/4/2011                                                                                                    Internetworkin...
4/4/2011                                                                                                                  ...
4/4/2011                           IP addressing: CIDR                                                                   I...
4/4/2011Getting a datagram from source to             destination                                                         ...
4/4/2011             DHCP: Dynamic Host                                                                                   ...
4/4/2011     NAT: Network Address Translation                                                                             ...
4/4/2011                                                                               Distance Vector Routing: Intuition ...
4/4/2011                                                                                                Count to Infinity ...
4/4/2011     RIP: Link Failure and Recovery                                         Distance Vector: poisoned reverseIf no...
4/4/2011                                                                                                                  ...
4/4/2011        OSPF “advanced” features                                                                                  ...
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Chapter8 6up
Upcoming SlideShare
Loading in …5
×

Chapter8 6up

376 views
323 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
376
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Chapter8 6up

  1. 1. 4/4/2011 Overview • Network layer services • IP, the Internet Protocol Networks and Operating Systems – Model – Message format Chapter 8: Network Layer – Fragmentation and reassembly • IP Addressing (252‐0062‐00) • Additional Protocols • Routing Gustavo Alonso & Timothy Roscoe – Basics – Interior Gateway Protocols (IGP) Frühjahrssemester 2011 • distance vector protocols: RIP • Link state protocols: OSPF – Interdomain Routing (BGP) • Path vector protocol • Routers • IPv6 2© Systems Group | Department of Computer Science | ETH Zürich Network Layer Network Layer Services3 4 Network layer functions Network service model• Transport packet from  sending to receiving hosts  The service model defines the “channel” transporting packets • Network layer protocols  from sender to receiver: in every host, router • guaranteed bandwidth?Three important functions: • preservation of inter‐packet timing (no jitter)?• path determination: route taken by  packets from source to destination.  • loss‐free delivery? Established by a routing algorithm • in‐order delivery?• switching: move packets from  router’s input to appropriate router  • congestion feedback to sender? output The network layer can work under two service models:• call setup: some network  architectures require router call  • Virtual circuit setup along path before data flows • Datagrams5 Source:http://en.wikipedia.org/wiki/Internet_Protocol 6 1
  2. 2. 4/4/2011 Virtual circuits Virtual circuits: signaling protocols • The source‐to‐destination path tries to behave like a physical  • used to setup, maintain, and teardown VC circuit • used in ATM (Asynchronous Transfer Mode), frame‐ relay, X.25 • The network layer  maintains the illusion of a circuit: • not used in today’s Internet – call setup for each call before data can flow (teardown  after) – each packet carries VC identifier (instead of the destination  application host ID) 5. Data flow begins 6. Receive data application transport 4. Call connected transport – every router on source‐destination path maintains “state”  network 3. Accept call 1. Initiate call network data link 2. incoming call for each passing connection physical data link – link, router resources (bandwidth, buffers) may be  physical allocated to VC 7 8 Datagram networks: The Internet  Routing in a datagram model model • no call setup at network layer • routers: no state about end‐to‐end connections • Moving packets to their destination is done as a series of  • packets typically routed using destination host ID local routing decisions at each switch – packets between same source‐dest pair may take different  • Each switch maintains a forwarding or routing table that says  paths! which way packets have to go to reach a particular  destination • The information in the routing table is gathered using a  application routing protocol application transport transport network Dest    Port data link 1. Send data 2. Receive data network 1 data link A 2 physical physical 2 B 3 3 C 1 9 10 Network layer service models Datagram vs. VC network Guarantees ? Network Service Congestion Internet (IP) ATMArchitecture Model Bandwidth Loss Order Timing feedback • data exchange among computers • evolved from telephony Internet best effort none no no no no (inferred – “elastic” service, no strict timing  • human conversation  via loss) req.  – strict timing, reliability  ATM CBR constant yes yes yes no • “smart” end systems (computers) requirements rate congestion – can adapt, perform control,  – need for guaranteed service ATM VBR guaranteed yes yes yes no error recovery • “dumb” end systems rate congestion – telephones – simple inside network,  ATM ABR guaranteed  no yes no yes – complexity inside network complexity at “edge” minimum • Today not really used and being  ATM UBR none no yes no no • many link types  phased out  – different characteristics Recommended reading: CBR = Constant Bit Rate VBR = Variable Bit Rate ABR = Average Bit Rate – uniform service difficult http://en.wikipedia.org/wiki/Asynchronous_Transfer_Mode UBR = Unspecified Bit Rate      Recommended reading => http://en.wikipedia.org/wiki/Traffic_contract 11 12 2
  3. 3. 4/4/2011 Internetworking (IP) Internet Protocol (IP) Source:http://en.wikipedia.org/wiki/Internet_Protocol13 14 Internetworking (IP) Packet format 0 4 8 16 19 31 Type of • The Internet Protocol Version Hdr length service Length – Datagram based Identifier Flags Offset • Best effort, unreliable Upper Layer Time To Live Header Checksum Protocol • Simple routers Source Address • Packet fragmentation and reassembly Destination Address Options (optional) – Addressing schema • IP Addresses DATA – Routing protocols15 16 http://en.wikipedia.org/wiki/IPv4#Packet_structure Fragmentation and reassembly IP Fragmentation and Reassembly length ID fragflag offset• IP needs to work over many different physical networks =4000 =x =0 =0 – Networks have different maximum packet sizes One large datagram becomes – IP needs to fragment and reassemble packets to make  several smaller datagrams them fit in the frames of the next layer• Every network has a Maximum Transmission Unit: the largest  length ID fragflag offset =1500 =x =1 =0 IP datagram it can carry in the payload of a frame length ID• Fragment when needed, reassemble only at destination fragflag offset =1500 =x =1 =1480• The fields “identifier”, “flag”, and “offset” are used to mark  the fragments and reassemble them as needed. length ID fragflag offset =1040 =x =0 =296017 18 3
  4. 4. 4/4/2011 IP addressing • The Internet Protocol is meant as a protocol to communicate  across networks: Internetworking – There is not a single network but a hierarchy of networks – Routing happens within networks and across networks IP Addresses – Addresses are designed to reflect the hierarchical  organization of the networks comprising the Internet 19 20 IP Addresses Initial Internet design Up to 126 class A (wide area) networks “class‐full” addressing: 3 types of networks plus some  reserved addresses (http://en.wikipedia.org/wiki/IP_address) Class A Class A Class A class 1.0.0.0 to A 0 network host 127.255.255.255 class B (campus area) networks (64x256) B network 128.0.0.0 to 10 host 191.255.255.255 Class B Class B Class B Class B Class B Class B 192.0.0.0 to C 110 network host 223.255.255.255 224.0.0.0 to D 1110 multicast address 239.255.255.255 class C (local area) networks (32x256x256) 32 bits Class C Class C Class C Class C Class C Class C Class C 8 bits 21 http://en.wikipedia.org/wiki/IP_address 22 IP Addressing IP Addressing 223.1.1.1 223.1.1.1 223.1.2.1• IP address: 32‐bit identifier for  • IP address 223.1.1.2 223.1.2.1 host or router interface 223.1.1.2 – network part (high order  223.1.1.4 223.1.2.9 223.1.1.4 223.1.2.9 bits)• Interface: connection to a  223.1.2.2 physical link 223.1.2.2 – host part (low order bits)  223.1.1.3 223.1.3.27 223.1.1.3 223.1.3.27 – routers typically have  • What’s a (local) network? (from  LAN multiple interfaces IP address perspective) – host may have multiple  – device interfaces with same  223.1.3.1 223.1.3.2 interfaces 223.1.3.1 223.1.3.2 network part of IP address – IP addresses associated with  – can physically reach each  interface, not host or router other without intervening  network consisting of 3 IP networks router (for IP addresses starting with 223,  223.1.1.1 = 11011111 00000001 00000001 00000001 the first 24 bits are network address) 223 1 1 1 23 24 4
  5. 5. 4/4/2011 IP addressing: CIDR IP addresses: how to get one? • class‐full addressing:  – inefficient use of address space, address space exhaustion How do hosts get one? (host portion) – e.g., class B net allocated enough addresses for 65K hosts, even if  • Either hard‐coded by system admin in a file only 2K hosts in that network • CIDR: Classless InterDomain Routing – Wintel: control‐panelnetworkconfiguration – An improvement over basic IP addressing for more efficient use of  tcp/ipproperties addresses – UNIX: /etc/rc.config – network portion of address of arbitrary length • Or DHCP: Dynamic Host Configuration Protocol – address format: a.b.c.d/x, where x is number of bits defining the  – dynamically get address: “plug‐and‐play” network portion of address – host broadcasts “DHCP discover” message network host – DHCP server responds with “DHCP offer” message part part – host requests IP address: “DHCP request” message 11001000  00010111 00010000  00000000 – DHCP server sends address: “DHCP ack” message 200.23.16.0/23 25 http://en.wikipedia.org/wiki/Classless_Inter‐Domain_Routing 26 Hierarchical addressing: route  IP addresses: how to get one? aggregation Network (network portion) Hierarchical addressing allows efficient advertisement of  • get allocated portion of ISP’s address space routing information: Organization 0ISPs block          11001000  00010111  00010000  00000000    200.23.16.0/20  200.23.16.0/23 Organization 1 “Send me anythingOrganization 0    11001000  00010111  00010000  00000000    200.23.16.0/23  200.23.18.0/23 with addresses  Organization 2 beginning Organization 1    11001000  00010111  00010010  00000000    200.23.18.0/23  200.23.20.0/23 . Fly‐By‐Night‐ISP 200.23.16.0/20” . . . Internet .Organization 2    11001000  00010111  00010100  00000000    200.23.20.0/23  Organization 7 . 200.23.30.0/23 ...                                          …..                                   ….                …. “Send me anything ISPs‐R‐Us with addresses Organization 7    11001000  00010111  00011110  00000000    200.23.30.0/23 beginning  199.31.0.0/16” 27 28 Hierarchical addressing: more  IP addressing: the last word... specific routes What if Organization 1 wants to change the provider? ISPs‐R‐Us has a more specific route to Organization 1 • How does an ISP get a block of addresses? Organization 0 – from another (bigger) ISP or  200.23.16.0/23 – with ICANN: Internet Corporation for Assigned  “Send me anything Names and Numbers with addresses  Organization 2 beginning  • allocates addresses 200.23.20.0/23 . Fly‐By‐Night‐ISP 200.23.16.0/20” • manages DNS . . . Internet . • assigns domain names, resolves disputes Organization 7 . 200.23.30.0/23 ISPs‐R‐Us “Send me anything • Will there be enough IP addresses, ever? with addresses  Organization 1 beginning 199.31.0.0/16 – No, there are some hacks around the corner (later) or 200.23.18.0/23” 200.23.18.0/23 29 30 5
  6. 6. 4/4/2011Getting a datagram from source to  destination Getting a datagram from source to destination routing table in A Dest. Net.  next router  #hops misc Dest. Net.   next router  #hops data Known as “forwarding” 223.1.1                             1 fields 223.1.1.1 223.1.1.3 223.1.1                  1 223.1.2      223.1.1.4        2  Starting at A, given IP datagram  223.1.2       223.1.1.4        2 223.1.3      223.1.1.4        2 misc source dest addressed to B: 223.1.3       223.1.1.4        2 IP datagram:  data fields IP addr IP addr A  look up net. address of B  datagram remains unchanged, as  223.1.1.1 A 223.1.1.1  find B is on same net. as A it travels from source to  223.1.2.1 destination 223.1.1.2  link layer will send datagram directly to  223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 B inside link‐layer frame  addr fields of interest here B  A and B are directly connected 223.1.1.4 223.1.2.9 223.1.2.2 B 223.1.1.3 223.1.3.27 E 223.1.2.2 E 223.1.1.3 223.1.3.27 223.1.3.1 223.1.3.2 223.1.3.1 223.1.3.231 32Getting a datagram from source to destination Getting a datagram from source to destination Dest.       next misc Dest. Net.   next router  #hops misc network  router   #hops  interface data fields 223.1.1.1 223.1.2.2 data fields 223.1.1.1 223.1.2.2 223.1.1                             1 223.1.1         ‐ 1       223.1.1.4 Starting at A with destination E 223.1.2       223.1.1.4        2  Arriving at 223.1.1.4, destined for  223.1.2         ‐ 1       223.1.2.9 223.1.3       223.1.1.4        2 223.1.2.2 223.1.3         ‐ 1       223.1.3.27 look up network address of E  look up network address of E E on different network A A 223.1.1.1  E on same network as router’s  223.1.1.1  A, E not directly attached interface 223.1.2.9  223.1.2.1 routing table: next hop router to E is  223.1.2.1 223.1.1.2  router, E directly attached 223.1.1.2 223.1.1.4  223.1.2.9 223.1.1.4 223.1.2.9 223.1.1.4  link layer sends datagram to 223.1.2.2  link layer sends datagram to router  B B inside link‐layer frame via interface  223.1.2.2 223.1.1.4 inside link‐layer frame 223.1.1.3 223.1.3.27 223.1.2.2 E 223.1.2.9  223.1.1.3 223.1.3.27 E datagram arrives at 223.1.1.4   datagram arrives at 223.1.2.2 223.1.3.1 223.1.3.2 223.1.3.2 …  223.1.3.133 34 ICMP: Internet Control Message  Protocol • used by hosts, routers, gateways  Some typical types/codes to communication network‐level  Type Code description information 0        0         echo reply (ping) – error reporting: unreachable  3        0         dest. network unreachable 3        1         dest host unreachable Additional protocols dealing with  host, network, port, protocol – echo request/reply (used by  3        2         dest protocol unreachable 3        3         dest port unreachable Network Layer information ping) • network‐layer “above” IP: 3        6         dest network unknown 3        7         dest host unknown – ICMP msgs carried in IP  4        0         source quench (congestion datagrams control ‐ not used) • ICMP message: type, code plus  8        0         echo request (ping) first 8 bytes of IP datagram  9        0         route advertisement causing error 10      0         router discovery 11      0         TTL expired35 36 12      0         bad IP header 6
  7. 7. 4/4/2011 DHCP: Dynamic Host  DHCP client‐server scenario Configuration ProtocolGoals• allow host to dynamically obtain its IP address from network server  A 223.1.1.1 DHCP  223.1.2.1 when it joins network server• Can renew its lease on address in use 223.1.1.2• Allows reuse of addresses  223.1.1.4 223.1.2.9 (only hold address while connected and “on”) B 223.1.2.2 arriving DHCP • Support for mobile users who want to join network (more shortly) 223.1.1.3 223.1.3.27 E client needsDHCP review address in this 223.1.3.1 223.1.3.2 network• host broadcasts “DHCP discover” message• DHCP server responds with “DHCP offer” message• host requests IP address: “DHCP request” message• DHCP server sends address: “DHCP ack” message37 38 DHCP client‐server scenario DHCP server: 223.1.2.5 arriving NAT: Network Address Translation DHCP discover client src : 0.0.0.0, 68      dest.: 255.255.255.255,67 rest of local network yiaddr:    0.0.0.0 Internet (e.g., home network) transaction ID: 654 10.0.0.1 10.0.0/24 DHCP offer src: 223.1.2.5, 67       10.0.0.4 dest:  255.255.255.255, 68 10.0.0.2 yiaddr: 223.1.2.4 transaction ID: 654 138.76.29.7 Lifetime: 3600 secs DHCP request src:  0.0.0.0, 68      10.0.0.3 dest::  255.255.255.255, 67 yiaddr: 223.1.2.4 transaction ID: 655 All datagrams leaving local Datagrams with source or  Lifetime: 3600 secs time network have same single source NAT IP  destination in this network DHCP ACK address: 138.76.29.7, have 10.0.0/24 address for  src: 223.1.2.5, 67       different source port numbers source, destination (as usual) dest:  255.255.255.255, 68 yiaddr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs39 40 NAT: Network Address Translation NAT: Network Address Translation Implementation: NAT router must• Motivation – local network uses just one IP address as far as outside  • outgoing datagrams: replace (source IP address, port #) of every outgoing  world is concerned datagram to (NAT IP address, new port #) – remote clients/servers will respond using  – no need to be allocated range of addresses from ISP (NAT IP address, new port #) as destination addr. – just one IP address is used for all devices – can change addresses of devices in local network without  • remember (in NAT translation table) every (source IP address, port #)  to (NAT  IP address, new port #) translation pair notifying outside world – can change ISP without changing addresses of devices in local  • incoming datagrams: replace (NAT IP address, new port #) in dest fields of  network every incoming datagram with corresponding (source IP address, port #)  stored in NAT table – devices inside local net not explicitly addressable, visible by  outside world (a security plus). – BUT: machines cannot be servers! 41 42 7
  8. 8. 4/4/2011 NAT: Network Address Translation NAT: Network Address Translation NAT translation table2: NAT router 1: host 10.0.0.1  WAN side addr        LAN side addrchanges datagram sends datagram to source addr from 138.76.29.7, 5001   10.0.0.1, 3345 128.119.40, 80 • 16‐bit port‐number field ……                                         ……10.0.0.1, 3345 to – 60,000 simultaneous connections with a single LAN‐side address!138.76.29.7, 5001, S: 10.0.0.1, 3345updates table D: 128.119.40.186, 80 10.0.0.1 • NAT is controversial 1 S: 138.76.29.7, 5001 – routers should only process up to layer 3 2 D: 128.119.40.186, 80 10.0.0.4 10.0.0.2 – violates end‐to‐end argument 138.76.29.7 S: 128.119.40.186, 80  • NAT possibility must be taken into account  4 S: 128.119.40.186, 80  D: 10.0.0.1, 3345 by app designers, e.g., P2P applications 3 10.0.0.3 D: 138.76.29.7, 5001 4: NAT router – address shortage should instead be solved by IPv6 3: Reply arrives changes datagram dest. address: • delays deployment of IPv6 dest addr from 138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345 43 44 Routing 5 Routing protocol B 3 C Goal: determine “good” path 2 5 (sequence of routers) through  A 2 1 F network from source to dest. 3 1 2 D E 1 Routing Graph abstraction for routing “good” path: • graph nodes are routers • graph edges are physical links  typically means  minimum cost path – link cost: delay, $ cost, or  congestion level  other definitions  possible 45 46 Routing protocol classes Important properties of routing protocols • Distance vector protocols • Information needed – Nodes know only distance (cost) to neighbors – Messages involved – Exchange distance to all nodes with neighbors – Storage necessary to keep the information – Update local information based on received information • Convergence – How fast until it stabilizes • Link state protocols – How fast it reacts to changes – All nodes know network topology and cost of each link  (propagated through the network by flooding) – Run protocol to find shortest path to each destination 47 48 8
  9. 9. 4/4/2011 Distance Vector Routing: Intuition Geneva Zurich a b c Distance Vector Protocols RIP (Routing Information Protocol) Routing Table of b Destination Dir Geneva a Zurich c49 50 Distance Vector Routing Distance Vector Routing Algorithm Algorithm is iterativeDistance Zurich: 7 Zurich? Distance Zurich: 3 • continues until no nodes  Routing Table with distance info  exchange info • each node has one a b c • self‐terminating: no “signal”  • a node x has for each neighbor z an entry  to stop for each destination y (as in example  asynchronous before); Dx(y,z) = distance from x to y  • nodes need not to iterate in  through z Distance Zurich: 4 lock‐step • the best route for a given destination is  distributed marked • each node communicates  Destination Dir Dst only with direct neighbors Distance Zurich: 5! Geneva a 10 Zurich c 4 52 51 Distance Vector Algorithm Distance table gives routing table cost to destination via E Outgoing link  D  () A B D to use, cost Y 2 1 A 1 14 5 A A, 1X Z 7 1 B 7 8 5 B D, 5 B C 7 A 8 2 C 6 9 4 C D, 4 1 E D 2 D 4 11 2 D D, 2 Distance table Routing table53 54 9
  10. 10. 4/4/2011 Count to Infinity Problem when  Distance Vector Routing links break Each node executes a loop: c: 2 c: 1 Local iteration caused by  • local link cost change  wait for (change in local link  a b c • Neighbor sends a message saying  cost or msg from neighbor) that (at least) one of its least cost  paths changed Algorithm is distributed c: 3 recompute distance table • each node notifies neighbors only c: 4 when its least cost path to any  c: 5 destination changes if least cost path to any dest has  c: 6 – neighbors then notify their  neighbors if necessary, etc. changed, notify all neighbors  c: 7 c: 8 55 56 Distance Vector: link cost changes Distance Vector: link cost changes Link cost changes 1 • What if the cost of a link grows? 60  node detects local link cost change  Y • Compare with the count to infinity problem Y  updates distance table 4 1 4 1  if cost change in least cost path, notify  X Z (More on this later) X Z 50 50 neighbors algorithm algorithm terminates“good continues on!news travelfast” 57 58 RIP (Routing Information Protocol) RIP (Routing Information Protocol)  z • Distance vector algorithm • Included in BSD‐UNIX Distribution in 1982 w x y … • Distance metric: number of hops (max = 15 hops) A D B • Distance vectors: exchanged every 30 sec via  Response Message (also called “advertisement”) C • Each advertisement: route to up to 25 destination  networks Routing table in D Destination Network Next  Router           Num. of hops to dest. w A 2 y B 2 z B 7 x ‐‐ 1 …. …. .... 59 60 10
  11. 11. 4/4/2011 RIP: Link Failure and Recovery  Distance Vector: poisoned reverseIf no advertisement heard after 180 sec then neighbor/link declared dead If Z routes through Y to get to X : 60 – routes via neighbor invalidated  Z tells Y its (Z’s) distance to X is infinite (so Y  Y won’t route to X via Z) 4 1 – new advertisements sent to neighbors X Z – neighbors in turn send out new advertisements (if tables changed)  Avoids the loop between 2 nodes 50 – link failure info quickly propagates to entire net algorithm terminates – poison reverse (next slide) used to prevent ping‐pong loops  (infinite distance = 16 hops)61 62 [E]IGRP: [Enhanced] Interior  RIP Table processing Gateway Routing Protocol• RIP routing tables managed by application‐level process called route‐d  (daemon) • CISCO proprietary; successor of RIP (mid 80s)• advertisements sent in UDP packets, periodically repeated • Distance Vector, like RIP • several cost metrics (delay, bandwidth, reliability, load etc) • uses TCP to exchange routing updates • Loop‐free routing via Distributed Updating Algorithm (DUAL)   based on diffused computation63 64 Link state routing (intuition) • Every node knows the topology and cost of every link – Achieved through flooding • Nodes send the information on their links and neighbors to all  neighbors Link state routing protocols • Nodes forward information about other nodes to their neighbors • ACKs used to prevent message loss OSPF (Open Shortest Path First) • Sequence numbers used to compare versions • With the information on topology and cost – Calculate the shortest path to every possible destination • Dijkstra’s algorithm65 66 11
  12. 12. 4/4/2011 Link state routing algorithm:  Algorithm idea Dijkstra• There are 3 groups of nodes in the network – To the green nodes we know the shortest path Notation – The blue nodes are directly reachable from the green nodes Dijkstra’s algorithm • c(i,j): link cost from node i to j.  – All other nodes are black Can be infinite if not direct  • net topology, link costs known to  neighbors, costs define  all nodes adjacency matrix.• Basic algorithm: v – accomplished via “link state  w • v.distance: current value of cost  – Start with broadcast”  source s as the of path from source s to  only green node u – all nodes have same info destination v. x • v.visited: boolean variable that  – Color the • computes single‐source shortest  best* blue path tree  determines if optimal path to v  s was found. node green, – gives routing table for source one after another, • v.pred: the predecessor node of  until all nodes are green v in the routing tree. (*best = minimum distance from source s of all blue nodes) • B: the set of blue nodes.67 68 Dijkstra’s Algorithm (for source s  Dijkstra’s algorithm: example and edge costs c) Step visited Set of blue nodes B (with distance) s.visited := true; s.distance := 0; s.pred := s; // init source s 0 A D (1), B (2), C (5) for all nodes v in V except s do // init all other nodes 1 A, D (1) E (2), B (2), C (4) v.visited := false; v.distance := 1; v.pred := undefined; 2 AD, E (2) B (2), C (3), F(4) B := {} // B is the set of blue nodes, initially all neighbors of s 3 ADE, B (2) C (3), F(4) for all nodes v in V that are direct neighbors of s 4 ADEB, C (3) F(4) B := B + {v}; v.distance := c(s,v); v.pred := s; 5 ADEBC, F (4) ‐ while B not empty do // always choose the best blue node v v := node in B with minimum v.distance; 5 B := B – {v}; 3 v.visited := true;  // turns the node green B C 5 for all neighbors w of v with w.visited = false; // update neighbors of v 2 if w not in B then A 2 1 F 3 B := B + {w}; w.distance := v.distance+c(v,w); w.pred := v; 1 2 if w in B then D E if (v.distance+c(v,w) < w.distance) then 1 w.distance := v.distance+c(v,w); w.pred := v;69 endwhile 70 Dijkstra’s algorithm, correctness OSPF (Open Shortest Path First) • “open”: publicly available Oscillations possible • Uses Link State algorithm  • For example if link costs depend on the amount of carried traffic.  – LS packet dissemination Example: three flows to node A, with traffic 1, 1, and e (<1) – Topology map at each node A – Route computation using Dijkstra’s algorithm 1 1+e 2+e A A A 0 0 2+e 2+e 0 D 0 0 B D B D B D B 1+e 1 0 0 1+e 1 • OSPF advertisement carries one entry per neighbor router 0 e 0 0 1 1+e 0 e1 C C C C • Advertisements disseminated via flooding 1 e B and C have D, C, B have etc. initially better routes better routes • Dijkstra’s algorithm is optimal for constant (and positive!) link costs71 72 12
  13. 13. 4/4/2011 OSPF “advanced” features  Hierarchical OSPF (not in RIP)• Security – all OSPF messages authenticated  – therefore no malicious intrusion – TCP connections used• Multiple same‐cost paths allowed (only one path in RIP)• For each link, multiple cost metrics for different TOS (Type of Service) – e.g., satellite link cost set “low” for best effort; high for real time• Integrated uni‐ and multicast support:  – Multicast OSPF (MOSPF) uses same topology data base as OSPF• Hierarchical OSPF in large domains73 74 Hierarchical OSPF• Two‐level hierarchy: local area or backbone – Link‐state advertisements only in area  – each node has detailed area topology but only knows direction  (shortest path) to networks in other areas.• Area border routers – “summarize” distances to networks in own area Comparing routing algorithms – advertise to other area border routers.• Backbone routers – run OSPF routing limited to backbone.• Boundary routers – connect to other autonomous systems.75 76 Link‐State vs. Distance‐Vector  Distance vector vs link state Routing• Distance vector: Message complexity Robustness • LS: with n nodes, m links,  • what happens if router  Each node talks only to its directly connected neighbors but  network flooded with O(nm)  malfunctions? tells them all it has learned (distance to all nodes) messages  LS: • DV: exchange between neighbors  – node can advertise incorrect  only link cost – convergence time varies – each node computes only its • Link state own table Speed of Convergence Each node talks to all other nodes but tells them only about  DV: • LS: O(m + n log n) the state of its directly connected links – DV node can advertise  – may have oscillations incorrect path cost • DV: convergence time varies – each node’s table used by  – count‐to‐infinity problem others: errors propagate  through the network77 78 13

×