Internet Protocol Version 6
IP Version 6 is a network address protocol that was designed to cover the short falls of IP Version 4. IPv4 with its 32 bit address space only allowed for approximately 4.3 billion possible addresses (that’s 2 to the 32nd power possible addresses), this is becoming a serious problem now as we are currently running out of them. Back in the early 1980’s when IPv4 was initially designed, no one thought we would ever need that many to begin with. But, over time the internet has grown from what was once a network of computers systems at colleges that communicated with government networks, into the world wide phenomenon it has become today. IPv6 on the other hand uses a 128bit address space to assign addresses to networks and hosts. That’s 2 to the 128th power possible IP addresses ( or 3.4 x 10 to the 38th power as a decimal equivalent) that can be assigned! So unless you are going to assign an IP address to every rock, stick, and tree on earth, then I doubt we will ever run out of them.
A typical IPv4 address uses binary notation to represent addresses, and decimal equated values for user representation (since it’s typically easier to read decimal than binary values). IPv6 uses the hexadecimal number system to represent IP addresses in the IPv6 address space. A typical IPv4 address looks like: 188.8.131.52 (a class B IP address), which consists of 4 octets of 8bit binary values separated by a period; while as IPv6 consists of 8 sets of 4 hexadecimal values separated by colons. Each set of 4 hexadecimal values consists of 16 bits each, for a total value of 8 x 16 = 128. This is where we get the 128 bit address space from. Hex after all is the base 16 numeric system. An example IPv6 IP address looks like this: 2001:0f68:0000:0000:0000:0000:1946:69af. Although, it is perfectly legal to truncate leading zeros with a double colon like this: 2001:f68::1946:64b9. The double colon signifies that there are leading zeros after the first one. This makes it easier to read without having all the trailing zeros to view.
What many people don’t realize is that you can use an IP address in place of a fully qualified domain name when making search queries through your browser. If a website was named www.example.com, it must have a corresponding IP address associated with it. This could be say for example, 184.108.40.206. If you entered this address with an http:// prefix into your browsers main address bar, you would be able to connect with the website just as you would with the fully qualified domain name (www.example.com). Different applications use different ports to help identify the use different types of applications. Websites typically use port 80, so you could write the IPv4 address above as http://220.127.116.11:80, although your web browser would automatically assume you were using port 80 because of the http:// prefix attached to the beginning of the address. If you wanted to access an IPv6 address followed by a port number you could do so like this: http://[2001:of68:12b9:138a]:80/ . Notice we enclosed the address in brackets in order to separate the colon and port number from the rest of the address. Without doing so, we would not be able to specify a port number to be used.
There are several types of addresses that are used with IPv6, among them the most used are called “unicast addresses”. These consist of Global unicast addresses, Link-local unicast addresses, and Unique local unicast addresses. Global unicast addresses are fully routable across the open internet and have a starting hexadecimal value of 2000:. As we stated before, an IPv6 address consists of 128 bits, and in the case of the Global unicast address, the first 48 bits of the address are called the “Global routing prefix”, which specifies an organizations website for instance, and this is set of numeric values assigned by your ISP and IANA (internet assigned numbers authority). The next 16 bits that follow are called the “Subnet ID”, which represents an organizations internal IPv6 network. This provides information pertaining to what subnet or portion of a network that your site resides on. The last 64 bits are used for the “Interface ID”, which is used to identify your computer or other device within the IPv6 network. Interface ID’s work much like a host ID does in IPv4, as it provides a unique identified for a particular system (your PC). The interface ID partially consists of the workstations network interface cards MAC address(the physical address of your computer). All forms of IPv6 addresses consist of a site prefix, subnet ID, and interface ID,but different portions of the addresses are allocated differently depending on the type of address being used. Just remember that Global unicast addresses start with a 2000: prefix.
There are also” link local unicast addresses” and unique local unicast addresses”. These address types are used for internal network communications. They are really the equivalent of the “Automatic Private IP address” scheme used in Windows PC’s. APIPA is used to configure workstations on an IPv4 internal network with an address for internal communications with other workstations on the same subnet (router interface). And, just as with IPv4, Link local and unique local addresses cannot be used on the open internet. In IPv4 APIPA addresses consist of an address that begins with 169.254.
Link Local Unicast addresses begin with the fe80: prefix, which consists of the first 10 bits of the address space. The next 64 bits are used for the subnet ID, which are actually not used and left blank with leading zeros, since link local addresses cannot communicate outside their individual subnets. Remember, they are private IP address spaces. The last 54 bits of the address space are used for the interface ID. When we refer to “Link” in link local, or unique local, we are referring to the subnet that a workstation resides on. Workstations with these addresses can communicate with other workstations that share the same link (subnet)only. Link local unicast addresses are now considered deprecated and should be replaced with Unique local unicast addresses.
Unique Local Unicast addresses begin with a site local prefix of FD00: which consists of the first 7 bits of the address space. The 8th bit is set to 1 indicating that this is a unique local address. The next 40 bits are used to represent the Global ID, which is infact a randomly generated value used to identify a specific site within an organization. The next 16 bits identify the subnet ID, which can be used to manage routing of data from one link to another (one subnet to another), something that link local addresses could not do. The last 64 bits identify the workstations network interface card, and this value is almost always derived from the MAC address of that workstations NIC. So with Unique local unicast addresses, you can communicate across multiple internal links, but with Link local unicast addresses you cannot communicate across multiple links, only the workstations on your current link (subnet).
IPv6 address prefix types used to identify different types of addresses:
Global unicast addresses: 2000:
Link-local unicast addresses: fe80:
Unique local unicast addresses: fd00:
Multicast addresses: ff00:
Just as you have a loop back address of 127.0.0.1 in IPv4 that is used to identify the local host (to test your pc’s network interface), IPv6 also has a local host function. This local host function consists of ::1 to represent the workstation at hand.
As we stated before, an IPv6 address consists of 128 bits. Multicast IPv6 addresses are generally used to send data to all workstations located on the same link (subnet). The first 8 bits in a multicast address always start with FF as the address prefix. The following 4 bits identify the “flag bits”, Although 3 of these 4 flag bits are not used and are set to 0. The fourth flag bit is what we call a “transient bit”. This bit specifies whether or not an address is temporary or permanent. If the flag bit is set to 1, then the IPv6 address is temporary. If the flag bit is set to 0, then the IPv6 address is a permanent address. The next following 4 bits in a multicast address are called the “scope bits”. They are used to identify the scope in which the particular multicast address is being used. Because we have 4 bits, we have only 2 to the 4th or 16 possible scope values that can be assigned to a multicast address. Keep in mind, multicast addresses always start with FF as their prefix.
ome of the scope values you will come across with IPv6 multicast addresses are:
Node Local Scope: value is 1 FF01::1
Global Scope (for sending multicast transmissions across networks) value is 14 FF01::E
Link Local Scope: value is 2 FF02::2
Site Local Scope: value is 5 FF05::2
Reserved Scope: value is 15
Here’s an example “Node Scope Multicast”: FF0x0:0:0:0:0:1 Notice how the prefix begins with an FF, and the a 1 is affixed to the end of the address indicating the type of scope being used.
Here’s an example “Global Scope Multicast”: FF0x0:0:0:0:F The F represents the scope of this multicast is global.
While a unicast address is used to send data to one individual workstation, and a multicast address is used to send data to all workstations or a set of workstations within a given network, there are also anycast addresses. Anycast addresses only send data to the nearest workstation, instead of all workstations as with a multicast transmission would do. To use an any cast address, you just assign the same unicast address to multiple workstations, then the stations can send data to each other as an anycast request. This helps with load balancing across IPv6 networks, say if a router went down, then a workstation could retrieve the information that it needs through another workstation that is connected to a different router.
Myself Today DotNet Consultant and faculty in Sri Sai Baba National Degree College, Anantapur, AP, India. Started with C, ORACLE and today well-versed with top Microsoft Technologies ASP.NET,C#.NET also SQL SERVER. Latest Developments JQuery, CSS etc. Interested to implement always new and wanted technologies. Love to hear comments from u for my posts.