Tutorials

External Resources

IPv4 addresses 32 bit binary addresses (divided into 4 octets) used by the Internet Protocol (OSI Layer 3) for delivering packet to a device located in same or remote network. MAC address (Hardware address) is a globally unique address which represents the network card and cannot be changed. IPv4 address refers to a logical address, which is a configurable address used to identify which network this host belongs to and also a network specific host number. In other words, an IPv4 address consists of two parts; a network part and a host part.

IPv4 addresses are stored internally as binary numbers but they are represented in decimal numbers because of simplicity.

An example of IPv4 address is 192.168.10.100, which is actually 11000000.10101000.00001010.01100100.

We can use the following equation for find the number of usable IPv4 addresses in a network (We have to use two IPv4 addresses in each network to represent the network id and the broadcat id.)

Number of usable IPv4 addresses = (2n)-2. Where "n" is the number of bits in host part.

"Class A" IPv4 addresses are for very large networks. The left most bit of the left most octet of a "Class A" network is reserved as "0". The first octet of a "Class A" IPv4 address is used to identify the Network and the three remaining octets are used to identify the host in that particular network (Network.Host.Host.Host).

The 32 bits of a "Class A" IPv4 address can be represented as 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.

The minimum possible value for the leftmost octet in binaries is 00000000 (decimal equivalent is 0) and the maximum possible value for the leftmost octet is 01111111 (decimal equivalent is 127). Therefore for a "Class A" IPv4 address, leftmost octet must have a value between 0-127 (0.X.X.X to 127.X.X.X).

The network 127.0.0.0 is known as loopback network. The IPv4 address 127.0.0.1 is used by the host computer to send a message back to itself. It is commonly used for troubleshooting and network testing.

Computers not connected directly to the Internet need not have globally-unique IPv4 addresses. They need an IPv4 addresses unique to that network only. 10.0.0.0 network belongs to "Class A" is reserved for private use and can be used inside any organization.

"Class B" IPv4 addresses are used for medium-sized networks. Two left most bits of the left most octet of a "Class B" network is reserved as "10". The first two octets of a "Class B" IPv4 address is used to identify the Network and the remaining two octets are used to identify the host in that particular network (Network.Network.Host.Host).

The 32 bits of a "Class B" IPv4 address can be represented as 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.

The minimum possible value for the leftmost octet in binaries is 10000000 (decimal equivalent is 128) and the maximum possible value for the leftmost octet is 10111111 (decimal equivalent is 191). Therefore for a "Class B" IPv4 address, leftmost octet must have a value between 128-191 (128.X.X.X to 191.X.X.X).

Network 169.254.0.0 is known as APIPA (Automatic Private IPv4 addresses). APIPA range of IPv4 addresses are used when a client is configured to automatically obtain an IPv4 address from the DHCP server was unable to contact the DHCP server for dynamic IPv4 address.

Networks starting from 172.16.0.0 to 172.31.0.0 are reserved for private use.

"Class C" IPv4 addresses are commonly used for small to mid-size businesses. Three left most bits of the left most octet of a "Class C" network is reserved as "110". The first three octets of a "Class C" IPv4 address is used to identify the Network and the remaining one octet is used to identify the host in that particular network (Network.Network.Networkt.Host).

The 32 bits of a "Class C" IPv4 address can be represented as 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.

The minimum possible value for the leftmost octet in binaries is 11000000 (decimal equivalent is 192) and the maximum possible value for the leftmost octet is 11011111 (decimal equivalent is 223). Therefore for a "Class C" IPv4 address, leftmost octet must have a value between 192-223 (192.X.X.X to 223.X.X.X).

Networks starting from 192.168.0.0 to 192.168.255.0 are reserved for private use.

Class D IPv4 addresses are known as multicast IPv4 addresses. Multicasting is a technique developed to send packets from one device to many other devices, without any unnecessary packet duplication. In multicasting, one packet is sent from a source and is replicated as needed in the network to reach as many end-users as necessary. You cannot assign these IPv4 addresses to your devices.

Four left most bits of the left most octet of a "Class D" network is reserved as "1110". The other 28 bits are used to identify the group of computers the multicast message is intended for.

The minimum possible value for the left most octet in binaries is 11100000 (decimal equivalent is 224) and the maximum possible value for the leftmost octet is 11101111 (decimal equivalent is 239). Therefore for a "Class D" IPv4 address, leftmost octet must have a value between 224-239 (224.X.X.X to 239.X.X.X).

Class E is used for experimental purposes only and you cannot assign these IPv4 addresses to your devices.

Four left most bits of the left most octet of a "Class E" network is reserved as "1111".

The minimum possible value for the left most octet in binaries is 11110000 (decimal equivalent is 240) and the maximum possible value for the leftmost octet is 11111111 (decimal equivalent is 255). Therefore for a "Class E" IPv4 address, leftmost octet must have a value between 240-255 (240.X.X.X to 255.X.X.X).

An IPv4 address has two components, a "Network" part and a "Host" part. To identify which part of an IPv4 address is the "Network" part and which part of the IPv4 address is "Host" part, we need another identifier, which is known as "Subnet Mask". IPv4 address is a combination of IPv4 address and Subnet mask and the purpose of subnet mask is to identify which part of an IPv4 address is the network part and which part is the host part. Subnet mask is also a 32 bit number where all the bits of the network part are represented as "1" and all the bits of the host part are represented as "0".

If we take an example for a Class C network, 192.168.10.0, the address part and the subnet mask can be represented as below.

### What is a Network Address?

A network address is used to identify the subnet that a host may be placed on and is used to represent that network. Network Address is the very first address of an IPv4 address block.

For Example, 10.0.0.0 is the network address of all IPv4 addresses starting from 10.0.0.1 to 10.255.255.254, having a subnet mask of 255.0.0.0

IPv4 Address 255.255.255.255 is used to send messages to all devices in the LAN and this IPv4 address is known as limited broadcast IPv4 address. A limited broadcast IPv4 Address can never be a source IPv4 address in an IPv4 datagram.

The host id value containing all 1's in the bit pattern indicates a directed broadcast address. A directed broadcast address can never be a source IPv4 address in an IPv4 datagram. A directed broadcast address will be seen by all nodes on that network. For example, the broadcast id for the network 192.168.10.0 with a subnet mask of 255.255.255.0 will be 192.168.10.255.

### What is Default Network?

The IPv4 address of 0.0.0.0 is used for the default network. When a program sends a packet to an address that is not added in the on the computer's routing table, the packet is forwarded to the gateway for 0.0.0.0, which may able to route it to the correct address.

### What are Loopback IPv4 Addresses?

IPv4 has a special reserved range of addresses known as IPv4 loopback addresses. Loopback range of IPv4 addresses ranges from 127.0.0.1 to 127.255.255.254. IP datagrams sent by a device to IPv4 loopback addresses not passed down to the data link layer for transmission to other devices. The IP datagrams sent to any address ranging from 127.0.0.1 to 127.255.255.254 are looped back to the source device at network layer.

If the TCP/IP protocol stack is working properly in your device, whenever you ping to any IPv4 loopback addresses, you will get a reply. Most of the operating systems map the IPv4 loopback address 127.0.0.1 with a name "localhost" by adding an entry in "hosts" file.

### Automatic Private IPv4 addresses (APIPA)

Automatic Private IPv4 addresses (APIPA) are assigned to a device which is configured to automatically (dynamically) obtain an IPv4 address from a DHCP server, is not able to contact the DHCP server because of some network problem. APIPA addresses are under 169.254.0.0/16 range.