数据链路层负责相邻设备之间的传输,其关键作用的是MAC地址。
MAC地址用于识别数据链路中互联的节点;MAC地址长48个比特位。

类型:网络层使用的协议
CRC校验:检验数据链路层数据帧是否出错
只要确定了IP地址,就可以像这个目标发送IP数据报。在底层,进行实际通信时有必要知道每个IP地址所对应的MAC地址。
如果不知道,就无法传输数据了。
而解决这个问题,需要运用ARP协议。
ARP协议是通过IP地址获取MAC地址。
ARP协议的工作流程:
为了获得目的主机的MAC地址,要通过广播发送一个ARP请求包。这个包包含了想要知道的MAC地址主机的IP地址。广播的包被同一链路上所有的主机或路由器接收,并被解析。如果ARP请求包中的目标IP地址和自己的IP地址一至,那么就将自己的MAC地址塞入ARP响应包返回。
注:
也就是说
ARP协议只在子网内部有效
ARP请求是广播发送的,如果目标主机收到则进行处理,如果不是目标主机收到,则丢弃掉。
ARP缓存表
如果每发送一个IP数据报都要进行一次ARP请求以此确定MAC地址,那么将会造成不必要的网络流量。
为了解决上面问题,我们可以将刚得到的映射关系存入ARP缓存表一段时间(20min,即ARP缓存表的老化时间)。
如果在数据链路层没有在缓存表当中发现目的MAC地址,则发送ARP请求获取,否则直接从缓存表当中获取。

以太网目的地址:ARP请求的目的MAC地址,全填充为1,表示广播地址
以太网源地址:ARP请求主机的MAC地址
帧类型:表示上层使用的协议(ARP协议是基于网络层和数据链路层之间的协议)
28字节的请求或应答:
2字节硬件地址类型:运行ARP网络的类型,以太网。
2字节协议类型:表示要映射的协议地址类型。它的值为0x0800表示IP地址类型
1字节的协议地址长度:IP地址的长度
op:标识是ARP请求还是ARP应答 1标识请求,2表示应答
发送端以太网地址:发送ARP请求或者应答主机的MAC地址
4字节发送端IP地址:发送端ARP请求或者应答主机的IP地址
目的以太网地址:
ARP请求:填充 0x0000 0000 0000
ARP应答:填充的是ARP请求中的源MAC地址
目的IP地址:目标主机的IP地址