IPv6: A quick introduction

IPv6 Addressing :
IPv6 is an Internet layer protocol for packet- switched internetworking & provides end-to-end datagram transmission across multiple IP networks.
An IPv6 address is 128 bits or 16 bytes long, the addresses are represented as eight groups of four hexadecimal digits separated by colons.
For example, FDEC:0000:0000:0000:BBFF:0000:FFFF:002E is an IPv6 address.
1. The leading zeros of a section can be omitted.
For example, 002E can be written as 2E and 0000 can be written as 0.
So the above address will look like, FDEC:0:0:0:BBFF:0:FFFF:2E
2. If there are consecutive sections consisting of zeros only, we can remove all the zeros and replace them with a double semicolon.(Note that this type of abbreviation is allowed only once per address)
So the above address will now look like, FDEC::BBFF:0:FFFF:2E

IPv6 Address Space:
The address space of IPv6 contains 2128 addresses.
In Ipv6, a destination address can belong to one of three categories:

1.Unicast Address:
A unicast address defines a single interface. The packet sent to a unicast address will be routed to the intended recipient.

2. Anycast Address:
An anycast address defines a group of computers that all share a single address. A packet with an anycast address is delivered to only one
member of the group, the most reachable one. The hardware and software generate only one copy of the request; the copy reaches only one of the servers. IPv6 does not designate a block for anycasting; the addresses are assigned from the unicast block.

3. Multicast Address
A multicast address also defines a group of computers. However, there is a difference between anycasting and multicasting. In anycasting, only one copy of the packet is sent to one of the members of the group; in multicasting each member of the group receives a copy. IPv6 considers broadcasting as a special case of multicasting.

The IPv6 Protocol :
The IPv6 packet is shown below:

Each packet is composed of a base header followed by the payload. The base header occupies 40 bytes, whereas payload can be up to 65,535 bytes of information.One thing to note here is that unlike IPv4, base header size is fixed in IPv6 and it is 40 bytes.
The IPv6 Base header is shown below:

The description of fields follows.
Version- The 4-bit version field defines the version number of the IP. For IPv6, the value is 6.
Traffic class- The 8-bit traffic class field is used to distinguish different payloads with different delivery requirements. It replaces the type-of-service field in IPv4.
Flow label- The flow label is a 20-bit field that is designed to provide special handling for a particular flow of data.
Payload length-The 2-byte payload length field defines the length of the IP datagram excluding the header. Note that IPv4 defines two fields related to the length: header length and total length. In IPv6, the length of the base header is fixed (40 bytes); only the length of the payload needs to be defined.
Next header-The next header is an 8-bit field defining the type of the first extension header (if present) or the type of the data that follows the base header in the datagram. This field is similar to the protocol field in IPv4.
Hop limit- The 8-bit hop limit field serves the same purpose as the TTL field in IPv4.
Source and destination addresses-The source address field is a 16-byte (1 28-bit) Internet address that identifies the original source of the datagram. The destination address field is a 16-byte (128-bit) Internet address that identifies the destination of the datagram.

IPv6 New Features:

1) Stateless Auto-configuration
New host can assign its own host address
- No need for DHCP

2) Supports new IP security protocols
- Authentication of source
- Encryption of payload

3) IPv4 and IPv6 packets both limit payload size to 64KB. However, with a Jumbo Payload option, the IPv6 may have up to 4GB payload.

4) IPv6 uses a classless view of addressing, with no concept of classful addressing. Hence, it is no longer required to consider the classful boundaries of addresses.