CSE 561 – Bridging and Routing David Wetherall Spring 2000.

Slides:



Advertisements
Similar presentations
CSCI-1680 Network Layer: Intra-domain Routing Based partly on lecture notes by David Mazières, Phil Levis, John Jannotti Rodrigo Fonseca.
Advertisements

COS 461 Fall 1997 Routing COS 461 Fall 1997 Typical Structure.
CSE 534 Fundamentals of Computer Networks Lecture 4: Bridging (From Hub to Switch by Way of Tree) Based on slides from D. Choffnes Northeastern U. Revised.
CS 4700 / CS 5700 Network Fundamentals Lecture 7: Bridging (From Hub to Switch by Way of Tree) Revised 1/14/13.
Routing Protocol.
Courtesy: Nick McKeown, Stanford
CSE331: Introduction to Networks and Security Lecture 9 Fall 2002.
Routing So how does the network layer do its business?
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 22 Introduction to Computer Networks.
Chapter 4 Distance Vector Problems, and Link-State Routing Professor Rick Han University of Colorado at Boulder
1 Relates to Lab 4. This module covers link state routing and the Open Shortest Path First (OSPF) routing protocol. Dynamic Routing Protocols II OSPF.
Spring Routing & Switching Umar Kalim Dept. of Communication Systems Engineering 06/04/2007.
CSE 461: Distance Vector Routing. Next Topic  Focus  How do we calculate routes for packets?  Routing is a network layer function  Routing Algorithms.
1 Computer Networks Routing Algorithms. 2 IP Packet Delivery Two Processes are required to accomplish IP packet delivery: –Routing discovering and selecting.
CSE 461: Link State Routing. Link State Routing  Same assumptions/goals, but different idea than DV:  Tell all routers the topology and have each compute.
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
1 LAN switching and Bridges Relates to Lab 6. Covers interconnection devices (at different layers) and the difference between LAN switching (bridging)
Delivery, Forwarding and
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 8: Bridging Slides used with permissions.
Routing Concepts Warren Toomey GCIT. Introduction Switches need to know the link address and location of every station. Doesn't scale well, e.g. to several.
1 CS 4396 Computer Networks Lab Dynamic Routing Protocols - II OSPF.
1 Computer Communication & Networks Lecture 22 Network Layer: Delivery, Forwarding, Routing (contd.)
Spring 2008CS 3321 Intradomain Routing Outline Algorithms Scalability.
Unicast Routing Protocols  A routing protocol is a combination of rules and procedures that lets routers in the internet inform each other of changes.
1 CS 4396 Computer Networks Lab LAN Switching and Bridges.
1 Introducing Routing 1. Dynamic routing - information is learned from other routers, and routing protocols adjust routes automatically. 2. Static routing.
M.Menelaou CCNA2 ROUTING. M.Menelaou ROUTING Routing is the process that a router uses to forward packets toward the destination network. A router makes.
RIP2 (Routing Information Protocol) Team Agile. Routing Protocols Link State – OSPF – ISIS Distance vector – RIP (version 1 and 2) – IGRP (Cisco Proprietary)
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 11 Unicast Routing Protocols.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Scaling Broadcast Ethernet Some slides used with.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 06_a Routing Protocols: RIP, OSPF, BGP Instructor: Dr. Li-Chuan Chen Date: 10/06/2003 Based in part upon.
Lecture 17 November 8Intra-domain routing November 13Internet routing 1 November 15Internet routing 2 November 20End-to-end protocols 1 November 22End-to-end.
Routing and Routing Protocols
Cisco Systems Networking Academy S2 C 11 Routing Basics.
CSE 461 University of Washington1 Topic How do we connect nodes with a switch instead of multiple access – Uses multiple links/wires – Basis of modern.
Computer Networks22-1 Network Layer Delivery, Forwarding, and Routing.
Spring 2000CS 4611 Routing Outline Algorithms Scalability.
Spring Routing: Part I Section 4.2 Outline Algorithms Scalability.
CS 6401 Intra-domain Routing Outline Introduction to Routing Distance Vector Algorithm.
1 LAN switching and Bridges Relates to Lab Outline Interconnection devices Bridges/LAN switches vs. Routers Bridges Learning Bridges Transparent.
4. Interconnecting Networks: Routers. © Tallal Elshabrawy 2 Bridges Vs Routers BRIDGES DO WELL IN SMALL (FEW HUNDRED HOSTS) WHILE ROUTERS USED IN LARGE.
IP tutorial - #2 Routing KAIST Dept. of CS NC Lab.
CSE 461: Distance Vector Routing Jeremy Elson Microsoft Research Ben Greenstein
Network Layer.
CS 5565 Network Architecture and Protocols
Instructor Materials Chapter 5: Dynamic Routing
Dynamic Routing Protocols part2
Routing Information Protocol (RIP)
Intra-Domain Routing Jacob Strauss September 14, 2006.
Routing: Distance Vector Algorithm
Chapter 5: Dynamic Routing
LAN switching and Bridges
Chapter 5: Dynamic Routing
Dan LI CS Department, Tsinghua University
Routing in Packet Networks Shortest Path Routing
CS 3700 Networks and Distributed Systems
Intradomain Routing Outline Introduction to Routing
CS 640: Introduction to Computer Networks
Dynamic Routing and OSPF
LAN switching and Bridges
Communication Networks NETW 501
CS 3700 Networks and Distributed Systems
Computer Networking Lecture 10: Intra-Domain Routing
Communication Networks
LAN switching and Bridges
Communication Networks
Bridges Neil Tang 10/10/2008 CS440 Computer Networks.
Network Layer.
CSE 461: Link State Routing
Presentation transcript:

CSE 561 – Bridging and Routing David Wetherall Spring 2000

djw // CS 561, Spring 2000 L3.2 This Lecture 1.Learning bridges and spanning trees 2.Intra-domain static routing

djw // CS 561, Spring 2000 L3.3 Limits of a LAN One shared LAN can limit us in terms of: –Distance –Number of nodes –Performance How do we scale to a larger, faster network? –We must be able to interconnect LANs nodes (wire) Hub (repeater)

djw // CS 561, Spring 2000 L3.4 Bridges and Extended LANs “Transparently” interconnect LANs –Receive frames from each LAN and forward to the other –Each LAN is its own domain; a bridge is not a repeater –Could have many ports or join to a remote LAN bridge

djw // CS 561, Spring 2000 L3.5 Backward Learning Algorithm To increase overall performance: –Shouldn’t forward A  B or C  D, should forward A  C and D  B How does the bridge know? –Learn who is where by observing source addresses –Forward using destination address; age for robustness bridge B A D C

djw // CS 561, Spring 2000 L3.6 Why stop at one bridge? LANs and bridges form a graph –LANs = nodes, bridges = edges But to avoid loops we forward only on select bridge ports! –Spanning Trees B3 A C E D B2 B5 B B7 K F H B4 J B1 B6 G I

djw // CS 561, Spring 2000 L3.7 Spanning Tree Example Spanning tree is a subset of the graph that spans it but has no cycles –Prune some ports Q: How do we find a spanning tree? B3 A C E D B2 B5 B B7 K F H B4 J B1 B6 G I

djw // CS 561, Spring 2000 L3.8 Spanning Tree Algorithm Distributed algorithm to compute spanning tree –Robust against failures, needs no organization Outline: –Goal is to turn some bridge ports off –Bridges send periodic “best” configuration messages –Elect a root node of the tree (lowest address) –Grow tree as shortest distances from the root –Turn off ports that aren’t on shortest paths

djw // CS 561, Spring 2000 L3.9 Algorithm continued Each bridge sends periodic messages containing: –Its address, address of the root bridge, and distance (in hops) to root Each bridge receives messages, updates “best” config. –Smaller root address is better, then shorter distance –To break ties, bridge with smaller address is better Initially, each bridge thinks it is the root –Sends configuration messages on all ports Later, bridges send only “best” configs –Add 1 to distance, send configs where still “best” (designated bridge) –Turn off forwarding on ports except those that send/receive “best”

djw // CS 561, Spring 2000 L3.10 Algorithm Example Message format: (root, dist to root, bridge) Sample messages sequences to and from B3: 1.B3 sends (B3, 0, B3) to B2 and B5 2.B3 receives (B2, 0, B2) and (B5, 0, B5) and accepts B2 as root 3.B3 sends (B2, 1, B3) to B5 4.B3 receives (B1, 1, B2) and (B1, 1, B5) and accepts B1 as root 5.B3 wants to send (B1, 2, B2) but doesn’t as its nowhere “best” 6.B3 receives (B1, 1, B2) and (B1, 1, B5) again … stable –Data forwarding is turned off to the LAN A

djw // CS 561, Spring 2000 L3.11 Some other details Configuration information is aged –If the root fails a new one will be elected Reconfiguration is damped –Adopt new spanning trees slowly to avoid temporary loops

djw // CS 561, Spring 2000 L3.12 LAN Switches LAN switches are high performance multi-port bridges –Looks like a hub, but frames are switched, not shared –Every host on a separate port, or can combine switches Ethernet Switch Ethernet Switch

djw // CS 561, Spring 2000 L3.13 Limitations of Bridges LAN switches form an effective small-scale network –Plug and play for real! Why can’t we build a large network using bridges? –Little control over forwarding paths –Size of bridge forwarding tables grows with number of hosts –Broadcast traffic flows freely over whole extended LAN –Spanning tree algorithm limits reconfiguration speed –Poor solution for connecting LANs with different MAC protocols

djw // CS 561, Spring 2000 L3.14 Forwarding and Routing Forwarding is the process that each router goes through for every packet to send it on its way –Involves local decisions Routing is the process that all routers go through to calculate the routing tables –Involves global decisions

djw // CS 561, Spring 2000 L3.15 Kinds of Routing Schemes Many routing schemes have been proposed/explored … Distributed or centralized Hop-by-hop or source-based Deterministic or stochastic Single or multi-path Static or dynamic route selection Internet is to the left

djw // CS 561, Spring 2000 L3.16 Routing Questions How to choose best path? –Defining “best” is slippery How to scale to millions of users? –Minimize control messages and routing table size How to adapt to failures or changes? –Node and link failures, plus message loss –We will use distributed algorithms

djw // CS 561, Spring 2000 L3.17 Some Pitfalls Using global knowledge is challenging –Hard to collect –Can be out-of-date –Needs to summarize in a locally-relevant way Inconsistencies in local/global knowledge can cause –Loops (black holes) –Oscillations, esp. when adapting to load

djw // CS 561, Spring 2000 L3.18 Routing is essentially a problem in graph theory =router =link Network as a Graph X =cost

djw // CS 561, Spring 2000 L3.19 Distance Vector Routing Assume: –Each router knows only address/cost of neighbors Goal: –Calculate routing table of next hop information for each destination at each router Idea: –Tell neighbors about learned distances to all destinations

djw // CS 561, Spring 2000 L3.20 DV Algorithm Each router maintains a vector of costs to all destinations as well as routing table –Initialize neighbors with known cost, others with infinity Periodically send copy of distance vector to neighbors –On reception of a vector, if neighbors path to a destination plus neighbor cost is better, then switch to better path update cost in vector and next hop in routing table Assuming no changes, will converge to shortest paths –But what happens if there are changes?

djw // CS 561, Spring 2000 L3.21 DV Example – Initial Table at A DestCostNext B1B C1C D  - E1E F1E G  -

djw // CS 561, Spring 2000 L3.22 DV Example – Final Table at A Reached in a single iteration … simple example DestCostNext B1B C1C D2C E1E F1E G2F

djw // CS 561, Spring 2000 L3.23 What if there are changes? One scenario: Suppose link between F and G fails 1.F notices failure, sets its cost to G to infinity and tells A 2.A sets its cost to G to infinity too, since it learned it from F 3.A learns route from C with cost 2 and adopts it XXXXX DestCostNext B1B C1C D2C E1E F1E G3C

djw // CS 561, Spring 2000 L3.24 Simple example –Costs in nodes are to reach Internet Now link between B and Internet fails … Count To Infinity Problem Internet A/2B/1

djw // CS 561, Spring 2000 L3.25 Count To Infinity Problem B nears of a route to the Internet via A with cost 2 So B switches to the “better” (but wrong!) route update Internet A/2B/3XXX

djw // CS 561, Spring 2000 L3.26 Count To Infinity Problem A hears from B and increases its cost update Internet A/4B/3XXX

djw // CS 561, Spring 2000 L3.27 Count To Infinity Problem B hears from A and (surprise) increases its cost Cycle continues and we “count to infinity” Packets caught in the crossfire loop between A and B update Internet A/4B/5XXX

djw // CS 561, Spring 2000 L3.28 Split Horizon Solves trivial count-to-infinity problem Router never advertises the cost of a destination back to to its next hop – that’s where it learned it from! Poison reverse: go even further – advertise back infinity However, DV protocols still subject to the same problem with more complicated topologies –Many enhancements suggested

djw // CS 561, Spring 2000 L3.29 Routing Information Protocol (RIP) DV protocol with hop count as metric –Infinity value is 16 hops; limits network size –Includes split horizon with poison reverse Routers send vectors every 30 seconds –With triggered updates for link failures –Time-out in 180 seconds to detect failures RIPv1 specified in RFC1058 – RIPv2 (adds authentication etc.) in RFC1388 –

djw // CS 561, Spring 2000 L3.30 Link State Routing Same assumptions/goals, but different idea: –Tell all routers the topology and have each compute best paths –Two phases: Topology dissemination (flooding) Shortest-path calculation (Dijkstra’s algorithm) Why? –In DV, routers hide their computation, making it difficult to decide what to use when there are changes –With LS, faster convergence and hopefully better stability –It is more complex though

djw // CS 561, Spring 2000 L3.31 Each router maintains link state database and periodically sends link state packets (LSPs) to neighbor –Contain [router, neighbors, costs] Each router forwards LSPs not already in its database on all ports except where received –Each LSP will travel over the same link at most once in each direction Flooding is fast, and can be made reliable with acknowledgments Flooding

djw // CS 561, Spring 2000 L3.32 Example LSP generated by X at T=0 Nodes become yellow as they receive it XA CBD XA CBD XA CBD XA CBD T=0T=1 T=2T=3

djw // CS 561, Spring 2000 L3.33 Complication: Sequence Numbers When link/router fails need to remove old data … How? –LSPs carry sequence numbers to determine new data –Send a new LSP with cost infinity to signal a link down What happens when a router fails and restarts? –What sequence number should it use? Don’t want data ignored. –One option: age LSPs and send with “cost 0” to purge Router can listen at startup to learn right sequence number What happens if the network is partitioned and heals? –Different LS databases must be synchronized –A version number is used!

djw // CS 561, Spring 2000 L3.34 Dijkstra’s Algorithm Graph algorithm for single-source shortest path S  {} Q  While Q != {} u  extract-min(Q) S  S plus {u} for each node v adjacent to u “relax” the cost of v  u is done

djw // CS 561, Spring 2000 L3.35 Dijkstra Example – Step

djw // CS 561, Spring 2000 L3.36 Dijkstra Example – Step

djw // CS 561, Spring 2000 L3.37 Dijkstra Example – Step

djw // CS 561, Spring 2000 L3.38 Dijkstra Example – Step

djw // CS 561, Spring 2000 L3.39 Dijkstra Example – Step

djw // CS 561, Spring 2000 L3.40 Dijkstra Example – Done

djw // CS 561, Spring 2000 L3.41 Open Shortest Path First (OSPF) Most widely-used Link State protocol today Basic link state algorithms plus many features: –Authentication of routing messages –Extra hierarchy: partition into routing areas –Load balancing: multiple equal cost routes