Download presentation
Presentation is loading. Please wait.
1
ECE544: Communication Networks-II, Spring 2010 D. Raychaudhuri Lecture 4 Includes teaching materials from 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 Concatenation of Networks 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
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 Datagram format VersionHLen TOSLength IdentFlagsOffset TTLProtocolChecksum SourceAddr DestinationAddr Options (variable) Pad (variable) 048161931 Data
6
Fragmentation and Reassembly Each network has some MTU Strategy –fragment when necessary (MTU < Datagram) –try to avoid fragmentation at source host –re-fragmentation is possible –fragments are self-contained datagrams –use CS-PDU (not cells) for ATM –delay reassembly until destination host –do not recover from lost fragments
7
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 = 512 Start of header 1 Rest of header 512 data bytes Ident = xOffset = 1024 Start of header 0 Rest of header 376 data bytes
8
Global Addresses Properties –globally unique –hierarchical: network + host Dot Notation –10.3.2.4 –128.96.33.81 –192.12.69.77 NetworkHost 724 0 A: NetworkHost 1416 10 B: NetworkHost 218 110 C:
9
Datagram Forwarding Strategy –every datagram contains destination’s address –if directly connected to destination network, then forward to host –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 Number Next Hop 1 R3 2 R1 3 interface 1 4 interface 0
10
Address Translation Map IP addresses into physical addresses –destination host –next hop router Techniques –encode physical address in host part of IP address –table-based ARP –table of IP to physical address bindings –broadcast request if IP address not in table –target machine responds with its physical address –table entries are discarded if not refreshed
11
ARP Details Request 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 –update table with source when you are the target –update table if already have an entry –do not refresh table entries upon reference
12
ARP Packet Format 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 –concept of multiple “logical IP subnets” (LIS)
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 pool Host boot-up via well-known address 255.255.255.255 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)....
16
Internet Control Message Protocol (ICMP) Echo (ping) Redirect (from router to source host) Destination unreachable (protocol, port, or host) TTL exceeded (so datagrams don’t cycle forever) Checksum failed Reassembly failed Cannot fragment
17
Routing Basics
18
Routing Problem Network as a Graph Problem: Find lowest cost path between two nodes Factors –static: topology –dynamic: load
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 –Inter-domain routing (large/global networks) BGP-4
20
Distance Vector Protocols Employed in the early Arpanet Distributed next hop computation –adaptive Unit of information exchange –vector of distances to destinations Distributed Bellman-Ford Algorithm
21
Distance Vector Each node maintains a set of triples –(Destination, Cost, NextHop) Exchange updates directly connected neighbors –periodically (on the order of several seconds) –whenever table changes (called triggered update) 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 (zero) 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 to 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--- R2405414 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 A 25 1 1 B C B C2 1 destcost A C1 1 destcost A B1 2 destcost
40
C sends routes to B A 25 1 B C B C2 1 destcost A C1 ~ destcost A B1 2 destcost
41
B updates distance to A A 25 1 B C B C2 1 destcost A C1 3 destcost A B1 2 destcost
42
B sends routes to C A 25 1 B C B C2 1 destcost A C1 3 destcost A B1 4 destcost
43
C sends routes to B A 25 1 B C B C2 1 destcost A C1 5 destcost A B1 4 destcost
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 One way of doing this: –each route advertisement carries entire path –if a router sees itself in path, it rejects the route BGP does it this way –Space proportional to diameter Cheng, Riley et al
46
Computing Implicit Paths To reduce the space requirements –propagate for each destination not only the cost but also its predecessor –can recursively compute the path –space requirements independent of diameter x y z wu v
47
Distance Vector in Practice RIP and RIP2 –uses split-horizon/poison reverse BGP/IDRP –propagates entire path –path also used for effecting policies
48
Link State Routing Each node assumed to know state of links to its neighbors Step 1: Each node broadcasts its state to all other nodes Step 2: Each node locally computes shortest paths to all other nodes from global state
49
Link State Routing: Building blocks Reliable broadcast mechanism –flooding –sequence number issues Shortest path tree (SPT) algorithm –Dijkstra’s SPT algorithm
50
Link state packets (LSPs) Periodically, each node creates a Link state packet containing: –Node ID –List of neighbors and link cost –Sequence number –Time to live (TTL) Node outputs LSP on all its links
51
Reliable flooding When node i receives LSP from node j: –If LSP is the most recent LSP from j that i has seen so far, i saves it in database and forwards a copy on all links except link LSP was received on. –Otherwise, discard LSP.
52
SPT algorithm (Dijkstra) SPT = {a} for all nodes v –if v adjacent to a then D(v) = cost (a, v) –else D(v) = infinity Loop –find w not in SPT, where D(w) is min –add w in SPT –for all v adjacent to w and not in SPT D(v) = min (D(v), D(w) + C(w, v)) until all nodes are in SPT
53
Link State Algorithm Flooding: 1) Periodically distribute link-state advertisement (LSA) to neighbors - LSA contains delays to each neighbor 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
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,R3) 5(R1,0,-) (R2,4,R2) (R3,6,R2) (R4,7,R3) (R5,15,R3)
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,R3) (R5,15,R3)
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, load balancing
64
OSPF Packets 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 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 LSP’s purged after about an hour Synchronized expiration of LSPs –expired LSP reflooded with age zero 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 and router wait after reboot
69
69 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/29)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.