Internet Protocol Version 6(IPv6)
Internet Protocol version 6 (IPv6) is a network layer IP standard used by electronic devices to exchange data across a packet-switched internetwork. It follows IPv4 as the second version of the Internet Protocol to be formally adopted for general use.
IPv6 is intended to provide more addresses for networked devices, allowing, for example, each cell phone and mobile electronic device to have its own address. IPv4 supports 4.3×109 (4.3 billion) addresses, which is inadequate for giving even one address to every living person, much less support the burgeoning market for connective devices. IPv6 supports 3.4×1038 addresses, or 5×1028(50 octillion) for each of the roughly 6.5 billion people alive today.
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).
Larger address space
The main feature of IPv6 is the larger address space: addresses in IPv6 are 128 bits long. The larger address space avoids the potential exhaustion of the IPv4 address space without the need for NAT and other devices that break the end-to-end nature of Internet traffic.
128 bits might seem overkill to achieve that goal. However, since IPv6 addresses are plentiful, it is reasonable to allocate addresses in large blocks, which makes administration easier and avoids fragmentation of the address space, which in turn leads to smaller routing tables. The current allocation policies allocate 64 bits of address space to an end-user, and 96 bits or more to an organization.
A technical reason for selecting 128-bit for the address length is that since most future network products will be based on 64 bit processors, it is more efficient to manipulate 128-bit addresses. The drawback of the large address size is that IPv6 is less efficient in bandwidth usage, and this may hurt regions where bandwidth is limited.
Another advantage of the larger address space is that it makes scanning certain IP blocks for vulnerabilities significantly more difficult than in IPv4, which makes IPv6 more resistant to malicious traffic.
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 (broadcast) 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 autoconfiguration (DHCPv6) or be configured manually.
Stateless autoconfiguration is only suitable for hosts; routers must be configured manually or by other means.
In IPv4, packets are limited to 64KiB of payload. When used between capable communication partners, IPv6 has support for packets over this limit, referred to as jumbograms. Use of jumbograms is believed to improve performance over high-throughput networks
By using a simpler and more systematic header structure, IPv6 was supposed to improve the performance of routing. Recent advances in router technology, however, may have made this improvement obsolete.
IPsec, the protocol for IP network-layer encryption and authentication, is an integral part of the base protocol suite in IPv6. It is, however, not yet deployed widely except for securing BGP traffic between IPv6 routers.
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 a four-digit group is 0000, the zeros may be omitted. For example, 2001:0db8:85a3:0000:1319:8a2e:0370:7344 can be shortened as 2001:0db8:85a3::1319:8a2e:0370:7344. Following this rule, any group of consecutive 0000 groups may be reduced to two colons, as long as there is only one double colon used in an address. Thus, the addresses below are all valid and equivalent:
Having more than one double-colon abbreviation in an address is invalid as it would make the notation ambiguous.
Leading zeros in a group can be omitted. Thus 2001:0db8:02de::0e13 may be shortened to 2001:db8:2de::e13.
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). Thus, ::ffff:126.96.36.199 is the same address as ::ffff:102:304.