cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Announcements
Join Customer Connection to register!
8575
Views
19
Helpful
2
Replies
akaurbedi
Beginner

OSPF and ICMP not use Transport protocol

Since long I am trying to find the correct answer for this.

Why protocols like OSPF and ICMP do not use any Transport protocol like TCP/UDP ??

2 ACCEPTED SOLUTIONS

Accepted Solutions
Giuseppe Larosa
Hall of Fame Master

Hello Akaurbedi,

OSPF and ICMP are built directly over IP for the specific purposes they serve:

ICMP is used for diagnostic purposes and for testing OSI L3 connectivity  (IP level) using TCP or UDP would mean testing at OSI layer 4-7 ( above IP layer) it would mean involving upper layers

OSPF is a routing protocol of type IGP interior gateway protocol and it is used to buid routing tables.

It is based on IPv4 because it has its own mechanims to build relationships between router nodes that are adjacent (that share a common IP subnet) using Hello Messages and its own methods to exchange link state databases and updates.

Hello neighbor discovery is multicast based and would not  be supported by TCP, so it would need to use UDP, on the other hand the OSPF database exchange would be supported by a TCP session.

OSPF protocol designers decided to build the protocol directly over IP using protocol number 89.

To be noted they are not the only protocols that are not based on UDP or TCP

Hope to help

Giuseppe

View solution in original post

Peter Paluch
Hall of Fame Cisco Employee

Hello,

This is quite an extensive question

OSPF needs to perform reliable multicasting because it needs to talk to multiple possible neighbors on the same network segment. Now, TCP does not support multicast and UDP is not reliable Therefore, OSPF implements its own transport mechanism that allows both for reliability (acknowledgements and retransmissions of lost segments) and multicasting, bypassing both TCP and UDP.

ICMP does not use any specific transport protocol because it basically does not need any. It is mostly meant to be unicasted and it is not meant to be reliable. Therefore, it exactly copies the characteristics of plain IP by inserting itself directly into IP packets.

A transport protocol in TCP/IP suite is responsible for, among other things, delivering segments of data to communicating applications (i.e. processes running on communicating end hosts). However, the ICMP performs signalling and messaging function that is more relevant to the IP/TCP/UDP drivers than to these applications. For example, how should an application react if an ICMP message arrives that claims that the packet must be smaller? Or what should the application do if a TTL Exceeded mesage is received? Note that these ICMP messages are generated for individual packets that could not be delivered to the recipient. However, an application does not even know what packet carried which data, as the packetization is performed a couple of layers below the application layer. So whatever the ICMP is trying to tell us, it is in fact telling it to the internet and transport layer, not to the application. Following this logic, there is no advantage in encapsulating ICMP into transport protocols - no added functionality would be gained.

Feel welcome to ask further!

Best regards,

Peter

View solution in original post

2 REPLIES 2
Giuseppe Larosa
Hall of Fame Master

Hello Akaurbedi,

OSPF and ICMP are built directly over IP for the specific purposes they serve:

ICMP is used for diagnostic purposes and for testing OSI L3 connectivity  (IP level) using TCP or UDP would mean testing at OSI layer 4-7 ( above IP layer) it would mean involving upper layers

OSPF is a routing protocol of type IGP interior gateway protocol and it is used to buid routing tables.

It is based on IPv4 because it has its own mechanims to build relationships between router nodes that are adjacent (that share a common IP subnet) using Hello Messages and its own methods to exchange link state databases and updates.

Hello neighbor discovery is multicast based and would not  be supported by TCP, so it would need to use UDP, on the other hand the OSPF database exchange would be supported by a TCP session.

OSPF protocol designers decided to build the protocol directly over IP using protocol number 89.

To be noted they are not the only protocols that are not based on UDP or TCP

Hope to help

Giuseppe

View solution in original post

Peter Paluch
Hall of Fame Cisco Employee

Hello,

This is quite an extensive question

OSPF needs to perform reliable multicasting because it needs to talk to multiple possible neighbors on the same network segment. Now, TCP does not support multicast and UDP is not reliable Therefore, OSPF implements its own transport mechanism that allows both for reliability (acknowledgements and retransmissions of lost segments) and multicasting, bypassing both TCP and UDP.

ICMP does not use any specific transport protocol because it basically does not need any. It is mostly meant to be unicasted and it is not meant to be reliable. Therefore, it exactly copies the characteristics of plain IP by inserting itself directly into IP packets.

A transport protocol in TCP/IP suite is responsible for, among other things, delivering segments of data to communicating applications (i.e. processes running on communicating end hosts). However, the ICMP performs signalling and messaging function that is more relevant to the IP/TCP/UDP drivers than to these applications. For example, how should an application react if an ICMP message arrives that claims that the packet must be smaller? Or what should the application do if a TTL Exceeded mesage is received? Note that these ICMP messages are generated for individual packets that could not be delivered to the recipient. However, an application does not even know what packet carried which data, as the packetization is performed a couple of layers below the application layer. So whatever the ICMP is trying to tell us, it is in fact telling it to the internet and transport layer, not to the application. Following this logic, there is no advantage in encapsulating ICMP into transport protocols - no added functionality would be gained.

Feel welcome to ask further!

Best regards,

Peter

View solution in original post