ARP is used to translate IPv4 addresses (OSI layer 3) into Ethernet MAC addresses (OSI layer 2).

Domain Name Service is an Application Layer service which is used to look up the IP address of a given domain name.

 

 

The network layer is responsible for carrying data from one host to another. It provides means to allocate logical addresses to hosts, and identify them uniquely using the same. Network layer takes data units from Transport Layer and cuts them in to smaller unit called Data Packet.

Network layer defines the data path, the packets should follow to reach the destination. Routers work on this layer and provides mechanism to route data to its destination.

A subnet assigned to a network is not controlled by layer 3 of the OSI model, but is a part of the IP addresses methodology.

For the most part people will be familiar with a subnet ending in the 0 suffix, for example 255.255.255.0. This subnet notation actually defines the size and boundary of the network portion of the address.

So how do we know the size of this network?

For starters we need to know what the size of the network portion of the network is, so using the subnet notation 255.255.255.0 we break the octets down.

Octet 1: 255 = 1111 1111

Octet 2: 255 = 1111 1111

Octet 3: 255 = 1111 1111

Octet 4: 0 = 0000 0000

From the above we can see that octets 1 to 3 are completely assigned to the network, and octet 4 is made available to the host side.

Using the binary method we know that the total bit value of 8 bits is 255. So this means octet 4 has 255 hosts available for devices.
Interestingly however, there are actually 256 addresses, because do not forget that 0 still exists within this network.

 

What about a Variable Length Subnet Mask?

Lets try a different subnet size....

Network: 192.168.0.0

Subnet: 255.255.255.248

So we need to breakdown the subnet mask to figure out the size of the network subnet:

Octet 1: 255 = 1111 1111

Octet 2: 255 = 1111 1111

Octet 3: 255 = 1111 1111

Octet 4: 248 = 1111 0111

Octet 4 as you can see above has a 0 in the 5th bit position, the value of this bit is 8 when factored into the whole octet.
So all bit to the right of the indicated 0 is reserved to the host side of the network. 3 bits = 7 + 1 (factor in the zero as well) = 8 hosts.

 

So now that we know the size of the network for this subnet we can start partitioning multiple networks which operate independantly of each other:

192.168.0.0 - 192.168.0.7 : Subnet 255.255.255.248

192.168.0.8 - 192.168.0.13 : Subnet 255.255.255.248

And so on, and so forth....