《TCP/IP 详解 卷1:协议》第4章:地址解析协议

news2025/6/7 14:12:29

ARP 协议

地址解析协议(ARP, Address Resolution Protocol)是IPv4协议栈中一个关键的组成部分,用于在网络层的IP地址与数据链路层的硬件地址(如MAC地址)之间建立映射关系。它的主要任务是:

  • 将32位的IPv4地址解析为对应的48位MAC地址,以便以太网等链路层协议能够正确封装并投递帧。
  • 提供动态映射机制,自动适应网络环境的变化,而无需手动配置。

直接交付过程

直接交付(Direct Delivery) 是指当发送方与目标主机在同一IP子网中时,IP数据报可以不经过路由器,直接通过链路层协议(如以太网)发送到目标主机。这一过程中,地址解析协议(ARP) 起到了关键作用 —— 将目标主机的IPv4地址解析为其对应的MAC地址。

  1. 应用程序启动连接

    • 应用程序(如 Web 浏览器)发起请求,目标地址是 IPv4 地址 10.0.0.1(非主机名,因此不需要DNS解析)。
  2. 请求建立连接

    • 应用层请求 TCP 建立连接至目标地址。
  3. TCP发送数据报

    • TCP 构造连接请求,并封装成 IP 数据报,目标地址为 10.0.0.1
  4. 检查是否直接交付

    • 网络层检测到 10.0.0.1 与本地主机在同一子网内,因此无需经由网关或路由器,执行直接交付。
  5. 发起地址解析请求(ARP 请求)

    • 发送方必须知道目标主机的 MAC 地址,但仅有其 IP 地址,因此需要执行地址解析。
    • 发送方构造一个 ARP 请求:广播一个以太网帧,询问 “谁是 10.0.0.1,请告诉我你的 MAC 地址”。
  6. 广播ARP请求

    • ARP 请求在链路层广播给本地网络上的所有主机。这要求底层网络必须是广播网络(如以太网),不能是非广播多路访问网络(NBMA,如 Frame Relay)。
  7. 接收与响应ARP请求

    • 所有在该广播域内的主机都能接收到 ARP 请求。
      • 只有配置了 IP 地址 10.0.0.1 的主机才会响应。
      • 响应为ARP应答(Unicast),包含其 MAC 地址。
      • 同时,所有接收到请求的主机都可以被动“学习”发送方的 IP-MAC 对,并缓存。
  8. 发送实际数据报

    • 一旦发送方接收到 ARP 应答,便获得目标主机的 MAC 地址。
    • 然后,发送方使用这个地址将实际的 IP 数据报封装为以太网帧进行投递。

ARP 缓存

为了避免在每次发送IP数据报时都重复进行地址解析操作(即重复发送ARP请求),操作系统会维护一个称为 ARP 缓存(ARP Cache)的数据结构,用于存储已解析的 IP 地址与其对应的 MAC 地址之间的映射关系。

该缓存显著提升了网络通信的效率,是ARP协议运行的关键组成部分。

ARP缓存的结构

ARP缓存通常包含以下内容:

字段说明
IP地址(逻辑地址)IPv4地址
MAC地址(物理地址)对应的硬件地址
接口信息本地用于通信的网络接口
状态静态或动态
TTL / 过期时间条目的剩余生命周期(通常几分钟)

缓存条目的两种类型

  1. 动态条目(Dynamic Entries)

    • 由ARP协议自动创建。
    • 在主机接收到ARP应答时添加。
    • 有时间限制,过期自动删除(典型值是 60 秒到几分钟)。
    • 接收ARP请求时也可被动学习(即非目标主机也可更新缓存)。
  2. 静态条目(Static Entries)

    • 由管理员手动配置(如通过 arp 命令)。
    • 永不过期,需手动删除或重启系统后清除。
    • 用于安全或关键通信链路,防止ARP欺骗。

缓存更新机制

  • 每当主机发送ARP请求并收到应答时,都会插入或更新缓存中的对应条目。
  • 接收到其他主机的ARP请求时,也会根据请求中包含的信息更新本地ARP缓存。
  • 动态条目在一段时间后过期,以适应网络拓扑或设备变更,也就是软状态刷新

ARP 帧格式

在以太网中,ARP请求和应答消息封装在以太网帧中,用于实现IPv4地址到以太网MAC地址的映射。ARP帧分为两部分:

  • 以太网帧头(14字节)
  • ARP消息体(28字节,用于IPv4 → MAC 映射)

在这里插入图片描述

  • 广播地址:ARP请求使用以太网广播地址 ff:ff:ff:ff:ff:ff 作为目的地址。
  • ARP应答是单播的:应答帧直接发给请求发送方,不使用广播。
  • 信息冗余:ARP帧和以太网头都包含源MAC地址,这是典型的协议重叠设计。
  • Op字段重要性:由于请求和应答的以太网类型字段相同(都为0x0806),必须通过 Op 字段区分。

代理 ARP

代理ARP(Proxy ARP)是一种 允许设备代表其他主机响应ARP请求 的机制。根据 [RFC 1027],代理ARP主要应用于以下场景:

🔁 一个系统(通常是路由器)收到一个针对某IP地址的ARP请求,并不是将请求转发给目标主机,而是自己代为应答,返回自己的MAC地址。

这使得请求主机误以为代理设备就是目标主机,从而将后续流量直接发送给代理设备,进而实现跨网络转发。

示例场景

假设有以下两个网络使用相同的IP前缀:

网络A:192.168.1.0/24
网络B:192.168.1.0/24

它们由一台中间路由器连接,出于某些遗留系统的限制,不能更改子网配置。这时路由器可配置为代理ARP:

  • 当网络A中的主机 192.168.1.10 发送ARP请求:“谁是192.168.1.20?”
  • 网络B中的主机实际拥有这个IP。
  • 路由器响应该请求,返回自己的MAC地址。
  • 数据先到路由器,由其再转发给目标主机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401406.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下运行Redis并设置为开机自启的服务

下载Redis-Windows 点击redis-windows-7.4.0下载链接下载Redis 解压之后得到如下文件 右键install_redis.cmd文件,选择在记事本中编辑。 将这里改为redis.windows.conf后保存,退出记事本,右键后选择以管理员身份运行。 在任务管理器中能够…

网络编程之网络基础

基础理论:IP、子网掩码、端口号、字节序、网络基础模型、传输协议 socket:TCP、UDP、广播、组播、抓包工具的使用、协议头、并发服务器 Modbus协议 、HTTP协议、HTML、 分析服务器 源码、数据库 一、认识网络 网络:实现多设备通信 二、IP地址…

Spring AI(11)——SSE传输的MCP服务端

WebMVC的服务器传输 支持SSE&#xff08;Server-Sent Events&#xff09; 基于 Spring MVC 的服务器传输和可选的STDIO运输 导入jar <dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-mcp-server-webmvc</a…

计算机网络备忘录

计算机网络 - 网络互联与互联网 计算机网络重点学习本章&#xff0c;属于核心知识 包含网络层和传输层 的 相关协议 计算机网络层次重点掌握网络层与传输层。其中网络层主要是IP协议&#xff0c;解决主机-主机通信&#xff0c;传输层主要是TCP/UDP 协议&#xff0c;解决应用-…

Spring Boot论文翻译防丢失 From船长cap

本文内容 微服务 微服务风格的特性组件化&#xff08;Componentization &#xff09;与服务&#xff08;Services&#xff09;围绕业务功能的组织产品不是项目强化终端及弱化通道分散治理分散数据管理基础设施自动化容错性设计设计改进 微服务是未来吗其它 微服务系统多大微…

NuxtJS入门指南:环境安装及报错解决

在学习NuxtJS的过程中&#xff0c;正确的安装环境是非常重要的一步。然而&#xff0c;有时候在安装过程中会遇到一些问题&#xff0c;比如使用corepack安装pnpm时出现的错误。本文将详细介绍如何安装NuxtJS以及解决上述安装过程中遇到的问题。 Nuxt.js简介 Nuxt.js是一个强大的…

贪心算法应用:集合划分问题详解

贪心算法与集合划分问题详解 集合划分问题是组合优化中的经典问题&#xff0c;其核心目标是将元素集合划分为若干满足特定条件的子集。本文将深入探讨贪心算法在集合划分中的应用&#xff0c;涵盖算法原理、适用场景、Java实现细节及优化策略。 一、集合划分问题定义 1.1 基础…

数论~~~

质数 质数Miller-Rabin算法质因子分解质数筛埃氏筛欧拉筛如果只是计数&#xff0c;埃氏筛改进 快速幂乘法快速幂矩阵快速幂1维k阶实战(提醒&#xff1a;最好在mul函数中作乘法时加上&#xff08;long long&#xff09;的强制类型转换 &#xff0c;或者全部数组换成long long&am…

web第十次课后作业--Mybatis的增删改查

&#xff08;一&#xff09;删除操作 功能&#xff1a;根据主键删除数据 SQL 语句 -- 删除id17的数据 delete from emp where id 17;Mybatis 框架让程序员更关注于 SQL 语句 接口方法 Mapper public interface EmpMapper {//Delete("delete from emp where id 17&qu…

贪心算法应用:集合覆盖问题详解

贪心算法与集合覆盖问题详解 贪心算法在组合优化问题中展现出独特优势&#xff0c;集合覆盖问题&#xff08;Set Cover Problem&#xff09;是其中的经典案例。本文将用2万字全面解析贪心算法在集合覆盖/划分中的应用&#xff0c;涵盖算法原理、正确性分析、Java实现、复杂度证…

【知识点】第7章:文件和数据格式化

文章目录 知识点整理文件概述文件的打开和关闭文件的读操作文件的写操作 练习题填空题选择题​​ 知识点整理 文件概述 文件是一个存储在辅助存储器上的数据序列&#xff0c;可以包含任何数据内容。概念上&#xff0c;文件是数据的集合和抽象&#xff0c;类似地&#xff0c;函…

NetSuite Bundle - Dashboard Refresh

儿童节快乐&#xff01; 今朝发一个Bundle&#xff0c;解决一个NetSuite Dashboard的老问题。出于性能上的考虑&#xff0c;NetSuite的Dashboard中的Portlet&#xff0c;只能逐一手工刷新。有人基于浏览器做了插件&#xff0c;可以进行自动刷新。但是在我们做项目部署时&#…

智慧赋能:移动充电桩的能源供给革命与便捷服务升级

在城市化进程加速与新能源汽车普及的双重推动下&#xff0c;移动充电桩正成为能源供给领域的一场革命。传统固定充电设施受限于布局与效率&#xff0c;难以满足用户即时、灵活的充电需求&#xff0c;而移动充电桩通过技术创新与服务升级&#xff0c;打破了时空壁垒&#xff0c;…

斐波那契数列------矩阵幂法

斐波那契数列 斐波拉楔数是我们在学递归的使用看到的题目&#xff0c;但递归法是比较慢的&#xff0c;后面我们用循环递进来写的&#xff0c;但今天我有遇到了新的方法—— 矩阵幂法&#xff08;线性代数的知识点&#xff09;。 矩阵幂法&#xff1a; F11*F10*F2; F20*F11*…

【Web应用】若依框架:基础篇21二次开发-页面调整

文章目录 ⭐前言⭐一、课程讲解⭐二、怎样选择设计模式&#xff1f;&#x1f31f;1、寻找合适的对象✨1) ⭐三、怎样使用设计模式&#xff1f;&#x1f31f;1、寻找合适的对象✨1) ⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里云社区专家博主、软件设计工程师博客内…

【 java 基础知识 第一篇 】

目录 1.概念 1.1.java的特定有哪些&#xff1f; 1.2.java有哪些优势哪些劣势&#xff1f; 1.3.java为什么可以跨平台&#xff1f; 1.4JVM,JDK,JRE它们有什么区别&#xff1f; 1.5.编译型语言与解释型语言的区别&#xff1f; 2.数据类型 2.1.long与int类型可以互转吗&…

CVE-2020-17518源码分析与漏洞复现(Flink 路径遍历)

漏洞概述 漏洞名称&#xff1a;Apache Flink REST API 任意文件上传漏洞 漏洞编号&#xff1a;CVE-2020-17518 CVSS 评分&#xff1a;7.5 影响版本&#xff1a;Apache Flink 1.5.1 - 1.11.2 修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0 漏洞类型&#xff1a;路径遍历导致的任…

Excel表格批量下载 CyberWin Excel Doenlaoder 智能编程-——玄武芯辰

使用 CyberWin Excel Downloader 进行 Excel 表格及各种文档的批量下载&#xff0c;优势显著。它能大幅节省时间&#xff0c;一次性获取大量所需文档&#xff0c;无需逐个手动下载&#xff0c;提升工作效率。可确保数据完整性与准确性&#xff0c;避免因重复操作产生失误。还便…

可编辑PPT | 基于大数据中台新能源智能汽车应用解决方案汽车大数据分析与应用解决方案

这份文档是一份关于新能源智能汽车应用解决方案的详细资料&#xff0c;它深入探讨了智能汽车行业的发展趋势&#xff0c;指出汽车正从单纯交通工具转变为网络入口和智能设备&#xff0c;强调了车联网、自动驾驶、智能娱乐等技术的重要性。文档提出了一个基于大数据中台的车企数…

k8s集群安装坑点汇总

前言 由于使用最新的Rocky9.5,导致kubekey一键安装用不了&#xff0c;退回Rocky8麻烦机器都建好了&#xff0c;决定手动安装k8s&#xff0c;结果手动安装过程中遇到各种坑&#xff0c;这里记录下&#xff1b; k8s安装 k8s具体安装过程可自行搜索&#xff0c;或者deepseek; 也…