计算机网络系列内容的学习目录→\rightarrow→谢希仁计算机网络学习系列内容汇总。

  • 7. MAC地址、IP地址以及数据链路层使用的ARP协议
    • 7.1 MAC地址
      • 7.1.1 课后练习
    • 7.2 IP地址
      • 7.2.1 课后练习
    • 7.3 ARP协议
      • 7.3.1 课后练习

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次。

计算机网络(三)—— 数据链路层(7):MAC地址、IP地址以及数据链路层使用的ARP协议相关推荐

  1. 怎样才能快速批量绑定MAC与IP地址(图)

    怎样才能快速批量绑定MAC与IP地址(图) 一.问题的提出 校园网建成后,要求在服务器端把网内各工作站的MAC地址和分配的静态IP地址进行绑定,以方便统一管理,减小安全隐患.无论是在终端获取MAC地址 ...

  2. 计算机网络之——非常恶心但友善ip地址、子网掩码、网络地址、构造超网、最小地址和最大地址(理解篇)

    前段时间在写python游戏有段时间没有更了,这就来报道~~ 在刚学习计算机网络的朋友,应该对ip地址和子网掩码会有困惑,感觉这两个东西就两个字--恶心 这就为大家理解一下 ip地址我相信大家其实都大 ...

  3. Linux查看Mac和IP地址

    1.ifconfig  可查看ip和Mac 可以查看所有激活的网卡信息,其中包括Mac和IP地址 [root@loaclhost /]# ifconfig 2.ifconfig -a|grep 10  ...

  4. 【计算机网络】网络层 : IPv4 地址 ( IP 地址分类 | 特殊 IP 地址 | 私有 IP 地址 | A 类、B 类、C 类 IP 地址网络号主机号数量 )★

    文章目录 一.IP 地址 发展 二.分类 IP 地址 三.特殊 IP 地址 四.私有 IP 地址 五.分类 IP 地址 网络号 主机数 详情 一.IP 地址 发展 IP 地址 发展 : 第一阶段 : ...

  5. qt准确获取本机mac和ip地址

    前言 公司服务器有多个mac地址,是用网上的代码获取时总是不准确,只能自己封装一下.qt通过QNetworkInterface类来获取网络接口的各种信息,我是通过解析QNetworkInterface ...

  6. Vmware虚拟机克隆后MAC地址IP地址修改并实现上网

    Vmware虚拟机复制克克隆后MAC地址IP地址修改: 步骤1: 步骤2: 更改mac地址: vim /etc/udev/rules.d/70-persistent-net.rules name修改为 ...

  7. 华为ensp模拟器实验:端口安全绑定MAC地址ip地址

    端口安全,交换机会通过MAC地址表记录连接到交换机端口的以太网MAC地址,并只允许某个MAC地址通过本端口通信.使用端口安全特性可以防止未经允许的设备访问网络,并增强安全性.另外,端口安全特性也可用于 ...

  8. 从dhcpd.lease中提取MAC和IP地址

    http://coolerfeng.blog.51cto.com/133059/58773 原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 .作者信息和本声明.否则将追究法律责任. ...

  9. c#获取本地ip地址网关子网掩码_详细介绍winformC#获得Mac地址,IP地址,子网掩码,默认网关的代码实例(图)...

    下面小编就为大家带来一篇winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 1. 添加程序集 2. 引 ...

  10. 【计算机网络 1.网络报文的传递 MAC与IP地址的用处】

    首先我们先抛出一个问题"有了 IP 地址,为什么还要用 MAC 地址"? 估计很多人都有这个疑问,但没见哪本书上解释清楚,都只是描述IP是什么,MAC是什么.当数据包到达局域网后, ...

最新文章

  1. 微软全球执行副总裁沈向洋:你给自己的定位是什么,你就会得到什么
  2. 如何在命令行下更改ip地址
  3. “挤掉”优衣库的Ubras、蕉内、内外等新内衣品牌们,到底牛在哪?
  4. python paramiko sftp_python paramiko (ssh,sftp)
  5. 学习excel数据分析_为什么Excel是学习数据分析的最佳方法
  6. 深入理解分布式系统中的缓存架构(下)
  7. C++ —— C++高手之路
  8. Spring框架学习笔记02:初探Spring——利用组件注解符精简Spring配置文件
  9. linux 临时 目录权限,linux文件和目录权限的设置
  10. Could not load file or assembly An attempt was made to load a program with an incorrect format.
  11. 企业税银数据深度分析(上)
  12. 微软内核工程师:ReactOS 剽窃了 Windows 研究内核代码!
  13. linux mq脚本,Linux自动化命令工具expect
  14. 当,程序员突然想画画,AI+机器人就该登场了
  15. Android真机没有sqlite3数据库的解决办法
  16. qml修改图片的颜色
  17. Java学习(16-20天, 线性数据结构)
  18. 【MSRA文档智能综述论文】Document AI: Benchmarks, Models and Applications
  19. 【jdk源码】System.arraycopy()复制
  20. 海康摄像头拍照(java版,拿走即用)

热门文章

  1. android 相机自动延时拍照软件,延时摄影大师app下载-延时摄影大师 安卓版v3.0-PC6安卓网...
  2. php写抢红包,红包生成函数(微信抢红包)
  3. Google证书生成
  4. 模拟手机端来爬取数据
  5. canvas实现矩形框,用来进行图片框选
  6. 三星健身服务器无响应 怎么办,三星携手UA健身APP、强化创新型可穿戴设备
  7. iptables路由转换
  8. 华为中兴为何对未来信心十足?
  9. 战舰少女r服务器维修,战舰少女r修理时间怎么计算?舰船受损维修时间公式分析[多图]...
  10. 面试 增删改查用的java知识,工作3年的程序员,面试还说自己只会增删改查?这些高频面试题还不看起来!...