MAC地址的唯一且固定的,没有两块适配器具有相同的地址;
MAC地址具有扁平结构,且不论适配器到哪里用都不会变化;
网络层地址(IP地址)具有层次结构(即网络部分-主机部分),当主机移动时,主机的IP地址需要改变。
网络层地址->链路层地址
因为存在网络层地址和链路层地址,因此需要在它们之间进行转换。对于因特网来说,这个协议就是 ARP 协议。ARP的输入是 相同局域网里的任何IP地址,返回相应的MAC地址。
这个过程有点像DNS,DNS是输入主机名返回IP地址,DNS 和 ARP 协议的一个重要区别是,DNS 为因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。
每台主机或路由器在其内存中具有一个 ARP表 (ARP table),这张表包含 IP 地址到 MAC 地址的映射关系。这张表中也包含了一个寿命 (TTL) 值。从一个表项放置到某 ARP 表中开始,一个表项通常的过期时间是 20 分钟。
主机必须把数据报首先发给第一跳路由器,因此发出的链路帧的 MAC 地址是路由器接口的 MAC 地址。
如何获得这个 MAC 地址呢?当然是通过 ARP 协议。
一台路由器对它的每个接口都有一个IP地址,同时对每个接口也有一个ARP模块和一个适配器。图中路由器有两个接口,所以它有两个IP地址、两个ARP模块和两个适配器。
子网1的网络地址为 111.111.111/24,子网2的网络地址为 222.222.222/24;
若子网1的一台主机要向子网2的一台主机发送数据报要怎么办呢?
首先肯定发送方要向其适配器传递数据报和MAC地址才能发出去,但若是直接传的子网2的MAC地址,但是该帧被传到子网1的所有适配器处后都不会被传递到它的网络层,因为MAC地址不匹配,所以数据报被丢弃了。
因此对于该帧来说,适当的MAC地址是路由器接口111.111.111.110的适配器地址,这个流程知道了就有如下的过程:
原文:https://www.cnblogs.com/TRY0929/p/14808566.html