计算机网络—— 数据链路层:MAC地址IP地址以及数据链路层使用的ARP协议

Posted 大彤小忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络—— 数据链路层:MAC地址IP地址以及数据链路层使用的ARP协议相关的知识,希望对你有一定的参考价值。

7. MAC地址、IP地址以及数据链路层使用的ARP协议

  数据链路层
  ■ MAC地址是以太网的MAC子层所使用的地址;

  网际层
  ■ IP地址是TCP/IP体系结构网际层所使用的地址;
  ■ ARP协议属于TCP/IP体系结构的网际层,其作用是已知设备所分配到的IP地址,使用ARP协议可以通过该IP地址获取到设备的MAC地址;

  ■ 尽管IP地址和ARP协议属于TCP/IP体系结构的网际层 (而不属
于数据链路层),但是它们与MAC地址存在一定的关系,并且我们日常的网络应用都离不开MAC地址、IP地址以及ARP协议。
   因此,我们将这三者放在一起讨论。

7.1 MAC地址

  ■ 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都必须有一个唯一的标识,即一个数据链路层地址;
  ■ 在每个主机发送的帧中必须携带标识发送主机和接收主机的地址。 由于这类地址是用于媒体接入控制MAC(Media Access Contro),因此这类地址被称为MAC地址
    ⋄ \\diamond MAC地址一般被固化在网卡(网络适配器)的电可擦可编程只读存储器EEPROM中,因此MAC地址也被称为硬件地址
    ⋄ \\diamond MAC地址有时也被称为物理地址。请注意:这并不意味着MAC地址属于网络体系结构中的物理层!

在这里插入图片描述
  例: 下列选项中,不属于物理层接口规范定义范畴的是( C )
      A. 接口形状  B. 引脚功能  C. 物理地址  D. 信号电平
     分析: MAC地址有时也被称为物理地址,但这并不意味着MAC地址属于网络体系结构中的物理层!

  ■ 一般情况下, 用户主机会包含两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球唯一的MAC地址。而交换机和路由器往往拥有更多的网络接口,所以会拥有更多的MAC地址。综上所述,严格来说,MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识

  IEEE 802局域网的MAC地址格式:

在这里插入图片描述
在这里插入图片描述
  广播MAC地址举例:

在这里插入图片描述
  多播MAC地址举例:

在这里插入图片描述

7.1.1 课后练习

  1. 以下哪个地址是广播MAC地址( C )
    A. 00-00-00-00-00-00  B. AB-CD-EF-11-22-33  C. FF-FF-FF-FF-FF-FF  D. 29-29-29-29-29-29
   分析: FF-FF-FF-FF-FF-FF是广播MAC地址。

  2. 以下哪个地址是多播MAC地址( B )
    A. 00-00-00-00-00-00  B. A9-8B-7C-6D-5E-4F  C. FF-FF-FF-FF-FF-FF  D. 0A-1B-2C-3D-4E-5F
   分析:

在这里插入图片描述

7.2 IP地址

  ■ IP地址是因特网 (Internet) 上的主机和路由器所使用的地址,用于标识两部分信息:
    ⋄ \\diamond 网络编号:标识因特网上数以百万计的网络
    ⋄ \\diamond 主机编号:标识同一网络上不同主机(或路由器各接口)
  ■ 很显然, 之前介绍的MAC地址不具备区分不同网络的功能。
    ⋄ \\diamond 如果只是一个单独的网络,不接入因特网,可以只使用MAC地址(这不是一般用户的应用方式)。
    ⋄ \\diamond 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用。

  从网络体系结构看IP地址与MAC地址:
  从网络体系结构的角度看看IP地址与MAC地址的封装位置。如下图所示,以五层原理体系结构为例。

在这里插入图片描述
  应用层封装好的应用层报文将其向下交付给运输层,运输层看不懂也无需看懂应用层报文的结构与内容,用黑色表示,仅仅给其添加一个运输层首部。运输层将封装好的协议数据单元向下交付给网络层,网络层看不懂也无需看懂运输层协议数据单元的结构与内容,仅仅给其添加一个网络层首部。网络层将封装好的协议数据单元向下交付给数据链路层,数据链路层看不懂也无需看懂网络层协议数据单元的结构与内容,仅仅给其添加一个数据链路层首部和一个数据链路层尾部。数据链路层将封装好的协议数据单元向下交付给物理层,物理层看不懂也无需看懂数据链路层协议数据单元的结构与内容,仅仅将它们看作是比特流,以便将它们转换为相应的电信号发送到传输媒体。
  由于IP地址属于网络体系结构中网络层的范畴,因此在网络层首部中应该封装有源IP地址和目的IP地址。相应的,由于MAC地址属于网络体系结构中数据链路层的范畴,因此在数据链路层首部中应该封装有源MAC地址和目的MAC地址。

  数据包转发过程中IP地址与MAC地址的变化情况:

在这里插入图片描述
  ■ 数据包转发过程中源IP地址和目的IP地址保持不变;
  ■ 数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。

  例: 路由器R通过以太网交换机S1和S2连接两个网络,R的接口、主机H1和H2的IP地址与MAC地址如下图所示。若H1向H2发送一个IP分组P,则H1发出的封装P的以太网帧的目的MAC地址、H2收到的封装P的以太网帧的源MAC地址分别是( D )

在这里插入图片描述
     A. 00-a1-b2-c3-d4-62  00-1a-2b-3c-4d-52   B. 00-a1-b2-C3-d4-62  00-1a-2b-3C-4d-61
     C. 00-1a-2b-3c-4d-51  00-12-2b-3C-4d-52  D. 00-1a-2b-3C-4d-51  00-a1-b2-c3-d4-61

    分析:

在这里插入图片描述

7.2.1 课后练习

  1. 下图中各主机和路由器各接口的MAC地址和所配置的IP地址都已标注在它们的旁边,假设主机H1要给H2发送一个IP数据报,该IP数据报会被封装成以太网帧进行发送,则当H2收到该帧时,其首部中的源MAC地址以及所封装的IP数据报首部中的源IP地址分别是( B )

在这里插入图片描述
    A. 00-a1-b2-c3-d4-61  192.168.1.254  B. 00-a1-b2-c3-d4-61  192.168.0.1
    C. 00-1a-2b-3c-4d-51  192.168.0.1   D. 00-1a-2b-3c-4d-51  192.168.1.254

   分析: 在数据包的转发过程中,源IP地址和目的IP地址始终保持不变;而源MAC地址和目的MAC地址逐段链路(或逐个网络)改变。

7.3 ARP协议

  MAC地址属于数据链路层范畴,IP地址属于网络层范畴。
  问题: 如何通过IP地址找到其相应的MAC地址?
      这就是地址解析协议ARP所要实现的主要功能。

在这里插入图片描述
  网络层以上的协议用IP地址来标识网络接口,但以太数据帧传输时,以物理地址来标识网络接口。因此我们需要进行IP地址与物理地址之间的转化。对于IPv4来说,我们使用ARP地址解析协议来完成IP地址与物理地址的转化(IPv6使用邻居发现协议进行IP地址与物理地址的转化,它包含在ICMPv6中)。
  ARP协议提供了网络层地址(IP地址)到物理地址(mac地址)之间的动态映射,ARP协议是地址解析的通用协议。

  ARP协议只能在一段链路或一个网络上使用,而不能跨网络使用。

在这里插入图片描述
  ARP协议工作原理:
   1. 每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
   2. 主机(网络接口)新加入网络时(也可能只是MAC地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与MAC地址的映射关系广播给其他主机。
   3. 网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
   4. 某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据;如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
   5. 当本网络的所有主机收到该 ARP 数据包时:
   (1)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
   (2)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
   (3)然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
   6. 源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

  总结:

在这里插入图片描述

7.3.1 课后练习

  1. 下列情况需要发送ARP请求的是( C )
    A. 主机需要接收信息,但ARP高速缓存表中没有源IP地址与MAC地址的映射关系
    B. 主机需要接收信息,但ARP高速缓存表中已有源IP地址与MAC地址的映射关系
    C. 主机需要发送信息,但ARP高速缓存表中没有目的IP地址与MAC地址的映射关系
    D. 主机需要发送信息,但ARP高速缓存表中已有目的IP地址与MAC地址的映射关系
  分析: 主机需要发送信息,但ARP高速缓存表中没有目的IP地址与MAC地址的映射关系时,需要发送ARP请求。

  2. 主机A发送IP数据报给主机B,途中经过了8个路由器,则在此过程中使用ARP的次数为( B )
    A. 8  B. 9   C. 10  D. 11
  分析: 主机用1次,其余路由器各1次。
      途经8个路由器,那么在发送过程中开始发送,原主机会用1次ARP地址解析协议找到第1个路由器的物理地址,每经历1个路由器就会使用1次ARP地址解析协议,故总共会用到8次。

以上是关于计算机网络—— 数据链路层:MAC地址IP地址以及数据链路层使用的ARP协议的主要内容,如果未能解决你的问题,请参考以下文章

IP地址与MAC地址的作用和关系

数据链路层-第七节:MAC地址IP地址和ARP协议

Linux 网络基础--网络层+数据链路层

ARP地址解析协议

网络编程 ———— 数据链路层(mac地址+ARP+DNS)

arp协议的作用是由ip地址求mac地址