IPv4: DeMystified

Terrence T. Cox —  June 11, 2013

We all ‘know’ what an IP address is and what it’s significance in the age of the internet is. What remains a mystery to a large number of people however (surprisingly even those in the technology industry) is exactly what an IP address is, in detail, and what the component parts represent and the significance of each. Today, we are going to define those components and talk a bit about each in an effort to make things a bit clearer as well as prepare you for the eventual (and inevitable) move to IPv6 (the subject of a series of later articles). Let’s get started…

What Is It Exactly?
So, our IP address is a unique identifier for the location we are originating our request from. It is how our requests (or packets) know how to get back to us, providing the destination address with a ‘return address’ when talking with us. So what does an IP consist of?

Formal IPv4 Breakdown

So let’s talk about that breakdown. An IPv4 address consists of 32 bits. As a result, the total number of IPv4 addresses in use at any one time is 4,294,967,296 which, in scientific notation, is 2(^32). Keep in mind that some addresses are reserved for special purposes, like private networks (192.168.x.x is a popular private reservation) or multicast addresses. As you can see, each IPv4 address is broken into four parts, each consisting of a number between 1 and 256, separated by a ‘decimal’ (.) notation, each 8 bit section (or one byte section) commonly referred to as an octet.

Finer Granularity
Now that we know what an individual address is made up of, let’s talk about the finer individual network breakdowns into ‘classes’ The three classes of networks for IPv4 are referred to as ‘Class A’, ‘Class B’ and ‘Class C’ addresses, each one a smaller representation of groups of IPs. See the table below for detail:

IPv4 Class Details

The problem that was discovered as the internet went global was that the number of addresses and the class structure lacked scalability. This was addressed with some success by the use of private networks that connected to the internet through a process called ‘Network Address Translation’ (often called NAT for short). This is a process by which private networks (the aforementioned 192.168.x.x network for example) translate the internal IP addresses used to a single (or smaller group) of valid external IPs for accessing the internet.

Where Does All of This Leave Us?
Plain and simply – the internet is out of addresses. All addresses that exist are owned by companies and providers such that they are guardedly given out under the strictest circumstances. IPs are routinely re-used via DHCP (dynamic IP allocation, most commonly used by your service provider to assign you a temporary IP to use at home on your home router). Ultimately, we need to move the entire internet to IPv6. IPv6, in short, changes addresses so that we end up with 2(^128) or 3.403 x 10(^38) addresses (translation: a lot). The main obstacle is cost. Routers, firewalls, web sites, switches, DNS, etc. ALL need to be upgraded to use that new scheme and it can be extremely expensive to retrofit large network implementations to support.

Final Thoughts
Although we need to move to IPv6, we will continue to struggle with the dearth of IPv4 addresses until it is completely unmanageable, and then probably beyond that. It will take pain of a magnitude that we are not at to force companies to spend the money to refit their networks to support and even then, the resulting issues will last for some time as outliers in the process come up to speed. I expect another five or more years with IPv4 being the standard addressing scheme before we reach that point.

In a future article, I will begin to discuss IPv6 in more detail. If you have any questions before then, please leave me a comment and I will attempt to address your concerns.

Terrence T. Cox

Posts Twitter

Developer, Linux Advocate, Open Source Junkie. Been at this whole tech thing long enough to be considered 'very experienced' but not so long as to be bored of it.