ARP协议的工作原理

1、定义:

ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。

2、工作原理:

 

 3、详解

 【ARP请求包】

 

 

 

【ARP回应包】

【ARP协议字段解读】

Hardware type :硬件类型,标识链路层协议

Protocol type: 协议类型,标识网络层协议

Hardware size :硬件地址大小,标识MAC地址长度,这里是6个字节(48bti)

Protocol size: 协议地址大小,标识IP地址长度,这里是4个字节(32bit)

Opcode: 操作代码,标识ARP数据包类型,1表示请求,2表示回应

Sender MAC address :发送者MAC

Sender IP address :发送者IP

Target MAC address :目标MAC,此处全0表示在请求

Target IP address: 目标IP

4、疑问

这个问题的难度堪比另外一个世界级难题:世界上最好的编程语言是什么?

其实早在20世纪时,W.Richard Stevens在《TCP/IP详解卷一》里面就提到了这个难题。这里给出我个人的协议分层思路,给大家作为参考=>

协议到底所属哪一层,可以从应用/功能来考虑,也可以从层次/包封装来考虑。

以ARP协议为例,它的功能最终是获取到MAC信息,服务于链路层,从这点考虑,ARP是链路层协议;但是从层次来看,ARP基于Ethernet协议,IP协议基于Ethernet协议,它们在Ethernet协议里面有独立的Type类型,前者是0x0806,后者是0x0800,既然ARP和IP协议"平起平坐",那么IP是网络层,ARP难道就不是网络层?

小结:基于功能来考虑,ARP是链路层协议;基于分层/包封装来考虑,ARP是网络层协议。(此方法对于ICMP协议同样管用)

 

参考:

https://zhuanlan.zhihu.com/p/28771785

 

posted @ 2021-12-05 18:19  钟胜一  阅读(1560)  评论(0编辑  收藏  举报