CSCI-1680 Network Layer: IP & Forwarding John Jannotti

Similar documents
CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca

CSCI-1680 Network Layer: IP & Forwarding Rodrigo Fonseca Instructor: Nicholas DeMarinis

Network Layer: Internet Protocol

CPSC 826 Internetworking. The Network Layer: Routing & Addressing Outline. The Network Layer

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing

Network layer: Overview. Network Layer Functions

Vorlesung Kommunikationsnetze

CS 457 Networking and the Internet. Problems. Mechanisms 9/21/16. Fall 2016 Indrajit Ray

Lecture 8. Reminder: Homework 3, Programming Project 2 due on Thursday. Questions? Tuesday, September 20 CS 475 Networks - Lecture 8 1

Computer Network Fundamentals Spring Week 4 Network Layer Andreas Terzis

Recap. Recap. Internetworking. First mile problem. Internet. End Users. Last mile problem. Direct link networks Packet switching.

Internet Technology 3/23/2016

Lecture 8. Basic Internetworking (IP) Outline. Basic Internetworking (IP) Basic Internetworking (IP) Service Model

Outline. Routing. Introduction to Wide Area Routing. Classification of Routing Algorithms. Introduction. Broadcasting and Multicasting

CSE/EE 461 The Network Layer. Application Presentation Session Transport Network Data Link Physical

Where we are in the Course

Internetworking - We are heterogeneity to our network (variable network technologies, bandwidth, MTU, latency, etc. etc.)

Introduction to Internetworking

ECE 4450:427/527 - Computer Networks Spring 2017

CSEP 561 Internetworking. David Wetherall

Internetworking Part 2

Internet Protocol. Outline Introduction to Internet Protocol Header and address formats ICMP Tools CS 640 1

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane

Chapter 4: Network Layer

internet technologies and standards

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 12

Master Course Computer Networks IN2097

Lecture 3. The Network Layer (cont d) Network Layer 1-1

Router Architecture Overview

CS475 Networks Lecture 8 Chapter 3 Internetworking. Ethernet or Wi-Fi).

Department of Computer and IT Engineering University of Kurdistan. Network Layer. By: Dr. Alireza Abdollahpouri

Lecture 4 - Network Layer. Transport Layer. Outline. Introduction. Notes. Notes. Notes. Notes. Networks and Security. Jacob Aae Mikkelsen

ECE 158A: Lecture 7. Fall 2015

IPv4. Christian Grothoff.

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

CSCD58 WINTER 2018 WEEK 6 - NETWORK LAYER PART 1. Brian Harrington. February 13, University of Toronto Scarborough

CS519: Computer Networks. Lecture 2: Feb 2, 2004 IP (Internet Protocol)

2/22/2008. Outline Computer Networking Lecture 9 IP Protocol. Hop-by-Hop Packet Forwarding in the Internet. Internetworking.

Communication Networks ( ) / Fall 2013 The Blavatnik School of Computer Science, Tel-Aviv University. Allon Wagner

Chapter 4 Network Layer

Subnets. IP datagram format. The Internet Network layer. IP Fragmentation and Reassembly. IP Fragmentation & Reassembly. IP Addressing: introduction

internet technologies and standards

CS 348 Computer Networks. IP and Routing. Indian Institute of Technology, Bombay

Communications Software. CSE 123b. CSE 123b. Spring Lecture 2: Internet architecture and. Internetworking. Stefan Savage

Lecture 4 The Network Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

ICS 451: Today's plan

CS 457 Lecture 11 More IP Networking. Fall 2011

Lecture 11: Fragmentation & Addressing. CSE 123: Computer Networks Stefan Savage

Lecture 17 Overview. Last Lecture. Wide Area Networking (2) This Lecture. Internet Protocol (1) Source: chapters 2.2, 2.3,18.4, 19.1, 9.

Chapter 3 Internetworking

COMP/ELEC 429/556 Introduction to Computer Networks

Lecture 9: Internetworking

CSCE 463/612 Networks and Distributed Processing Spring 2018

IP - The Internet Protocol

L10: Simple Internetworking. Hui Chen, Ph.D. Department of Engineering & Computer Science Virginia State University Petersburg, VA 23806

CH. 3 IP FORWARDING AND ROUTING

CS 43: Computer Networks. 21: The Network Layer & IP November 7, 2018

Lecture 2: Basic routing, ARP, and basic IP

The Internet Protocol (IP)

The Interconnection Structure of. The Internet. EECC694 - Shaaban

Internetworking Part 2

Internetwork Protocols

EITF25 Internet Techniques and Applications L7: Internet. Stefan Höst

Internetworking Terms. Internet Structure. Internet Structure. Chapter 15&16 Internetworking. Internetwork Structure & Terms

TDTS06: computer Networks

TCP/IP Protocol Suite

CSCI-1680 Network Layer:

The Internet Protocol. IP Addresses Address Resolution Protocol: IP datagram format and forwarding: IP fragmentation and reassembly

Quiz. Segment structure and fields Flow control (rwnd) Timeout interval. Phases transition ssthresh setting Cwnd setting

Outline. IP Address. IP Address. The Internet Protocol. o Hostname & IP Address. o The Address

Aside: Interaction with Link Layer Computer Networking. Caching ARP Entries. ARP Cache Example

Lecture 8. Network Layer (cont d) Network Layer 1-1

Address Translation. Map IP addresses into physical addresses destination host next hop router

CSC 401 Data and Computer Communications Networks

End-to-End Communication

CS 356: Computer Network Architectures. Lecture 10: IP Fragmentation, ARP, and ICMP. Xiaowei Yang

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

Internet Protocol (IP)

Last time. Wireless link-layer. Introduction. Characteristics of wireless links wireless LANs networking. Cellular Internet access

CC231 Introduction to Networks Dr. Ayman A. Abdel-Hamid. Internet Protocol Suite

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing

EP2120 Internetworking/Internetteknik IK2218 Internets Protokoll och Principer

Chapter 4 Network Layer

Data Communication & Networks G Session 7 - Main Theme Networks: Part I Circuit Switching, Packet Switching, The Network Layer

Internet Protocols (chapter 18)

1-1. Switching Networks (Fall 2010) EE 586 Communication and. October 25, Lecture 24

Network Layer PREPARED BY AHMED ABDEL-RAOUF

Lecture Computer Networks

CMPE 80N: Introduction to Networking and the Internet

Computer Networking Introduction

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

Chapter 4: network layer

Prof. Shervin Shirmohammadi SITE, University of Ottawa. Internet Protocol (IP) Lecture 2: Prof. Shervin Shirmohammadi CEG

IP Protocols. ALTTC/Oct

CSC 4900 Computer Networks: Network Layer

Basic Internetworking (IP)

Administrivia CSC458 Lecture 4 Bridging LANs and IP. Last Time. This Time -- Switching (a.k.a. Bridging)

Dongsoo S. Kim Electrical and Computer Engineering Indiana U. Purdue U. Indianapolis

Transcription:

CSCI-1680 Network Layer: IP & Forwarding John Jannotti Based partly on lecture notes by David Mazières, Phil Levis, Rodrigo Fonseca

Administrivia IP out today. Your job: Find partners, get setup with Github Implement IP forwarding and DV routing Get started TODAY J HW1 due tonight

Today Network layer: Internet Protocol (v4) Forwarding Addressing Fragmentation ARP DHCP NATs Next 2 classes: Routing

Internet Protocol Goal How to connect everybody? New global network or connect existing networks? Glue lower-level networks together: allow packets to be sent between any pair of hosts Wasn t this the goal of switching? Network 1 (Ethernet) H1 H2 H3 H7 R3 H8 Network 2 (Ethernet) R1 Network 4 (point-to-point) R2 H4 Network 3 (FDDI) H5 H6

Internetworking Challenges Heterogeneity Different addresses Different service models Different allowable packet sizes Scaling Congestion control

How would you design such a protocol? Circuits or packets? Predictability Service model Reliability, timing, bandwidth guarantees Any-to-any Finding nodes: naming, routing Maintenance (join, leave, add/remove links, ) Forwarding: message formats

IP s Decisions Packet switched Unpredictability, statistical multiplexing Service model Lowest common denominator: best effort, connectionless datagram Any-to-any Common message format Separated routing from forwarding Naming: uniform addresses, hierarchical organization Routing: hierarchical, prefix-based (longest prefix matching) Maintenance: delegated, hierarchical

A Bit of History Packet switched networks: Arpanet s IMPs Late 1960 s RFC 1, 1969! Segmentation, framing, routing, reliability, reassembly, primitive flow control Network Control Program (NCP) Provided connections, flow control Assumed reliable network: IMPs Used by programs like telnet, mail, file transfer Wanted to connect multiple networks Not all reliable, different formats, etc

TCP/IP Introduced Vint Cerf, Robert Kahn Replace NCP Initial design: single protocol providing a unified reliable pipe Could support any application Different requirements soon emerged, and the two were separated IP: basic datagram service among hosts TCP: reliable transport UDP: unreliable multiplexed datagram service

An excellent read David D. Clark, The design Philosophy of the DARPA Internet Protocols, 1988 Primary goal: multiplexed utilization of existing interconnected networks Other goals: Communication continues despite loss of networks or gateways Support a variety of communication services Accommodate a variety of networks Permit distributed management of its resources Be cost effective Low effort for host attachment Resources must be accountable

Internet Protocol IP Protocol running on all hosts and routers Routers are present in all networks they join Uniform addressing Forwarding/Fragmentation Complementary: Routing, Error Reporting, Address Translation H1 H8 TCP R1 R2 R3 TCP IP IP IP IP IP ETH ETH FDDI FDDI PPP PPP ETH ETH

IP Protocol Provides addressing and forwarding Addressing is a set of conventions for naming nodes in an IP network Forwarding is a local action by a router: passing a packet from input to output port IP forwarding finds output port based on destination address Also defines certain conventions on how to handle packets (e.g., fragmentation, time to live) Contrast with routing Routing is the process of determining how to map packets to output ports (topic of next two lectures)

Service Model Connectionless (datagram-based) Best-effort delivery (unreliable service) packets may be lost packets may be delivered out of order duplicate copies of packets may be delivered packets may be delayed for a long time It s the lowest common denominator All these can be dealt with above IP (if probability of delivery is non-zero )

Format of IP addresses Globally unique (or made seem that way) 32-bit integers, read in groups of 8-bits: 128.148.32.110 Hierarchical: network + host Originally, routing prefix embedded in address (a) 0 7 24 Network Host (b) 1 0 14 16 Network Host (c) 1 1 0 21 8 Network Host Class A (8-bit prefix), B (16-bit), C (24-bit) Routers need only know route for each network

Forwarding Tables Exploit hierarchical structure of addresses: need to know how to reach networks, not hosts Network Next Address 212.31.32.* 0.0.0.0 18.*.*.* 212.31.32.5 128.148.*.* 212.31.32.4 Default 212.31.32.1 Keyed by network portion, not entire address Next address should be local: router knows how to reach it directly* (we ll see how soon)

Classed Addresses Hierarchical: network + host Saves memory in backbone routers (no default routes) Originally, routing prefix embedded in address Routers in same network must share network part Inefficient use of address space Class C with 2 hosts (2/255 = 0.78% efficient) Class B with 256 hosts (256/65535 = 0.39% efficient) Shortage of IP addresses Makes address authorities reluctant to give out class B s Still too many networks Routing tables do not scale Routing protocols do not scale

Subnetting Network number Host number Class B address 111111111111111111111111 00000000 Subnet mask (255.255.255.0) Network number Subnet ID Host ID Subnetted address Add another level to address/routing hierarchy Subnet mask defines variable portion of host part Subnets visible only within site Better use of address space

Scaling: Supernetting Problem: routing table growth Idea: assign blocks of contiguous networks to nearby networks Called CIDR: Classless Inter-Domain Routing Represent blocks with a single pair (first network address, count) Restrict block sizes to powers of 2 Use a bit mask (CIDR mask) to identify block size Address aggregation: reduce routing tables

CIDR Forwarding Table Network Next Address 212.31.32/24 0.0.0.0 18/8 212.31.32.5 128.148/16 212.31.32.4 128.148.128/17 212.31.32.8 0/0 212.31.32.1

Example Subnet mask: 255.255.255.128 Subnet number: 128.96.34.0 128.96.34.15 H1 128.96.34.1 R1 128.96.34.130 Subnet mask: 255.255.255.128 Subnet number: 128.96.34.128 H3 128.96.33.14 128.96.34.129 R2 128.96.33.1 H2 128.96.34.139 Subnet mask: 255.255.255.0 Subnet number: 128.96.33.0 H1-> H2: H2.ip & H1.mask!= H1.subnet => no direct path

Network Subnet Mask Next Address R1 s Forwarding Table 128.96.34.0 255.255.255.128 128.96.34.1 128.96.34.128 255.255.255.128 128.96.34.130 128.96.33.0 255.255.255.0 128.96.34.129 Subnet mask: 255.255.255.128 Subnet number: 128.96.34.0 128.96.34.15 H1 128.96.34.1 R1 128.96.34.130 Subnet mask: 255.255.255.128 Subnet number: 128.96.34.128 H3 128.96.33.14 128.96.34.129 R2 128.96.33.1 H2 128.96.34.139 Subnet mask: 255.255.255.0 Subnet number: 128.96.33.0

IP v4 packet format 0 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 vers hdr len TOS Total Length Identification 0 DM F F Fragment offset TTL Protocol hdr checksum Source IP address Destination IP address Options Data Padding

IP header details Forwarding based on destination address TTL (time-to-live) decremented at each hop Originally was intended to be seconds (no longer) Mostly prevents forwarding loops Other cool uses Fragmentation possible for large packets Fragmented if crossing link w/ small maximum frame MF: more fragments for this IP packet DF: don t fragment (returns error if would fragment) Following IP header is payload data Typically beginning with TCP or UDP header

Other fields Version: 4 (IPv4) for most packets, there s also 6 Header length: in 32-bit units (>5 implies options) Type of service (won t go into this) Protocol identifier (TCP: 6, UDP: 17, ICMP: 1, ) Checksum over the header

Fragmentation & Reassembly Each network has maximum transmission unit (MTU) Strategy Fragment when necessary (MTU < size of datagram) Source tries to avoid fragmentation (why?) Re-fragmentation is possible Fragments are self-contained datagrams Delay reassembly until destination host No recovery of lost fragments

Fragmentation Example H1 R1 R2 R3 H8 R1 R2 R3 ETH IP (1400) FDDI IP (1400) PPP IP (512) ETH IP (512) PPP IP (512) ETH IP (512) PPP IP (376) ETH IP (376) Ethernet MTU is 1,500 bytes PPP MTU is 576 bytes R2 must fragment IP packets to forward them

Fragmentation Example (cont) (a) Start of header Ident = x 0 Offset = 0 Rest of header 1400 data bytes IP addresses plus ident field identify fragments of same packet MF (more fragments bit) is 1 in all but last fragment Fragment offset multiple of 8 bytes Multiply offset by 8 for fragment position original packet (b) Start of header Ident = x 1 Offset = 0 Rest of header 512 data bytes Start of header Ident = x 1 Offset = 64 Rest of header 512 data bytes Start of header Ident = x 0 Offset = 128 Rest of header 376 data bytes

How to reach these local addresses? Map IP addresses into physical addresses E.g., Ethernet address of destination host or Ethernet address of next hop router Techniques Encode physical address in host part of IP address (IPv6) Each network node maintains lookup table (IP->phys)

ARP address resolution protocol Dynamically builds table of IP to physical address bindings for a local network Broadcast request if IP address not in table All learn IP address of requesting node (broadcast) Target machine responds with its physical address Table entries are discarded if not refreshed

ARP Ethernet frame format 0 8 16 31 Hardware type = 1 ProtocolType = 0x0800 HLen = 48 PLen = 32 Operation SourceHardwareAddr (bytes 0 3) SourceHardwareAddr (bytes 4 5) SourceProtocolAddr (bytes 2 3) SourceProtocolAddr (bytes 0 1) TargetHardwareAddr (bytes 0 1) TargetHardwareAddr (bytes 2 5) TargetProtocolAddr (bytes 0 3) Why include source hardware address?

Obtaining Host IP Addresses - DHCP Administrators are free to assign addresses within their allocated block to hosts Tedious and error-prone: e.g., laptop going from CIT to library to coffee shop Solution: Dynamic Host Configuration Protocol Client: DHCP Discover to 255.255.255.255 (broadcast) Server(s): DHCP Offer to 255.255.255.255 (why broadcast?) Client: choose offer, DHCP Request (broadcast, why?) Server: DHCP ACK (again broadcast) Result: address, gateway, netmask, DNS server

Obtaining IP Addresses Blocks of IP addresses allocated hierarchically ISP obtains an address block, may subdivide ISP: 128.35.16/20 10000000 00100011 00010000 00000000 Client 1: 128.35.16/22 10000000 00100011 00010000 00000000 Client 2: 128.35.20/22 10000000 00100011 00010100 00000000 Client 3: 128.35.24/21 10000000 00100011 00011000 00000000 Global allocation: ICANN, /8 s (ran out!) Regional registries: ARIN, RIPE, APNIC, LACNIC, AFRINIC

Network Address Translation (NAT) Despite CIDR, it s still difficult to allocate addresses (2 32 is only 4 billion) We ll talk about IPv6 later NAT hides an entire network behind one address Hosts are given private addresses Routers map outgoing packets to a free address/port Router reverse maps incoming packets Problems?

Internet Control Message Protocol (ICMP) Echo (ping) Redirect Destination unreachable (protocol, port, or host) TTL exceeded Checksum failed Reassembly failed Can t fragment Many ICMP messages include part of packet that triggered them See http://www.iana.org/assignments/icmpparameters

ICMP message format 0 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 20-byte IP header (protocol = 1 ICMP) Type Code depends on type/code Checksum

Example: Time Exceeded 0 1 2 3 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 20-byte IP header (protocol = 1 ICMP) Type = 11 Code unused Checksum IP header + first 8 payload bytes of packet that caused ICMP to be generated Code usually 0 (TTL exceeded in transit) Discussion: traceroute

Example: Can t Fragment Sent if DF=1 and packet length > MTU What can you use this for? Path MTU Discovery Can do binary search on packet sizes But better: base algorithm on most common MTUs

Coming Up Routing: how do we fill the routing tables? Intra-domain routing: Tuesday 10/6 Inter-domain routing: Thursday, 10/8