Internet Protocol version 6 (IPv6) is a network layer protocol for packet-switched internetworks. It is designated as the successor of IPv4, the current version of the Internet Protocol, for general use on the Internet.The main improvement brought by IPv6 is a much larger address space that allows greater flexibility in assigning addresses. IPv6 is able to support 2128 (about 3.4×1038) addresses, or approximately 5×1028 addresses for each of the roughly 6.5 billion people alive today. It was not the intention of IPv6 designers, however, to give permanent unique addresses to every individual and every computer. Rather, the extended address length eliminates the need to use network address translation to avoid address exhaustion, and also simplifies aspects of address assignment and renumbering when changing providers.
Introduction
By the early 1990s, it was clear that the change to a classless network introduced a decade earlier was not enough to prevent IPv4 address exhaustion and that further changes to IPv4 were needed. By the beginning of 1992, several proposed systems were being circulated and by the end of 1992, the IETF announced a call for white papers (RFC 1650) and the creation of the “IP, the Next Generation” (IPng Area) of working groups.
IPng was adopted by the Internet Engineering Task Force on July 25, 1994 with the formation of several “IP Next Generation” (IPng) working groups.By 1996, a series of RFCs were released defining IPv6, starting with RFC 2460. (Incidentally, IPv5 was not a successor to IPv4, but an experimental flow-oriented streaming protocol intended to support video and audio.)
It is expected that IPv4 will be supported alongside IPv6 for the foreseeable future. IPv4-only nodes (clients or servers) will not be able to communicate directly with IPv6 nodes, and will need to go through an intermediary; see Transition mechanisms below.
Features of IPv6
To a great extent, IPv6 is a conservative extension of IPv4. Most transport- and application-layer protocols need little or no change to work over IPv6; exceptions are applications protocols that embed network-layer addresses (such as FTP or NTPv3).
Applications, however, usually need small changes and a recompile in order to run over IPv6.
Larger address space
The main feature of IPv6 that is driving adoption today is the larger address space: addresses in IPv6 are 128 bits long versus 32 bits in IPv4.
The larger address space avoids the potential exhaustion of the IPv4 address space without the need for network address translation (NAT) and other devices that break the end-to-end nature of Internet traffic. NAT may still be necessary in rare cases, but Internet engineers recognize that it will be difficult in IPv6 and are trying to avoid it whenever possible. It also makes administration of medium and large networks simpler,by avoiding the need for complex subnetting schemes. Subnetting will, ideally, revert to its purpose of logical segmentation of an IP network for optimal routing and access.
The drawback of the large address size is that IPv6 carries some bandwidth overhead over IPv4, which may hurt regions where bandwidth is limited (header compression can sometimes be used to alleviate this problem). This also makes human memorisation of IPv6 addresses much harder compared to IPv4 addresses, often impossible due to their length; use of the Domain Name System (DNS) is necessary.
Stateless autoconfiguration of hosts
IPv6 hosts can be configured automatically when connected to a routed IPv6 network. When first connected to a network, a host sends a link-local multicast request for its configuration parameters; if configured suitably, routers respond to such a request with a router advertisement packet that contains network-layer configuration parameters.
If IPv6 autoconfiguration is not suitable, a host can use stateful configuration (DHCPv6) or be configured manually. Stateless autoconfiguration is only suitable for hosts: routers must be configured manually or by other means.
Multicast
Multicast is part of the base specifications in IPv6, unlike IPv4, where it was introduced later.
IPv6 does not have a link-local broadcast facility; the same effect can be achieved by multicasting to the all-hosts group (FF02::1).
Most environments, however, do not currently have their network infrastructures configured to route multicast: multicast on single subnet will work, but global multicast might not.
Link-local addresses
IPv6 interfaces have link-local addresses in addition to the global addresses that applications usually use. These link-local addresses are always present and never change, which simplifies the design of configuration and routing protocols.
Jumbograms
In IPv4, packets are limited to 64 KiB of payload. When used between capable communication partners and on communication links with a maximum transmission unit (MTU) larger than 65,576 octets (65536 + 40 for the header), IPv6 has optional support for packets over this limit, referred to as jumbograms which can be as large as 4 GiB. The use of jumbograms may improve performance over high-MTU networks.
Network-layer security
IPsec, the protocol for IP network-layer encryption and authentication, is an integral part of the base protocol suite in IPv6; this is unlike IPv4, where it is optional (but usually implemented). IPsec, however, is not widely deployed except for securing traffic between IPv6 Border Gateway Protocol routers.
Mobility
Unlike mobile IPv4, Mobile IPv6 (MIPv6) avoids triangular routing and is therefore as efficient as normal IPv6. This advantage is mostly hypothetical, as neither MIP nor MIPv6 are widely deployed today.128-bit length
Adressing, 128-bit length
The primary change from IPv4 to IPv6 is the length of network addresses. IPv6 addresses are 128 bits long (as defined by RFC 4291), whereas IPv4 addresses are 32 bits; where the IPv4 address space contains roughly 4 billion addresses, IPv6 has enough room for 3.4 x 1038 unique addresses.
IPv6 addresses are typically composed of two logical parts: a 64-bit (sub-)network prefix, and a 64-bit host part, which is either automatically generated from the interface’s MAC address or assigned sequentially. Because the globally unique MAC addresses offer an opportunity to track user equipment, and so users, across time and IPv6 address changes, RFC 3041 was developed to reduce the prospect of user identity being permanently tied to an IPv6 address, thus restoring some of the possibilities of anonymity existing at IPv4. RFC 3041 specifies a mechanism by which time-varying random bit strings can be used as interface circuit identifiers, replacing unchanging and traceable MAC addresses.
Notation
IPv6 addresses are normally written as eight groups of four hexadecimal digits. For example, 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 is a valid IPv6 address.
If one or more four-digit group(s) is 0000, the zeros may be omitted and replaced with two colons(::). For example, 2001:0db8:0000:0000:0000:0000:1428:57ab can be shortened to 2001:0db8::1428:57ab. Following this rule, any number of consecutive 0000 groups may be reduced to two colons, as long as there is only one double colon used in an address. Leading zeros in a group can also be omitted (as in ::1 for localhost). Thus, the addresses below are all valid and equivalent:
[sourcecode language=’php’]
2001:0db8:0000:0000:0000:0000:1428:57ab
2001:0db8:0000:0000:0000::1428:57ab
2001:0db8:0:0:0:0:1428:57ab
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab
[/sourcecode]
Having more than one double-colon abbreviation in an address is invalid, as it would make the notation ambiguous.
A sequence of 4 bytes at the end of an IPv6 address can also be written in decimal, using dots as separators. This notation is often used with compatibility addresses (see below). This addressing scheme is convenient when dealing with the mixed environment of IPv4 and IPv6 addresses. The general notation is of the form x:x:x:x:x:x:d.d.d.d where x’s are the 6 higher order hexadecimal digits whereas d’s correspond to the decimal digits of lower order 8 bit pieces of address, as it is the IPv4 format. For example, ::ffff:12.34.56.78 is the same address as ::ffff:0c22:384e and 0:0:0:0:0:ffff:0c22:384e. Usage of this notation is deprecated and unsupported by numerous applications.
Additional information can be found in RFC 4291 – IP Version 6 Addressing Architecture.
From Wikipedia, the free encyclopedia