【IP 地址与硬件地址】
IP 地址与硬件地址
IP 地址是网络层使用的地址,其是分层次等级的;硬件地址,是链路层使用的地址,一般使用的均是 MAC 地址,其是平面式的
在网络层以及网络层之上,所使用的是 IP 地址,其放置于在 IP 数据报的首部;而在链路层,使用的是 MAC 地址,其放置于在 MAC 帧首部
在经过数据封装,将 IP 数据报封装成 MAC 帧后,数据链路层是看不到 IP 数据报中的 IP 地址
寻址过程
由于路由器的隔离广播域,IP 网络中无法通过广播方式依靠 MAC 地址来完成跨网络的寻址,因此,在 IP 网络的网络层中,只能使用 IP 地址来完成寻址
在寻址时,每个路由器会依据路由表来选择到达目标网络需要转发到的下一跳,IP 数据报经过多次路由转发,到达目的网络后,会在该局域网 LAN 中通过链路层的 MAC 地址以广播方式寻找目的主机
在上述的寻址过程中,通过路由器转发 IP 数据报时,在每个网络中都会将 IP 数据报进行解封、封装,也就是说,在寻址过程中,MAC 帧的源地址是不断变化的
【ARP 协议】
概述
无论网络层使用的何种协议,在实际网络的链路上传输数据时,最终还是要以广播方式使用硬件地址来传送
地址解析协议(Address Resolution Protocol,ARP)工作在网络层,用于解决同一局域网上主机或路由器的 IP 地址到 MAC 地址的映射问题
具体来说,对于网络上的每个主机,都会设置一个 ARP 高速缓存,来存放本局域网中各主机和路由器的 IP 地址到 MAC 地址的映射表,即 ARP 表,同时,使用 ARP 协议来动态维护该表
需要说明的是,从 IP 地址到 MAC 地址的解析是自动进行的,主机用户对于这种地址解析过程是不知情的,也就是说,只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器通信,ARP 协议就会自动将该 IP 解析为链路层所需要的 MAC 地址
工作原理
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,会进行如下操作:
1)在 ARP 表中查看有无主机 B 的 IP 地址,若有,即可得出对应 MAC 地址,将该 MAC 地址写入 MAC 帧,通过局域网将该 MAC 帧广播发送;若没有,执行以下步骤
2)使用目的 MAC 地址为 FF-FF-FF-FF-FF-FF
来封装一个 MAC 帧,该帧被称为 ARP 请求分组,之后进行广播
3)同一局域网内的主机均会收到 ARP 请求分组,当主机 B 收到该 ARP 请求分组后,会向主机 A 单播发送 ARP 响应分组,分组中包含主机 B 的 IP 地址与 MAC 地址的映射关系
4)主机 A 收到 ARP 响应分组后,会将映射关系写入 ARP 表中,然后按照该映射关系发送 MAC 帧
典型情况
根据发送方的情况,ARP 协议的使用情况可分为以下四种:
1.发送方是主机,要将 IP 数据报发送到本网络上的另一主机
直接使用 ARP 找到目的主机的 MAC 地址
2.发送方是主机,要将 IP 数据报发送到另一网络上的主机
使用 ARP 协议找到本网络上连接另一网络的路由器的 MAC 地址,之后的工作由该路由器完成
3.发送方是路由器,要将 IP 数据报发送到本网络上的主机
直接使用 ARP 找到目的主机的 MAC 地址
4.发送方是路由器,要将 IP 数据报发送到另一网络上的主机
使用 ARP 协议找到本网络上连接另一网络的路由器的 MAC 地址,之后的工作由该路由器完成