ICMP is a Layer3 protocol. Not sure who said it was Layer2.
ARP, on the other hand, while I might be willing to say it's Layer 2.5, I really have a hard time calling it a Layer3 protocol because there's nothing about specific or hierarchical addresses to it at all!
It's a broadcast sent AT LAYER2 in order to figure out who has a Layer3 IP address. So it SUPPORTS layer 3, but that doesn't make it a Layer3 protocol.
(Although it's funny this question came up because in the CCIE Security meeting group I'm in this week, someone pointed out an article on Cisco's web site that called ARP a Layer3 protocol and so we all had been debating that and laughing about it.)
Hmm im a bit confused now lol. At now i think it is a layer 3, i have read now on books it is sended to discover MAC ADDRESSES, so it can be called a layer 2 protocol, other reason to be a layer 2 is, ARP send a broadcast frame so is layer 2 because layer 3 devices dont forward broadcasts !
Whats your opinion?
ARP runs on top of layer 2 protocol, i.e. using services provided by data-link protocols. ICMP runs on top of layer 3 protocol.
For example, ICMP uses IP protocol to delivery ICMP datagram to remote host in remote, non-local network. ARP uses Ethernet protocol to flood out question "Who is x.x.x.x?' over switched network.
Message was edited by: Garry
- IP (IPv4 • IPv6)
- Tunnels (L2TP)
- Media Access Control (Ethernet • DSL • ISDN •FDDI)
this is what i found in wiki. And where did the data link layer came from on TCP/IP stack. They should either define it as a network access layer or change the whole stack to OSI reference?? Confused...confused....So if i tally the arp to TCP/IP, should not that be in the layer one of the TCP/IP ?? but the book here says it's on layer two of TCP/IP which is linked to the third layer of the OSI model when referenced??
biplab, you shouldn't consider ARP as the datalink protocol, as it doesn't transport the layer 3 protocols. Rather, as Scott said it is a function (component) of the layer 3 protocols, such as IP, to determine a hardware address of a host. ARP uses the layer 2 protocols to complete this function.
If you're on a Layer2 network, why would you need to forward broadcast across a Layer3 boundary?
Yes, it's needing to figure out a MAC (the reply). And it knows the IP address. but in the FRAME HEADER (note, not an IP header) there is no hierarchical address information. That's in the content/data.
Like Garry says it just asks the question of "who has x.x.x.x?"...
ICMP though has information that directs it (potentially across Layer3 boundaries) to a specific layer 3 address. ARP will not cross any Layer3 boundary and has no reference to reach a specific layer 3 address.
All the joys.
The OSI model is just that, a model. Therefore, you will find inconsistent opinions. In my mind ARP is clearly a layer two protocol. It enables IP over Ethernet. ICMP is a layer 3 protocol that depends on IP. There is more gray area in calling ICMP layer a layer 3 protocol than calling arp a layer 2 protocol. At least in my opinion.
I think we should classify a protocols running directly on particular layer of OSI model (using the transport services of the protocols running at lower layers and providing the transport services for the protocols running at upper layer), and the protocols running between layers of the OSI model (using the transport services of the protocols running at lower layers, not providing transport services to upper layer protocols, but specific supplementary services).
- Ethernet and PPP runs directly on a layer 2 of the OSI model (for instance, Ethernet using the transport services of layer 1 electrical signal transmission and providing the transport services for layer 3 IP and layer 2.5 ARP).
- ARP runs on top of a layer 2 (for instance, ARP using the transport services of the layer 2 Ethernet and providing a supplementary services for layer 3 IP, not transport services).
- IP and IPX runs directly on a layer 3 of the OSI model (for instance, IP using the transport services of layer 2 Ethernet protocol and providing the transport services for the layer 4 TCP or UDP, or maybe for the layer 3.5 ARP protocol). 3.5 - for simplicity :).
- ICMP runs on top of a layer 3 (for instance, using the transport services of layer 3 IP and providing the supplementary services for applications).