The primary motivation for defining a new version of IP arose from the address space limitation .
Besides, new applications are being developed that require more complex addressing and routing capabilities.
The current version of IP is becoming obsolete because of its limited address space, lack of needed functionality and inadequate security features .
With the shortcomings of the existing IP becoming increasingly evident, a new protocol, known as IPv6 has been defined to ultimately replace IP.
Ipv6 retains many of the design features of IPv4. It is connectionless , in which each datagram contains a destination address and each routes independently.
Besides that, IPv6 includes a few new features
Expanded Addressing Capabilities
IPv6 increases the IP address size from 32 bits to 128 bits , to support more levels of addressing hierarchy , a much greater number of addressable nodes, and simpler auto-configuration of addresses.
Header Format Simplification
Some IPv4 header fields have been dropped to reduce the processing cost of packet handling and to limit the bandwidth cost
Improved Support for Extensions and Options
IPv6 can consists of zero or more extension headers. It allows greater flexibility for introducing new options in the future.
Flow Labeling Capability
Enable the labeling of packets belonging to particular traffic "flows" for which the sender requests special handling
Authentication and Privacy Capabilities
Extensions to support authentication , data integrity , and data confidentiality are specified for IPv6.
Ipv6 Header Format
IPv6 datagram begins with a base header , which is followed by zero or more extension headers , followed by data.
Version – IP Version. (Version 6)
Prio. – Priority Value. It enables a source to identify the desired delivery priority of its packet, relative to other packet from the same source.
Flow Label – It is intended for use with applications that require performance guarantee .
Payload length – Specify the size of the data being carried.
Next Header – Specify the type of information that follows the current header.
Hop Limit - Decremented by 1 by each node that forwards the packet. The packet is discarded if Hop Limit is decremented to zero.
Source Address - Address of the originator of the packet.
Destination Address - Address of the intended recipient of the packet.
It is used to encode the optional Internet-layer information
It is not examined or processed by any node along a packet's delivery path, until the packet reaches the node.
It must be processed strictly in the order they appear in the packet
Hop-by-Hop Options Header – It is used to carry optional information that must be examined by every node along a packet's delivery path.
Routing header – It is used by an IPv6 source to list one or more intermediate nodes to be "visited" on the way to a packet's destination.
Fragment header – It is used by an IPv6 source to send packets larger than would fit in the path maximum transmission unit ( MTU) to their destinations.
Destination Options header – It is used to carry optional information that need be examined only by a packet's destination node(s).
IPv6 assign a unique address for each connection between a computer and a physical network.
IPv6 separates each such address into a prefix that identifies the network and a suffix that identifies a particular computer on the network.
IPv6 includes addresses with a multilevel hierarchy.
Three basic types of IPv6 address
Unicast - It corresponds to a single computer. A datagram sent to the address is routed along a shortest path to the computer.
Multicast – It corresponds to a set of computers. Membership in the set can change at any time. When a datagram is sent to the address, IPv6 delivers one copy of the datagram to each member of the set.
Anycast – It corresponds to a set of computers that share a common address prefix. A datagram sent to the address is routed along a shortest path and then delivered to exactly one of the computers (Cluster addressing). Anycast permits replication of services.
There are no broadcast addresses in IPv6, their function being superseded by multicast addresses.
There are three conventional forms for representing IPv6 addresses as text strings:
IPv6 colon hexidecimal notation
x:x:x:x:x:x:x:x, where the 'x's are the hexadecimal values
IPv6 zero compression
69DC:0:0:0:0:0:8D0A – can be written as 69DC::8D0A
1080:0:0:0:8:800:200C:417A – can be written as 1080::8:800:200C:417A
Mixed environment of IPv4 and IPv6
x:x:x:x:x:x:d.d.d.d, where the 'x's are the hexadecimal values and 'd's are the decimal values of the four low-order 8-bit
0:0:0:0:0:0:22.214.171.124 or ::126.96.36.199
An identifier for a single interface. A packet sent to a unicast address is delivered to the interface identified by that address.
It is an address that is assigned to more than one interface with the property that a packet sent to an anycast address is routed to the "nearest" interface having that address, according to the routing protocols' measure of distance.
When a unicast address is assigned to more than one interface, thus turning it into an anycast address, the nodes to which the address is assigned must be explicitly configured to know that it is an anycast address.
An anycast address MUST NOT be used as the source address of an IPv6 packet.
An anycast address MUST NOT be assigned to an IPv6 host, that is, it may be assigned to an IPv6 router only.
The subnet-router anycast address is intended to be used for applications where a node needs to communicate with one of a set of routers on a remote subnet.
Subnet-Router Anycast address format
An IPv6 multicast address is an identifier for a group of nodes. A node may belong to any number of multicast groups.
Multicast Address Format
11111111 at the start of the address identifies the address as being a multicast address.
Multicast addresses must not be used as source addresses in IPv6 datagrams or appear in any routing header.