1.路由器寻路
路由器根据自身的路由表,寻找下一个路由节点。
2.数据包的封装结构
3.以太网帧
以太网帧是在链路层,链路层的主要职能是检错和校验,以太网帧格式如下:
其中,目的地址和源地址是网卡中的硬件地址(也叫MAC地址),目的地址是下一个网卡的MAC地址。要获取下一个网卡的MAC地址,需要使用ARP请求。当以太网封装的类型为0800
时,传输的是普通的数据报。当类型为0806
时,为ARP请求。帧尾CRC为校验码。
4.ARP数据报
ARP数据报的格式如下:
这里面ARP数据报格式就是一个0806
类型的以太网帧格式,但是不包括PAD和CRC。这里面的18字节的PAD表示填充,为了凑够46字节,没有实际意义。
我们主要看28字节ARP请求中的发送端以太网地址,发送端IP地址,目的以太网地址,目的IP地址。其中,发送端以太网地址,发送端IP地址,是当前的网卡的地址,是已知的,目的IP地址可以根据网络层的最终目的地址和当前所在路由器的路由表得到,而以太网目的地址未知。ARP请求之后,以太网目的地址会发回以太网发送端,这样发送端就知道目的以太网地址。
所以ARP协议就是为了获取下一个要投递的路由的MAC地址,即为了获取下一跳的MAC地址。