跳转至

网络协议与分层模型

网络协议与分层模型

本章导读:本章深入讲解网络协议的分层设计思想,对比 TCP/IP 四层模型与 OSI 七层模型,详解各层核心协议(TCP、UDP、IP、ARP、DNS 等)的工作原理与安全测试关联。

协议的三要素

网络协议是通信双方必须遵守的约定,包含三个维度:

  • 语法(Syntax):数据的结构、格式与编码方式。例如 HTTP 请求第一行必须是 METHOD PATH VERSION 的格式

  • 语义(Semantics):报文的具体含义,什么操作代表什么意图。例如 HTTP 状态码 404 表示资源未找到

  • 时序(Timing):通信的先后顺序,请求与响应的交互流程。例如 TCP 必须先建立连接(三次握手)才能传输数据

TCP/IP 四层模型详解

现代互联网基于 TCP/IP 协议簇,其分层结构及各层核心职责如下:

层次 名称 核心职责 数据单元 典型协议/设备
应用层 Application Layer 面向用户提供具体服务 消息/报文 HTTP、FTP、DNS、SMTP、SSH、DHCP
传输层 Transport Layer 端到端的数据传输控制、可靠性保障 段(Segment) TCP、UDP
网络层 Internet Layer 寻址与路由选择、跨网络数据包转发 包(Packet) IP、ICMP、ARP、RARP、路由器
链路层 Link Layer 物理介质上的原始数据传输、局域网内寻址 帧(Frame) Ethernet、Wi-Fi、PPP、交换机

OSI 七层模型(理论参考)

OSI(Open Systems Interconnection)模型是 ISO 提出的理论框架,实际应用中 TCP/IP 更为广泛,但 OSI 有助于理解网络通信的完整过程:

  1. 物理层(Physical):传输比特流,定义电气特性、机械特性。设备:集线器、中继器、网卡

  2. 数据链路层(Data Link):帧的封装与解封、MAC 地址寻址、差错检测。设备:交换机、网桥。协议:Ethernet、Wi-Fi(802.11)、ARP

  3. 网络层(Network):IP 地址寻址、路由选择、分组转发。设备:路由器。协议:IP、ICMP、IGMP、OSPF、BGP

  4. 传输层(Transport):端到端连接、流量控制、差错恢复。协议:TCP、UDP、SCTP

  5. 会话层(Session):建立、管理和终止会话。协议:NetBIOS、RPC、SQL 会话

  6. 表示层(Presentation):数据格式转换、加密解密、压缩解压。协议:SSL/TLS(早期)、JPEG、ASCII、MPEG

  7. 应用层(Application):面向用户的网络服务接口。协议:HTTP、FTP、DNS、SMTP、SSH

TCP/IP 与 OSI 的映射关系

  • TCP/IP 应用层 ≈ OSI 应用层 + 表示层 + 会话层

  • TCP/IP 传输层 ≈ OSI 传输层

  • TCP/IP 网络层 ≈ OSI 网络层

  • TCP/IP 链路层 ≈ OSI 数据链路层 + 物理层

传输层协议详解:TCP 与 UDP

TCP(Transmission Control Protocol)

TCP 是面向连接的、可靠的传输协议,提供以下机制:

  • 三次握手(Three-Way Handshake)建立连接:

  • 客户端发送 SYN 包(同步序列号,seq=x)

  • 服务器回复 SYN-ACK 包(seq=y, ack=x+1)

  • 客户端发送 ACK 包(ack=y+1),连接建立

  • 四次挥手(Four-Way Handshake)关闭连接:

  • 客户端发送 FIN 包(请求关闭)

  • 服务器回复 ACK 包(确认)

  • 服务器发送 FIN 包(服务器也请求关闭)

  • 客户端回复 ACK 包(确认),进入 TIME_WAIT 状态后关闭

  • 可靠传输机制

  • 序列号与确认号:每个数据包都有编号,接收方确认收到哪些包

  • 超时重传:未收到确认则重新发送

  • 滑动窗口:允许发送方连续发送多个数据包而无需等待每个确认,提高吞吐量

  • 流量控制:接收方通过窗口大小(Window Size)告知发送方自己的处理能力,防止数据淹没

  • 拥塞控制:通过慢启动(Slow Start)、拥塞避免(Congestion Avoidance)、快速重传(Fast Retransmit)、快速恢复(Fast Recovery)算法,防止网络拥塞

  • TCP 报文头关键字段(20-60 字节):

  • 源端口(16 位)、目的端口(16 位)

  • 序列号(32 位)、确认号(32 位)

  • 数据偏移(4 位,表示头部长度)

  • 标志位:URG、ACK、PSH、RST、SYN、FIN

  • 窗口大小(16 位)

  • 校验和(16 位)

  • 紧急指针(16 位)

  • 选项(可变长度)

UDP(User Datagram Protocol)

UDP 是无连接的、不可靠的传输协议,特点:

  • 无连接建立和关闭过程,直接发送数据

  • 不保证数据到达、不保证顺序、不重传丢失包

  • 头部极小(仅 8 字节:源端口、目的端口、长度、校验和),传输效率高

  • 适用于实时性要求高、可容忍少量丢失的场景:视频流、语音通话、DNS 查询、游戏状态同步

特性 TCP UDP
连接方式 面向连接 无连接
可靠性 可靠(确认、重传、排序) 不可靠
传输顺序 保证 不保证
流量控制 有(滑动窗口)
拥塞控制
头部开销 20-60 字节 8 字节
适用场景 文件传输、网页浏览、邮件 直播、游戏、DNS、VoIP

网络层核心协议

IP(Internet Protocol)

IP 负责将数据包从源主机传输到目的主机,主要版本:

  • IPv4:32 位地址,约 43 亿个地址,格式如 192.168.1.1。由于地址枯竭,广泛使用 NAT(网络地址转换)技术

  • IPv6:128 位地址,几乎无限,格式如 2001:0db8:85a3::8a2e:0370:7334,逐步替代 IPv4

IP 地址分为网络部分和主机部分,通过子网掩码(Subnet Mask)划分。例如 192.168.1.0/24 表示前 24 位是网络位,后 8 位是主机位,可容纳 254 台主机。

CIDR(无类别域间路由)

ARP(Address Resolution Protocol)

ARP 用于将 IP 地址解析为 MAC 地址(局域网内通信需要 MAC 地址):

  1. 主机 A 广播 ARP 请求:"谁的 IP 是 192.168.1.2?请告知你的 MAC 地址"

  2. 主机 B 收到后单播回复:"我的 MAC 是 00:1A:2B:3C:4D:5E"

  3. 主机 A 缓存该映射到 ARP 缓存表(通常存活几分钟到几小时)

ARP 欺骗攻击

ICMP(Internet Control Message Protocol)

ICMP 用于传递网络层的控制消息和错误报告:

  • Echo Request / Echo Reply(类型 8/0):ping 命令的原理

  • Destination Unreachable(类型 3):目标不可达(网络、主机、端口、协议不可达)

  • Time Exceeded(类型 11):TTL 耗尽,traceroute 利用此机制追踪路由路径

  • Redirect(类型 5):路由器重定向,可被利用进行流量劫持

DNS 域名解析系统

DNS(Domain Name System)将人类可读的域名转换为机器可识别的 IP 地址,是互联网的核心基础设施。

DNS 解析流程

  1. 浏览器检查本地缓存 → 操作系统缓存(DNS Client Service)

  2. 检查 hosts 文件(C:\Windows\System32\drivers\etc\hosts/etc/hosts

  3. 向配置的 DNS 服务器(如 8.8.8.8、114.114.114.114)发起递归查询

  4. DNS 服务器迭代查询根域名服务器(.)→ 顶级域名服务器(如 .com)→ 权威域名服务器(如 example.com)

  5. 返回 IP 地址,客户端缓存结果(TTL 时间)

DNS 记录类型

  • A 记录:域名 → IPv4 地址

  • AAAA 记录:域名 → IPv6 地址

  • CNAME 记录:域名别名,指向另一个域名

  • MX 记录:邮件交换服务器,指定邮件接收服务器

  • NS 记录:域名服务器,指定该域名的 DNS 服务器

  • TXT 记录:文本信息,常用于域名验证、SPF 反垃圾邮件配置

  • PTR 记录:IP 地址 → 域名(反向解析)

  • SOA 记录:起始授权记录,包含域名管理信息

DNS 安全测试关注点

  • DNS 劫持:恶意修改 DNS 响应,将域名指向攻击者服务器(钓鱼、流量劫持)

  • DNS 隧道:利用 DNS 查询和响应传输数据,绕过防火墙(如 iodine、dnscat2)

  • 子域名枚举:通过爆破或搜索引擎发现目标域名的子域名,扩大攻击面(工具:sublist3r、OneForAll、amass)

  • DNS 区域传输:配置不当的 DNS 服务器允许任意客户端获取完整区域记录(dig @ns.example.com example.com AXFR

安全测试关联点

  • 协议分析:Wireshark 等抓包工具是安全测试的基础工具,理解协议分层有助于定位问题(如判断攻击发生在哪一层)

  • 传输层攻击: #### TCP SYN Flood

  • TCP SYN Flood:发送大量 SYN 包但不完成握手,耗尽服务器半连接队列(SYN Queue),导致拒绝服务

  • UDP 反射放大:伪造源 IP 向 UDP 服务(如 DNS、NTP、Memcached)发送小请求,获取大响应并反射到受害者,实现 DDoS

  • TCP RST 攻击:伪造 RST 包终止合法连接,实现连接劫持或拒绝服务

  • 应用层攻击:HTTP 层面的 SQL 注入、XSS、命令注入是 Web 安全测试的核心内容

  • 网络层攻击:IP 欺骗、路由劫持、ICMP 重定向、Smurf 攻击(伪造源地址发送 ICMP 广播)

  • ARP 攻击:ARP 欺骗、ARP 泛洪导致网络瘫痪或流量劫持

  • DNS 攻击:DNS 劫持、DNS 缓存投毒、DNS 隧道