从 01 开始 从 01 开始
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • 数据库
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Node
  • Windows 使用技巧
  • 最全面的输入法教程
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 各大平台
  • 远程控制
  • RSS
  • 图片类工具
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 反腐
  • GFW
  • 404 内容
  • 审查与自我审查
  • 互联网
  • 2022
  • 2023
  • 2024
  • 2025
  • 关于本站
  • 关于博主
  • 网站动态
  • 公告栏
  • 友人帐
  • 从零开始搭建一个博客
  • 搭建邮件服务器
  • 本站分享
  • 文章分类
  • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • 数据库
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Node
  • Windows 使用技巧
  • 最全面的输入法教程
  • 浏览器
  • 终端软件
  • 装机
  • 笔记类软件
  • Markdown
  • 各大平台
  • 远程控制
  • RSS
  • 图片类工具
  • Office
  • 手机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry 想做技术大佬的相关视频
  • 驾驶技能
  • 住房相关
  • 厨艺
  • 关于税
  • 理财
  • 睡眠
  • 皮肤
  • 口腔健康
  • 学会呼吸
  • 健身日志
  • 电影

    • 电影推荐
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 反腐
  • GFW
  • 404 内容
  • 审查与自我审查
  • 互联网
  • 2022
  • 2023
  • 2024
  • 2025
  • 关于本站
  • 关于博主
  • 网站动态
  • 公告栏
  • 友人帐
  • 从零开始搭建一个博客
  • 搭建邮件服务器
  • 本站分享
  • 文章分类
  • 文章归档
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂-B站教书匠

      • 课程概述
      • 1-1 计算机网络在信息时代的作用
      • 1-2 因特网概述
      • 1-3 三种交换方式
      • 1-4 计算机网络的定义和分类
      • 1-5 计算机网络的性能指标
      • 1-6 计算机体系结构
      • 2-1 物理层的基本概念
      • 2-2 物理层下面的传输媒体
      • 2-3 传输方式
      • 2-4 编码与调制
      • 2-5 信道的极限容量
      • 3-1 概述
      • 3-2 封装成帧
      • 3-3 差错检测
      • 3-4 可靠传输
      • 3-5 点对点协议 PPP
      • 3-6 媒体接入控制的基本概念
      • 3-7 MAC 地址
      • 3-7 IP 地址
      • 3-7 ARP 协议
      • 3-8 集线器与交换机的区别
      • 3-9 以太网交换机自学习和转发帧的流程
      • 3-10 以太网交换机的生成树协议 STP
      • 3-11 虚拟局域网 VLAN
      • 4-1 网络层概述
      • 4-2 网络层提供的两种服务
      • 4-3 IPv4 地址
      • 4-4 IP 数据报的发送和转发过程
      • 4-5 静态路由配置及其可能产生的路由环路问题
      • 4-6 路由选择
      • 4-7 IPv4 数据报的首部格式
      • 4-8 网际控制报文协议 ICMP
      • 4-9 虚拟专用网 VPN 与网络地址转换 NAT
      • 5-1 运输层概述
      • 5-2 运输层端口号、复用与分用的概念
      • 5-3 UDP 和 TCP 的对比
      • 5-4 TCP 的流量控制
      • 5-5 TCP 的拥塞控制
      • 5.6 TCP 超时重传时间的选择
      • 5-7 TCP 可靠传输的实现
      • 5-8 TCP 的运输连接管理
      • 5-9 TCP 报文段的首部格式
      • 6-1 应用层概述
      • 6-2 客户—服务器方式和对等方式
      • 6-3 动态主机配置协议 DHCP
      • 6-4 域名系统 DNS
      • 6-5 文件传送协议 FTP
      • 6-6 电子邮件
      • 6-7 万维网 WWW
    • 计算机网络微课堂-实验手册

    • 从零开始学计算机网络

  • Git

  • 计算机小知识

  • 数据库

  • 计算机基础
  • 计算机网络
  • 计算机网络微课堂-B站教书匠
2023-11-16

3-7 ARP 协议

# 378.3-7 ARP 协议

在之前的课程中,‍‍我们分别介绍了属于数据链路层范畴的 MAC 地址和属于网络层范畴的 IP 地址,‍‍以及数据包在传输过程中 IP 地址和 MAC 地址的变化情况之后,我们提出了这样一个问题,‍‍那就是如何通过 IP 地址找到其相应的 IP 地址?‍‍这就是本节课我们将要介绍的地址解析协议,ARP 所要实现的主要功能。

‍‍下面‍‍我们就来举例说明‍‍ ARP 协议的工作原理,这是一个共享总线型的以太网,为了简单起见,‍‍我们只画出了该网络中的三台主机,各主机所配置的 IP 地址,和其网卡上固化的 MAC 地址,‍‍如图所示

​​

‍

假设主机 B 要给主机 C 发送数据包,主机 B 知道主机 C 的 IP 地址,但不知道它的 MAC 地址,因此主机 B 的数据链路层在封装 MAC 帧时,就无法填写目的 MAC 地址字段,进而也就无法构建出要发送的 MAC 帧。

​​

‍

实际上每台主机都会有一个 ARP 高速缓存表,例如这是主机 B 的 ARP 高速缓存表,ARP 高速缓存表中记录有 IP 地址和 MAC 地址的对应关系。例如这是主机 B 之前获取到的主机 A 的 IP 地址与 MAC 地址的对应关系。在本例中当主机 B 要给主机 C 发送数据包时,会首先在自己的 ARP 高速缓存表中查找主机 C 的 IP 地址所对应的 MAC 地址,但未找到,因此主机 B 需要发送 ARP 请求报文,来获取主机 C 的 MAC 地址。

​​

‍

‍‍ARP 请求报文的内容是:我的 IP 地址为 192.168.0.2,‍‍我的 MAC 地址为 00e0f9a34377,我想知道 IP 地址为‍‍192.168.0.3 的主机的 MAC 地址。

‍

需要说明的是为了简单起见,‍‍这里我们以比较通俗的语言来描述 ARP 请求报文的内容,但实际上‍‍ ARP 请求报文有其具体的格式。另外需要大家注意的是‍‍ ARP 请求报文被封装在 MAC 帧中发送,目的只为广播地址。

  • 主机 B 发送封装有 ARP 请求报文的广播帧,总线上的其他主机都能收到该广播帧‍‍
  • 主机 A 的网卡收到该广播帧后,将其送交上层处理。‍‍上层的 ARP 进程解析 ERP 请求报文,‍‍发现所询问的 IP 地址不是自己的 IP 地址,因此不予理会
  • 主机 C 的网卡收到该广播之后,‍‍将其上交上层处理,上层的 ARP 进程解析 ARP 请求报文,‍‍发现所询问的 IP 地址,正是自己的 IP 地址,需要进行响应
  • 主机 C 首先将 ARP 请求报文中‍‍所携带的主机 b 的 IP 地址与 MAC 地址记录到自己的 ARP 高速缓存表中,然后给主机 b‍‍发送 ARP 响应报文,以告知自己的 MAC 地址

​​

‍

‍

‍

ARP 响应报文的内容是‍‍我的 IP 地址是 192.168.0.3,我的 MAC 地址为‍‍00-0c-Cf-b8-4a-82,需要注意的是 ARP 响应报文‍‍被封装在 MAC 帧中,发送目的地址为主机 b 的 MAC 地址,‍‍主机 c 给主机 b 发送封装有 ARP 响应报文的单播帧,总线上的其他主机都能收到该单播帧。‍‍

主机 A 的网卡收到该单波针后,发现其目的 MAC 地址与自己的 MAC 地址不匹配,直接丢弃该帧。‍‍

主机 B 的网卡,收到该单波帧后,发现其目的 MAC 地址,就是自己的 MAC 地址,将其交付上层处理。‍‍

上层的 ARP 进程解析 ERP 响应报文,将其所包含的主机 C 的 IP 地址与 MAC 地址‍‍记录到自己的 ARP 高速缓存表中。

​​

​​

‍

‍

‍

主机 B 现在可以给主机 C 发送之前发送的数据包了,‍‍ARP 高速缓存表中的每一条记录都有其类型,类型分为动态和静态两种:

  • 动态类型是指‍‍记录是主机自动获取到的,其生命周期默认为两分钟,当生命周期结束时,‍‍该记录将自动删除。这样做的原因是 IP 地址与 MAC 地址的对应关系并不是永久性的。‍‍例如当主机的网卡坏了,更换新的网卡后,主机的 IP 地址并没有改变,‍‍但主机的 MAC 地址改变了
  • 静态类型是指记录是用户或网络维护人员手工配置的‍‍。不同操作系统下的生命周期不同,例如系统重启后不存在,或在系统重启后依然有效‍‍‍‍

‍

‍

‍

接下来请大家思考一下,在下图所示的网络拓扑中,主机 H1 是否可以使用 ARP 协议‍‍获取到主机 H2 的 MAC 地址?回答是否定的,ARP 协议只能在一段链路‍‍或一个网络上使用,而不能跨网络使用。‍‍对于本地 ARP 协议的使用是逐段链路进行的

​​

‍

‍

‍‍本节课到这里就结束了。我们将之前课程中曾介绍过的 MAC 地址,IP 地址‍‍以及本节课介绍的地址解析协议 ARP 的内容小结如下:

​​

需要说明的是‍‍除 ARP 请求和响应报文外,ARP 还有其他类型的报文,‍‍例如用于检查 IP 地址冲突的无故 ERP,或称免费 ERP。另外‍‍ ARP 协议没有安全验证机制,‍‍存在 ARP 欺骗或攻击等问题。

‍

‍

上次更新: 2024/5/27 11:20:52
3-7 IP 地址
3-8 集线器与交换机的区别

← 3-7 IP 地址 3-8 集线器与交换机的区别→

最近更新
01
2025 年 2 月记
02-28
02
最全面的浏览器教程-完结撒花
02-16
03
这个工具可以轻松搞到你的浏览器账户密码!
02-15
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式