There are 16 bytes (octets) of an IPv6 address; they are 128 bits long.
IPv6 defines hexadecimal colon notation to make addresses more readable. In this notation, 128 bits, each 2 bytes in length, are divided into eight parts. Two bytes requires four hexadecimal digits in hexadecimal notation. The address, therefore, consists of 32 hexadecimal digits, with a colon separating every four digits.
aaaa : aaaa : aaaa : aaaa : aaaa : aaaa : aaaa : aaaa
Address space
IPv6 has a much wider space for addresses; there are 2128 addresses available. The IPv6 designers divided the address into several groups. A few left-most bits, called the form prefix, identify their category in each address. The type prefix is a length variable, but it is constructed in such a way that no code is the same as the first part of any other code.
There is no ambiguity in this way; the form prefix can easily be deter-mined when an address is given. For each form of address. The third column displays the fraction of each address type relative to the whole space of the address.
prefixes for Ipv6 address
Ipv6 Address types
One single machine is identified by a unicast address. It is necessary to deliver the packet sent to a unicast address to that particular device. Two types of unicast addresses are specified by IPv6: geo-graphically based and provider-based. Here we discuss the second type; the first type for future definition is left. Generally, the provider-based address is used as a unicast address by a typical host.
Fig 1: unicast address
The following are the fields for the provider-based address:
● Type identifier : The address is specified in this 3-bit field as a provider-based address.
● Registry identifier : The agency that registered the address is indicated by this 5-bit field. Three Registry Centers are currently identified.
● Provider identifier : This variable-length area defines the Internet Service Provider (such as an ISP). For this area, a 16-bit longitude is suggested.
● Subscriber identifier : When a company subscribes to a service to the Internet, a subscriber identifier is assigned to it. For this area, a 24-bit length is recommended.
● Subnet identifier : There are many different sub-networks for each subscriber, and each sub-network can have an identifier. The subnet identifier identifies a particular subnet within the subscriber's territory. For this area, a 32-bit length is recommended.
● Node identifier : The last field determines the identity of the node to which a subnet is connected.
2. Multicast address
Multicast addresses are used to identify, instead of just one, a community of hosts. It is necessary to send a packet sent to a multicast address to each group member.
Fig 2: multicast address
A flag that defines the group address as either permanent or temporary is the second sector. The permanent group address is established and can be accessed at all times by the Internet authorities.
A transient group address, on the other hand, is rarely used only for tempo. Systems engaged in a teleconference may use a transient group address, for example. The third field specifies the scope of the address of the party. Many distinct areas have been identified.
3. Anycast address
Anycast addresses also describe IPv6. A group of nodes is often specified by an allcast address, like a multicast address. However, only one of the members of the anycast party, the closest one, is shipped a packet bound for an anycast address (the one with the shortest route).
Although the concept of an ISP address is still debatable, one potential usage is to allocate an ISP address to all ISP routers covering a wide logical area of the Internet. The routers outside the ISP send a packet bound for the ISP to the nearest ISP router. For allcast addresses, no block is allocated.
Key takeaway :
● IPv6 defines hexadecimal colon notation to make addresses more readable.
● There are 16 bytes of an IPv6 address; they are 128 bits long.
● IPv6 has a much wider space for addresses; there are 2128 addresses available.
A mandatory base header followed by the payload is composed of each packet. The payload consists of two parts: optional headers for extensions and upper layer data. The base header covers 40 bytes, whereas the upper layer extension headers and data contain up to 65,535 bytes of information.
Fig 3: Ipv6 packet
Base header
The figure indicates the eight fields in the base header. As follows, these fields are:
● Version : The version number of the IP is specified by this 4-bit region. The meaning is 6 for IPv6.
● Priority : With regard to traffic congestion, the 4-bit priority field determines the packet's priority.
● Flow label : The flow label is a 3-byte (24-bit) field that is designed to provide a specific flow of data with special handling.
● Payload length : The length of the IP data- gramme except the base header is specified by the 2-byte payload length field.
● Next header : An 8-bit field specifying the header that follows the base header in the datagram is the next header. The next header is either an optional IP extension header or an encapsulated packet header, such as UDP or TCP. This field is also found in each extension header. Note that this area is called the protocol in Version 4.
● Hop limit : In IPv4, this 8-bit hop limit field serves the same purpose as the TIL field.
● Source address : The field of the source address is a 16-byte (128-bit) Internet address that specifies the datagram's original source.
Fig 4: base header
Key takeaway :
● It is mandatory base header followed by the payload is composed of each packet.
● The base header covers 40 bytes, whereas the upper layer extension headers and data contain up to 65,535 bytes of information.
Another protocol that has been updated in the TCP IP protocol suite version 6 is ICMPP (ICMPv6). This latest version follows the same version 4 policy and purposes. To make it more fitting for IPv6, ICMPv4 has been updated. Furthermore, several version 4 separate protocols are now part of the Internet-working Control Message Protocol (ICMPv6).
In ICMPv6, the ARP and IGMP protocols in version 4 are merged. Since it is rarely used, the RARP protocol is dropped from the suite and BOOTP has the same features.
We break the ICMP messages into two groups, just as in ICMPv4. Each group, however, has more message types than before.
Error reporting :
Reporting errors is one of the core ICMP obligations. Five types of errors are handled: unreachable destination, packet too wide, time exceeded, issues with parameters, and redirection. ICMPv6 forms a packet of errors,
That is then encapsulated in a datagram of IPs. This is delivered to the failed datagram's original source.
Comparison of error-reporting messages in ICMPv4 and ICMPv6
In version 6, the source-quench message is deleted because the priority and flow label fields allow congestion control by the router and discard the least relevant messages. There is no need to remind the sender to slow down in this version. The packet-too-big message is introduced because IPv6 is the sender's responsibility for fragmentation.
Packet too big - This is a new kind of message that has been introduced to version 6. Two things happen if a router receives a datagram that is larger than the overall transmission unit (MTU) size of the network that the datagram can pass through. First, the datagram is discarded by the router and then an ICMP error packet is sent to the source-a packet-too-big message.
Query :
ICMP can diagnose some network issues in addition to error reporting. This is achieved by means of query messages. Four different message groups have been defined: echo request and respond, solicitation and advertising for routers, solicitation and advertising for neighbours, and community membership.
ICMPv6 eliminates two sets of query messages: time-stamp request and reply- and address-mask request and reply. Since they are introduced in other protocols such as TCP and since they were rarely used in the past, the time-stamp request and reaction messages are omitted.
In IPv6, the request for an address mask and reply messages are deleted because the subnet section of an address allows subscribers to use up to 232 - 1 subnets. Subnet masking, as defined in IPv4, is therefore not needed here.
Comparison of query message in ICMPv4 and ICMPv6
Neighbor Solicitation and Advertisement : In version 4, the network layer includes an independent protocol called the Address Resolution Protocol (ARP). This protocol is eliminated in version 6, and its duties are included in ICMPv6. The concept is exactly the same, but the message format has changed.
Group Membership : In version 4, the network layer includes an independent protocol called IGMP. This protocol is eliminated in version 6, and its duties are included in ICMPv6. The intent is exactly the same.
Key takeaway :
● Another protocol that has been updated in the TCP IP protocol suite version 6 is ICMPv6.
● Reporting errors is one of the core ICMP obligations.
● ICMP can diagnose some network issues in addition to error reporting.
● This is achieved by means of query messages.
Three strategies have been invented by the IETF (Internet Engineering Task Force) to help the transition:
1. Dual stack
The host should run IPv4 and IPv6 simultaneously until the entire internet uses IPv6.
The source host queries the DNS, to determine which version can be used at the
time of sending a packet to the destination.
If the DNS returns an IPv6 address, the source host sends an IPv6 packet.
Fig 5: Dual stack
2. Tunneling
When two computers use IPv6 and want to communicate with each other and the
packet passes through a region that uses IPv4, it is called tunneling.
The IPv6 packet is encapsulated in an IPv4 packet, when it enters the region. It
leaves the capsule when it exits the region.
Fig 6: tunneling
3. Header Translation
It is used when some of the systems use the IPv4 and the sender wants to use IPv6,
but the receiver does not understand IPv6.
The header format should be totally changed through header translation.
The header of the IPv6 packet is converted to an IPv4 header.
Fig 7: header transition
Header translation procedure
1. Change the IPv6 mapped address to an IPv4 address by extracting the rightmost 32 bits.
2. Discard the value of IPv6 priority field.
3. Set the type of service field in IPv4 to be zero.
4. Calculate the checksum for IPv4 and insert in the corresponding field.
5. Ignore the Ipv6 flow label.
6. Convert the compatible extension headers to options and insert them in the IPv4 header.
7. Calculate the length of IPV4 header and insert it into the corresponding field.
8. Eventually, compute the total length of the IPv4 packet and insert it into the corresponding
field.
Key takeaway :
● To avoid any issues between IPv4 and IPv6 systems, the transition must be smooth.
● The switch from IPv4 to IPv6 does not happen unexpectedly, due to the large number of systems on the Internet.
● It takes a significant amount of time before any device can switch from IPv4 to IPv6 on the Internet.
References :
2. Internetworking with TCP/IP by Douglas Comer
3. Computer Networking: A Top-Down Approach by Jim Kurose