CCNA Routing and Switching
<< IP and Network Fundamentals Course
>> IPv4 Address System Section
Understanding IPv4 Addressing System History and creation, was one of the most interesting subject I worked on. Briefly, when the Government, Colleges, and Institutes needed a reliable way of computer communication among its agencies, Mathematicians and communication Engineers gathered together to come up with Addressing Systems based on Binary Base 2 System. I found it little bit hard to trace how and where the IP Address versions such 1,2,3, and finally 4 have been evolved using base 2 system.
However, for sure I can tell that many organization were involved such Department of Defense, Advanced Research Projects Agency Network (ARPANET), and many others. Anyway, I had to use Reverse Engineering to go back in time, in order to demonstrate the first experiment starting at IPv1 and up to IPv4. It was one of the most interesting experience I had when I studied Networking, it shows clearly the amount of hard work put together by Engineers to Design such perfect IP Addressing System.
In a nutshell, if an old civilization such Egypt was known to the world by their Pyramids, China by their Great Wall, Aztec by their amazing Cities, just to name a few, then our current civilization will be known to the future by its Electronic Technology. I believe, our Computer and Network Technology combined all the knowledge earned across all those old civilization around the world; put together in massive Electronic Technology Eco-System called – The Internet.
Table of Contents
Going Back In IP Time
Since the 60’s, there was always an urge need to connect computers reliably together, it was a BIG Dream until the mid 70’s. However, the beginning of 80’s revealed that TCP/IP stack is ready with its IP Space divided to Classful Networks.
Initially, the IP Space was a Big Pie and has been divided to Classful Networks – A,B,C, and D. Keep in mind, that Classful Public Networks was used only till 1993, but since 1993, WAN (The Internet) is using what is called Classless Inter Domain Routing (CIDR).
Note: Keep in mind, that Classful Mode is not used at the Public Networks since 1993, and has been replaced by Classless Mode instead. Classful mode used at Private Networks such 10.x.x.x, 172.16.x.x to 172.31.x.x, and 192.168.x.x, hence, Classful Mode Networks can still be used at our home and office private networks, but not at the Public side. Nowadays, Public Networks uses Classless Mode Networks (CIDR).
Binary Magic
When Internet Protocol (IP) was ready, it needed a logical Addressing System to function. I went back in time to reassemble how the initial development took place, and how IPv1 Addressing System evolved to IPv4.
As mentioned, computer hardware language such network and storage devices uses Binary to function and communicate (0 and 1), 0 means OFF and 1 means ON, therefore, the IP Address System must be based on Binary to function, but be presented as Decimal or Hexadecimal for human to manage.
TIP: IPv4 and IPv6 based on Binary, however, decimal is used to present or write down IPv4 address such 104.236.81.39/18, and Hexadecimal is used to present or write down IPv6 address such 2604:a880:800:10::44a:7001/64.
Engineering and Distributing IPv1 Addresses
At this moment, the Engineers are facing the following challenges:
- How many IP Addresses an IP Addressing System can provide?
- Is it possible to scale it for Thousands and Millions of Network devices?
- Will the IP Address System provide Multiple and different size of Networks?
Initially, the Engineers behind IP Address invention, suggested to start assigning IP Addresses using 8bits long address. Since there are 8bits on a Byte, and Base 2 is the computer Language (Binary), then what left is to do the math: (2^8) or 28 = 256. Notice that 256 is read 255 by computers because 0 is counted.
As per IPv1 design, you can say: Network 0 (Zero) includes 254 IP Addresses. 0 will be used as Network Address, and 255 as the last number, will be used as Broadcast Address. The usable IP Addresses from: 1 will be used as the First IP address and 254 as the Last IP Address.
Keep in Mind:
- Computers count starting from 0, so instead of showing 256, it shows 255.
- The Zero (0) is the Starting Point (Network Address) and 255 would be the End point (Broadcast Address).
- Since 0 and 255 is used, the usable IP Addresses that can be assigned are: 1 up to 254.
As mentioned, IPv1 and up to IPv4 presented as decimal numbers, meaning, the unseen Binary string behind IPv1 address is 8bits long. Nowadays, IPv4 presented as decimal, but the unseen Binary string is 32bits address long divided to 4-bytes (Octets), and separated by dots called Dotted Decimal Notation. E.g. 192.168.1.1
Internet Protocol (IP) is a Logical Addressing System. Ethernet MAC Addressing System on the other hand, is a Physical Addressing System that can be assigned to a Network or Storage device. Nowadays, most storage and network devices assigned a Burned-in or Hardware Address (MAC Address) such 04:01:38:99:9d:01. Note, how MAC addresses presented as Hexadecimal, but the unseen Binary address is 48bits address long.
So, building a Logical IP Addressing System based on Binary, requires planning and Binary design. Now, imagine that a group of Engineers back then in the late 70’s, and among them are: Sam, Adam, Sara, and John assigned IPv1 Addresses.
Sam got IP Address number 1 (Binary: 00000001), Adam got IP Address 2 (00000010), Sara got IP Address 3 (00000011), and John got the last IP Address 254 (11111110). Since IPv1 based on 8bits address long, the maximum IP addresses that can be used are 254 IP Addresses as shown below.
IP Address Number 1 = 00000001 IP Address Number 2 = 00000010 IP Address Number 3 = 00000011
Up to the last IP Address…
IP Address Number 254 = 11111110
Note: IPv1 provided very limited number of IP Addresses, and only ONE Network called Network 0 Zero.
IP Address Experiment 1 Layout
Experiment 1 of IPv1 Addressing System shows how the Engineers decided that 254 devices such Main Frames devices can be connected together using Network 0 which include the following IP Addresses:
Sam’s IP Address:
IP address: 1 Binary: 00000001 Network Address: 0 Binary: 00000000 Broadcast Address: 255 Binary: 11111111
Adam’s IP Address:
IP Address: 2 Binary: 00000010 Network Address: 0 Binary: 00000000 Broadcast Address: 255 Binary: 11111111
Sara’s IP Address:
IP Address: 3 Binary: 00000011 Network Address: 0 Binary: 00000000 Broadcast Address: 255 Binary: 11111111
Up to the last IP Address 254…
John’s IP Address:
IP Address: 254 Binary: 11111110 Network Address: 0 Binary: 00000000 Broadcast Address: 255 Binary: 11111111
Note: Network Address a.k.a Netmask Address or Subnet Mask
Important IP Addressing Facts
Network Address 0: this is a Decimal Zero, but there are 8 Binary Zeros behind this Zero (00000000), therefore, it requires 8 Binary Zeros to represent 1 Zero in decimal.
Broadcast Address 255: behind the 255, there are 8bits as well, but Ones instead of Zeros (1111111).
Need help? Check How to Convert Decimal to Binary Article.
Note: After IP Addressing Experiment 1, Engineers still facing few more challenges:
- IPv1 address system provides limited number of usable IP addresses.
- All IP addresses belong to ONE Network – Network 0.
Solving the first problem, the Engineers figured out that using 8bits address long for an IP Address System is not efficient, hence, they decided to use 32bits address long a.k.a IPv4 Addressing System.
IPv1 vs. IPv4 Bits Structure
IPv1 address system uses 8bits address long, which will provide 254 usable IP addresses. How? 28 = 256, but computers count starting from Zero, hence, it’s 255. 0 would be the Network Address, and 255 would be the Broadcast Address, therefore, we end up with 254 usable IP addresses.
IPv4 address system uses 32bits address long, which will provide insane number of usable IP addresses 4,294,967,294. How? 232 = 4,294,967,296, but computers count starting from Zero, hence, it’s 4,294,967,295. Again, 0 would be the Network Address, and 4,294,967,295 would be the Broadcast Address, therefore, we end up with 4,294,967,294 usable IP addresses. This crazy number of usable IP Addresses has been fully consumed in 2011!
IPv4 vs. IPv6 vs. MAC Addresses Space
- IPv4 as 32bits string long uses Decimal Base 10 Systems to present its IP Space.
- IPv6 as 128bits string long uses Hexadecimal Base 16 Systems to present its IP Space.
- The Hardware 48bits MAC Address uses Hexadecimal Base 16 Systems to present its Hardware Address Space.
I believe, since IPv6 binary address is ridiculously long, the Engineers behind IPv6 design, chose to use hexadecimal numbers to present its IP Space instead of Decimal. It could be also, that decimal is already used by IPv4.
So, if IPv4 presents 4 billions something IP address using 32bits address long, imagine what would be the number of IPv6 addresses when 128bits address long is used!
No one ever believed in the 70’s and 80’s that we will consume 4 billion something IPv4 addresses in 2 decades. IPv6 is the future, but wait, people will still use IPv4 till 2030 or more before IPv6 Networks totally takes over as Internet2.
The One BIG Pie of Network 0.0.0.0
That’s how the One BIG IP Space looks like before dividing it to Classful Networks.
Usable IP addresses Range: 0.0.0.1 up to 255.255.255.254
Network Address: 0.0.0.0
Broadcast Address: 255.255.255.255
That’s it, 4 Billion Something IP Addresses with ONE BIG Network. Let’s recap little bit in here. Moving from IPv1 to IPv4 gave us a great number of usable IP addresses, however, we still not finish yet. This great number of IP Addresses belong to one Network, and as required by the plan, we have to have multiple and different size of Networks.
Let’s look at Experiment 2 below, and see how IPv1 and IPv4 are similar on their Network and Broadcast properties. It’s true that IPv4 got more IP Addresses than IPv1, but still represent One BIG Network.
IP Address Experiment 2 Layout
This Experiment shows IPv4 layout before dividing it’s BIG IP Space into Classful Networks. Notice, the difference between the First experiment that uses 8bits, and the Second Experiment that uses 32bits address long.
Sam’s IP address:
IP Address: 0.0.0.1 Binary: 00000000.00000000.00000000.00000001 Network Address: 0.0.0.0 Binary: 00000000.00000000.00000000.00000000 Broadcast Address: 255.255.255.255 Binary: 11111111.11111111.11111111.11111111
Adam’s IP Address:
IP Address: 0.0.0.2 Binary: 00000000.00000000.00000000.00000010 Network Address: 0.0.0.0 Binary: 00000000.00000000.00000000.00000000 Broadcast Address: 255.255.255.255 Binary: 11111111.11111111.11111111.11111111
Sara’s Main Frame IP Address:
IP Address: 0.0.0.3 Binary: 00000000.00000000.00000000.00000011 Network Address: 0.0.0.0 Binary: 00000000.00000000.00000000.00000000 Broadcast Address: 255.255.255.255 Binary: 11111111.11111111.11111111.11111111
Up to the Last 4 Billionth IP Address.
John’s Main Frame IP Address:
IP Address: 255.255.255.254 Binary: 11111111.11111111.11111111.11111110 Network Address: 0.0.0.0 Binary: 00000000.00000000.00000000.00000000 Broadcast Address: 255.255.255.255 Binary: 11111111.11111111.11111111.11111111
The Network Address and Broadcast Address Parts comparing with the first experiment still got the same properties – Zeros and Ones. Why? Because both considered as One Pie (One Network).
Meaning, an IP System with 8bits address long or even 128bits address long, will still belong to One BIG Pie Network if no one divided its origin form (The Pie) to smaller Networks.
Note: Network Address a.k.a Netmask Address or Subnet Mask
Dividing The BIG Network 0.0.0.0
Who in the world would keep more than 4 Billion Addresses assigned to One Network? IP designers decided to divide the One Huge IPv4 Space Network to smaller Networks called Classful Networks.
In real life, to manage and control Network devices, you have to have them in groups, small Networks or Subnets to ease the management and make the Block of IPs more efficient.
Prepare Binary for Decimal Conversion
Dividing the One Network to Classes of Networks starts by Binary to Decimal conversion. Since Binary language based only 2 things (0 and 1), then the division should be based on Binary Base 2 System.
However, Human understand Decimal Base 10 system language better, hence, to accomplish the division:
- Convert Binary strings to Decimal,
- do the division using decimal; then,
- convert back to Binary if needed.
Keep in mind:
- Once the the original network divided, the Origin form of this Network will be canceled out.
- Network 0.0.0.0 can’t be used anymore along with its IP addresses from 0.0.0.1 up to 0.0.0.254.
If you sliced a pie of Pizza, you have canceled the original form of this Pie and it became slices. The origin form of this pie is gone!
Decimal Division Preparation
As mentioned, human will feel more comfortable using decimal, hence, have the First byte of Network Zero (0.0.0.0) powered by 2, then divide the decimal number as needed, once you done, convert back to Binary 🙂
First byte equal to 8bits of zeros, therefore, 28 = 256. Now, 256 can be used as the Original Network for the Engineers to divide it into smaller networks using decimal number.
Note: There will be soon during our study Classless Networks which divided the Classful Networks further to smaller networks. Therefore, I personally called Classful Networks as “The First Division” and Classless Networks as “The Second Division”.
I wish they did the second division on the first place, however, it was not so late in 1993. Do you remember CIDR? It simply means “The Second Division” it’s the Classless Inter Domain Routing (CIDR), hence, we call it Classless Networks which divided the Classful Networks to even smaller Networks.
Next, I will show you how the Engineers did the First Division based on 256 to Create Classful A, B, C, D, and E Networks.
Subject Related
By Wikipedia IPv4 | Router Ally IPv4 | HighTech IPv4 | The TCP IP Guide | Cisco CCNA Simplified | Cisco CCNA in 60 Days | CCNA R&S Certification Kit | Subnetting Made Easy | Who is Running the Internet | IP Addressing and Subnetting | The Only IP Book You Will Ever Need!
CCNA Routing and Switching
<< IP and Network Fundamentals Course
>> IPv4 Address System Section
LEAVE A COMMENT