230 likes | 320 Views
EEC-484/584 Computer Networks. Lecture 10 Wenbing Zhao wenbing@ieee.org (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer Networking book). Outline. Reminder ( for graduate students only ) Wiki-Page Project #1 due on today midnight!
E N D
EEC-484/584Computer Networks Lecture 10 Wenbing Zhao wenbing@ieee.org (Part of the slides are based on Drs. Kurose & Ross’s slides for their Computer Networking book)
Outline • Reminder (for graduate students only) • Wiki-Page Project #1 due on today midnight! • Distance vector routing • Hierarchical routing • Internet protocol • Header • Fragmentation EEC-484/584: Computer Networks
Distance Vector Routing • Also called Bellman-Ford or Ford-Fulkerson • Each router maintains a table (a vector), giving best known distance to each destination and which line to use to get there • Table is updated by exchanging info with neighbors • Table contains one entry for each router in network with • Preferred outgoing line to that destination • Estimate of time or distance to that destination • Once every T msec, router sends to each neighbor a list of estimated delays to each destination and receives same from those neighbors EEC-484/584: Computer Networks
A d(A,Y) Y At router A, for Z Compute d(A,X) + d(X,Z) and d(A,Y) + d(Y,Z), take minimum d(Y,Z) d(A,X) Z X d(X,Z) Distance Vector Routing d(A,Z) = min {d(A,v) + d(v,Z) } where min is taken over all neighbors v of A EEC-484/584: Computer Networks
cost to x y z x 0 2 7 y from ∞ ∞ ∞ z ∞ ∞ ∞ 2 1 7 z x y d(x,z) = min{d(x,y) + d(y,z), d(x,z) + d(z,z)} = min{2+1 , 7+0} = 3 d(x,y) = min{d(x,y) + d(y,y), d(x,z) + d(z,y)} = min{2+0 , 7+1} = 2 node x table cost to x y z x 0 2 3 y from 2 0 1 z 7 1 0 node y table cost to x y z x ∞ ∞ ∞ 2 0 1 y from z ∞ ∞ ∞ node z table cost to x y z x ∞ ∞ ∞ y from ∞ ∞ ∞ z 7 1 0 time EEC-484/584: Computer Networks
cost to x y z x 0 2 7 y from ∞ ∞ ∞ z ∞ ∞ ∞ 2 1 7 z x y d(x,z) = min{d(x,y) + d(y,z), d(x,z) + d(z,z)} = min{2+1 , 7+0} = 3 d(x,y) = min{d(x,y) + d(y,y), d(x,z) + d(z,y)} = min{2+0 , 7+1} = 2 node x table cost to cost to x y z x y z x 0 2 3 x 0 2 3 y from 2 0 1 y from 2 0 1 z 7 1 0 z 3 1 0 node y table cost to cost to cost to x y z x y z x y z x ∞ ∞ x 0 2 7 ∞ 2 0 1 x 0 2 3 y y from 2 0 1 y from from 2 0 1 z z ∞ ∞ ∞ 7 1 0 z 3 1 0 node z table cost to cost to cost to x y z x y z x y z x 0 2 7 x 0 2 3 x ∞ ∞ ∞ y y 2 0 1 from from y 2 0 1 from ∞ ∞ ∞ z z z 3 1 0 3 1 0 7 1 0 time EEC-484/584: Computer Networks
Distance Vector Routing • Delay A to B 12ms, to C 25ms, to D 40ms, to G 18ms • Delay J to A 8ms, to I 10ms, to H 12ms, to K 6ms • Delay J to A to G 8+18 = 26ms to I to G 10+31 = 41ms to H to G 12+6=18ms to K to G 6+31=37ms EEC-484/584: Computer Networks
Distance Vector Routing • Good news travels fast • Bad news travels slow • Count to infinity problem: Takes too long to converge upon router failure × Routers’ knowledge about the cost to A EEC-484/584: Computer Networks
Distance Vector Routing: Exercise • Consider the subnet shown below. Distance vector routing is used, and the following vectors have just come in to router C: from B: (5, 0, 8, 12, 6, 2); from D: (16, 12, 6, 0, 9, 10); and from E: (7, 6, 3, 9, 0, 4). The measured delays to B, D, and E, are 6, 3, and 5, respectively. What is C's new routing table? Give both the outgoing line to use and the expected delay. EEC-484/584: Computer Networks
Hierarchical Routing • Bigger network => bigger routing table • Use hierarchical structure similar to telephone network • Regions: router knows details of how to route packets within its region, does not know internals of other regions • Clusters of regions, zones of clusters, groups of zones • Tradeoff: savings in memory space may result in longer path EEC-484/584: Computer Networks
Hierarchical Routing EEC-484/584: Computer Networks
Design Principles for Internet • Make sure it works • Build prototypes first • Keep it simple • When in doubt, use the simplest solution • Make clear choices • If there are several ways of doing the same thing, choose one • Exploit modularity • Use protocol stacks, each of whose layers is independent of all the other ones EEC-484/584: Computer Networks
Design Principles for Internet • Expect heterogeneity • Different types of hardware, transmission facilities, and applications will occur on any large network • Avoid static options and parameters • Have the sender and receiver negotiate a value • Look for a good design; it need not be perfect • Be strict when sending and tolerant when receiving • Think about scalability • Consider performance and cost EEC-484/584: Computer Networks
Collection of Subnetworks The Internet is an interconnected collection of many networks, or Autonomous Systems (ASes) EEC-484/584: Computer Networks
Host, router network layer functions: • ICMP protocol • error reporting • router “signaling” • IP protocol • addressing conventions • datagram format • packet handling conventions • Routing protocols • path selection • RIP, OSPF, BGP forwarding table The Network Layer in Internet Transport layer: TCP, UDP Network layer Link layer physical layer EEC-484/584: Computer Networks
IP Datagram Format IP protocol version number 32 bits total datagram length (bytes) header length (bytes) Total length type of service IHL ver for fragmentation/ reassembly fragment offset “type” of data flgs 16-bit identifier max number remaining hops (decremented at each router) time to live header checksum protocol 32 bit source IP address 32 bit destination IP address upper layer protocol to deliver payload to E.g. timestamp, record route taken, specify list of routers to visit. Options (if any) data (variable length, typically a TCP or UDP segment) How much overhead with TCP? • 20 bytes of TCP • 20 bytes of IP • = 40 bytes + app layer overhead EEC-484/584: Computer Networks
The IPv4 Header • Version– 4 • IHL– length of header in 32-bit words • Min 5, max 15 – i.e., 60 bytes • Type of service - to distinguish different classes of service • To accommodate differentiated services (which class this packet belongs to) • Total length– header and data 65,535 (216-1) bytes • Identification– allows destination to determine which datagram a fragment belongs to EEC-484/584: Computer Networks
The IPv4 Header • Time to live– counter to limit packet lifetimes • Max lifetime 255sec • Packet is destroyed when counter becomes 0 • Protocol– which transport layer protocols being used • Header checksum– verifies header EEC-484/584: Computer Networks
The IPv4 Header • Options– security, error reporting, etc. • Some of the IP options EEC-484/584: Computer Networks
IP Fragmentation • Fragmentation Flags • DF – tells routers “Don’t Fragment” • MF – More Fragments. All fragments except last have this set. Used as check against total length • Fragment offset– where in datagram this fragment belongs • All fragments (payload in the IP packet) except last must be multiples of 8 bytes • The number of 8 byte blocks is called Number of Fragment Blocks (NFB) • The unit of the offset is NFB EEC-484/584: Computer Networks
Network links have MTU (max.transfer size) - largest possible link-level frame. different link types, different MTUs Large IP datagram divided (“fragmented”) within net one datagram becomes several datagrams “reassembled” only at final destination IP header bits used to identify, order related fragments IP Fragmentation & Reassembly fragmentation: in: one large datagram out: 3 smaller datagrams reassembly EEC-484/584: Computer Networks
length =1040 length =4000 length =1500 length =1500 ID =x ID =x ID =x ID =x MF =0 MF =0 MF =1 MF =1 offset =370 offset =185 offset =0 offset =0 IP Fragmentation and Reassembly Example • 4000 byte datagram • MTU = 1500 bytes One large datagram becomes several smaller datagrams 1480 bytes in data field offset = 1480/8 Fragment should be as large as possible EEC-484/584: Computer Networks
Exercise: IP Fragmentation • Suppose that host A is connected to a router R 1, R 1 is connected to another router, R 2, and R 2 is connected to host B. Suppose that a TCP message that contains 900 bytes of data and 20 bytes of TCP header is passed to the IP code at host A for delivery to B. Show the Total length, Identification, DF, MF, and Fragment offset fields of the IP header in each packet transmitted over the three links. Assume that link A-R1 can support a maximum frame size of 1024 bytes including a 14-byte frame header, link R1-R2 can support a maximum frame size of 512 bytes, including an 8-byte frame header, and link R2-B can support a maximum frame size of 512 bytes including a 12-byte frame header. EEC-484/584: Computer Networks