写在前面
ARP地址解析协议 是网络层协议,但是其工作在数据链路层。
主要内容
IP地址
32位IP地址
MAC地址 :物理地址 以太网地址
用于数据链路层 .表示数据帧从哪一个链路接口发出到哪一个物理链路。
48位MAC地址固化在网卡的ROM当中。 也可以修改,唯一的。也就是将48位的MAC地址翻译成6个字节每个字节8个比特。一个字节可以使用2位的16进制数表示。局域网当中每一块网卡都有唯一的MAC地址。
需要有一个机制统一管理和分配MAC地址。厂商购买MAC地址的前24个比特的地址,每个厂商不一样。每个厂商再去分配后24个地址。MAC:身份证号 唯一的。IP地址:邮政地址 有归属的关系。
ARP地址解析协议
知道IP如何知道其MAC地址?需要将目标机器的IP地址转换为其对应的物理地址。
如果在同一个局域网当中:
APR表:每个主机维护这样一个表: IP/MAC地址映射表 ,这个表会设置一个TTL 维持时间 ,一般为典型20min。
首先广播ARP查询分组 ,查询被查询的IP地址的MAC地址。全1的MAC地址 为广播地址
接着,所有局域网当中的节点都会接受到这个查询分组信息。
但是,只有B节点会发现查询的IP地址和自己的IP地址一样,应答ARP相应。包含B的IP 和 MAC地址
A将该信息存储在自己的ARP表当中。刷新。
所有的主机在通信工作中都会自主的去查询去更新表设置超时时间。
所以ARP地址解析协议是为网络层服务。是联通数据链路层和网络层的一个媒介。
不在一个局域网当中:
- A和B所在的子网通过R路由器互联
- 怎么寻址?IP和MAC
- 假设A知道B的IP地址
- 假设A知道R的左侧的IP地址 (默认网关)
- 假设A知道R左侧接口 的MAC地址(ARP解析得到)
- 路由器转发 利用ARP协议获得B的MAC地址
注意:
工作在数据链路层但是时网络层协议
APR请求和应答是从以太网驱动程序发出的。
Linux 下使用arp命令查看arp缓存
arp -a 查看
arp - d 删除
arp -s 添加