Chapter 4: Network Layer

Slides:



Advertisements
Similar presentations
CPSC Network Layer4-1 IP addresses: how to get one? Q: How does a host get IP address? r hard-coded by system admin in a file m Windows: control-panel->network->configuration-
Advertisements

IP Addressing Introductory material.
CS 457 – Lecture 16 Global Internet - BGP Spring 2012.
4: Network Layer4a-1 IP Addressing: introduction r IP address: 32-bit identifier for host, router interface r interface: connection between host, router.
8-1 Last time □ Network layer ♦ Introduction forwarding vs. routing ♦ Virtual circuit vs. datagram details connection setup, teardown VC# switching forwarding.
Lecture 18 Network Layer (Internet Protocol)
Announcement r Recitation tomorrow on Project 2 r Midterm Survey at the end of this class.
Week 5: Internet Protocol Continue to discuss Ethernet and ARP –MTU –Ethernet and ARP packet format IP: Internet Protocol –Datagram format –IPv4 addressing.
Network Layer introduction 4.2 virtual circuit and datagram networks 4.3 what’s inside a router 4.4 IP: Internet Protocol  datagram format  IPv4.
IP Address 1. 2 Network layer r Network layer protocols in every host, router r Router examines IP address field in all IP datagrams passing through it.
Chapter 5 The Network Layer.
N/W Layer Addressing1 Instructor: Anirban Mahanti Office: ICT Class Location: ICT 121 Lectures: MWF 12:00 – 12:50 Notes.
Network Layer Overview and IP
11- IP Network Layer4-1. Network Layer4-2 The Internet Network layer forwarding table Host, router network layer functions: Routing protocols path selection.
Network Layer4-1 IP: Internet Protocol r Datagram format r IPv4 addressing r DHCP: Dynamic Host Configuration Protocol r NAT: Network Address Translation.
Network Layer4-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley,
Network Layer4-1 Chapter 4 Network Layer A note on the use of these ppt slides: We’re making these slides freely available to all (faculty, students, readers).
Network Layer4-1 Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving side,
Network Layer4-1 Network layer r transport segment from sending to receiving host r on sending side encapsulates segments into datagrams r on rcving side,
12 – NAT, ICMP, IPv6 Network Layer4-1. Network Layer4-2 Chapter 4 Network Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd.
IP Addressing. Dotted Decimal Notation IP addresses are written in a so-called dotted decimal notation Each byte is identified by a decimal number in.
Computer Networks The Network Layer
Network Layer4-1 NAT: Network Address Translation local network (e.g., home network) /24 rest of.
IP Addressing Introductory material. An entire module devoted to IP addresses.
Network LayerII-1 RSC Part II: Network Layer 3. IP addressing (2nd part) Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides.
Adapted from: Computer Networking, Kurose/Ross 1DT066 Distributed Information Systems Chapter 4 Network Layer.
CS 1652 The slides are adapted from the publisher’s material All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Jack Lange.
12 – IP, NAT, ICMP, IPv6 Network Layer.
Chapter 4 Network Layer slides are modified from J. Kurose & K. Ross CPE 400 / 600 Computer Communication Networks Lecture 16.
Network Layer4-1 DHCP: Dynamic Host Configuration Protocol Goal: allow host to dynamically obtain its IP address from network server when it joins network.
1DT066 Distributed Information System Chapter 4 Network Layer.
IP Addressing Introductory material. A module devoted to IP addresses.
Transport Layer 3-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012  CPSC.
CIS 3360: Internet: Network Layer Introduction Cliff Zou Spring 2012.
1 Chapter 4: Network Layer r 4.4 IP: Internet Protocol m Datagram format m IPv4 addressing m ICMP m IPv6 r 4.5 Routing algorithms m Hierarchical routing.
RSC Part II: Network Layer 3. IP addressing Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part of the.
Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
ICS 156: Lecture 2 (part 1) Today:  IP addressing  Data link protocols and ARP  Notes about lab.
1 Network Layer Lecture 15 Imran Ahmed University of Management & Technology.
Data Communications and Networks Chapter 7 – IP Addressing ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
1 Network Layer Lecture 16 Imran Ahmed University of Management & Technology.
Network Layer4-1 IP: Internet Protocol r Datagram format r IPv4 addressing r DHCP: Dynamic Host Configuration Protocol r NAT: Network Address Translation.
Network Layer4-1 Chapter 4 roadmap 4.1 Introduction and Network Service Models 4.2 Routing Principles 4.3 Hierarchical Routing 4.4 The Internet (IP) Protocol.
IP Addressing.
Network Layer4-1 The Internet Network layer forwarding table Host, router network layer functions: Routing protocols path selection RIP, OSPF, BGP IP protocol.
Lectu re 1 Recap: “Operational” view of Internet r Internet: “network of networks” m Requires sending, receiving of messages r protocols control sending,
Sharif University of Technology, Kish Island Campus Internet Protocol (IP) by Behzad Akbari.
Transport Layer3-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
Network Layer4-1 Datagram networks r no call setup at network layer r routers: no state about end-to-end connections m no network-level concept of “connection”
1 Network Layer Lecture 11 Imran Ahmed University of Management & Technology.
IP Addressing Introductory material.
The Internet Network layer
Data Communications and Computer Networks Chapter 4 CS 3830 Lecture 19 Omar Meqdadi Department of Computer Science and Software Engineering University.
Network Layer4-1 Chapter 4 Network Layer All material copyright J.F Kurose and K.W. Ross, All Rights Reserved Computer Networking: A Top Down.
Network Layer4-1 Chapter 4: Network Layer Chapter goals: r understand principles behind network layer services: m network layer service models m forwarding.
IP Addressing Introductory material. An entire module devoted to IP addresses.
CSE 421 Computer Networks. Network Layer 4-2 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside.
4: Network Layer4-1 Chapter 4: Network Layer r 4. 1 Introduction r 4.2 Virtual circuit and datagram networks r 4.3 What’s inside a router r 4.4 IP: Internet.
Network Layer 4-1 Chapter 4 Network Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 A note.
IP Addressing Introductory material.
12 – IP, NAT, ICMP, IPv6 Network Layer.
Chapter 4: Network Layer
Chapter 4: Network Layer
CS 1652 Jack Lange University of Pittsburgh
IP Addressing Introductory material.
IP Addressing Introductory material.
Wide Area Networks and Internet CT1403
Overview The Internet (IP) Protocol Datagram format IP fragmentation
DHCP: Dynamic Host Configuration Protocol
Presentation transcript:

Chapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What’s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Layer

The Internet Network layer Host, router network layer functions: Transport layer: TCP, UDP IP protocol addressing conventions datagram format packet handling conventions Routing protocols path selection RIP, OSPF, BGP Network layer forwarding table ICMP protocol error reporting router “signaling” Link layer physical layer Network Layer

Chapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What’s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Layer

32 bit destination IP address IP datagram format ver length 32 bits data (variable length, typically a TCP or UDP segment) 16-bit identifier header checksum time to live 32 bit source IP address IP protocol version number header length (bytes) max number remaining hops (decremented at each router) for fragmentation/ reassembly total datagram length (bytes) upper layer protocol to deliver payload to head. len type of service “type” of data flgs fragment offset upper layer 32 bit destination IP address Options (if any) E.g. timestamp, record route taken, specify list of routers to visit. how much overhead with TCP? 20 bytes of TCP 20 bytes of IP = 40 bytes + app layer overhead Network Layer

IP Fragmentation & Reassembly 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 fragmentation: in: one large datagram out: 3 smaller datagrams reassembly Network Layer

IP Fragmentation and Reassembly ID =x offset =0 fragflag length =4000 =1 =1500 =185 =370 =1040 One large datagram becomes several smaller datagrams Example 4000 byte datagram MTU = 1500 bytes 1480 bytes in data field Why divide by 8? offset = 1480/8 Network Layer

Chapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What’s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Layer

What is an IP Address? An IP address is a unique global address for a network interface Exceptions: Dynamically assigned IP addresses ( DHCP, Lab 7) IP addresses in private networks ( NAT, Lab 7) An IP address: - is a 32 bit long identifier - encodes a network number (network prefix) and a host number Network Layer

Network prefix and host number The network prefix identifies a network and the host number identifies a specific host (actually, interface on the network). How do we know how long the network prefix is? Before 1993: The network prefix is implicitly defined (see class-based addressing) or After 1993: The network prefix is indicated by a netmask. network prefix host number Network Layer

Dotted Decimal Notation IP addresses are written in a so-called dotted decimal notation Each byte is identified by a decimal number in the range [0..255]: Example: 10000000 10001111 10001001 10010000 1st Byte = 128 2nd Byte = 143 3rd Byte = 137 4th Byte = 144 128.143.137.144 Network Layer

Example 128.143 137.144 Example: ellington.cs.virginia.edu Network address is: 128.143.0.0 (or 128.143) Host number is: 137.144 Netmask is: 255.255.0.0 (or ffff0000) Prefix or CIDR notation: 128.143.137.144/16 Network prefix is 16 bits long 128.143 137.144 Network Layer

Special IP Addresses Reserved or (by convention) special addresses: Loopback interfaces all addresses 127.0.0.1-127.255.255.255 are reserved for loopback interfaces Most systems use 127.0.0.1 as loopback address loopback interface is associated with name “localhost” IP address of a network Host number is set to all zeros, e.g., 128.143.0.0 Broadcast address Host number is all ones, e.g., 128.143.255.255 Broadcast goes to all hosts on the network Often ignored due to security concerns Test / Experimental addresses Certain address ranges are reserved for “experimental use”. Packets should get dropped if they contain this destination address (see RFC 1918): 10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255 Convention (but not a reserved address) Default gateway has host number set to ‘1’, e.g., e.g., 192.0.1.1 Network Layer

Subnetting University Network Subnetting Engineering Medical School Problem: Organizations have multiple networks which are independently managed Solution 1: Allocate a separate network address for each network Difficult to manage From the outside of the organization, each network must be addressable. Solution 2: Add another level of hierarchy to the IP addressing structure Engineering School Medical School Library Subnetting Network Layer

Address assignment with subnetting Each part of the organization is allocated a range of IP addresses (subnets or subnetworks) Addresses in each subnet can be administered locally University Network 128.143.0.0/16 Engineering School Medical School 128.143.71.0/24 128.143.136.0/24 128.143.56.0/24 Library 128.143.121.0/24 Network Layer

Basic Idea of Subnetting Split the host number portion of an IP address into a subnet number and a (smaller) host number. Result is a 3-layer hierarchy Then: Subnets can be freely assigned within the organization Internally, subnets are treated as separate networks Subnet structure is not visible outside the organization network prefix host number network prefix subnet number host number extended network prefix Network Layer

Subnetmask Routers and hosts use an extended network prefix (subnetmask) to identify the start of the host numbers Network Layer

Advantages of Subnetting With subnetting, IP addresses use a 3-layer hierarchy: Network Subnet Host Reduces router complexity. Since external routers do not know about subnetting, the complexity of routing tables at external routers is reduced. Note: Length of the subnet mask need not be identical at all subnetworks. Network Layer

Example: Subnetmask 128.143.0.0/16 is the IP address of the network 128.143.137.0/24 is the IP address of the subnet 128.143.137.144 is the IP address of the host 255.255.255.0 (or ffffff00) is the subnetmask of the host When subnetting is used, one generally speaks of a “subnetmask” (instead of a netmask) and a “subnet” (instead of a network) Use of subnetting or length of the subnetmask if decided by the network administrator Consistency of subnetmasks is responsibility of administrator Network Layer

No Subnetting All hosts think that the other hosts are on the same network Network Layer

With Subnetting Hosts with same extended network prefix belong to the same network Network Layer

With Subnetting Different subnetmasks lead to different views of the size of the scope of the network Network Layer

Classful IP Adresses (Until 1993) When Internet addresses were standardized (early 1980s), the Internet address space was divided up into classes: Class A: Network prefix is 8 bits long Class B: Network prefix is 16 bits long Class C: Network prefix is 24 bits long Each IP address contained a key which identifies the class: Class A: IP address starts with “0” Class B: IP address starts with “10” Class C: IP address starts with “110” Network Layer

The old way: Internet Address Classes Network Layer

The old way: Internet Address Classes We will learn about multicast addresses later in this course. Network Layer

Problems with Classful IP Addresses By the early 1990s, the original classful address scheme had a number of problems Flat address space. Routing tables on the backbone Internet need to have an entry for each network address. When Class C networks were widely used, this created a problem. By the 1993, the size of the routing tables started to outgrow the capacity of routers. Other problems: Too few network addresses for large networks Class A and Class B addresses were gone Limited flexibility for network addresses: Class A and B addresses are overkill (>64,000 addresses) Class C address is insufficient (requires 40 Class C addresses) Network Layer

Allocation of Classful Addresses Network Layer

CIDR - Classless Interdomain Routing IP backbone routers have one routing table entry for each network address: With subnetting, a backbone router only needs to know one entry for each Class A, B, or C networks This is acceptable for Class A and Class B networks 27 = 128 Class A networks 214 = 16,384 Class B networks But this is not acceptable for Class C networks 221 = 2,097,152 Class C networks In 1993, the size of the routing tables started to outgrow the capacity of routers Consequence: The Class-based assignment of IP addresses had to be abandoned Network Layer

CIDR - Classless Interdomain Routing Goals: New interpretation of the IP address space Restructure IP address assignments to increase efficiency Permits route aggregation to minimize route table entries CIDR (Classless Interdomain routing) abandons the notion of classes Key Concept: The length of the network prefix in the IP addresses is kept arbitrary Consequence: Size of the network prefix must be provided with an IP address Network Layer

CIDR Notation CIDR notation of an IP address: 192.0.2.0/18 "18" is the prefix length. It states that the first 18 bits are the network prefix of the address (and 14 bits are available for specific host addresses) CIDR notation can replace the use of subnetmasks (but is more general) IP address 128.143.137.144 and subnetmask 255.255.255.0 becomes 128.143.137.144/24 CIDR notation allows to drop traling zeros of network addresses: 192.0.2.0/18 can be written as 192.0.2/18 Network Layer

Why do people still talk about CIDR eliminates the concept of class A, B, and C networks and replaces it with a network prefix Existing classful network addresses are converted to CIDR addresses: 128.143.0.0  128.143.0.0/16 The change has not affected many (previously existing) enterprise networks Many network administrators (especially on university campuses) have not noticed the change (and still talk about Class A,B,C networks) (Note: CIDR was introduced with the role-out of BGPv4 as interdomain routing protocol. ) Network Layer

CIDR address blocks CIDR notation can nicely express blocks of addresses Blocks are used when allocating IP addresses for a company and for routing tables (route aggregation) CIDR Block Prefix # of Host Addresses /27 32 /26 64 /25 128 /24 256 /23 512 /22 1,024 /21 2,048 /20 4,096 /19 8,192 /18 16,384 /17 32,768 /16 65,536 /15 131,072 /14 262,144 /13 524,288 Network Layer

CIDR and Address assignments Backbone ISPs obtain large block of IP addresses space and then reallocate portions of their address blocks to their customers. Example: Assume that an ISP owns the address block 206.0.64.0/18, which represents 16,384 (214) IP addresses Suppose a client requires 800 host addresses With classful addresses: need to assign a class B address (and waste ~64,700 addresses) or four individual Class Cs (and introducing 4 new routes into the global Internet routing tables) With CIDR: Assign a /22 block, e.g., 206.0.68.0/22, and allocated a block of 1,024 (210) IP addresses. Network Layer

CIDR and Routing Routing table Aggregation of routing table entries: 128.143.0.0/16 and 128.144.0.0/16 are represented as 128.142.0.0/15 Longest prefix match: Routing table lookup finds the routing entry that matches the longest prefix What is the outgoing interface for 128.143.137.0/24 -> 10000000 . 10001111 . 10001001 . 000000000 Route aggregation can be exploited when IP address blocks are assigned in an hierarchical fashion Prefix Interface 128.0.0.0/4 interface #5 128.128.0.0/9 interface #2 128.143.128.0/17 interface #1 Routing table Network Layer

CIDR and Routing Information Company X : 206.0.68.0/22 ISP X owns: 206.0.64.0/18 204.188.0.0/15 209.88.232.0/21 Internet Backbone ISP y : 209.88.237.0/24 Organization z1 : 209.88.237.192/26 Organization z2 : 209.88.237.0/26 Network Layer

CIDR and Routing Information Backbone routers do not know anything about Company X, ISP Y, or Organizations z1, z2. Company X : 206.0.68.0/22 ISP X owns: ISP y sends everything which matches the prefix: 209.88.237.192/26 to Organizations z1 209.88.237.0/26 to Organizations z2 ISP X does not know about Organizations z1, z2. 206.0.64.0/18 204.188.0.0/15 209.88.232.0/21 Internet Backbone ISP X sends everything which matches the prefix: 206.0.68.0/22 to Company X, 209.88.237.0/24 to ISP y ISP y : 209.88.237.0/24 Backbone sends everything which matches the prefixes 206.0.64.0/18, 204.188.0.0/15, 209.88.232.0/21 to ISP X. Organization z1 : 209.88.237.192/26 Organization z2 : 209.88.237.0/26 Network Layer

IPv6 - IP Version 6 IP Version 6 Is the successor to the currently used IPv4 Specification completed in 1994 Makes improvements to IPv4 (no revolutionary changes) One (not the only !) feature of IPv6 is a significant increase in of the IP address to 128 bits (16 bytes) IPv6 will solve – for the foreseeable future – the problems with IP addressing 1024 addresses per square inch on the surface of the Earth. Network Layer

IPv6 Header Network Layer

IPv6 vs. IPv4: Address Comparison IPv4 has a maximum of 232  4 billion addresses IPv6 has a maximum of 2128 = (232)4  4 billion x 4 billion x 4 billion x 4 billion addresses Network Layer

Notation of IPv6 addresses Convention: The 128-bit IPv6 address is written as eight 16-bit integers (using hexadecimal digits for each integer) CEDF:BP76:3245:4464:FACE:2E50:3025:DF12 Short notation: Abbreviations of leading zeroes: CEDF:BP76:0000:0000:009E:0000:3025:DF12  CEDF:BP76:0:0:9E :0:3025:DF12 “:0000:0000:0000” can be written as “::” CEDF:BP76:0:0:FACE:0:3025:DF12  CEDF:BP76::FACE:0:3025:DF12 IPv6 addresses derived from IPv4 addresses have 96 leading zero bits. Convention allows to use IPv4 notation for the last 32 bits. ::80:8F:89:90  ::128.143.137.144 Network Layer

IPv6 Provider-Based Addresses The first IPv6 addresses will be allocated to a provider-based plan Type: Set to “010” for provider-based addresses Registry: identifies the agency that registered the address The following fields have a variable length (recommeded length in “()”) Provider: Id of Internet access provider (16 bits) Subscriber: Id of the organization at provider (24 bits) Subnetwork: Id of subnet within organization (32 bits) Interface: identifies an interface at a node (48 bits) 010 Registry ID Provider ID Subscriber ID Subnetwork ID Interface ID Network Layer

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 A “plug-and-play” protocol Network Layer

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 an “on”) Support for mobile users who want to join network DHCP overview: host broadcasts “DHCP discover” msg DHCP server responds with “DHCP offer” msg host requests IP address: “DHCP request” msg DHCP server sends address: “DHCP ack” msg Network Layer

DHCP client-server scenario 223.1.2.1 223.1.1.1 server 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.2.2 arriving DHCP client needs address in this network E 223.1.1.3 223.1.3.27 223.1.3.1 223.1.3.2 Network Layer

DHCP client-server scenario DHCP server: 223.1.2.5 arriving client DHCP discover src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs DHCP request src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs time DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs Network Layer

IP addresses: how to get one? Q: How does network get subnet part of IP addr? A: gets allocated portion of 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

Hierarchical addressing: route aggregation Hierarchical addressing allows efficient advertisement of routing information: Organization 0 200.23.16.0/23 Organization 1 200.23.18.0/23 “Send me anything with addresses beginning 200.23.16.0/20” Organization 2 200.23.20.0/23 . Fly-By-Night-ISP . Internet Organization 7 200.23.30.0/23 “Send me anything with addresses beginning 199.31.0.0/16” ISPs-R-Us Network Layer

IP addressing: the last word... Q: How does an ISP get block of addresses? A: ICANN: Internet Corporation for Assigned Names and Numbers allocates addresses manages DNS assigns domain names, resolves disputes Network Layer

NAT: Network Address Translation rest of Internet local network (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 local network have same single source NAT IP address: 138.76.29.7, different source port numbers Datagrams with source or destination in this network have 10.0.0/24 address for source, destination (as usual) Network Layer

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

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 address, port #) stored in NAT table Network Layer

NAT: Network Address Translation NAT translation table WAN side addr LAN side addr 1: host 10.0.0.1 sends datagram to 128.119.40.186, 80 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table 138.76.29.7, 5001 10.0.0.1, 3345 …… …… S: 10.0.0.1, 3345 D: 128.119.40.186, 80 1 10.0.0.1 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 2 10.0.0.4 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3 10.0.0.3 4: NAT router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345 3: Reply arrives dest. address: 138.76.29.7, 5001 Network Layer

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, eg, P2P applications address shortage should instead be solved by IPv6 Network Layer

NAT traversal problem client wants to connect to server with address 10.0.0.1 server address 10.0.0.1 local to LAN (client can’t use it as destination addr) only one externally visible NATted address: 138.76.29.7 solution 1: statically 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 10.0.0.1 Client ? 10.0.0.4 138.76.29.7 NAT router Network Layer

NAT traversal problem solution 2: Universal Plug and Play (UPnP) Internet Gateway Device (IGD) Protocol. Allows NATted host to: learn public IP address (138.76.29.7) add/remove port mappings (with lease times) i.e., automate static NAT port map configuration 10.0.0.1 IGD 10.0.0.4 138.76.29.7 NAT router Network Layer

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 relay initiated by client 10.0.0.1 NAT router 1. connection to relay initiated by NATted host 3. relaying established Client 138.76.29.7 Network Layer

Chapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What’s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Layer

ICMP: Internet Control Message Protocol used by hosts & routers to communicate network-level information error reporting: unreachable host, network, port, protocol echo request/reply (used by ping) network-layer “above” IP: ICMP msgs carried in IP datagrams ICMP message: type, code plus first 8 bytes of IP datagram causing error Type Code description 0 0 echo reply (ping) 3 0 dest. network unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest network unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header Network Layer

Traceroute and ICMP Source sends series of UDP segments to dest First has TTL =1 Second has TTL=2, etc. Unlikely port number When nth datagram arrives to nth router: Router discards datagram And sends to source an ICMP message (type 11, code 0) Message includes name of router& IP address When ICMP message arrives, source calculates RTT Traceroute does this 3 times Stopping criterion UDP segment eventually arrives at destination host Destination returns ICMP “host unreachable” packet (type 3, code 3) When source gets this ICMP, stops. Network Layer

Chapter 4: Network Layer 4. 1 Introduction 4.2 Virtual circuit and datagram networks 4.3 What’s inside a router 4.4 IP: Internet Protocol Datagram format IPv4 addressing ICMP IPv6 4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the Internet RIP OSPF BGP 4.7 Broadcast and multicast routing Network Layer

IPv6 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

IPv6 Header (Cont) Priority: identify priority among datagrams in flow Flow Label: identify datagrams in same “flow.” (concept of“flow” not well defined). Next header: identify upper layer protocol for data Network Layer

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

Transition From IPv4 To IPv6 Not all routers can be upgraded simultaneous no “flag days” How will the network operate with mixed IPv4 and IPv6 routers? Tunneling: IPv6 carried as payload in IPv4 datagram among IPv4 routers Network Layer

Tunneling A B E F Logical view: Physical view: A B E F tunnel IPv6 Network Layer

Tunneling A B E F Logical view: A B C D E F Physical view: Src:B IPv6 IPv6 IPv6 IPv6 A B C D E F Physical view: IPv6 IPv6 IPv4 IPv4 IPv6 IPv6 Flow: X Src: A Dest: F data Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F data Src:B Dest: E Flow: X Src: A Dest: F data A-to-B: IPv6 E-to-F: IPv6 B-to-C: IPv6 inside IPv4 B-to-C: IPv6 inside IPv4 Network Layer

Acknowledgements Slides by Kames F. Kurose & Keith W. Ross Additional material by Jorg Liebeherr, Magda El Zarki Network Layer