【计算机网络】 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)。 |
硬件地址长度 | 1 | MAC地址长度(以太网为6)。 |
协议地址长度 | 1 | IP地址长度(IPv4为4)。 |
操作码 | 2 | 1=请求,2=响应,3=反向ARP请求,4=反向ARP响应。 |
发送方MAC | 6 | 发送方硬件地址(源MAC)。 |
发送方IP | 4 | 发送方协议地址(源IP)。 |
目标MAC | 6 | 目标硬件地址(初始为全0,响应时填充目标MAC)。 |
目标IP | 4 | 目标协议地址(待解析的IP)。 |
3. 工作流程
(1)正向ARP(已知IP,求MAC)
-
主机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”。
- 主机A需要向主机B(IP:192.168.1.2)发送数据,先检查本地ARP缓存(
-
主机B单播响应:
- 主机B收到广播后,解析出目标IP是自己,将A的IP-MAC映射存入缓存,并向A发送单播ARP响应,包含自己的MAC地址。
-
主机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地址学习数量。
- 静态绑定IP-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服务器)
- 客户端发送查询:浏览器向本地DNS服务器(如路由器默认地址192.168.1.1)发送DNS查询报文,请求解析
www.csdn.net
。 - 本地DNS服务器递归查询:
- 若本地缓存无结果,本地DNS服务器向根域名服务器发送查询,根服务器返回
.net
顶级域名服务器地址。 - 本地DNS服务器再向
.net
顶级域名服务器查询,得到csdn.net
权威服务器地址。 - 最后向权威服务器查询,得到
www.csdn.net
的IP地址(如115.236.157.156),并缓存结果。
- 若本地缓存无结果,本地DNS服务器向根域名服务器发送查询,根服务器返回
- 返回解析结果:本地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)。
- 攻击者篡改DNS响应,将域名指向恶意IP(如访问
- DNSSEC:
- 基于数字签名的DNS安全扩展,防止DNS欺骗(验证解析结果的真实性)。
三、ARP vs DNS 对比总结
维度 | ARP协议 | DNS协议 |
---|---|---|
层 次 | 网络层与数据链路层之间 | 应用层 |
协议类型 | 无传输层协议(直接封装在以太网帧中) | 基于UDP/TCP(默认UDP 53端口) |
解析目标 | IP→MAC地址 | 域名→IP地址 |
作用范围 | 局域网内 | 全球互联网 |
报文类型 | 广播/单播 | 单播 |
四、实战工具与抓包分析
-
ARP抓包:
- 使用Wireshark过滤
arp
,捕获ARP请求/响应报文,观察MAC地址解析过程。 - 关键字段:
Opcode
为1是请求,2是响应;Sender MAC
和Target MAC
字段。
- 使用Wireshark过滤
-
DNS抓包:
- 过滤
port 53
,观察DNS查询(Query
)和响应(Answer
)报文。 - 关键字段:
Flags
中的QR
(0=查询,1=响应)、AA
(是否为权威响应);Resource Record
中的IP地址。
- 过滤
-
命令行工具:
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进行实战练习。)