710 likes | 722 Views
ECE544: Communication Networks-II, Spring 2018. D. Raychaudhuri Lecture 4. Includes teaching materials from L. Peterson. Today’s Lecture. IP basics Service model, packet syntax IP address structure ARP, DHCP IP packet forwarding Routing principles
E N D
ECE544: Communication Networks-II, Spring 2018 D. Raychaudhuri Lecture 4 Includes teaching materials from L. Peterson
Today’s Lecture • IP basics • Service model, packet syntax • IP address structure • ARP, DHCP • IP packet forwarding • Routing principles • Bellman-Ford algorithm & distance vector (RIP) • Dijkstra algorithm and link state (OSPF)
IP Basics Best Effort Service Model Global Addressing Scheme ARP & DHCP IP Packet forwarding
Network 1 (Ethernet) H7 R3 H8 H1 H8 H2 H1 H3 TCP TCP Network 4 R1 R2 R3 (point-to-point) Network 2 (Ethernet) R1 IP IP IP IP IP R2 FDDI PPP ETH ETH ETH FDDI PPP ETH H4 Network 3 (FDDI) H5 H6 IP Internet • Concatenation of Networks • Protocol Stack
0 4 8 16 19 31 TOS Length V ersion HLen Ident Flags Offset TTL Protocol Checksum SourceAddr DestinationAddr Pad Options (variable) (variable) Data 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
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
Start of header Ident = x Offset = 0 0 Rest of header 1400 data bytes Start of header Ident = x 1 Offset = 0 Rest of header 512 data bytes Start of header Ident = x 1 Offset = 512 Rest of header 512 data bytes Start of header Ident = x 0 Offset = 1024 Rest of header 376 data bytes Example
7 24 A: 0 Network Host 14 16 B: 1 0 Network Host 21 8 C: 1 1 0 Network Host Global Addresses • Properties • globally unique • hierarchical: network + host • Dot Notation • 10.3.2.4 • 128.96.33.81 • 192.12.69.77
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
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
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
0 8 16 31 Hardware type = 1 ProtocolT ype = 0x0800 HLen = 48 PLen = 32 Operation SourceHardwareAddr (bytes 0 – 3) SourceHardwareAddr (bytes 4 – 5) SourceProtocolAddr (bytes 0 – 1) SourceProtocolAddr (bytes 2 – 3) T argetHardwareAddr (bytes 0 – 1) T argetHardwareAddr (bytes 2 – 5) T argetProtocolAddr (bytes 0 – 3) ARP Packet Format
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)
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
Dynamic Host Control Protocol (DHCP) • DHCP packet format (runs over UDP) Operation HType HLen Hops Xid Flag Secs ciaddr yiaddr siaddr giaddr chaddr (16B) ....
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
Routing Problem • Network as a Graph Problem: Find lowest cost path between two nodes • Factors • static: topology • dynamic: load
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
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
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
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.
Example - initial distances 1 Distance to node B C Info at node A B C D E 7 0 7 ~ ~ 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 ~ 2 0
E receives D’s routes 1 Distance to node B C Info at node A B C D E 7 0 7 ~ ~ 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 ~ 2 0
E updates cost to C 1 Distance to node B C Info at node A B C D E 7 0 7 ~ ~ 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 4 2 0
A receives B’s routes 1 Distance to node B C Info at node A B C D E 7 0 7 ~ ~ 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 4 2 0
A updates cost to C 1 Distance to node B C Info at node A B C D E 7 0 7 8 ~ 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 4 2 0
A receives E’s routes 1 Distance to node B C Info at node A B C D E 7 0 7 8 ~ 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 4 2 0
A updates cost to C and D 1 Distance to node B C Info at node A B C D E 7 0 7 5 3 1 A 8 2 B A 7 0 1 ~ 8 C ~ 1 0 2 ~ 1 2 D ~ ~ 2 0 2 D E E 1 8 4 2 0
Final distances 1 Distance to node B C Info at node A B C D E 7 0 6 5 3 1 A 8 2 B A 6 0 1 3 5 C 5 1 0 2 4 1 2 D 3 3 2 0 2 D E E 1 5 4 2 0
Final distances after link failure 1 Distance to node B C Info at node A B C D E 7 0 7 8 10 1 A 8 2 B 7 0 1 3 8 A C 8 1 0 2 9 1 2 D 10 3 2 0 11 D E E 1 8 9 11 0
View from a node E’s routing table 1 Next hop B C dest A B D 7 1 14 5 A B 8 2 7 8 5 A C 6 9 4 D 4 11 2 1 2 D E
Distance Vector Example 2 R3 9 R5 R1 4 R2 1 4 R4
DV Example (cont.) 2 R3 9 R5 R1 4 R2 1 4 R4
DV Example (cont.) 2 R3 9 R5 R1 4 R2 1 4 R4
DV Example – after link R2-R3 breaks R3 9 R5 R1 4 R2 1 4 R4
DV Example – after link R2-R3 breaks R3 9 R5 R1 4 R2 1 4 R4
DV Example – after link R2-R3 breaks R3 9 R5 R1 4 R2 1 4 R4
The bouncing effect dest cost dest cost 1 A 1 A B B 1 C 1 C 2 1 25 C dest cost A 2 B 1
C sends routes to B dest cost dest cost A ~ A B B 1 C 1 C 2 1 25 C dest cost A 2 B 1
B updates distance to A dest cost dest cost A 3 A B B 1 C 1 C 2 1 25 C dest cost A 2 B 1
B sends routes to C dest cost dest cost A 3 A B B 1 C 1 C 2 1 25 C dest cost A 4 B 1
C sends routes to B dest cost dest cost A 5 A B B 1 C 1 C 2 1 25 C dest cost A 4 B 1
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!
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
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 v x z y w u
Distance Vector in Practice • RIP and RIP2 • uses split-horizon/poison reverse • BGP/IDRP • propagates entire path • path also used for effecting policies
RIP Packet Format Command, Ver Zeros Net 1 Family Net 1 Addr Net 1 Addr (cont.) (net addr, distance pairs) Distance to Net 1 Net 2 Family Net 2 Addr Updates sent ~30 sec Distance to Net 2 ……
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
Link State Routing: Building blocks • Reliable broadcast mechanism • flooding • sequence number issues • Shortest path tree (SPT) algorithm • Dijkstra’s SPT algorithm