IoT – Network Layer Protocols

In this article, we shall look at various network layer communication protocols in IoT. We will keep the introduction short, as we have already discussed various kinds of protocols in numerous articles.

So, we shall directly jump into the topic and look at 6 network layer communication protocols. So hang tight and read till the end of the article.

Network Layer Communication Protocols

Before we discuss the different network layer protocols in IoT, let us quickly recap protocols. So, we all know that IoT devices are connected over a network and constantly send and receive data.

It is these protocols that help IoT devices to communicate with each other. An internet protocol is essentially a set of rules that specifies how the data gets sent to the internet. These protocols make sure that the information from one IoT device sensor gets read and understood by another IoT device, a gateway, or a service.

If u wish to know more about internet protocols, you can read my other articles, where I have covered various topics like communication protocols, messaging protocols, data link layer protocols, session layer protocols, and more. Let us look at some examples of network layer protocols used in IoT.

1. ARP

ARP is the abbreviation for “Address Resolution Protocol.” It associates an IP address with the MAC address. A MAC address is imprinted on the NIC, and every device on the network is recognized by this address. The ARP protocol finds a node’s MAC address when an internet address is known.

Therefore, a MAC address is essential for communication on a local area network. However, we should also remember that MAC addresses can be easily changed. For instance, the MAC address changes when the NIC on a particular machine fails. However, the IP address does not change.

Working of ARP

The host sends an ARP query packet along with the IP address and broadcasts it over the network to get the physical address of a different host on its network.

Every single host on the network receives the ARP packet. They then process it. Yet, only the intended recipient recognizes the IP address and sends back the physical address.

The host that contains the datagram helps in adding the physical address to the cache memory and the datagram header. The host then sends it back to the sender.

2. RARP

RARP is the abbreviation for “Reverse Address Resolution Protocol”. The message format of RARP is very similar to the ARP protocol. RARP is the protocol that obtains the IP address from a server.

Like the ARP protocol, The RARP protocol frame is sent from one machine to another contained in the data portion of a frame. When the host wants to know the IP address, it broadcasts the RARP query packet containing its physical address to the entire network. The RARP server on the network recognises this packet and responds with the host IP address.

3. ICMP

ICMP is the abbreviation for “Internet Control Message Protocol”. It is used by hosts and routers to send notifications of IP datagram problems back to the sender. ICMP uses an echo test/reply to check if the destination is reachable.

ICMP handles both control and error messages. However, the main function reports the error but does not correct them. The ICMP protocol messages are transmitted within the IP datagram and cause the errors to be returned to the user processes.

The IP datagram contains the addresses of both the destination and source. However, it doesn’t know the previous router’s address through which it has been passed.

Format of ICMP Message

An ICMP consists of 3 fields, of which 2 are 8-bit types, and the third is a 16-bit checksum. The first 8-bit field specifies the type of the message, and the second 8-bit field specifies the reason for a particular message type. Finally, the last field covers the entire ICMP message.

Error reporting of ICMP Messages

ICMP reports the error messages to the sender. ICMP handles 5 types of errors. Let us take a brief look at each type:

a. Destination Unreachable

This message is sent from the receiver to the sender when the destination cannot be reached, or the packet is discarded when the destination is not reachable.

b. Source Quench

The congested router sends this message to the source host to reduce the transmission rate. ICMP takes the IP address of the discarded packet and then adds the source quench message to the Internet Protocol datagram, informing the source host to reduce its transmission rate.

c. Time Exceeded

This error message is also known as “TTL” or “Time-to-Live”. TTL is a parameter that determines how long a packet should live before it is discarded.

d. Parameter Problems

When the router or host finds any missing value in the IP datagram, the datagram is discarded. Then, the source host receives the message “parameter problem.”

e. Redirection

This error message is generated when the host consists of a small routing table. The host sends the datagram to the wrong route when the host consists of a limited number of entries.

4. RPL

The RPL protocol is specifically designed for low-power and lossy networks. RPL networks are resource-constrained and are constructed on the resources available on networks that adapt themselves.

This distance routing protocol essentially targets collection-based networks, where nodes periodically send measurements to a collection point. RPL is designed to be highly adaptive to network conditions and to provide alternate routes whenever default routes are inaccessible.

5. CORPL

CORPL is the abbreviation for “Cognitive RPL”; as the name suggests, it is an extension of the RPL protocol. CORPL uses opportunistic forwarding to transfer packages between each module or node instead of only the parents maintaining the information. Each node also remembers the information of the forwarding set.

6. CARP

CARP stands for “Caching Array Routing Protocol”. It is a protocol developed by Microsoft and implemented in the Microsoft Proxy server that allows multiple proxy servers to array as a single logical cache for distributed content caching.

CARP is essentially a series of Algorithms we apply on top of HyperText Transfer Protocol. This protocol also enables the tracking of proxy servers through an array membership list that is automatically updated using a time-to-live (TTL) countdown function.

7. 6LoWPAN

6LoWPAN is the abbreviation for IPv6 over Low Power Wireless Personal Area Network. 6LoWPAN is generally used to connect things to the cloud as it has low power, IP-driven nodes, and a mesh network.

This Network layer protocol should be used with low-power networks with memory-constrained embedded devices, as this system is made of many low-power nodes in a self-healing mesh form. In addition, 6LoWPAN enables free data exchange using an edge router that acts as a simple gateway for the rest of the internet.

8. IGMP

IGMP is the abbreviation for Internet Group Management Protocol. IGMP is a communication protocol used by hosts and adjacent routers for multicasting communication with Internet Protocol networks and uses the resources efficiently to transmit the data packets.

IGMP’s multicast communication can have single or multiple senders and receivers. This is why IGMP can be used in streaming videos, gaming, or web conferencing tools.

9. IPv4

IPv4 is the abbreviation for Internet Protocol Version 4. As the name says, it is the fourth version of the Internet Protocol. IPv4 is a core protocol of standards-based internetworking methods in the Internet and other packet-switched networks.

10.  IPv6

IPv4 is the abbreviation for Internet Protocol Version 6. This protocol is an Internet Layer protocol for packet-switched internetworking and provides end-to-end datagram transmission across multiple IP networks. IPv6 closely adheres to the design principles developed in the previous version of the protocol IPv4.

These are only a few network layer protocols. There are many other protocols for various other needs. All you have to do is choose!

Summary

You have now learned various network layer protocols like ARP, CARP, RPL, RARP, and CORPL.

Leave a Reply

Your email address will not be published. Required fields are marked *