1 / 54

CS 4700 / CS 5700 Network Fundamentals

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

roden
Download Presentation

CS 4700 / CS 5700 Network Fundamentals

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 8: Network Layer (Putting the Net in Internet) CS 4700 / CS 5700Network Fundamentals Revised 9/17/2014

  2. 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

  3. 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

  4. 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

  5. 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

  6. Outline Addressing Class-based CIDR IPv4 Protocol Details Packed Header Fragmentation IPv6

  7. 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

  8. 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

  9. Binary Hierarchy Example 1** Datagram, Destination = 101 10* 100 101 11* 0** 110 00* 000 111 01* 001 010 011

  10. 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

  11. 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

  12. 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

  13. 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, …

  14. Two Level Hierarchy Pfx Network Host … Subtree size determined by network class …

  15. Class Sizes Too many network IDs Too small to be useful Way too big

  16. 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:

  17. 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

  18. 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 …

  19. 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

  20. 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

  21. 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

  22. 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

  23. Example CIDR Routing Table Hole in the Routing Table: No coverage for 96 – 127 207.46.96.0/19

  24. 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

  25. 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

  26. Outline Addressing Class-based CIDR IPv4 Protocol Details Packed Header Fragmentation IPv6

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. 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

  35. 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

  36. 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

  37. 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

  38. Outline Addressing Class-based CIDR IPv4 Protocol Details Packed Header Fragmentation IPv6

  39. 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

  40. 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

  41. IPv6 Trivia • Who knows the IP for localhost? • 127.0.0.1 • What is localhost in IPv6? • ::1

  42. 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

  43. 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

  44. 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!

  45. 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

  46. 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, …

  47. 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

  48. 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.

  49. 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

  50. 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::

More Related