Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE544: Communication Networks-II Spring 2009 H. Liu Lecture 4 Includes teaching materials from D. Raychaudhuri, L. Peterson.

Similar presentations


Presentation on theme: "ECE544: Communication Networks-II Spring 2009 H. Liu Lecture 4 Includes teaching materials from D. Raychaudhuri, L. Peterson."— Presentation transcript:

1 ECE544: Communication Networks-II Spring 2009 H. Liu Lecture 4 Includes teaching materials from D. Raychaudhuri, L. Peterson

2 Today’s Lecture IP basics Routing principles –distance vector (RIP) –link state (OSPF)

3 IP Basics Best Effort Service Model Global Addressing Scheme ARP & DHCP

4 IP Internet A network of networks –Heterogeneity: inter-connect a collection of physical networks with various technologies (Ethernet, token-ring, …) –Scalability: Capable to grow to many nodes (size doubled every year) Hierarchical addressing and routing Protocol Stack R2 R1 H4 H5 H3 H2 H1 Network 2 (Ethernet) Network 1 (Ethernet) H6 Network 3 (FDDI) Network 4 (point-to-point) H7R3H8 R1 ETH FDDI IP ETH TCP R2 FDDI PPP IP R3 PPP ETH IP H1 IP ETH TCP H8 Appl.

5 Service Model Connectionless (datagram-based) Best-effort delivery (unreliable service) –packets are lost –packets are delivered out of order –duplicate copies of a packet are delivered –packets can be delayed for a long time Keep router simple

6 Packet Format Packet format VersionHLen TOSLength IdentFlagsOffset TTLProtocolChecksum SourceAddr DestinationAddr Options (variable) Pad (variable) 048161931 Data HLen: the length of header in 32-bit word Length: the length of the datagram, including header in bytes TOS: or Differentiated Services (DS) field, 2-bit Explicit Congestion Notification (ECN) + 6-bit Differentiated Services Code Point (DSCP) Ident: identifier set by source, unique over some reasonable time period. Checksum: only for header

7 Fragmentation and Reassembly Each network has some Maximum Transmission Unit (MTU) Strategy –fragment when necessary (MTU < Datagram) by router –try to avoid fragmentation at source host –re-fragmentation is possible –fragments are self-contained datagrams –delay reassembly until destination host –do not recover from lost fragments If one fragment is lost, the destination discards other fragments of this datagram –For ATM, frame is CS-PDU

8 Example Ident = xOffset = 0 Start of header 0 Rest of header 1400 data bytes Ident = xOffset = 0 Start of header 1 Rest of header 512 data bytes Ident = xOffset = 64 Start of header 1 Rest of header 512 data bytes Ident = xOffset = 128 Start of header 0 Rest of header 376 data bytes Flags: –Reserved; must be zero. –Don't Fragment (DF): drop if datagram > MTU –More Fragments (MF): set to 1 if fragmented (except the last fragment) Offset: measured in units of eight-byte blocks –fragmentation always happens on 8-byte boundaries –16-bit length (max 65,535)/8=>max possible offset value fit in 13 bit offset filed

9 Global Addresses Properties –globally unique –hierarchical: network + host Private addresses –10.0.0.0 - 10.255.255.255 –172.16.0.0 - 172.31.255.255 –192.168.0.0 - 192.168.255.255 Multicast addresses (class D): 224.0.0.0 to 239.255.255.255 Router: –Each interface has its own address Assigned by The Internet Assigned Numbers Authority (IANA) NetworkHost 724 0 A: NetworkHost 1416 10 B: NetworkHost 218 110 C:

10 Datagram Forwarding Strategy –every datagram contains destination’s address –if directly connected to destination network, then forward to node Compare the network part of the dest. address –if not directly connected to destination network, then forward to some router –forwarding table maps network number into next hop –each host has a default router –each router maintains a forwarding table Example (R2) Network NumberNext Hop 1R3 2R1 3Interface 1 4Interface 0

11 Address Translation Map IP addresses into physical hardware addresses (e.g. Ethernet MAC address) –destination host –next hop router Techniques –encode physical address in host part of IP address –table-based Address Resolution Protocol (ARP) –table of IP to MAC address bindings –broadcast ARP query if IP address not in table –target machine responds with its physical address –table entries are discarded if not refreshed

12 ARP Details Format –HardwareType: type of physical network (e.g., Ethernet) –ProtocolType: type of higher layer protocol (e.g., IP) –HLEN & PLEN: length of physical and protocol addresses –Operation: request or response –Source/Target-Physical/Protocol addresses Notes –table entries timeout in about 10 minutes –ARP request contains the source’s IP address and MAC address Target updates its ARP table with source’s IP-MAC address mapping Refresh the table entry for source’s IP-MAC address mapping if a node already has an entry for the source Otherwise, do not refresh the table entries TargetHardwareAddr (bytes 2–5) TargetProtocolAddr (bytes 0–3) SourceProtocolAddr (bytes 2–3) Hardware type = 1ProtocolType = 0x0800 SourceHardwareAddr (bytes 4–5) TargetHardwareAddr (bytes 0–1) SourceProtocolAddr (bytes 0–1) HLen = 48PLen = 32Operation SourceHardwareAddr (bytes 0–3) 081631

13 ATM ARP ATM ARP for mapping IP ATM addr –medium is not a broadcast type unlike Ethernet –requires servers which maintain ARP tables Configure each node with the ARP server’s ATM address Set up VC to the server Register the IP and ATM addresses with the server To send data to an IP address –Obtain dest.’s IP-ATM address mapping from the server –setup the ATM VC to the destination –concept of multiple “logical IP subnets” (LIS) Divided a large ATM into a number of LISs connected by routers

14 Dynamic Host Control Protocol (DHCP) DHCP server per network for IP address assignment Static list of IP physical addr or dynamic binding from common address pool Host boot-up via well-known broadcast address 255.255.255.255 to send DHCPDISCOVER DHCP server reply with assigned IP address, default router, etc. The IP address is “leased” to the host for some period of time –Renew the lease periodically before expire DHCP “relay agent” can be used to avoid one server per network

15 Dynamic Host Control Protocol (DHCP) DHCP packet format (runs over UDP) OperationHTypeHLenHops Xid Secs Flag ciaddr yiaddr siaddr giaddr chaddr (16B).... Host Other networks Unicast to server Broadcast DHCP relay DHCP server

16 Internet Control Message Protocol (ICMP) Network utilities: –Ping utility is implemented using the ICMP "Echo request" and "Echo reply" messages Alive, delay measurement Redirect (from router to source host) –Host connected to a network with two or more routers –One router finds it is better to use another router to reach a destination host or network Destination unreachable (protocol, port, or host) TTL exceeded (so datagrams don’t cycle forever) Checksum failed Reassembly failed Cannot fragment TypeCodechecksum IDsequence

17 Routing Basics

18 Routing Problem Routing Problem: How to find the lowest cost path between two nodes –the process to build the routing and forwarding tables in each router Network as a Graph –Each edge has a cost –Path cost = the sum of the costs of all the edges that make up the path. Factors –dynamic: link, node, topology, link cost changes

19 Two main approaches DV: Distance-vector protocols LS: Link state protocols Variations of above methods applied to: –Intra-domain routing (small/med networks) RIP, OSPF Domain: an internetwork in which all the routers are under the same administrative control (e.g. a single internet service provider, an university) –Inter-domain routing (large/global networks) BGP-4

20 Distance Vector Protocols Employed in the early Arpanet Each node constructs a vector containing the “distances” (costs) to all other nodes Distributes the vector to its immediate neighbors. –Information exchange vector of distances to destinations Distributed next hop computation –Distributed Bellman-Ford Algorithm Assumption: –Each node knows the cost of the link to each of its direct neighbor Can be configured or other means (e.g. measuring data rate, delay, packet loss rate, and estimating according to a metric) –Link down = infinite cost

21 Distance Vector Each node maintains a set of triples –(Destination, Cost, NextHop) Exchange updates with directly connected neighbors –periodically (on the order of several seconds) even nothing changes Let others know it is running Refresh the route –whenever routing table changes (called triggered update) Detect link or node failure –“Hello” message exchange between neighbors –Does not receive the expected periodical routing updates for the last few update cycles. Receive an update from another router that causes it to change its routing table Each update is a list of pairs: –( Destination, Cost) Update local table if receive a “better” route –smaller cost –came from next-hop Refresh existing routes; delete if they time out

22 Distributed Bellman-Ford Start Conditions: Each router starts with a vector of distances to all directly attached networks Send step: Each router advertises its current vector to all neighboring routers. Receive step: Upon receiving vectors from each of its neighbors, router computes its own distance to each neighbor. Then, for every network X, router finds that neighbor who is closer to X than any other neighbor. Router updates its cost to X. After doing this for all X, router goes to send step.

23 Example - initial distances A B E C D Info at node A B C D ABC 07~ 701 ~10 ~~2 7 1 1 2 28 Distance to node D ~ ~ 2 0 E18~2 1 8 ~ 2 0 E

24 E receives D’s routes A B E C D Info at node A B C D ABC 07~ 701 ~10 ~~2 7 1 1 2 28 Distance to node D ~ ~ 2 0 E18~2 1 8 ~ 2 0 E

25 E updates cost to C A B E C D Info at node A B C D ABC 07~ 701 ~10 ~~2 7 1 1 2 28 Distance to node D ~ ~ 2 0 E1842 1 8 ~ 2 0 E

26 A receives B’s routes A B E C D Info at node A B C D ABC 07~ 701 ~10 ~~2 7 1 1 2 28 Distance to node D ~ ~ 2 0 E1842 1 8 ~ 2 0 E

27 A updates cost to C A B E C D Info at node A B C D ABC 078 701 ~10 ~~2 7 1 1 2 28 Distance to node D ~ ~ 2 0 E1842 1 8 ~ 2 0 E

28 A receives E’s routes A B E C D Info at node A B C D ABC 078 701 ~10 ~~2 7 1 1 2 28 Distance to node D ~ ~ 2 0 E1842 1 8 ~ 2 0 E

29 A updates cost to C and D A B E C D Info at node A B C D ABC 075 701 ~10 ~~2 7 1 1 2 28 Distance to node D 3 ~ 2 0 E1842 1 8 ~ 2 0 E

30 Final distances A BC D Info at node A B C D ABC 065 601 510 332 7 1 1 2 28 Distance to node D 3 3 2 0 E1542 1 5 4 2 0 E E

31 Final distances after link failure A BC D Info at node A B C D ABC 078 701 810 1032 7 1 1 2 28 Distance to node D 10 3 2 0 E18911 1 8 9 0 E E

32 View from a node A B E C D dest A B C D ABD 1145 785 694 4112 7 1 1 2 28 Next hop E’s routing table

33 Distance Vector Example R1R2 R4 R3R5 4 29 4 1 Info at Node R1R2R3R4R5 R104--- R24024- R3-2019 R4-410- R5--9-0

34 DV Example (cont.) R1R2 R4 R3R5 4 29 4 1 Info at Node R1R2R3R4R5 R10468- R2402311 R362019 R4831010 R5-119100

35 DV Example (cont.) R1R2 R4 R3R5 4 29 4 1 Info at Node R1R2R3R4R5 R1046715 R2402311 R362019 R4731010 R515119100

36 DV Example – after link R2-R3 breaks R1R2 R4 R3R5 4 9 4 1 Info at Node R1R2R3R4R5 R1046715 R240-311 R36-019 R4731010 R515119100

37 DV Example – after link R2-R3 breaks R1R2 R4 R3R5 4 9 4 1 Info at Node R1R2R3R4R5 R104--- R240-414 R3--019 R4-41010 R5-149100

38 DV Example – after link R2-R3 breaks R1R2 R4 R3R5 4 9 4 1 Info at Node R1R2R3R4R5 R1049818 R2405414 R395019 R4841010 R518149100

39 The bouncing effect destcostNext hop B1B C2B destcostNext hop A1A C1C A 25 1 1 B C destcostNext hop A2B B1B

40 C sends routes to B A 25 1 B C destcostNext hop B-- C25C destcostNext hop A2B B1B destcostNext hop A-- C1B

41 B updates distance to A A 25 1 B C destcostNext hop A3C C1B destcostNext hop A2B B1B destcostNext hop B-- C25C

42 B sends routes to C A 25 1 B C destcostNext hop B-- C25C destcostNext hop A3C C1B destcostNext hop A4B B1B

43 C sends routes to B A 25 1 B C Count to infinity destcostNext hop B-- C25C destcostNext hop A4B B1B destcostNext hop A5C C1B

44 How are these loops caused? Observation 1: –B’s metric increases Observation 2: –C picks B as next hop to A –But, the implicit path from C to A includes itself!

45 Avoiding the Bouncing Effect Select loop-free paths Use a relatively small number as infinity (p artial solution) –E.g. the max number of hops across a network < 16, –pick 16 => infinity Bounds the time to count to infinity However, problem if the network grows to a point where some nodes are separated by more than 16 Each route advertisement carries entire path –if a router sees itself in path, it rejects the route Split horizon: –A node does not send the routes it learned from a neighbor to that neighbor E.g. B has a route (E, 2, A), does not include (E, 2) in the routing update to A –Only work for routing loops involved in two nodes Split horizon with poison reverse –B sends (E, infinity) to A, A will not use B to get to E. –Once again, Only work for routing loops involved in two nodes

46 Distance Vector in Practice RIP and RIPv2 –RIP is a UDP-based protocol –uses split-horizon/poison reverse –Cost: Hop count –The special address 0.0.0.0 is used to describe a default route. –RIP2: carry subnet information, support for variable length subnet masks (VLSM), MD5 authentication –RIPv2 multicasts routing updates to 224.0.0.9, as opposed to RIP which uses broadcast commandVersionMust be zero address family identifier 1Route Tag 1 (only for RIP2) IPv4 address 1 Subnet Mask 1 (only for RIP2, zero for RIP1) Next Hop 1 (only for RIP2, zero for RIP1) Cost/Metric 1 address family identifier 2Route Tag 2 More destinations

47 Link State Routing Assumptions: Each node knows –The state of links to its neighbors –The cost of each link Step 1: Each node broadcasts its link state information to all other nodes –Each node obtains the knowledge of all the links in the network Step 2: Each node locally computes shortest paths to all other nodes from the collected link-state knowledge of the complete network.

48 Link State Routing: Building blocks Reliable broadcast mechanism –Reliable Flooding All the nodes get a copy of link state info from all other nodes Consistent network view –sequence number in each link-state message Which link-state message is more recent. –Acknowledgements and retransmissions Shortest path tree (SPT) algorithm –Dijkstra’s algorithm

49 Link state packets (LSPs) Periodical updates: each node creates a Link state packet (LSP) periodically, containing: –Node ID –List of neighbors and link cost –Sequence number Increase by 1 for each new message –Time to live (TTL) Triggered Updates: create a new LSP when the link- state to one of its neighbors changes –Periodic “Hello” packets for link and node failure detection Node outputs LSP on all its links New LSP flooded over the network

50 Reliable flooding When node i receives LSP generated by node j: –If LSP is the more recent LSP from j that i has seen before (sequence # is larger), i saves it in database and forwards a copy on all links except link LSP was received on. –Otherwise, discard LSP.

51 SPT algorithm (Dijkstra) SPT = {s}, itself for all nodes n –if n adjacent to s then D(n) = cost (s, n) –else D(n) = infinity Loop –find a node w not in SPT, where D(w) is min –add w in SPT –for all n adjacent to w and not in SPT D(n) = min (D(n), D(w) + L(w, n)) until all nodes are in SPT

52 Link State Algorithm Flooding: 1) Periodically distribute link-state advertisement (LSA) to neighbors 2) Install received LSA in LS database 3) Re-distribute LSA to all neighbors Path Computation 1) Use Dijkstra’s shortest path algorithm to compute distances to all destinations 2) Install pair in forwarding table

53 Implementation of Dijkstra’s Algorithm (Method 1) Forward search algorithm (an implementation of Dijkstra) Maintain two lists: Tentative, Confirmed Initialization: Confirmed ={ (s, cost=0, nexthop=-)}, itself Iterative: –For a newly added node in Confirmed, called “Next”, select its LSP for each neighbor of “Next”, v, and v not in Confirmed, –calculate the cost to v via “Next” –D(v) = D(Next) + L(Next, v) –If v is not inTentative, Add (v, D(v), Nexthop) to Tentative –if v is in Tentative but D(v) = D(Next) + L(Next, v) < currently listed cost, replace the current entry with (v, D(v), Nexthop) in Tentative If Tentative is empty, stop Otherwise, move the lowest cost entry in Tentative to Confirmed, go to step new entry process in Confirmed

54 Dijkstra/OSPF Method 1 R1R2 R4 R3R5 4 29 4 1 Step #Confirmed (R#, cost, next hop) Tentative (R#, cost, next hop) 1(R1,0,-)- 2 (R2,4,R2) 3(R1,0,-) (R2,4,R2) (R3,6,R2) (R4,8,R2)

55 Dijkstra/OSPF Method 1 R1R2 R4 R3R5 4 29 4 1 Step #Confirmed (R#, cost, next hop) Tentative (R#, cost, next hop) 4(R1,0,-) (R2,4,R2) (R3,6,R2)(R4,8,R2) (R4,7,R2) (R5,15,R2) 5(R1,0,-) (R2,4,R2) (R3,6,R2) (R4,7,R2) (R5,15,R2)

56 Dijkstra/OSPF Method 1 R1R2 R4 R3R5 4 29 4 1 Step #Confirmed (R#, cost, next hop) Tentative (R#, cost, next hop) 6(R1,0,-) (R2,4,R2) (R3,6,R2) (R4,7,R2) (R5,15,R2)

57 Dijkstra SPT Method 2 AF B DE C 2 2 2 3 1 1 1 3 5 5 B CDEF

58 AF B DE C 2 2 2 3 1 1 1 3 5 5 B CDEF

59 AF B DE C 2 2 2 3 1 1 1 3 5 5 B CDEF

60 AF B DE C 2 2 2 3 1 1 1 3 5 5 B CDEF

61 AF B DE C 2 2 2 3 1 1 1 3 5 5 B CDEF

62 AF B DE C 2 2 2 3 1 1 1 3 5 5 B CDEF

63 Link State in Practice OSPF (Open Shortest Path First Protocol) –most commonly used routing protocol in the Internet –support for authentication, addl hierarchy (partition a domain into areas), load balancing (multiple routes to the same place)

64 OSPF Link-State Advertisement LS AgeOptionsType=1 0Flags0Number of links Link typeNum_TOSMetric Link state ID Advertising router LS sequence number Link ID Link data Optional TOS information More links LS checksumLength

65 Link State Characteristics With consistent Link State Databases (LSDBs), all nodes compute consistent loop- free paths Limited by Dijkstra computation overhead, space requirements Can still have transient loops A B C D 1 3 52 1 Packet from C->A may loop around BDC

66 OSPF Sequencing and Aging 32-bit sequence number field, does not wrap LSP’s compared on basis of sequence number –To get most recent message LSP’s purged after about an hour –To remove old link-state info from the network Synchronized expiration of LSPs –expired LSP reflooded with age zero –Tell other nodes to delete this LSP On startup, router need not wait –can start with lowest sequence number –will be informed if its own LSP is in network

67 Problem: Router Failure A failed router and comes up but does not remember the last sequence number it used before it crashed New LSPs may be ignored if they have lower sequence number

68 One solution: LSP Aging Nodes periodically decrement age (TTL) of stored LSPs LSPs expire when TTL reaches 0 –LSP is re-flooded once TTL = 0 Rebooted router waits until all LSPs have expired Trade-off between frequency of LSPs periodic updates (overhead) and router wait after reboot

69 Link Metrics Simplest: assign a cost of 1 to all links (static metric) –Hop count, least cost path = the fewest hops –good only if links are homogeneous –not the case in the Internet Consider link data rate, delay, load, etc. –Stability is important –Load is more dynamic and hard to measure Examples –Queue size –Delay = (DepartTime – ArrivalTime) + TransmissionTime + Latency –Link Utilization –1/link_bandwidth

70 Routing metric v.s. link utilization Cost = f(link utilization, link capacity, link latency), heuristic, from experiments –Smooth the variation of the metric with time –Compress the dynamic range of the metric Cost of highly loaded link never more than 3*cost when idle Most expensive link is 7 * least expensive link –Account for the link type High-speed satellite link is more attractive than low-speed terrestrial link 0 30 60 140 75 50%100%25%75% 225 Utilization 9.6 Kbps satellite link 9.6 Kbps terrestrial link 56 Kbps terrestrial link 56 Kbps satellite link 90 New metric (routing units)

71 Distance Vector vs. Link State Distance Vector A node exchanges routing info only with its directly connected neighbors Exchanged routing info: distance to all nodes in its routing table (everything this node has learned) Route computation: Distributed Bellman- Ford Link State A node floods its link- state advertisement to all the nodes in the network Exchanged routing info: the state of the links to its directly connected links Route computation: Dijkstra’s algorithm

72 Layer 2 vs. Layer 3 Layer 2 switching –Based on MAC address –Self configuring and plug & play –Transparent to protocols above the MAC layer –Fast and inexpensive –Flat –Does not scale to extremely large networks –Does not limit the scope of broadcasts Layer 3 routing –Based on IP address –Must get IP address (DHCP or manual assign) –Easily connect LANs that uses different link protocols (heterogeneous) –Hierarchical addressing –Scalable to large network by subnet routing –Broadcast limited only in a subnet

73 73 Today’s Homework Peterson & Davie, Chap 4 -4.12 -4.13 -4.16 -4.21 Download and browse RIP and OSPF RFC’s Due on Fri (2/27)


Download ppt "ECE544: Communication Networks-II Spring 2009 H. Liu Lecture 4 Includes teaching materials from D. Raychaudhuri, L. Peterson."

Similar presentations


Ads by Google