This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.ComputingWikipedia:WikiProject ComputingTemplate:WikiProject ComputingComputing
In CISCO CCNA Curriculum materials is correct answer for question "At which layer of the OSI model does ICMP operate?" is network layer —Preceding unsigned comment added by 85.70.144.73 (talk) 17:52, 17 March 2008 (UTC)[reply]
The lead section of the article recently accumulated some controversial statements on this subject, such as a rewrite of this old paragraph:
ICMP differs in purpose from TCP and UDP in that it is not used to send and receive data between end systems. It is usually not used directly by user network applications, with some notable exceptions being the ping tool and traceroute.
into this paragraph on 3 April 2008:
From a strictly technical perspective, ICMP functions at the transport layer of IP. However, it differs in purpose from other transport protocols such as TCP and UDP in that it is typically not used to ::send and receive data between end systems. It is usually not used directly by user network applications, with some notable exceptions being the ping tool and traceroute. As such, ICMP is often ::considered to be a "network" layer protocol.
and this additional final paragraph on 4 May 2008:
ICMP can "never" be considered a Network Layer protocol. If it were to be considered so, then, it will have to rely on another transport layer protocol to carry its data i.e. Its data will become the payload for a transport layer protocol, as in the case of IP. ICMP is a Transport layer protocol just like TCP and UDP.
A user deleted that contentious paragraph on 5 May 2008, promptly enough, but at the same time amplified the controversial conclusion:
As such, ICMP is commonly (but incorrectly) considered to be a "network" layer protocol.
Now it may be true that some analysts of how the Internet works after the fact have working definitions of "network layer" "Internet layer" and "transport layer" where ICMP fits in the "transport layer" and no other. However, ICMP was part of the Internet layer by definition, when it was built into the Internet. Understanding why it was in that layer would be part of understanding the historical development of the Internet. If what is commonly considered its "layer" has changed, that should be supported with some reference rather than argued originally, or worse, merely asserted.
The company Network Sorcery provides an online guide to Internet protocols [1] that has a simple scheme for classifying protocols into layers that has apparently been favorably received by at least some technical writers and students. Network layer protocols have Ethertype numbers. Transport layer protocols have IP protocol numbers. Application layer protocols have port numbers. Unfortunately, that puts some protocols that have conventionally been considered in the network layer into the transport layer, including ICMP.
According to information, the OSI model has seven layers, then a conventional explanation of the TCP/IP model in terms of five layers developed. Meanwhile, the article Internet protocol suite currently has a chart that provides a nuanced view of only four layers, and historical references to support that view. It puts ICMP in the top of three sublayers in the Internet layer.
The difficulty that some have with this may be that "Internet layer" and "network layer" seem to be synonymous, yet what's in the "Internet layer" may be a matter of history and specific technical implementation, while what's in the "network layer" vs. in the "transport layer" may be a matter of classification according to information systems theory.
how come the source address and destination address in the packet structure table are only 16 bits long ? ips are 32 bits long. see also IP packet format