【计算机网络】 ARP协议和DNS协议

article/2025/6/22 21:42:12

文章目录

      • 【计算机网络】ARP协议和DNS协议(知识点详细)
        • 一、ARP协议(地址解析协议)
          • 1. **协议功能**
          • 2. **ARP报文结构**
          • 3. **工作流程**
            • (1)**正向ARP(已知IP,求MAC)**
            • (2)**免费ARP(Gratuitous ARP)**
          • 4. **ARP缓存管理**
          • 5. **ARP欺骗与防范**
        • 二、DNS协议(域名系统)
          • 1. **协议功能**
          • 2. **DNS层次结构**
          • 3. **DNS解析流程**
            • (1)**递归解析(客户端→本地DNS服务器)**
            • (2)**迭代解析(本地DNS服务器→根→顶级→权威)**
          • 4. **DNS报文结构**
          • 5. **常见DNS记录类型**
          • 6. **DNS优化与问题**
        • 三、ARP vs DNS 对比总结
        • 四、实战工具与抓包分析
        • 五、总结

【计算机网络】ARP协议和DNS协议(知识点详细)

一、ARP协议(地址解析协议)
1. 协议功能
  • 核心作用:将IP地址映射为MAC地址(解决“已知IP,求MAC”的问题)。
  • 应用场景
    • 局域网内主机通信(如ping命令前需先通过ARP获取目标MAC)。
    • 路由器转发数据时,需将目标IP解析为下一跳设备的MAC地址。
2. ARP报文结构
字段长度(字节)说明
硬件类型2标识硬件接口类型(如以太网为1)。
协议类型2标识上层协议(如IP为0x0800)。
硬件地址长度1MAC地址长度(以太网为6)。
协议地址长度1IP地址长度(IPv4为4)。
操作码21=请求,2=响应,3=反向ARP请求,4=反向ARP响应。
发送方MAC6发送方硬件地址(源MAC)。
发送方IP4发送方协议地址(源IP)。
目标MAC6目标硬件地址(初始为全0,响应时填充目标MAC)。
目标IP4目标协议地址(待解析的IP)。
3. 工作流程
(1)正向ARP(已知IP,求MAC)
  1. 主机A广播ARP请求

    • 主机A需要向主机B(IP:192.168.1.2)发送数据,先检查本地ARP缓存(arp -a),若没有B的MAC地址,则发送广播ARP请求(目标MAC为FF-FF-FF-FF-FF-FF)。
    • 报文内容:“谁是192.168.1.2?请告诉我的MAC是00-0C-29-XX-XX-XX”。
  2. 主机B单播响应

    • 主机B收到广播后,解析出目标IP是自己,将A的IP-MAC映射存入缓存,并向A发送单播ARP响应,包含自己的MAC地址。
  3. 主机A更新缓存

    • 主机A收到响应后,将B的IP-MAC存入本地ARP缓存(默认有效期几分钟),后续通信直接使用该MAC地址。
(2)免费ARP(Gratuitous ARP)
  • 场景:主机更新MAC地址时(如更换网卡),主动发送ARP响应报文,强制更新局域网内其他主机的ARP缓存。
  • 作用:防止旧MAC地址导致通信失败,或用于检测IP冲突(发送ARP请求后若收到响应,说明IP已被占用)。
4. ARP缓存管理
  • 查看缓存
    # Windows
    arp -a  
    # Linux/macOS
    arp -n 
    
  • 清除缓存
    arp -d 192.168.1.2  # 删除指定IP的缓存
    
5. ARP欺骗与防范
  • 原理:攻击者伪造ARP报文,将目标IP对应的MAC地址指向自己,截获通信数据(如中间人攻击)。
  • 防范措施
    • 静态绑定IP-MAC(arp -s 192.168.1.2 00-0C-29-XX-XX-XX)。
    • 使用ARP防火墙(如360安全卫士的局域网防护)。
    • 启用交换机端口安全功能,限制MAC地址学习数量。
二、DNS协议(域名系统)
1. 协议功能
  • 核心作用:将域名(如www.csdn.net)解析为IP地址(解决“人类可读地址→机器可读地址”的问题)。
  • 应用场景
    • 浏览器访问网站时,需先通过DNS获取服务器IP。
    • 邮件系统通过DNS解析邮件服务器地址(MX记录)。
2. DNS层次结构

在这里插入图片描述

  • 根域名服务器:全球仅13组(A~M),存储顶级域名服务器(TLD)的地址(如.com.cn)。
  • 顶级域名服务器:负责特定顶级域名(如.com)的解析,存储权威域名服务器地址。
  • 权威域名服务器:负责具体域名(如csdn.net)的解析,存储域名对应的IP地址。
3. DNS解析流程
(1)递归解析(客户端→本地DNS服务器)
  1. 客户端发送查询:浏览器向本地DNS服务器(如路由器默认地址192.168.1.1)发送DNS查询报文,请求解析www.csdn.net
  2. 本地DNS服务器递归查询
    • 若本地缓存无结果,本地DNS服务器向根域名服务器发送查询,根服务器返回.net顶级域名服务器地址。
    • 本地DNS服务器再向.net顶级域名服务器查询,得到csdn.net权威服务器地址。
    • 最后向权威服务器查询,得到www.csdn.net的IP地址(如115.236.157.156),并缓存结果。
  3. 返回解析结果:本地DNS服务器将IP返回给客户端。
(2)迭代解析(本地DNS服务器→根→顶级→权威)
  • 递归解析由本地DNS服务器“代劳”,而迭代解析中客户端需依次向根、顶级、权威服务器发送查询(实际中递归+迭代结合使用)。
4. DNS报文结构
字段长度(字节)说明
标识2唯一标识查询,用于匹配响应报文。
标志2包含查询类型(递归/迭代)、响应码(如0=成功,3=域名不存在)。
问题数2查询的域名数量(通常为1)。
回答数2响应中资源记录数量。
问题字段可变包含待解析的域名(如www.csdn.net)和协议类型(IPv4/IPv6)。
资源记录可变解析结果(如A记录:域名→IPv4地址,AAAA记录:域名→IPv6地址)。
5. 常见DNS记录类型
记录类型作用示例
A域名→IPv4地址映射csdn.net A 115.236.157.156
AAAA域名→IPv6地址映射csdn.net AAAA 240e:xx:xx:xx::1
MX邮件交换记录,指定邮件服务器csdn.net MX 10 mail.csdn.net
CNAME别名记录,将一个域名指向另一个域名(用于CDN等场景)cdn.csdn.net CNAME www.csdn.net
TXT文本记录(用于SPF反垃圾邮件、DNSSEC验证等)_spf.csdn.net TXT "v=spf1 ip4:192.168.1.0/24 -all"
6. DNS优化与问题
  • DNS缓存
    • 本地DNS服务器和客户端均会缓存解析结果,减少重复查询(TTL字段控制缓存时间)。
    • 清除本地DNS缓存:
      # Windows
      ipconfig /flushdns  
      # macOS/Linux
      sudo systemd-resolve --flush-caches 
      
  • DNS污染与劫持
    • 攻击者篡改DNS响应,将域名指向恶意IP(如访问www.bank.com被劫持到钓鱼网站)。
    • 解决方案:使用加密DNS(如DoH/DoT)、更换公共DNS服务器(如Google 8.8.8.8、阿里云223.5.5.5)。
  • DNSSEC
    • 基于数字签名的DNS安全扩展,防止DNS欺骗(验证解析结果的真实性)。
三、ARP vs DNS 对比总结
维度ARP协议DNS协议
层 次网络层与数据链路层之间应用层
协议类型无传输层协议(直接封装在以太网帧中)基于UDP/TCP(默认UDP 53端口)
解析目标IP→MAC地址域名→IP地址
作用范围局域网内全球互联网
报文类型广播/单播单播
四、实战工具与抓包分析
  1. ARP抓包

    • 使用Wireshark过滤arp,捕获ARP请求/响应报文,观察MAC地址解析过程。
    • 关键字段:Opcode为1是请求,2是响应;Sender MACTarget MAC字段。
  2. DNS抓包

    • 过滤port 53,观察DNS查询(Query)和响应(Answer)报文。
    • 关键字段:Flags中的QR(0=查询,1=响应)、AA(是否为权威响应);Resource Record中的IP地址。
  3. 命令行工具

    • nslookup:手动查询DNS记录(如nslookup www.csdn.net)。
    • dig:更强大的DNS查询工具(如dig @8.8.8.8 www.csdn.net +trace跟踪解析路径)。
五、总结
  • ARP协议是局域网通信的基础,解决IP到MAC的映射,依赖广播机制和缓存管理,但存在欺骗风险。
  • DNS协议是互联网的“地址簿”,通过分层解析和缓存机制实现高效域名解析,是所有网络应用的前提。
  • 两者分别在“链路层寻址”和“应用层寻址”中扮演核心角色,共同支撑了现代计算机网络的通信基础。

参考资料

  • RFC 826(ARP协议规范)
  • RFC 1034/1035(DNS协议规范)
  • 《TCP/IP详解 卷1:协议》

(本文代码示例和抓包分析可结合实际环境操作,建议使用Wireshark进行实战练习。)


http://www.hkcw.cn/article/PHvnUZOEJd.shtml

相关文章

普中STM32F103ZET6开发攻略(一)

各位看官老爷们,点击关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!! 目录 普中STM32F103ZET6开发攻略 1. GPIO端口实验——点亮LED灯 1.1 实验目的 1.2 实验原理 1.3 实验环境和器材…

Azure DevOps 管道部署系列之二IIS

本博客旨在提供如何使用 Azure DevOps YAML 管道部署到虚拟机上的 IIS 的实用指南。 开始之前,您需要做好以下准备: 您拥有要部署的服务器的访问权限以及 PowerShell 的管理员访问权限。您拥有要部署的远程服务器的互联网访问权限。您拥有在服务器上安装 .NET Core 托管包的…

Linux命令之ausearch命令

一、命令简介 ausearch 是 Linux 审计系统 (auditd) 中的一个实用工具,用于搜索审计日志中的事件。它是审计框架的重要组成部分,可以帮助系统管理员分析系统活动和安全事件。 二、使用示例 1、安装ausearch命令 Ubuntu系统安装ausearch命令,安装后启动服务。 root@testser…

2025山东CCPC题解

文章目录 L - StellaD - Distributed SystemI - Square PuzzleE - Greatest Common DivisorG - Assembly Line L - Stella 题目来源:L - Stella 解题思路 签到题,因为给出的字母不是按顺序,可以存起来赋其值,然后在比较。 代码…

复数三角不等式简介及 MATLAB 演示

复数三角不等式简介及 MATLAB 演示 1. 复数三角不等式简介 复数三角不等式(Complex Triangle Inequality)是复数的一种重要性质,它类似于普通的三角不等式,但适用于复数空间。具体来说,复数三角不等式可以描述复数之…

学术合作交流

想找志同道合的科研小伙伴!研究方向包括:计算机视觉(CV)、人工智能(AI)、目标检测、行人重识别、行人搜索、虹膜识别等。欢迎具备扎实基础的本科、硕士及博士生加入,共同致力于高质量 SCI 期刊和…

2025-05-31 Python深度学习10——模型训练流程

文章目录 1 数据准备1.1 下载与预处理1.2 数据加载 2 模型构建2.1 自定义 CNN 模型2.2 GPU加速 3 训练配置3.1 损失函数3.2 优化器3.3 训练参数 4 训练循环4.1 训练模式 (model.train())4.2 评估模式 (model.eval()) 5 模型验证 本文环境: Pycharm 2025.1Python 3.1…

十五、STM32的TIM(六)(PWM驱动舵机)

介绍:本章节主要讲解如何在 STM32C8T6 上使用 PWM 驱动舵机。通过按键输入控制,输出以 PWM 信号调整舵机转动角度,从而实现对舵机的精准控制。 目录 一、接线图 二、相关参数的计算 三、相关代码的编写 四、程序现象 一、接线图 二、相关…

C语言指针完全指南:从入门到精通(上)

目录 一、内存和指针 1.1 指针的使用场景 二、指针变量和地址 2.1 取地址符(&) 2.2指针变量和解引用操作符(*) 2.2.1 指针变量 2.3 指针变量的大小 三、指针变量类型的意义 3.2 指针-整数 ​编辑 四、指针计算 五、const修饰指针 5.1 const修饰变量 1.2 const修饰…

Kafka数据怎么保障不丢失

在分布式消息系统中,数据不丢失是核心可靠性需求之一。Apache Kafka 通过生产者配置、副本机制、持久化策略、消费者偏移量管理等多层机制保障数据可靠性。以下从不同维度解析 Kafka 数据不丢失的核心策略,并附示意图辅助理解。 一、生产者端&#xff1a…

Win10秘笈:两种方式修改网卡物理地址(MAC)

Win10秘笈:两种方式修改网卡物理地址(MAC) 在修改之前,可以先确定一下要修改的网卡MAC地址,查询方法有很多种,比如: 1、在设置→网络和Internet→WLAN/以太网,如下图所示。 2、在控…

Angularjs-Hello

1 关于Angularjs 最近因为项目需要又要做这个,所以简单复习下。其实这个大概7,8年前就用过,当时做了几个简单页面觉得太简单就还是回去做嵌入式了。按照互联网技术的进化速度,本来以为早死在 沙滩上了,没想到现在还在坚…

红外遥控(外部中断)

目录 1.红外遥控简介 通信方式: 红外LED波长: 通信协议标准: 2.硬件电路 发送部分1: 内部元件介绍: 工作原理: 为什么要以38KHZ亮灭? 电路图: 发送部分2: 电…

leetcode hot100刷题日记——33.二叉树的层序遍历

解题总结二维vector的初始化方法 题目描述情况1:不确定行数和列数情况2:已知行数和列数情况3:已知行数但不知道列数情况4:已知列数但不知道行数 题目描述 解答:用队列 思路都差不多,我觉得对于我自己来说&a…

GitToolBox 插件安装与配置指南

GitToolBox 插件安装与配置指南 GitToolBox GitToolBox IntelliJ plugin 项目地址: https://gitcode.com/gh_mirrors/gi/GitToolBox 1. 项目基础介绍和主要编程语言 项目基础介绍 GitToolBox 是一个专为 JetBrains 家族 IDE(如 IntelliJ IDEA、PyCharm 等&…

开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-结构化输出(三)

一、前言 在人工智能技术迅猛发展的今天,高效推理框架与强大语言模型的结合正不断突破应用边界。vLLM作为新一代高性能推理引擎,凭借其创新的PagedAttention技术和内存优化能力,为大规模语言模型部署提供了全新可能。 本文将聚焦vLLM框架与QWen3-8B这一国产开源大模型的深度…

史上最全 Git 图文教程(非常详细)零基础入门到精通,收藏这一篇就够了

戳上方蓝字“Java知音”关注我 Git安装 安装 1.先去官网下载这个软件, 准备安装到本电脑中 https://git-scm.com/ 2.根据自己电脑系统下载此软件到本机 Windows 系统直接下载 .exe 文件即可,macOS 系统使用 Homebrew 命令行安装,终端输入 git --versi…

GitHub学生认证申请

想要免费使用Copilot,申请学生认证可以免费使用。在申请过程中,踩了些坑。记录一下供大家参考 认证有效期 默认时长:首次认证成功后,学生权益(如 GitHub Pro 权限和 Student Developer Pack)的有效期一般为…

最新Spring Security实战教程(十五)快速集成 GitHub 与 Gitee 的社交登录

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…

Vue3 开源UI 框架推荐 (总有一款适合你)

一 、前言 💥这篇文章主要推荐了支持 Vue3 的开源 UI 框架,包括 web 端和移动端的多个框架,如 Element-Plus、Ant Design Vue 等 web 端框架,以及 Vant、NutUI 等移动端框架,并分别介绍了它们的特性和资源地址。&#…