Introduction to Internetworking 3035/GZ01 Networked Systems Kyle Jamieson Department of Computer Science University College London.

Slides:



Advertisements
Similar presentations
CE363 Data Communications & Networking Chapter 7 Network Layer: Internet Protocol.
Advertisements

4 IP Address (IPv4)  A unique 32-bit number  Identifies an interface (on a host, on a router, …)  Represented in dotted-quad notation
20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
IPv4 - The Internet Protocol Version 4
Fundamentals of Computer Networks ECE 478/578 Lecture #14: InternetWorking Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 IP - The Internet Protocol Relates to Lab 2. A module on the Internet Protocol.
1 EE 122: Designing IP Ion Stoica TAs: Junda Liu, DK Moon, David Zats (Materials with thanks to Vern Paxson, Jennifer.
CECS 474 Computer Network Interoperability Notes for Douglas E. Comer, Computer Networks and Internets (5 th Edition) Tracy Bradley Maples, Ph.D. Computer.
Chapter 20 Network Layer: Internet Protocol Stephen Kim 20.1.
1 K. Salah Module 5.2: Internet Protocol CO vs. CL protocols IP Features –Fragmentation –Routing IP Datagram Format IPv6.
IP Suite© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science Department.
Chapter 5 The Network Layer.
CS335 Networking & Network Administration Tuesday, May 11, 2010.
CSCI 4550/8556 Computer Networks Comer, Chapter 20: IP Datagrams and Datagram Forwarding.
Internet Protocol-IP. Objective l TCP/IP vs. OSI models l CO vs. CL protocols l IP Features »Fragmentation »Routing l IP Datagram Format l IPv6.
Network Layer IS250 Spring 2010
IP-UDP-RTP Computer Networking (In Chap 3, 4, 7) 건국대학교 인터넷미디어공학부 임 창 훈.
CS 6401 IPv6 Outline Background Structure Deployment.
1 26-Aug-15 Addressing the network using IPv4 Lecture # 2 Engr. Orland G. Basas Prepared by: Engr. Orland G. Basas IT Lecturer.
Network Layer4-1 NAT: Network Address Translation local network (e.g., home network) /24 rest of.
G64INC Introduction to Network Communications Ho Sooi Hock Internet Protocol.
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
Network Layer Last Update Copyright Kenneth M. Chipps Ph.D.
Efficient Addressing Outline Addressing Subnetting Supernetting CS 640.
Fall 2005Computer Networks20-1 Chapter 20. Network Layer Protocols: ARP, IPv4, ICMPv4, IPv6, and ICMPv ARP 20.2 IP 20.3 ICMP 20.4 IPv6.
UNIT IP Datagram Fragmentation Figure 20.7 IP datagram.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
1 CSCI 233 Internet Protocols Class 2 Dave Roberts.
Dr. John P. Abraham Professor UTPA
Chapter 81 Internet Protocol (IP) Our greatest glory is not in never failing, but in rising up every time we fail. - Ralph Waldo Emerson.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
1 Network Layer Lecture 15 Imran Ahmed University of Management & Technology.
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 21.
1 Network Layer Lecture 16 Imran Ahmed University of Management & Technology.
CSC 600 Internetworking with TCP/IP Unit 7: IPv6 (ch. 33) Dr. Cheer-Sun Yang Spring 2001.
CS 4396 Computer Networks Lab
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.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
Internet Protocols (chapter 18) CSE 3213 Fall 2011.
19.1 Chapter 19 Network Layer: Logical Addressing Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
© 2009 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.1 Computer Networks and Internets, 5e By Douglas E. Comer Lecture PowerPoints.
CSC 600 Internetworking with TCP/IP Unit 5: IP, IP Routing, and ICMP (ch. 7, ch. 8, ch. 9, ch. 10) Dr. Cheer-Sun Yang Spring 2001.
Introduction to Internetworking 3035/GZ01 Networked Systems Kyle Jamieson Lecture 8 Department of Computer Science University College London.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Network Layer NAT, IPv6.
CS470 Computer Networking Protocols
Data Communications and Computer Networks Chapter 4 CS 3830 Lecture 19 Omar Meqdadi Department of Computer Science and Software Engineering University.
1 Internetworking: IP Packet Switching Reading: (except Implementation; pp )
IP Protocol CSE TCP/IP Concepts Connectionless Operation Internetworking involves connectionless operation at the level of the Internet Protocol.
COMPUTER NETWORKS CS610 Lecture-30 Hammad Khalid Khan.
Network Layer Protocols COMP 3270 Computer Networks Computing Science Thompson Rivers University.
1 Kyung Hee University Chapter 19 Network Layer: Logical Addressing.
IPv4 IPv4 The Internet Protocol version 4 (IPv4) is the delivery mechanism used by the TCP/IP protocols. Datagram Fragmentation Checksum Options Topics.
Lecture 13 IP V4 & IP V6. Figure Protocols at network layer.
CS 457 – Lecture 10 Internetworking and IP
IP - The Internet Protocol
Dr. John P. Abraham Professor UTPA
Chapter 20 Network Layer: Internet Protocol
Dr. John P. Abraham Professor UTRGV, EDINBURG, TX
Data Communications and Networking
IP - The Internet Protocol
Dr. John P. Abraham Professor UTPA
Net 323 D: Networks Protocols
COS 461: Computer Networks
IP - The Internet Protocol
Network Layer: Control/data plane, addressing, routers
Introduction to Networks
IP - The Internet Protocol
Presentation transcript:

Introduction to Internetworking 3035/GZ01 Networked Systems Kyle Jamieson Department of Computer Science University College London

Building bigger, heterogeneous networks We’ve seen a few examples of local area networks so far: Ethernet, , CDMA But, local area networks have limitations: 1.Scaling number of networks and users 2.Link layer heterogeneity: users of one type of network want to communicate with users of other How to interconnect large, heterogeneous networks?

Today From design principles to the actual design of the Internet Five basic Internet design decisions Design of IP – Internet addressing – Forwarding in the Internet

Five basic Internet design decisions 1.Datagram packet switching 2.Best-effort service model 3.Layering 4.A single internetworking protocol 5.The end-to-end principle (and fate-sharing)

Datagram packet switching Divide messages into a sequence of datagrams Network deals with each datagram individually – Each contains enough information to allow any switch to decide how to get it to its destination – What is an alternative to this? Means that each datagram must contain all relevant network information in its header – Every packet contains complete destination address – Switch consults forwarding table – Process of building forwarding tables: routing

Routers Routers are switches that use IP addresses to forward packets across the Internet A router consists of – Set of input interfaces where packets arrive – Set of output interfaces from which packets depart – Some form of interconnect connecting inputs to outputs A router implements – Forwarding packet to corresponding output interface – Management of bandwidth and buffer space resources host LAN 1... host LAN 2... router WAN Router

Why datagram packet switching? 1.Achieve higher levels of utilization – Statistical multiplexing – Review: Why is this more important for the Internet than for the phone network? 2.Avoid (large) per-flow state inside the network – Plenty of routing state, but no per-flow state – Follows from notion of fate-sharing (will discuss later) – Enables robust fail-over if paths fail

Five basic Internet design decisions 1.Datagram packet switching 2.Best-effort service model 3.Layering 4.A single internetworking protocol 5.The end-to-end principle (and fate-sharing)

What is “best effort?” Network makes no service guarantees – Just gives its best effort (BE) The network has failure modes: a)Packets may be lost b)Packets may be corrupted c)Packets may be delivered out of order d)Packet may be significantly delayed Source Destination Internet

Why best effort (BE)? 1.BE means the task of the network is simple – No need to do error detection and correction – No need to remember from one packet to next – No need to manage congestion in the network No need to reserve bandwidth or memory – No need to make packets follow same path 2.Easier to survive failures – Transient disruptions are okay during failover 3.Simplifies interconnection between networks – Minimal service promises

But What About Applications? Some applications want more, for example: – Bulk file transfer: File Transfer Protocol (FTP) Requires all the data, with no losses or corruption Order that data is delivered doesn’t matter – Telephone conversation: Skype, RTP Requires minimal and predictable delays Losses and corruption don’t matter (to a point) Perhaps the most important issue in design, which the Internet got right

Five basic Internet design decisions 1.Datagram packet switching 2.Best-effort service model 3.Layering 4.A single internetworking protocol 5.The end-to-end principle (and fate-sharing)

Other layers address failure modes a)Packets may be lost or arbitrarily delayed – Sender can send the packets again, or not – No network congestion control (beyond “drop”) Sender can slow down in response to loss or delay b)Packets may be corrupted – Higher-level protocol can detect/correct errors, or not c)Packets may be delivered out-of-order – Receiver can put packets back in order, or not a)Packets may be arbitrarily delayed – Receiver can buffer packets for smooth playout, or not

What can’t higher layers do? Higher layers cannot make delay smaller If applications needs guarantee of low delay, then need to ensure adequate bandwidth – Will keep queuing delay low – No way to help with speed-of-light latency What applications need guaranteed low-delay? Can the Internet support phone calls?

Review: What is layering? Modularity partitions functionality into modules Laying is a particularly simple form of modularity Modules only deal with layers above and below – Simplifies interactions between modules – Simplifies introduction of new protocols

Five basic design decisions 1.Datagram packet switching 2.Best-effort service model 3.Layering 4.A single internetworking protocol 5.The end-to-end principle (and fate-sharing)

IP: one networking layer protocol Design goal #1 of the Internet: Connect existing heterogeneous networks together IP unifies the architecture of the network of networks As long as applications can run over IP-based protocols, they can run on any network As long as networks support IP, they can run any application

The Internet hourglass Only one network-layer protocol: Internet Protocol (IP) The “narrow waist” facilitates interoperability Application Transport Network Link Physical FTPHTTP TFTP DNS TCP UDP IP EthernetPPPWiFi CopperRadio

Alternatives to universal IP? What would happen if we had more than one network layer protocol? Are there disadvantages to having only one network layer protocol? – Some loss of flexibility, but the gain in interoperability more than makes up for this – Because IP is embedded in applications and in interdomain routing, it is very hard to change Having IP be universal made this mistake easier to make, but it didn’t cause this problem

Five basic design decisions 1.Datagram packet switching 2.Best-effort service model 3.Layering 4.A single internetworking protocol 5.The end-to-end principle (and fate-sharing)

Review: the end-to-end principle Basic principle: some types of functionality can only be completely and correctly implemented end-to-end Because of this, end hosts: – Can satisfy the requirement without network’s help – Will/must do so, since can’t rely on network’s help Therefore, don’t go out of your way to implement them in the network

Related notion of fate-sharing Principle: When storing state in a distributed system, keep it co-located with the entities that ultimately rely on the state Fate-sharing is a technique for dealing with failure – Only way that failure can cause loss of the critical state is if the entity that cares about it also fails... – … in which case it doesn’t matter Often argues for keeping network state at end hosts rather than inside routers – In keeping with end-to-end principle – e.g., packet-switching rather than circuit-switching – e.g., NFS file handles, HTTP “cookies”

Today From design principles to the actual design of the Internet Five basic Internet design decisions Design of IP – Internet addressing – Forwarding in the Internet

Designing IP What does it mean to “design” a protocol? Answer: specify the syntax of its messages and their meaning (semantics). – Syntax: elements in packet header, their types and layout; representation – Semantics: interpretation of elements; information What semantics should the IP header support?

IP functionality (1/2) Getting the packet there: – Where is the packet going? – Which protocol will process packet on host? Network handling of packet: – How should the packet be forwarded (e.g., priority) – Where does header and packet end? Coping with problems: – Has the header been corrupted? (Why not payload?) – Has the packet been fragmented? If so, provide information needed to reconstruct – Is packet caught in a loop? If so, drop packet

IP functionality (2/2) Extensibility: How can we let IP change? – Which IP version and options are expected? Miscellaneous: – Where did the packet come from? (Why is this needed?)

From semantics to syntax The past two slides discussed the kinds of information the header must provide Will now show the syntax (layout) of the header, and discuss the semantics in more detail

Version (four bits) – Indicates the version of the IP protocol – Needed to know what other fields to expect – Typically “4” (IPv4), else “6” (IPv6) HLen (four bits) – Number of 32-bit words in the header – Typically “5” (for a 20-byte IPv4 header) – Can be more if IP options are used TOS (one byte) – Type of service – Allows packets to be treated differently based on needs – e.g., low delay for audio, high bandwidth for bulk transfer The IP packet header bit:

Length (16 bits) – Number of bytes in the packet – Maximum size is 65,535 bytes (2 16 −1) though underlying links may impose smaller limits Ident (16 bits), Flags (three bits), Offset (13 bits) – Support IP fragmentation The IP packet header bit:

How to cope with different MTUs? Key to addressing heterogeneity in the Internet Each link layer has a maximum datagram size or maximum transmission unit (MTU) How to make datagrams as big as the minimum MTU over link layers along path they happen to take (path MTU)? – This would minimize header overheads Don’t want to send all datagrams sized with the lowest MTU of any link layer – Inefficient, and the lowest MTU is unknown, and changes depending on route

IP’s datagram fragmentation Routers break datagrams into smaller fragments – Each fragment is its own self-contained IP datagram Ident (16 bits): used to tell which fragments belong together Flags (three bits): – More (M): set to “1” if fragment is not the last one, else “0” – Don’t Fragment (D): instruct routers to not fragment even if this fragment won’t fit Instead, they drop the packet and send back a “Too Large” ICMP control message Forms the basis for “Path MTU Discovery,” covered later – Reserved (R): unused bit Offset (13 bits): what part of the original datagram this fragment covers in eight-byte units

Where should reassembly happen? Answer #1: within the network, with no help from end- host B (receiver) MTU=1000B MTU=500B MTU=1000B Host A Host B R1 R2 1000

Where should reassembly happen? Answer #1: within the network, with no help from end- host B (receiver) Answer #2: at end-host B (receiver) with no help from the network 500 MTU=1000B MTU=500B MTU=1000B Host A Host B R1 R2 1000

Where should reassembly happen? Answer #1: within the network, with no help from end- host B (receiver) ✗ Answer #2: at end-host B (receiver) with no help from the network ✔ Fragments can travel across different paths! 500 MTU=1000B MTU=500B MTU=1000B Host A Host B R1 R R3 500

Fragmentation: Consequences Not all fragments arrived at destination host? Give up, discard received fragments. (Best effort service) Q: Why use a byte-offset for fragments rather than numbering each fragment? Two reasons: 1.Fragmentation can be repeated at further downstream hops 2.With a byte offset, receiver can lay down bytes in memory as they arrive (possibly out-of-order)

Fragmentation example Ethernet MTU: 1492 bytes FDDI MTU: 4500 bytes PPP MTU: 532 bytes M; offset=0 M; offset=64 Offset=128

Fragmentation considered harmful Although IP’s fragmentation is in keeping with the end-to- end principle, fragmentation is generally considered harmful for two performance-related reasons: 1.Fragmentation causes inefficient use of resources 2.Loss of fragments leads to degraded performance – Loss of any fragment requires retransmit of entire datagram 500 MTU=1000B MTU=500B MTU=1000B Host A Host B R1 R R3 500

Path MTU discovery Source initially sets path MTU estimate (PMTU) to be the MTU of first hop Source sends datagrams with Don’t Fragment (DF) bit set in Flags field If any datagrams are too big to be forwarded: – Intermediate router discards them and send an ICMP “Destination Unreachable” message with “datagram too big” flag set back to the source Source then reduces its PMTU estimate

TTL (8 bits) – Potentially catastrophic problem – Forwarding loops can cause datagrams to cycle forever – As these accumulate, eventually consume all capacity Solution: Routers decrement TTL field at each hop, packet is discarded if TTL reaches zero – ICMP “time exceeded” message sent back to source The time-to-live field bit:

Protocol (8 bits) – Identifies higher-layer protocol – e.g. “6” for Transmission Control Protocol (TCP) – e.g. “17” for User Datagram Protocol (UDP) – Important for demultiplexing at the end host – Indicates what kind of header to expect within IP payload Protocol demultiplexing bit: Protocol=6 TCP header TCP payload Protocol=17 UDP header UDP payload

Checksum (16 bits) – Recall: Complement of the one’s complement sum of all 16-bit words in the IP packet header If verification fails, router should discard the packet – So it doesn’t act on bogus information Checksum recalculated at each hop – Why? – Why include the TTL field in the checksum? – Why only over the header? IP checksum bit:

Checksum (16 bits) – Recall: Complement of the one’s complement sum of all 16-bit words in the IP packet header If verification fails, router should discard the packet – So it doesn’t act on bogus information Recalculated at each hop – Why? Because the TTL field is decremented on each hop. – Why include the TTL field in the checksum? Ensures loop detection works correctly in presence of router bugs. – Why only over the header? e2e argument: if higher layers need reliability, they will implement it; errors can be introduced between layers as well. IP checksum (notes) bit:

SourceAddr (32 bits) – Unique identifier for the sending host – Recipient can decide whether to accept packet – Routers can decide whether to forward packet – Enables recipient to reply DestinationAddr (32 bits) – Unique identifier for the receiving host – Allows each router to make forwarding decisions IP addresses bit:

Today From design principles to the actual design of the Internet Five basic Internet design decisions Design of IP – Internet addressing – Forwarding in the Internet

Designing IP’s addresses Question #1: what should an address be associated with? – e.g., a telephone number is associated not with a person, but with a handset Question #2: what structure should addresses have? – What are the implications of different types of structure? Question #3: who determines the particular addresses used in the global Internet? – What are the implications of how this is done?

IPv4 addresses A unique 32-bit number Uniquely identifies and associated with an interface (on a host, on a router, &c.) Represented in dotted-quad notation – a.b.c.d where each component is an eight-bit decimal number between zero and 255 – e.g

Addressing: a scalability challenge Suppose hosts had arbitrary addresses – Then every router would need to store all addresses in its forwarding table – This arrangement doesn’t scale forwarding table host LAN 1... host LAN 2... router WAN

Hierarchical addressing Universal trick in complex systems: When you need more scalability, impose a hierarchical structure The Internet is an “inter-network” that connects networks together, not hosts – Natural two-level hierarchy: WAN delivers to right LAN; LAN delivers to right host – Key idea: Separate routing tables at each level of hierarchy, each of manageable scale host LAN 1... host LAN 2... router WAN

Hierarchical addressing Prefix is network address: suffix is host address “Slash notation” describes prefixes e.g /23 is a 23-bit prefix with 2 9 addresses – Terminology: “slash twenty-three” Network (23 bits)Host (nine bits)

Scalability improved Number related hosts with same prefix – /24 on the left LAN – /24 on the right LAN / /24 forwarding table host LAN 1... host LAN 2... router WAN

Easy to add new hosts No need to update the routers – e.g. adding a new host on the right – Doesn’t require adding a new forwarding entry / /24 forwarding table host LAN 1... host LAN 2... router WAN host

Structure of Internet addresses Original Internet address structure – First eight bits: network address block (/8) – Last 24 bits: host address Assumed 256 networks were more than enough! (They weren’t). NetworkHost 824

Next design: Classful Addressing Constrain network, host parts to be fixed lengths – Class A: Very large blocks (e.g. IBM, MIT, HP have /8’s) – Class B: Large blocks (e.g. medium-sized organizations) – Class C: Small blocks (e.g. very small organizations) Class A: Class B: Class C: NetworksHosts/network million 16,38465,534 2 million254

Address classes inhibited growth Class C networks too small for mid-sized organizations, so most organizations got a class B Resulting demand for class B networks lead to scarcity of class B networks If network reaches the physical size limit imposed by the link layer, then need to allocate a new network address block to that organization, even though it hasn’t filled its class B block! Number of networksHosts/network Class A12616 million Class B16,38465,535 Class C2 million256

Subnetting allows growth at L2 Subnetting: allow multiple physical networks (subnets) to share a single network number – Add a third level, subnet, to the address hierarchy – Borrow from the host part of the IP address – Subnet number = IP address & subnet mask

Subnetting: Example SubnetNumberSubnetMaskNextHop Interface Interface R2

/ /24  /25 and /25

Routers still need to know about all networks (up to two million Class C, 65,536 class B) – Problem #1: way too many networks; routing tables start to grow at a super-linear rate Problem #2: Poor address assignment efficiency – When deciding between class C and class B, and anticipating growing beyond beyond 256 hosts, network planners had to choose class B – Result: Wasted address space Problems remain, despite subnetting [data: Geoff Huston, CAIA]

Addressing in the Internet today: CIDR CIDR = Classless Interdomain Routing, also known as supernetting Classless: CIDR removes the constraint on network, host address size – Flexible boundary between network, host addresses, resulting in high address assignment efficiency Advantage: Get high address assignment efficiency without excessive forwarding table storage requirements at routers

CIDR addressing Mask must be a contiguous prefix of 1s, starting from the most significant bit, then 0s thereafter; this gives rise to a mask length IP address: IP mask: Address: Mask: Use two 32-bit numbers to represent a network. Network number = IP address AND mask Written as network number/mask length; e.g /15 or 12.4/15 Network numberHost part

CIDR: Hierarchal address allocation Prefixes are key to Internet scalability – Addresses allocated in contiguous chunks (prefixes) – Routing protocols and packet forwarding based on prefixes / / / / / / / / / / / / / /17 … … …

CIDR scalability: Address aggregation “Send me anything with addresses beginning /20” / / /23 Provider A Customer #0 Customer #7 Internet Customer #1 Provider B “Send me anything with addresses beginning /16” /23 Customer #2 Routers in the rest of Internet just need to know how to reach /20 Provider A can then direct packets to the correct customer … …

1994−1998: CIDR slows routing table growth Advent of CIDR enables aggregation [data: Geoff Huston, CAIA] Roughly linear growth trend

CIDR: Aggregation not always possible “Send me /20” / / /23 Provider A Customer #0 Customer #7 Internet Customer #1 Provider B “Send me /16, /23” /23 Customer #2 Multi-homed Customer #1 ( /23) has two providers Rest of Internet needs to know how to reach Customer #1 through either Therefore, /23 route must be globally visible … …

1989−2005: Superlinear growth trend Advent of CIDR enables aggregation Internet boom: Multihoming drives superlinear growth.com Internet bubble bursts Conclusion: CIDR has gone a long way to addressing routing table growth, but is not the last word in Internet scalability. [data: Geoff Huston, CAIA]

Are 32-bit addresses enough? Not all that many unique addresses – 2 32 = 4,294,967,296 (just over four billion) – Plus, some (many) reserved for special purposes – And, addresses are allocated in larger blocks And, many devices need IP addresses – Computers, PDAs, routers, tanks, toasters, … Long-term solution (perhaps): larger address space – IPv6 has 128-bit addresses (2 128 = × ) Short-term solutions: limping along with IPv4 – Network address translation (NAT) – Dynamically-assigned addresses (DHCP) – Private addresses

Network Address Translation (NAT) Before NAT: Every machine on the Internet had a unique IP address LAN Clients Server Internet dest addr src addr dst port src port

NAT mechanics Clients Server Internet NAT : : Independently assign addresses to machines behind a NAT – Usually in address block /16 Use bogus port numbers to multiplex/demux internal addresses Example web request from behind a NAT:

NAT mechanics (2) Clients Server Internet NAT : : : : Independently assign addresses to machines behind a NAT – Usually in address block /16 Use bogus port numbers to multiplex/demux internal addresses Each actively-communicating client gets its own NAT table entry:

Today From design principles to the actual design of the Internet Five basic Internet design decisions Design of IP – Internet addressing – Forwarding in the Internet

Each router has a forwarding table – Maps destination addresses to outgoing interfaces Table derived from: – Routing algorithm, or – Static configuration Upon receiving a datagram – Inspect the destination IP address in the header – Index into forwarding table – Forward packet out appropriate interface Hop-by-hop datagram forwarding

Using the forwarding table With classful addressing, this is easy: – Early bits in the IP address specify network mask Class A [0]: /8 Class B [10]: /16 Class C [110]: /24 – Can then find exact match in forwarding table Use prefix as index into hash table Why won’t this work for CIDR? – The IP address doesn’t specify a CIDR mask Two difficulties with CIDR forwarding tables – Finding match isn’t trivial – Non-topological addressing

Example 1: Provider with four customers PrefixLink /22Link /24Link /24Link /23Link 4 Customer 2Customer 1Customer 3Customer / / / /23 Provider A Link 1 Link 2 Link 3 Link 4

Unique prefix matching Suppose: No forwarding table entry is a prefix of another Finding a match is still non-trivial! / / / / −−−−−−−−−− First 21 bits match four partial prefixes First 22 bits match three partial prefixes First 23 bits match two partial prefixes First 24 bits match exactly one full prefix −−−−−−−− ✔ ✔ ✔ ✔ −−−−−−−− −−−−−−−−− Consider incoming IP:

Example 2: Aggregating customers PrefixLink /21Link /21Link / / / /23 Provider B Customer 6Customer 5Customer 7Customer 8 Link / / / /23 Provider A Customer 2Customer 1Customer 3Customer 4 Transit Provider Link 2

Example 2 (cont’d): a complication Suppose the following: – Customer 3 switches to Provider B – Customer 6 switches to Provider A How will we represent this in Transit Provider’s forwarding table? / / / /23 Provider B Customer 6Customer 5Customer 7Customer 8 Link / / / /23 Provider A Customer 2Customer 1Customer 3Customer 4 Transit Provider Link / /21

First try: Unique prefix matching NetworkLink / −−−−−−−−−−Link / −−−−−−−−Link / −−−−−−−−Link / −−−−−−−−−Link / −−−−−−−−−−Link / −−−−−−−−Link / −−−−−−−−Link / −−−−−−−−−Link / / / /23 Provider B Customer 6Customer 5Customer 7Customer 8 Link / / / /23 Provider A Customer 2Customer 1Customer 3Customer 4 Transit Provider Link / /21 ✗ Lack of delegation ✗ Lack of aggregation

A more compact representation NetworkLink / −−−−−−−−−−−Link / −−−−−−−−Link / −−−−−−−−−−−Link / −−−−−−−−Link / / / /23 Provider B Customer 6Customer 5Customer 7Customer 8 Link / / / /23 Provider A Customer 2Customer 1Customer 3Customer 4 Transit Provider Link / /21 Break our convention that no entry is a prefix of another Use /21s for the bulk of traffic; list /24s as exceptions

Longest prefix matching (LPM) NetworkLink / −−−−−−−−−−−Link / −−−−−−−−Link / −−−−−−−−−−−Link / −−−−−−−−Link / / / /23 Provider B Customer 6Customer 5Customer 7Customer 8 Link / / / /23 Provider A Customer 2Customer 1Customer 3Customer 4 Transit Provider Link / / Customer 6 IP: Customer 7 IP: ✔ ✔

Why use LPM? Nontrivial to find matches in CIDR even w/o longest prefix match – Because can’t tell where network address ends – Must walk down bit-by-bit Decreases size of routing table – Speeding up lookup – Reducing memory consumption But how does it work, and how can we speed it up?

Problem: Address space exhaustion Motivation: CIDR, subnetting, and NATs help, but eventually the 32-bit IPv4 address space will be exhausted [caida]

IPv6 IPv6 header: 128-bit address space – Compare IPv4: 4.3 × 10 9 – IPv6: 3.4 × (1,500 addresses/ft 2 of earth’s surface) Summary of changes: 1.Eliminated header length 2.Eliminated checksum 3.New options mechanism (NextHeader) 4.Expanded addresses 5.Added FlowLabel

IPv6 addressing What does an IPv6 address look like? Eight hexadecimal 16-bit integers separated by colon (“:”) Example: 47CD:0000:0000:0000:0000:0000:A456:0124 – Can replace at most one set of contiguous 0’s with “::” to yield, e.g., 47CD::A456:0124 Address space allocation – IPv6 addresses are classless, but like classful IPv4 addresses, leading bits specify different uses of an IPv6 address

IPv6 deployment: Avoiding a “flag day” Goal: Avoid a specified day on which every host and router is upgraded from IPv4 to IPv6 Two sub-goals, then: 1.Allow IPv4 nodes to talk to other IPv4 nodes and IPv6 nodes indefinitely 1.Allow IPv6 nodes to talk to other IPv6 nodes even when path contains IPv4 nodes

Dual-stack IPv4/IPv6 IPv6 nodes also have a complete IPv4 stack – Can send and receive IPv4 or IPv6 datagrams – Use Version field to determine which stack handles incoming datagram Problem: Loss of header information over IPv4 hops A B E F IPv6 C D IPv4 Flow: X Src: A Dest: F A to B: IPv6 Src: A Dest: F B to C: IPv4 Src: A Dest: F D to E: IPv4 Flow: ? Src: A Dest: F D to E: IPv6

Tunneling IPv6 in IPv4 Whenever an IPv6 node connects to IPv4 networks, configure it to set up a tunnel to another IPv6 router on the other side Significant administrative overhead A B E F IPv6 tunnel Logical view: Physical view: A B E F IPv6 C D IPv4

Tunneling IPv6 in IPv4 A B E F IPv6 tunnel Logical view: Physical view: A B E F IPv6 C D IPv4 Flow: X Src: A Dest: F data 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 A to B: IPv6 E to F: IPv6 B to C: IPv4 (encapsulating IPv6) D to E: IPv4 (encapsulating IPv6)

IPv6: Final thoughts Lesson: It’s enormously difficult to change network-layer protocols That’s what we expect, because they are the basis for interoperability in the Internet Consequence: Pace of innovation at the application, link, and physical layers far outstrips the network layer

NEXT TIME The Domain Name System Internetworking II: Virtual Networks, MPLS, and Traffic Engineering Pre-Reading: P & D, §§4.3, (5/e); §§4.5, (4/e) Acknowledgement Parts adapted from lecture material by Scott Shenker (UC Berkeley), and Kurose and Ross (4/e)