CSCI 4550/8556 Computer Networks Comer, Chapter 22: The Future IP (IPv6)
Introduction – The Future of IP The current version of IP – version 4 – is decades old. IPv4 has shown a remarkable ability to adapt to and use new network technologies. The Internet Engineering Task Force (IETF) proposed an entirely new version of IP to address some specific problems.
The Success of IP IP has accommodated dramatic changes since its original design. The basic principles are still appropriate today. Many new types of hardware have been accommodated. IP has shown it is able to scale (in most cases) to meet the explosive growth of IP-based networks. Scaling Size - from a few tens to a few tens of millions of computers Speed - from 56Kbps to 1Gbps Increased frame size in hardware
The Motivation for Change Address Space Growth The 32 bit address space allows for over a million networks. But most are Class C and thus too small for many organizations Class B network addresses are already almost exhausted (and exhaustion was first predicted to occur a couple of years ago). Type of service Different applications have different requirements for delivery reliability and speed (e.g. video and data). Current IP has type of service specification that is frequently not implemented (meaning it is ignored even if set appropriately). Multicast requirements
Names and Version Numbers The preliminary versions of the new IP were called IP - Next Generation (IPng). Several different proposals were all called Ipng. One of these was selected and uses the next available version number (6). Version 5 was experimental (called “ST”). The result is IP version 6 (IPv6).
New Features Address size - IPv6 addresses are 128 bits long. Header format - entirely different. Extension headers - Additional information is stored in optional extension headers, followed by the data. Support for audio and video - flow labels and quality of service allow audio and video applications to establish appropriate connections. Extensible - new features can be added more easily.
IPv6 Datagram Format
IPv6 Base Header Format Contains less information than the IPv4 header. NEXT HEADER points to the first extension header. FLOW LABEL is used to associate datagrams belonging to a flow or communication between two applications. Traffic class Specific path Routers use FLOW LABEL to forward datagrams along a prearranged path.
IPv6 NEXT HEADER (a)An IPv6 datagram with a base header and data. (b)A datagram with a base header, a route header, and data.
Parsing IPv6 Headers The base header is of fixed size - 40 octets. The NEXT HEADER field in the base header defines the type of header that follows. It appears at the end of the fixed-size base header. Some extension headers are variable sized. The NEXT HEADER field in an extension header defines its type. The HEADER LEN field gives the size of an extension header.
Fragmentation Fragmentation information is kept in a separate extension header. Each fragment has a base header and (an inserted) fragmentation header. The entire datagram, including the original header may be fragmented. (a) The original, with three fragmentable parts identified. (b,c,d) The datagram, as fragmented.
Fragmentation and Path MTU The IPv6 source (not the intermediate routers) are responsible for fragmentation. Routers simply drop datagrams larger than the network MTU. The source must fragment each datagram to the size required to reach its destination. The source must determine the path MTU. This is the smallest MTU of any network between the source and the destination. The source then fragments the datagram to fit within that MTU. To find the path MTU, the source uses path MTU discovery The source sends a probe message of various sizes until the destination is reached. The path MTU determination algorithm must be dynamic, as the path may change during the transmission of datagrams.
The Purpose of Multiple Headers IPv6 uses separate extension headers for: Efficiency – the header is only as large as necessary. Flexibility - new headers can be added for new features. Placing functionality in new headers allows incremental development - processing for new features can be added to test environments; other routers will skip those headers.
IPv6 Addressing IPv6 uses 128-bit addresses. As before, each address includes a network prefix and a host suffix. There are no address classes – the prefix/suffix boundary can fall anywhere. Special types of addresses: unicast – a single destination computer. multicast - multiple destinations, possibly not all at the same site. anycast – a collection of computers with the same prefix; the datagram is delivered to the one computer in the group that is closest to the sender. IPv4 broadcast flavors are subsets of multicast Cluster addressing allows for replication of services (e.g. web servers).
IPv6 Address Notation 128-bit addresses are unwieldy in dotted decimal format; they require 16 numbers: Groups of 16-bit numbers in hex separated by colons - colon hexadecimal (or colon hex): 69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF Zero-compression – a series of zeroes in the middle of an IPv6 address is indicated by two colons: FF0C:0:0:0:0:0:0:B1 becomes FF0C::B1 An IPv6 address with 96 leading zeros is interpreted to hold an IPv4 address.
Summary The IPv4 basic abstractions have been very successful. IPv6 carries forward many of those abstractions, but all the details are changed. 128-bit addresses are used instead of 32-bit addresses. Base and extension headers instead of “monolithic” headers. The source performs fragmentation, not the routers. New types of addresses are provided. A different way of writing the larger addresses is used.