Introduction to IP Addresses
When ARPANET was launched in year 1969, Network Control Protocol (NCP) was used to facilitate communication between various hosts connected with it. However with the development of ARPANET and initiation of internet related projects, it was required to use much more flexible, reliable and scalable protocol to carry out the same task. To overcome limitations of NCP, two new protocols were developed, Internet Protocol (IP) for routing data between different networks or hosts, and Transaction Control Protocol (TCP) for tasks like data streaming, segmentation, error handling and flow controlling.
Internet Protocol Addresses or IP Addresses were used to address hosts connected to internet or any other network, making it is possible to uniquely identify connected hosts. As an example consider a real life scenario of sending a letter. When sending a letter, the sender writes the receiver’s postal address on the right side of the envelope. When it is posted, latter will be routed to related post office using various transport methods, depending on the address written on the envelope. At last, receiving side’s postman will receive the letter and he will check the post box number, street name, block number or any related field written on the envelope and delved the letter to relevant person. Packet delivery of a network also happens in a similar way. Sender mentions the receiver’s address, which is IP address of receiver on the packet. When posting a letter, the receiver’s address is written on the right side. As same as that there are some rules to be followed when mentions the receiver’s IP address. When the packet is sent, it will be router through number or router, networks, and hosts using various transport methods like, fiber optics and copper cables. Selected route will depend on the IP address of receiver. Finally the packet will be delivered to receiver. If a letter is sent without writing the receiver’s address, it will not be delivered to related person, because there is no possible way to identify destinations. Same as that, without IP addresses there won’t be a reliable mechanism to route packets between various networks, because there is no possible way to identify sources or targets.
Introduction to IPv4
After various beta tests carried out IPv4 or Internet Protocol version 4 was implemented with RFC (Request for Comments) 791. IP was developed by splitting an early version of TCP into two new protocols called TCP and IP.(TCP/IP) This version which was spitted was version 3 of TCP. So that new version of both TCP and IP were numbered with same version number naming this version of IP as IPv3. IPv4 is an improved version of IPv3. [Reference 1]
An IPv4 address is a 32bit binary number. However as handling and remembering a 32bit binary number is hard, this number is divided in to four groups of 8bit binary numbers. Each group is represented with corresponding decimal number and written in doted decimal notation. Consider commonly used IP address 192.168.1.1 which is from Class C, address for Private-Use Networks.
Consider a single group of 8bit binary number. The maximum number that can be assigned to this sort of a group is binary number “11111111” which is 255 in decimal. So that maximum number decimal number that can be used as a part of dotted decimal notation of IP address is 255. From binary “00000000.0000000.00000000.00000000” or decimal 0.0.0.0 to binary “11111111.11111111.11111111.11111111” or decimal 255.255.255.255 there are 232 or 4,294,967,296 possible addresses. This usable set of addresses is called as the address space of IPv4. Because of that, maximum number of usable addressed that can be provided by using IPv4 if 4,294,967,296 and it is the maximum number of hosts that can be directly connected with a network. This limit was not a problem when IPv4 was introduced because of less number of hosts connected to networks. However with the development of internet, which is a large-scale network of interconnecting computers, computer networks, mobile phones and electronic devices, this limit has become a prioritized problem.
Though we mentioned that address space of IPv4 is 4,294,967,296, it is a much smaller number when considering available addresses for use in the public Internet. In order to identify this difference we’ll briefly consider the IPv4 Address Distribution Structure.
IPv4 Address Distribution Structure
The Internet Assigned Numbers Authority (IANA) is responsible of managing allocation of IP addresses and managing unallocated IP addresses in uncast address pool. However IANA is not responsible for allocation of IP addresses to end users. What IANA does is delighting IP address blocks to Regional Internet Registries (RIRs). There are five RIS spread around the globe. Responsibility of these registers is delegating IP address blocks provided by IANA to National Internet Registries (AP region) and Internet Service Providers (ISPs).
There are number of conditions that are followed by IANA to effectively use the address space of IPv4. When allocating IP address blocks to a RIR, IANA only allocate one of “/8” from address space. “/8” is the Classless Inter-Domain Routing (CIDR) notation for IP addresses with submit mask “255.0.0.0”. So that, RIRs are assigned with one of IP ranges from 0-255.x.x.x. However there are some limits applied in allocation which makes it impossible to assign any of 0-255 “/8” blocks to RIRs. These are discussed below.
IANA will allocate sufficient IPv4 address space to the RIRs to support their registration needs for at least an 18 month period and IANA will allow for the RIRs to apply their own respective chosen allocation and reservation strategies in order to ensure the efficiency and efficacy of their work. IANA will allocate additional “/8” blocks to RIRs when they exceed 50% of their available address space and when addresses are less than its established necessary space for the following 9 months.
IPv4 addresses those are usable in the public Internet.
However, as discussed before all IP addresses in IPv4 address space are not usable in the public Internet because of Special Use IPv4 Addresses. There are specially used IP addresses defined by RFC 5735 of Internet Engineering Task Force (IETF). These Special Use IPv4 Addresses are listed below.
Also Class E addresses that are in range of 240.0.0.0 to 255.255.255.254 are reserved for experimental purposes, and Class D addresses in range of 126.96.36.199 to 188.8.131.52 are reserved for multicast communication. So that publicly usable addresses in the Internet are limited to what is shown below.
(Usable addresses in the Internet)
So that overall, 35.078 /8 address blocks are reserved for special purposes and are not usable in public internet, leaving only 220.922 /8 address blocks out of 255 /8 address blocks for use of public internet. From this 220.922 /8 address blocks IANA holds a 14 /8 addresses, which leaves 206.922 /8 address blocks for use of public internet.
Below image shows usage of “/8 address blocks” by year 2007.
Blocks marked in brown are reserved, blocks marked in green are free and blocks marked in orange are allocated.
Below image shows allocation of “/8 address blocks” by year 2010 (current).
Blocks marked in brown are reserved, blocks marked in green are free, blocks marked in orange are allocated and blocks marked in dark orange are newly allocated from 2007 to 2010.
As above graphs shows IPv4 address space is rapidly running out of space. 33 new /8 address block assignments are done within 3 years. Over half a billion of 4,294,967,296 addresses are unusable due to various reasons we discussed above, giving a total of about 3.7 billion possible addresses on the Internet. However by January 1, 2007, 2.4 billion of addresses were in use, leaving 1.3 billion addresses free. But by 2010, with the expansion of technology such as handheld computers, PDAs, mobile phone, robotics and desktop computing, only about 10% of address space was left free, leaving nearly 234.37 million addresses free.
What will happen when these 234.37 million addresses run out? As it is not possible to give a way of uniquely identifying a host in the internet, internet users will not be able to connect with it unless service providers take some action.
There are several suggestion, such as already used Network Address Translation (NAT) servers. These servers act as a interface between a network and internet. All the users in the network access internet through this server and all the users will share a same IP address to access internet. Users are given a private IP addresses by NAT server and NAT server forwards responses to relevant hosts in its local network once received. However as all the clients are using same IP address, a host cannot listen to incoming connections. When a incoming connection request arrives, NAT server do not know where to forward it. This will disable services like, Telnet, FTP, web servers, mail servers inaccessible from another location.
However to overcome the limitation of address space and also to overcome many other limitations of IPv4 a new protocol is introduced called IPv6.
Introduction to IPv6 and IPv4 vs. IPv6
Unlike 32bit IPv4 addresses, IPv6 address is a 128bit address. 128bit binary address is obviously hard to manage, so that the address is divided into eight 16bit groups and each group is represented by the hexadecimal value of it. Each group is separated by a colon.
As each group consists of 16bits, the maximum hexadecimal value of a group is “FFFF”. So that, from “0000:0000:0000:0000:0000:0000:0000:0000” to “FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFFFFFF” there are 2128 IPv6 addresses, which is nearly 3.428 x 1038. That is about 342 trillion, trillion, trillion addresses. Address space of IPv4 which was 4,294,967,296 and the address space of IPv6 which is 340,282,366,920,938,463,463,374,607,431,768,211,456 shows a huge difference.
Because of this large increase of address space, it is possible to assign trillions of addresses to every human being on the planet.
Earth is about 4.5 billion years old, If we had been assigning IPv6 addresses at a rate of 1 billion per second since the earth was formed, we would have by now used up less than one trillionth of the address space, leaving about 341 trillion, trillion, trillion addresses free.
Earth’s surface area is about 510 trillion square meters. If a typical computer has a footprint of about a tenth of a square meter, we would have to stack computers 10 billion high blanketing the entire surface of the earth to use up that same trillionth of the address space.
[Source – IPv6 Address Size and Address Space – Tcpipguide.com]
It is clear that, due to large increase of address space of IPv6 discussed problems related to limitation of IPv4 address space will be solved. There are some already allocated IPv6 addresses mentioned in IPv6 “Global Unicast Address Assignments”, and some IPv6 addresses are reserved for special purposes as mentioned in “IANA IPv6 Special Purpose Address Registry”. However these special purpose allocations can be disregarded because of the size of available address space.
Even though there are number of advantages associated with IPv6 such as larger address space, stateless address autoconfiguration, mandatory support for IPsec, simplified processing by routers, and mobility, this protocol is not widely adopted yet. This is because of expensive updates of equipments and software, and also because of consumer apathy. However adoption of IPv6 instead of IPv4 is necessary because of the address space limitation. So that, IPv6 networks will grow and it will be implemented by ISP and network service providers, in near future.
TCP/IP Internet Protocol
IANA IPv4 Address Space Registry
IANA – Policy For Allocation of IPv4 Blocks to Regional Internet Registries.
IPv6 Address Allocation and Assignment Policy [June 26 2002]
IANA IPv6 Special Purpose Address Registry
IPv6 Global Unicast Address Assignments
IPv4 Address Report – auto-generated by a daily script.
RFC5735 – Special Use IPv4 Addresses [January 2010]
Everything you need to know about IPv6
A Pragmatic Report on IPv4 Address Space Consumption
Policies for IPv4 address space management in the Asia Pacific region
>90% of IPv4 address space used; IPv6 move looking messy [January 21, 2010 8:05 PM]
IPv6 Address Size and Address Space