从01开始 从01开始
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • MySQL
  • 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基础
  • Windows使用技巧
  • 输入法
  • 浏览器
  • 终端软件
  • 装机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry想做技术大佬的相关视频
  • 住房相关
  • 关于税
  • 睡眠
  • 皮肤
  • 口腔健康
  • 三国杀
  • 网站介绍
  • 网站动态
  • 友人帐
  • 如何搭建一个博客
  • 关于邮件服务器
  • 本站的分享资料
  • 归档
  • 年度总结

    • 2022年度总结
    • 2023年度总结
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机简史
  • 数字电路
  • 计算机组成原理
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • MySQL
  • 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基础
  • Windows使用技巧
  • 输入法
  • 浏览器
  • 终端软件
  • 装机
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 教程简介
  • 英语学习方法论
  • 字母
  • 音标
  • 单词
  • 语法
  • 英语兔的相关视频
  • Larry想做技术大佬的相关视频
  • 住房相关
  • 关于税
  • 睡眠
  • 皮肤
  • 口腔健康
  • 三国杀
  • 网站介绍
  • 网站动态
  • 友人帐
  • 如何搭建一个博客
  • 关于邮件服务器
  • 本站的分享资料
  • 归档
  • 年度总结

    • 2022年度总结
    • 2023年度总结
GitHub (opens new window)
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • 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 ARP协议
        • 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

  • 计算机小知识

  • MySQL

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

3.7 ARP协议

‍

# 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欺骗或攻击等问题。

‍

在GitHub上编辑此页 (opens new window)
上次更新: 2024/1/28 03:08:52
3.6 媒体接入控制的基本概念
3.8 集线器与交换机的区别

← 3.6 媒体接入控制的基本概念 3.8 集线器与交换机的区别→

Theme by Vdoing | Copyright © 2022-2024 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式