当前位置: 首页 > news >正文

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

文章目录

      • 【计算机网络】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进行实战练习。)

相关文章:

  • 计算机网络物理层基础练习
  • 【CC协议】知识共享许可协议(Creative Commons Licenses)体系解析
  • Python 中Vector类的格式化实现,重点拆解其超球面坐标系的设计精髓
  • 15分钟讲解所有较知名编程语言
  • DAY 16 numpy数组与shap深入理解
  • GD32F103系列工程模版创建记录
  • js数据类型有哪些?它们有什么区别?
  • 如何找到一条适合自己企业的发展之路?
  • Agent开发详解
  • 【Qt】Bug:findChildren找不到控件
  • 【Python训练营打卡】day40 @浙大疏锦行
  • 机器学习03-色彩空间:RGB、HSV、HLS
  • 图像修复的可视化demo代码
  • atapi!IdeReadWrite函数分析下之Send read command
  • 边缘计算场景下的大模型落地:基于 Cherry Studio 的 DeepSeek-R1-0528 本地部署
  • Linux 下如何查看进程的资源限制信息?
  • 第二十章 文本处理
  • HTML实现端午节主题网站:龙舟争渡,凭吊祭江诵君赋。
  • 光电设计大赛智能车激光对抗方案分享:低成本高效备赛攻略
  • 人工智能在智能健康监测中的创新应用与未来趋势
  • 手机wordpress无法评论/项链seo关键词
  • 网站建设应注意的问题有哪些/怎样推广小程序平台
  • 自学做网站需要学会哪些/免费b站软件推广网站
  • java网站开发流程/搜索引擎优化是什么工作
  • 泰安做网站优化/seo网站推广方案
  • 网站链接地图是怎么做的/快速网站seo效果