10.1、局域网—ARP协议

一、IP地址和MAC地址的区别

image

全世界的网络设备中,每一个网络设备都有一个唯一的MAC地址:
image

MAC地址在跨越子网时,可以携带,具有唯一性,因此被称为“平面”地址,IP地址是层次地址,跨越子网不可携带,不同的子网可能有相同的IP地址。

二、ARP协议

image

如果结点A想要给同一局域网内的结点B发送数据报,但是结点B的MAC地址不在结点A的 ARP表 中,那么结点A会通过广播ARP(发送一个目的MAC地址为FF-FF-FF-FF-FF-FF的数据帧,数据帧中包含B的IP地址)查询结点B的MAC地址,在局域网内的所有结点都会接收到结点A的ARP查询,当结点B接收到结点A的广播ARP,匹配成功,并利用单播数据帧向结点A发送应答,当结点A收到结点B的应答时,结点A在其ARP表中,缓存结点B的IP-MAC地址对,直至超时,因此,当某个子网内新加入一个结点时,该新加入的结点ARP表为空,需要广播ARP(发送一个目的MAC地址为FF-FF-FF-FF-FF-FF的数据帧,数据帧中包含目的结点的IP地址)来自主创建ARP表。

三、ARP协议的寻址过程

  如果结点A需要通过路由器向结点B发送数据报,如下图所示:
image

那么,结点A需要知道以下3个信息:
1、结点A需要知道了结点B的IP地址;
2、结点A的默认网关IP地址就是第一跳路由器R左边接口的IP地址;
3、结点A已经通过ARP协议知道第一跳路由器R左边接口的MAC地址。
  当结点A掌握了以上3个信息后,结点A会将源IP地址,源MAC地址,目的IP地址,目的MAC地址封装到IP层的数据报(封装IP地址)和链路层的数据帧(封装MAC地址)之中,如下图所示:
image

当数据从结点A发送至结点R之后,结点R提取IP数据报,传递给上层IP协议进行处理,结点R是否需要根据NAT协议的来修改源IP地址和目的IP地址,源MAC地址和目的MAC地址,需要根据以下条件来进行判断:

源IP地址 目的IP地址
结点A是内网结点,结点B是互联网结点 修改 不修改
源MAC地址 目的MAC地址
结点A是互联网结点,结点B是内网结点 不修改 修改

当结点R完成网络层的功能以后,会检索ARP表,将数据转发给结点B(只改变了源MAC地址和目的MAC地址),如下图所示:
image

因此,一个网关路由器结点R具有多个MAC地址,结点A发送数据之前会先查询网关路由器结点R的ARP表,确定下一个转发接口和下一个目的主机的MAC地址(可能要跳转多个路由器,也可能只跳转1个路由器)。

posted @ 2026-05-20 10:15  Carey_ccl  阅读(10)  评论(0)    收藏  举报