Computer Networking: Network Layer - COE332 PDF
Document Details
Uploaded by SolicitousHappiness2293
J.F Kurose and K.W. Ross
Tags
Summary
These are lecture notes on the network layer of computer networking, focusing on topics like network layer service models, forwarding versus routing, how a router works, routing (path selection), broadcast, multicast, instantiation, implementation in the Internet, and related concepts.
Full Transcript
Computer Networking: A Top Down Approach 6th edition Addison-Wesley All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved COE332: Computer Networks Network Layer C...
Computer Networking: A Top Down Approach 6th edition Addison-Wesley All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved COE332: Computer Networks Network Layer Chapter 4: network layer chapter goals: understand principles behind network layer services: network layer service models forwarding versus routing how a router works routing (path selection) broadcast, multicast instantiation, implementation in the Internet Network Layer 4-2 Network layer application transport segment transport network from sending to data link physical network network receiving host network data link data link physical data link physical on sending side physical network data link network data link encapsulates physical physical segments into network data link network data link datagrams physical network data link physical on receiving side, physical application delivers segments to network transport data link network network physical data link transport layer network data link data link physical physical physical network layer protocols in every host, router router examines Network Layer 4-3 Two key network-layer functions forwarding: move analogy: packets from router’s input to routing: process of appropriate router planning trip from output source to dest routing: determine forwarding: process route taken by of getting through packets from source single interchange to dest. routing algorithms Network Layer 4-4 nterplay between routing and forwarding routing algorithm routing algorithm determines end-end-path through network local forwarding table forwarding table determines header value output link local forwarding at this router 0100 3 0101 2 0111 2 1001 1 value in arriving packet’s header 0111 1 3 2 Network Layer 4-5 Connection setup 3rd important function in some network architectures: ATM, frame relay, X.25 before datagrams flow, two end hosts and intervening routers establish virtual connection routers get involved network vs transport layer connection service: network: between two hosts (may also involve intervening routers in case of VCs) transport: between two processes Network Layer 4-6 Network service model Q: What service model for “channel” transporting datagrams from sender to receiver? example services example services for individual for a flow of datagrams: datagrams: guaranteed delivery in-order datagram guaranteed delivery delivery with less than 40 guaranteed msec delay minimum bandwidth to flow restrictions on changes in inter- packet spacing Network Layer 4-7 Network layer service models: Guarantees ? Network Service Congestion Architecture Model Bandwidth Loss Order Timing feedback Internet best effort none no no no no (inferred via loss) ATM CBR constant yes yes yes no rate congestion ATM VBR guaranteed yes yes yes no rate congestion ATM ABR guaranteed no yes no yes minimum ATM UBR none no yes no no Network Layer 4-8 Connection, connection-less service datagram network provides network- layer connectionless service virtual-circuit network provides network- layer connection service analogous to TCP/UDP connecton- oriented / connectionless transport- layer services, but: service: host-to-host no choice: network provides one or the other implementation: in network core Network Layer 4-9 Datagram networks no call setup at network layer routers: no state about end-to-end connections no network-level concept of “connection” packets forwarded using destination host address application application transport transport network 1. send datagrams 2. receive datagrams network data link data link physical physical Network Layer 4-10 Datagram forwarding table 4 billion IP routing algorithm addresses, so rather than list individual local forwarding table destination address dest address output list range of address-range 1 3 link addresses address-range 2 2 (aggregate table address-range 3 address-range 4 2 1 entries) IP destination address in arriving packet’s header 1 3 2 Network Layer 4-11 Datagram forwarding table Destination Address Range Link Interface 11001000 00010111 00010000 00000000 through 0 11001000 00010111 00010111 11111111 11001000 00010111 00011000 00000000 through 1 11001000 00010111 00011000 11111111 11001000 00010111 00011001 00000000 through 2 11001000 00010111 00011111 11111111 otherwise 3 : but what happens if ranges don’t divide up so nicely? Network Layer 4-12 Longest prefix matching longest prefix matching when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address. Destination Address Range Link interface 11001000 00010111 00010*** ********* 0 11001000 00010111 00011000 ********* 1 11001000 00010111 00011*** ********* 2 otherwise 3 examples: DA: 11001000 00010111 00010110 10100001 which interface? DA: 11001000 00010111 00011000 10101010 which interface? Network Layer 4-13 The Internet network layer host, router network layer functions: transport layer: TCP, UDP routing protocols IP protocol path selection addressing conventions RIP, OSPF, BGP datagram format network packet handling conventions layer forwarding table ICMP protocol error reporting router link layer “signaling” physical layer Network Layer 4-14 IP datagram format IP protocol version 32 bits number total datagram header length type of length (bytes) ver head. length (bytes) len service for “type” of data fragment fragmentation/ 16-bit identifier flgs offset reassembly max number time to upper header remaining hops live layer checksum (decremented at 32 bit source IP address each router) 32 bit destination IP address upper layer protocol to deliver payload to options (if any) e.g. timestamp, record route how much overhead? data taken, specify 20 bytes of TCP (variable length, list of routers 20 bytes of IP typically a TCP to visit. = 40 bytes + app or UDP segment) layer overhead Network Layer 4-15 IP fragmentation, reassembly network links have MTU (max.transfer size) - largest fragmentation: … possible link-level in: one large datagram frame out: 3 smaller datagrams different link types, different MTUs reassembly large IP datagram divided (“fragmented”) … within net one datagram becomes several datagrams “reassembled” Network Layer 4-16 IP fragmentation, reassembly length ID fragflag offset example: =4000 =x =0 =0 4000 byte datagram one large datagram becomes several smaller datagrams MTU = 1500 bytes 1480 bytes in length ID fragflag offset data field =1500 =x =1 =0 offset = length ID fragflag offset 1480/8 =1500 =x =1 =185 length ID fragflag offset =1040 =x =0 =370 Network Layer 4-17 IP addressing: introduction 223.1.1.1 IP address: 32-bit 223.1.2.1 identifier for host, router interface 223.1.1.2 223.1.1.4 223.1.2.9 interface: connection between 223.1.3.27 host/router and 223.1.1.3 223.1.2.2 physical link router’s typically have multiple 223.1.3.1 223.1.3.2 interfaces host typically has one or two interfaces (e.g., wired Ethernet, 223.1.1.1 = 11011111 00000001 00000001 00000001 wireless 802.11) IP addresses 223 1 1 1 associated with each interface Network Layer 4-18 IP addressing: introduction 223.1.1.1 Q: how are 223.1.2.1 interfaces actually connected? 223.1.1.2 223.1.1.4 223.1.2.9 A: we’ll learn about that in chapter 5, 223.1.1.3 223.1.3.27 6. 223.1.2.2 A: wired Ethernet interfaces connected by Ethernet switches 223.1.3.1 223.1.3.2 For now: don’t need to worry about how one interface is connected to another (with no A: wireless WiFi interfaces intervening router) connected by WiFi base station Network Layer 4-19 Subnets IP address: 223.1.1.1 subnet part - high order bits 223.1.1.2 223.1.2.1 host part - low 223.1.1.4 223.1.2.9 order bits 223.1.2.2 what’s 223.1.3.27 a subnet ? 223.1.1.3 device interfaces subnet with same subnet part of IP address 223.1.3.1 223.1.3.2 can physically reach each other without intervening network consisting of 3 subnets router Network Layer 4-20 Subnets 223.1.1.0/24 223.1.2.0/24 223.1.1.1 recipe to determine the 223.1.1.2 223.1.2.1 subnets, detach 223.1.1.4 223.1.2.9 each interface 223.1.2.2 from its host or 223.1.1.3 223.1.3.27 router, creating subnet islands of isolated networks 223.1.3.1 223.1.3.2 each isolated network is called 223.1.3.0/24 a subnet subnet mask: /24 Network Layer 4-21 Subnets 223.1.1.2 how many? 223.1.1.1 223.1.1.4 223.1.1.3 223.1.9.2 223.1.7.0 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.3.27 223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2 Network Layer 4-22 IP addressing: CIDR CIDR: Classless InterDomain Routing subnet portion of address of arbitrary length address format: a.b.c.d/x, where x is # bits in subnet subnet host portion of address part part 11001000 00010111 00010000 00000000 200.23.16.0/23 Network Layer 4-23 IP addresses: how to get one? Q: How does a host get IP address? hard-coded by system admin in a file Windows: control-panel->network- >configuration->tcp/ip->properties UNIX: /etc/rc.config DHCP: Dynamic Host Configuration Protocol: dynamically get address from as server “plug-and-play” Network Layer 4-24 DHCP: Dynamic Host Configuration Protocol goal: allow host to dynamically obtain its IP address from network server when it joins network can renew its lease on address in use allows reuse of addresses (only hold address while connected/“on”) support for mobile users who want to join network (more shortly) DHCP overview: host broadcasts “DHCP discover” msg [optional] DHCP server responds with “DHCP offer” msg [optional] host requests IP address: “DHCP request” msg DHCP server sends address: “DHCP ack” msg Network Layer 4-25 DHCP client-server scenario DHCP 223.1.1.0/24 server 223.1.1.1 223.1.2.1 223.1.1.2 arriving DHCP 223.1.1.4 223.1.2.9 client needs address in this 223.1.3.27 223.1.2.2 network 223.1.1.3 223.1.2.0/24 223.1.3.1 223.1.3.2 223.1.3.0/24 Network Layer 4-26 DHCP client-server scenario DHCP server: 223.1.2.5 DHCP discover arriving client src : 0.0.0.0, 68 Broadcast: is there a dest.: 255.255.255.255,67 DHCP server yiaddr: 0.0.0.0out transaction there? ID: 654 DHCP offer src: 223.1.2.5, 67 Broadcast: I’m a DHCP dest: 255.255.255.255, 68 server! Here’s an IP yiaddrr: 223.1.2.4 transaction address youID:can 654 use lifetime: 3600 secs DHCP request src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 Broadcast: OK. I’ll yiaddrr: 223.1.2.4 take that IPID:address! transaction 655 lifetime: 3600 secs DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, Broadcast: 68 OK. You’ve yiaddrr: 223.1.2.4 gottransaction that IPID:address! 655 lifetime: 3600 secs Network Layer 4-27 DHCP: more than IP addresses DHCP can return more than just allocated IP address on subnet: address of first-hop router for client name and IP address of DNS sever network mask (indicating network versus host portion of address) Network Layer 4-28 DHCP: example DHCP DHCP connecting laptop DHCP UDP needs its IP address, DHCP IP DHCP Eth addr of first-hop Phy router, addr of DNS DHCP server: use DHCP DHCP request encapsulated in UDP, DHCP DHCP 168.1.1.1 encapsulated in IP, DHCP UDP encapsulated in 802.1 DHCP IP DHCP Eth router with DHCP Ethernet frame Phy server built into broadcast (dest: router FFFFFFFFFFFF) on LAN, received at router running DHCP Ethernet server demuxed to IP demuxed, UDP demuxed to DHCP Network Layer 4-29 DHCP: example DHCP DHCP DCP server DHCP UDP formulates DHCP DHCP IP ACK containing DHCP Eth client’s IP address, Phy IP address of first- hop router for client, name & IP address encapsulation of DHCP DHCP of DNSserver, DHCP serverframe DHCP UDP forwarded to client, DHCP IP demuxing up to DHCP Eth router with DHCP DHCP at client Phy server built into client now knows its DHCP router IP address, name and IP address of DSN server, IP address of its first- hop router Network Layer 4-30 IP addresses: how to get one? Q: how does network get subnet part of IP addr? A: gets allocated portion from its provider ISP’s address space ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23... ….. …. …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Network Layer 4-31 Hierarchical addressing: route aggregation erarchical addressing allows efficient advertisement of routin formation: Organization 0 200.23.16.0/23 Organization 1 “Send me anything 200.23.18.0/23 with addresses Organization 2 beginning 200.23.20.0/23. Fly-By-Night-ISP 200.23.16.0/20”... Internet. Organization 7. 200.23.30.0/23 “Send me anything ISPs-R-Us with addresses beginning 199.31.0.0/16” Network Layer 4-32 Hierarchical addressing: more specific routes ISPs-R-Us has a more specific route to Organization 1 Organization 0 200.23.16.0/23 “Send me anything with addresses Organization 2 beginning 200.23.20.0/23. Fly-By-Night-ISP 200.23.16.0/20”... Internet. Organization 7. 200.23.30.0/23 “Send me anything ISPs-R-Us with addresses Organization 1 beginning 199.31.0.0/16 or 200.23.18.0/23” 200.23.18.0/23 Network Layer 4-33 IP addressing: the last word... Q: how does an ISP get block of addresses? A: ICANN: Internet Corporation for Assigned Names and Numbers http://www.icann.org/ allocates addresses manages DNS assigns domain names, resolves disputes Network Layer 4-34 NAT: network address translation rest of local network Internet (e.g., home network) 10.0.0/24 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 all datagrams leaving datagrams with source or local destination in this network network have same have 10.0.0/24 address for single source NAT IP source, destination (as usual) address: 138.76.29.7,different Network Layer 4-35 NAT: network address translation motivation: local network uses just one IP address as far as outside world is concerned: range of addresses not needed from ISP: just one IP address for all devices can change addresses of devices in local network without notifying outside world can change ISP without changing addresses of devices in local network devices inside local net not explicitly addressable, visible by outside world (a security plus) Network Layer 4-36 NAT: network address translation implementation: NAT router must: outgoing datagrams: replace (source IP address, port #) of every outgoing datagram to (NAT IP address, new port #)... remote clients/servers will respond using (NAT IP address, new port #) as destination addr remember (in NAT translation table) every (source IP address, port #) to (NAT IP address, new port #) translation pair incoming datagrams: replace (NAT IP address, new port #) in dest fields of every incoming datagram with corresponding (source IP Network address, Layer 4-37 NAT: network address translation NAT translation table 1: host 10.0.0.1 2: NAT router WAN side addr LAN side addr changes datagram sends datagram to source addr from 138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80 10.0.0.1, 3345 to …… …… 138.76.29.7, 5001, updates table S: 10.0.0.1, 3345 D: 128.119.40.186, 80 10.0.0.1 1 S: 138.76.29.7, 5001 2 D: 128.119.40.186, 80 10.0.0.4 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 10.0.0.3 4: NAT router 3: reply arrives changes datagram dest. address: dest addr from 138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345 Network Layer 4-38 NAT: network address translation 16-bit port-number field: 60,000 simultaneous connections with a single LAN-side address! NAT is controversial: routers should only process up to layer 3 violates end-to-end argument NAT possibility must be taken into account by app designers, e.g., P2P applications address shortage should instead be solved by IPv6 Network Layer 4-39 NAT traversal problem client wants to connect to server with address 10.0.0.1 10.0.0.1 client server address 10.0.0.1 local to LAN (client can’t ? use it as destination addr) 10.0.0.4 only one externally visible NATed address: 138.76.29.7 138.76.29.7 NAT solution1: statically router configure NAT to forward incoming connection requests at given port to server e.g., (123.76.29.7, port 2500) always forwarded to 10.0.0.1 port 25000 Network Layer 4-40 NAT traversal problem solution 2: Universal Plug and Play (UPnP) Internet Gateway Device (IGD) 10.0.0.1 Protocol. Allows NATed IGD host to: learn public IP address (138.76.29.7) add/remove port NAT router mappings (with lease times) i.e., automate static NAT port map configuration Network Layer 4-41 NAT traversal problem solution 3: relaying (used in Skype) NATed client establishes connection to relay external client connects to relay relay bridges packets between to connections 2. connection to 1. connection 10.0.0.1 relay initiated to by client relay initiated 3. relaying by NATed host client established 138.76.29.7 NAT router Network Layer 4-42 IPv6: motivation initial motivation: 32-bit address space soon to be completely allocated. additional motivation: header format helps speed processing/forwarding header changes to facilitate QoS IPv6 datagram format: fixed-length 40 byte header no fragmentation allowed Network Layer 4-43 IPv6 datagram format riority: identify priority among datagrams in flow ow Label: identify datagrams in same “flow.” (concept of“flow” not well defined). ext header: identify upper layer protocol for data ver pri flow label payload len next hdr hop limit source address (128 bits) destination address (128 bits) data 32 bits Network Layer 4-44 Other changes from IPv4 checksum: removed entirely to reduce processing time at each hop options: allowed, but outside of header, indicated by “Next Header” field ICMPv6: new version of ICMP additional message types, e.g. “Packet Too Big” multicast group management functions Network Layer 4-45 Transition from IPv4 to IPv6 not all routers can be upgraded simultaneously no “flag days” how will network operate with mixed IPv4 and IPv6 routers? tunneling: IPv6 datagram carried as payload in IPv4 datagram among IPv4 routers IPv4 header fields IPv6 header fields IPv4 payload IPv4 source, dest addr IPv6 source dest addr UDP/TCP payload IPv6 datagram IPv4 datagram Network Layer 4-46 Tunneling A B IPv4 tunnel E F connecting IPv6 routers logical view: IPv6 IPv6 IPv6 IPv6 A B C D E F physical view: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Network Layer 4-47 Tunneling A B IPv4 tunnel E F connecting IPv6 routers logical view: IPv6 IPv6 IPv6 IPv6 A B C D E F physical view: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 flow: X src:B src:B flow: X src: A dest: E src: A dest: F dest: E dest: F Flow: X Flow: X Src: A Src: A data Dest: F Dest: F data data data A-to-B: E-to-F: IPv6 B-to-C: B-to-C: IPv6 IPv6 inside IPv6 inside IPv4 IPv4 Network Layer 4-48 Interplay between routing, forwarding routing algorithm determines routing algorithm end-end-path through network forwarding table determines local forwarding table local forwarding at this router dest address output address-range 1 3 link address-range 2 2 address-range 3 2 address-range 4 1 IP destination address in arriving packet’s header 1 3 2 Network Layer 4-49 Graph abstraction 5 3 v w 5 2 u 2 1 z 3 1 2 x 1 y graph: G = (N,E) N = set of routers = { u, v, w, x, y, z } E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } aside: graph abstraction is useful in other network contexts, e.g., P2P, where N is set of peers and E is set of TCP connections Network Layer 4-50 Graph abstraction: costs 5 c(x,x’) = cost of link (x,x’) 3 e.g., c(w,z) = 5 v w 5 2 u cost could always be 1, or 2 3 1 z inversely related to bandwidth, 1 2 or inversely related to x 1 y congestion cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp) key question: what is the least-cost path between u and z ? outing algorithm: algorithm that finds that least cost path Network Layer 4-51 Routing algorithm classification Q: global or decentralized Q: static or information? dynamic? global: static: all routers have routes change slowly complete topology, link over time cost info dynamic: “link state” algorithms routes change more decentralized: quickly router knows periodic update physically-connected in response to link neighbors, link costs to cost changes neighbors iterative process of computation, exchange of info with neighbors Network Layer 4-52 “distance vector” Hierarchical routing our routing study thus far - idealization all routers identical network “flat” … not true in practice scale: with 600 administrative million autonomy destinations: internet = network of can’t store all dest’s networks in routing tables! each network admin routing table may want to control exchange would routing in its own swamp links! network Network Layer 4-53 Hierarchical routing aggregate routers gateway router: into regions, at “edge” of its own “autonomous AS systems” (AS) has link to router in routers in same another AS AS run same routing protocol “intra-AS” routing protocol routers in different AS can run different intra-AS routing protocol Network Layer 4-54 Interconnected ASes 3c 3a 2c 3b 2a AS3 2b 1c AS2 1a 1b AS1 1d forwarding table configured by both intra- and inter-AS Intra-AS Inter-AS routing algorithm Routing Routing algorithm algorithm intra-AS sets Forwarding entries for internal table dests inter-AS & intra-AS sets entries for external dests Network Layer 4-55 Inter-AS tasks suppose router in AS1 must: AS1 receives 1. learn which dests datagram destined are reachable outside of AS1: through AS2, which router should through AS3 forward packet to 2. propagate this gateway router, reachability info to but which one? all routers in AS1 job of inter-AS routing! 3c 3a 3b AS3 2c other 1c 2a networks other 1a 2b networks 1b AS2 AS1 1d Network Layer 4-56 Intra-AS Routing also known as interior gateway protocols (IGP) most common intra-AS routing protocols: RIP: Routing Information Protocol OSPF: Open Shortest Path First IGRP: Interior Gateway Routing Protocol (Cisco proprietary) Network Layer 4-57 RIP ( Routing Information Protocol) included in BSD-UNIX distribution in 1982 distance vector algorithm distance metric: # hops (max = 15 hops), each link has cost 1 DVs exchanged with neighbors every 30 sec in response message (aka advertisement) each advertisement: list of up to 25 destination subnets (in IP addressing sense) from router A to destination subnets: u v subnet hops w u 1 A B v 2 w 2 x x 3 z C D y 3 y z 2 Network Layer 4-58 RIP: example z w x y A D B C routing table in router D destination subnet next router # hops to dest w A 2 y B 2 z B 7 x -- 1 …. …..... Network Layer 4-59 RIP: example A-to-D advertisement dest next hops w - 1 x - 1 z C 4 …. …... z w x y A D B C routing table in router D destination subnet next router # hops to dest w A 2 y B 2 A 5 z B 7 x -- 1 …. …..... Network Layer 4-60 Chapter 4: done! 4.1 introduction 4.5 routing algorithms 4.2 virtual circuit and link state, distance datagram networks vector, hierarchical routing 4.3 what’s inside a 4.6 routing in the router Internet 4.4 IP: Internet Protocol RIP, OSPF, BGP datagram format, IPv4 addressing, ICMP, IPv6 understand principles behind network layer services: network layer service models, forwarding versus routing how a router works, routing (path selection), broadcast, multicast instantiation, implementation in the Internet Network Layer 4-61