540 likes | 651 Views
Lecture 8 : Network Layer (Putting the Net in Internet). CS 4700 / CS 5700 Network Fundamentals. Revised 9/17/2014. Network Layer. Function: Route packets end-to-end on a network, through multiple hops Key challenge: How to represent addresses How to route packets Scalability
E N D
Lecture 8: Network Layer (Putting the Net in Internet) CS 4700 / CS 5700Network Fundamentals Revised 9/17/2014
Network Layer • Function: • Route packets end-to-end on a network, through multiple hops • Key challenge: • How to represent addresses • How to route packets • Scalability • Convergence Application Presentation Session Transport Network Data Link Physical
Routers, Revisited • How to connect multiple LANs? • LANs may be incompatible • Ethernet, Wifi, etc… • Connected networks form an internetwork • The Internet is the best known example Routers
Structure of the Internet • Ad-hoc interconnection of networks • No organized topology • Vastly different technologies, link capacities • Packets travel end-to-end by hopping through networks • Routers “peer” (connect) different networks • Different packets may take different routes Network 3 Network 1 Network 4 Network 2
Internetworking Issues • Naming / Addressing • How do you designate hosts? • Routing • Must be scalable (i.e. a switched Internet won’t work) • Service Model • What gets sent? • How fast will it go? • What happens if there are failures? • Must deal with heterogeneity • Remember, every network is different Internet Service Model • Best-effort(i.e. things may break) • Store-and-forward datagram network Lowest common denominator
Outline Addressing Class-based CIDR IPv4 Protocol Details Packed Header Fragmentation IPv6
Possible Addressing Schemes • Flat • e.g. each host is identified by a 48-bit MAC address • Router needs an entry for every host in the world • Too big • Too hard to maintain (hosts come and go all the time) • Too slow (more later) • Hierarchy • Addresses broken down into segments • Each segment has a different level of specificity
Example: Telephone Numbers 1-617-373-1234 3278 Very General Very Specific Updates are Local West Village H Room 256 West Village G Room 1234
Binary Hierarchy Example 1** Datagram, Destination = 101 10* 100 101 11* 0** 110 00* 000 111 01* 001 010 011
IP Addressing • IPv4: 32-bit addresses • Usually written in dotted notation, e.g. 192.168.21.76 • Each number is a byte • Stored in Big Endian order 31 24 0 8 16 76 168 Decimal 192 21 4C A8 C0 15 Hex 01001100 10101000 Binary 11000000 00010101
IP Addressing and Forwarding • Routing Table Requirements • For every possible IP, give the next hop • But for 32-bit addresses, 232 possibilities! • Too slow: 48GE ports and 4x10GE needs 176Gbps bandwidthDRAM: ~1-6 Gbps;TCAM is fast, but 400x cost of DRAM • Hierarchical address scheme • Separate the address into a network and a host 0 31 Known by all routers Known by edge (LAN) routers Pfx Network Host
Classes of IP Addresses Class A 24 16 31 8 0 1 Example: MIT 18.*.*.* 0 Ntwk Host 1-126 8 0 2 16 24 31 Example: NEU 129.10.*.* • Class B 10 Network Host 128-191 16 8 0 3 24 31 Example: 216.63.78.* • Class C 110 Network Host 192-223
How Do You Get IPs? • IP address ranges controlled by IANA • Internet Assigned Number Authority • Roots go back to 1972, ARPANET, UCLA • Today, part of ICANN • IANA grants IPs to regional authorities • ARIN (American Registry of Internet Numbers) may grant you a range of IPs • You may then advertise routes to your new IP range • There are now secondary markets, auctions, …
Two Level Hierarchy Pfx Network Host … Subtree size determined by network class …
Class Sizes Too many network IDs Too small to be useful Way too big
Subnets • Problem: need to break up large A and B classes • Solution: add another layer to the hierarchy • From the outside, appears to be a single network • Only 1 entry in routing tables • Internally, manage multiple subnetworks • Split the address range using a subnet mask Pfx Ntwk Subnet Host 11111111 11111111 11000000 00000000 Subnet Mask:
Subnet Example Extract network: IP Address: 10110101 11011101 01010100 01110010 Subnet Mask: & 11111111 11111111 11000000 00000000 Result: 10110101 11011101 01000000 00000000 • Extract host: IP Address: 10110101 11011101 01010100 01110010 Subnet Mask: & ~(11111111 11111111 11000000 00000000) Result: 00000000 00000000 00010100 01110010
N-Level Subnet Hierarchy Pfx Network Subnet Host … • Tree does not have a fixed depth • Increasingly specific subnet masks … Subtree size determined by length of subnet mask …
Example Routing Table • Question: 128.42.222.198 matches four rows • Which router do we forward to? • Longest prefix matching • Use the row with the longest number of 1’s in the mask • This is the most specific match
Subnetting Revisited • Question: does subnetting solve all the problems of class-based routing? NO • Classes are still too coarse • Class A can be subnetted, but only 126 available • Class C is too small • Class B is nice, but there are only 16,398 available • Routing tables are still too big • 2.1 million entries per router
Classless Inter Domain Routing • CIDR, pronounced ‘cider’ • Key ideas: • Get rid of IP classes • Use bitmasks for all levels of routing • Aggregation to minimize FIB (forwarding information base) • Arbitrary split between network and host • Specified as a bitmask or prefix length • Example: Northeastern • 129.10.0.0 with netmask255.255.0.0 • 129.10.0.0 / 16
Aggregation with CIDR • Original use: aggregating class C ranges • One organization given contiguous class C ranges • Example: Microsoft, 207.46.192.* – 207.46.255.* • Represents 26 = 64 class C ranges • Specified as CIDR address 207.46.192.0/18 31 24 0 8 16 0 46 Decimal 207 192 00 2E CF C0 Hex xxxxxxxx 00101110 Binary 11001111 11xxxxxx 14 Arbitrary Bits 18 Bits Frozen By Netmask
Example CIDR Routing Table Hole in the Routing Table: No coverage for 96 – 127 207.46.96.0/19
Size of CIDR Routing Tables • From www.cidr-report.org • CIDR has kept IP routing table sizes in check • Currently ~500,000 entries for a complete IP routing table • Only required by backbone routers
Takeaways • Hierarchical addressing is critical for scalability • Not all routers need all information • Limited number of routers need to know about changes • Non-uniform hierarchy useful for heterogeneous networks • Class-based addressing is too coarse • CIDR improves scalability and granularity • Implementation challenges • Longest prefix matching is more difficult than schemes with no ambiguity
Outline Addressing Class-based CIDR IPv4 Protocol Details Packed Header Fragmentation IPv6
IP Datagrams • IP Datagrams are like a letter • Totally self-contained • Include all necessary addressing information • No advanced setup of connections or circuits 12 31 24 0 4 8 16 19 Datagram Length HLen Version DSCP/ECN Offset Identifier Flags Checksum TTL Protocol Source IP Address Destination IP Address Options (if any, usually not) Data
IP Header Fields: Word 1 Version: 4 for IPv4 Header Length: Number of 32-bit words (usually 5) Type of Service: Priority information (unused) Datagram Length: Length of header + data in bytes 12 31 24 0 4 8 16 19 Datagram Length HLen Version DSCP/ECN Offset Identifier Flags Checksum TTL Protocol Limits packets to 65,535 bytes Source IP Address Destination IP Address Options (if any, usually not) Data
IP Header Fields: Word 3 • Time to Live: decremented by each router • Used to kill looping packets • Protocol: ID of encapsulated protocol • 6 = TCP, 17 = UDP • Checksum 12 31 24 0 4 8 16 19 Datagram Length HLen Version DSCP/ECN Offset Identifier Flags Checksum TTL Protocol Used to implement trace route Source IP Address Destination IP Address Options (if any, usually not) Data
IP Header Fields: Word 4 and 5 • Source and destination address • In theory, must be globally unique • In practice, this is often violated 12 31 24 0 4 8 16 19 Datagram Length HLen Version DSCP/ECN Offset Identifier Flags Checksum TTL Protocol Source IP Address Destination IP Address Options (if any, usually not) Data
Problem: Fragmentation • Problem: each network has its own MTU • DARPA principles: networks allowed to be heterogeneous • Minimum MTU may not be known for a given path • IP Solution: fragmentation • Split datagrams into pieces when MTU is reduced • Reassemble original datagram at the receiver MTU = 4000 MTU = 2000 MTU = 1500 3 4 Datagram Dgram1 Dgram2 1 2
IP Header Fields: Word 2 • Identifier: a unique number for the original datagram • Flags: M flag, i.e. this is the last fragment • Offset: byte position of the first byte in the fragment • Divided by 8 12 31 24 0 4 8 16 19 Datagram Length HLen Version TOS Offset Identifier Flags Checksum TTL Protocol Source IP Address Destination IP Address Options (if any, usually not) Data
Fragmentation Example MTU = 4000 MTU = 2000 MTU = 1500 Length = 2000, M = 1 Offset = 0 IP Data Length = 3820, M = 0 1980 20 IP Hdr Data 1980 + 1820 = 3800 3800 20 Length = 1840, M = 0 Offset = 1980* IP Data 1820 20 * I am showing offset*8 for simplicity
Fragmentation Example MTU = 2000 MTU = 1500 Length = 2000, M = 1 Offset = 0 Length = 1500, M = 1 Offset = 0 Length = 1500, M = 1 Offset = 1980 IP Data IP Data 20 1480 1980 20 IP Data 1480 + 500 = 1980 Length = 520, M = 1 Offset = 1480 20 1480 Length = 1840, M = 0 Offset = 1980 Length = 360, M = 0 Offset = 3460 IP Data 500 20 IP Data IP Data 1820 20 340 20
IP Fragment Reassembly • Performed at destination • M = 0 fragment gives us total data size • 360 – 20 + 3460 = 3800 • Challenges: • Out-of-order fragments • Duplicate fragments • Missing fragments • Basically, memory management nightmare Length = 1500, M = 1, Offset = 0 IP Data 20 1480 Length = 520, M = 1, Offset = 1480 IP Data 20 1480 IP Data Length = 1500, M = 1, Offset = 1980 500 20 IP Data 340 20 Length = 360, M = 0, Offset = 3460
Fragmentation Concepts • Highlights many key Internet characteristics • Decentralized and heterogeneous • Each network may choose its own MTU • Connectionless datagram protocol • Each fragment contains full routing information • Fragments can travel independently, on different paths • Best effort network • Routers/receiver may silently drop fragments • No requirement to alert the sender • Most work is done at the endpoints • i.e. reassembly
Fragmentation in Reality • Fragmentation is expensive • Memory and CPU overhead for datagram reconstruction • Want to avoid fragmentation if possible • MTU discovery protocol • Send a packet with “don’t fragment” bit set • Keep decreasing message length until one arrives • May get “can’t fragment” error from a router, which will explicitly state the supported MTU • Router handling of fragments • Fast, specialized hardware handles the common case • Dedicated, general purpose CPU just for handling fragments
Outline Addressing Class-based CIDR IPv4 Protocol Details Packed Header Fragmentation IPv6
The IPv4 Address Space Crisis • Problem: the IPv4 address space is too small • 232 = 4,294,967,296 possible addresses • Less than one IP per person • Parts of the world have already run out of addresses • IANA assigned the last /8 block of addresses in 2011
IPv6 • IPv6, first introduced in 1998(!) • 128-bit addresses • 4.8 * 1028 addresses per person • Address format • 8 groups of 16-bit values, separated by ‘:’ • Leading zeroes in each group may be omitted • Groups of zeroes can be omitted using ‘::’ 2001:0db8:0000:0000:0000:ff00:0042:8329 2001:0db8:0:0:0:ff00:42:8329 2001:0db8::ff00:42:8329
IPv6 Trivia • Who knows the IP for localhost? • 127.0.0.1 • What is localhost in IPv6? • ::1
IPv6 Header Double the size of IPv4 (320 bits vs. 160 bits) 12 31 24 0 4 8 16 19 Flow Label DSCP/ECN Version Hop Limit Datagram Length Next Header Source IP Address Groups packets into flows, used for QoS Same as TTL in IPv4 Version = 6 Same as IPv4 Same as Protocol in IPv4 Same as IPv4 Destination IP Address
Differences from IPv4 Header • Several header fields are missing in IPv6 • Header length – rolled into Next Header field • Checksum – was useless, so why keep it • Identifier, Flags, Offset • IPv6 routers do not support fragmentation • Hosts are expected to use path MTU discovery • Reflects changing Internet priorities • Today’s networks are more homogeneous • Instead, routing cost and complexity dominate • No security vulnerabilities due to IP fragments
Performance Improvements • No checksums to verify • No need for routers to handle fragmentation • Simplified routing table design • Address space is huge • No need for CIDR (but need for aggregation) • Standard subnet size is 264 addresses • Simplified auto-configuration • Neighbor Discovery Protocol • Used by hosts to determine network ID • Host ID can be random!
Additional IPv6 Features • Source Routing • Host specifies the route to wants packet to take • Mobile IP • Hosts can take their IP with them to other networks • Use source routing to direct packets • Privacy Extensions • Randomly generate host identifiers • Make it difficult to associate one IP to a host • Jumbograms • Support for 4Gb datagrams
Deployment Challenges • Switching to IPv6 is a whole-Internet upgrade • All routers, all hosts • ICMPv6, DHCPv6, DNSv6 • 2013: 0.94% of Google traffic was IPv6, 3.7% today HTTP, FTP, SMTP, RTP, IMAP, … TCP, UDP, ICMP IPv4 Ethernet, 802.11x, DOCSIS, … Fiber, Coax, Twisted Pair, Radio, …
Transitioning to IPv6 • How do we ease the transition from IPv4 to IPv6? • Today, most network edges are IPv6 ready • Windows/OSX/iOS/Android all support IPv6 • Your wireless access point probably supports IPv6 • The Internet core is hard to upgrade • … but a IPv4 core cannot route IPv6 traffic IPv6 Ready IPv6 Ready IPv4 Only :( IPv6 Packets Business Network Home Network Core Internet
Transition Technologies • How do you route IPv6 packets over an IPv4 Internet? • Transition Technologies • Use tunnels to encapsulate and route IPv6 packets over the IPv4 Internet • Several different implementations • 6to4 • IPv6 Rapid Deployment (6rd) • Teredo • … etc.
6to4 Basics • Problem: you’ve been assigned an IPv4 address, but you want an IPv6 address • Your ISP can’t or won’t give you an IPv6 address • You can’t just arbitrarily choose an IPv6 address • Solution: construct a 6to4 address • 6to4 addresses always start with 2002:: • Embed the 32-bit IPv4 inside the 128-bit IPv6 address IPv4: 0 46. 207. 192. IPv6: C0 00: CF 2E: 20 02: 0000
Routing from 6to4 to 6to4 How does a host using 6to4 send a packet to another host using 6to4? Dest: 16.79.8.0 Dest: 2002:104F:0800:: IPv4 Internet IPv4 – 16.79.8.0 IPv6 – 2002:104F:0800:: IPv4 – 207.46.192.0 IPv6 – 2002:CF2E:C000::