本文旨在梳理流量溯源的核心知识体系。内容将首先阐述OSI七层网络模型的分层功能、典型协议及各层的取证方法,理清数据在网络中封装与解封装的传输逻辑;接着详解HTTP/HTTPS等基础协议,并说明TCP三次握手与四次挥手的连接机制。文章前半部分是必要的理论基础,后半部分则将重点放在Wireshark抓包工具上,详细介绍其操作步骤、数据包导出与分析功能,同时涉及流量解密配置、追踪流等实用技巧,为网络攻击溯源与恶意软件检测等场景打下基础。
一、基础协议技术与取证方式简介

图1:OSI模型与TCP/IP协议栈对比图
数据传输流程遵循严格的封装与解封装原则。数据发送时遵循 “自上而下”的封装流程(应用层→表示层→会话层→传输层→网络层→数据链路层→物理层),每一层都会为数据添加对应的报头信息(如应用层报头、TCP/UDP报头、IP报头、帧报头)。

图2:OSI模型中数据封装与传输过程
数据接收时则遵循 “自下而上”的解封装流程(物理层→数据链路层→网络层→传输层→会话层→表示层→应用层),逐层剥离报头信息,最终还原为原始数据。

图3:OSI模型中数据解封装过程
七层网络模型与取证方式简介
1. 物理层:信号采集和介质跟踪
核心取证目标是传输介质和电/光信号。常用的介质包括双绞线、光纤、同轴电缆等。取证时需要避免损坏介质,并通过合规的信号采集设备(如光功率计、示波器)对传输过程中的电信号或光信号进行采集,还原物理层的原始比特流。这适用于链路故障跟踪、物理层窃听调查等场景。
2. 数据链路层:基于MAC地址和帧结构进行分析
核心依赖于网络设备(主要是交换机)的MAC地址表。取证方法包括:
① 交换机端口镜像,将目标端口的数据流镜像到监控端口以捕获数据链路层帧;
② 分析MAC地址表,跟踪终端设备的接入端口和物理位置;
③ 解析帧头信息(如源/目的MAC、帧类型),识别通信异常(如MAC地址欺骗、ARP攻击)。
3. 网络层:基于IP地址和路由表的溯源分析
核心依赖于路由器的路由表和IP协议特征。取证方法包括:
① 路由器端口镜像/流量镜像,在网络层捕获IP包;
② 分析路由表,跟踪数据包的转发路径和源/目的网络;
③ 解析IP包头(源/目的IP、TTL、协议类型等),确定通信双方的网络位置。掌握这些网络/系统层面的知识对于精准定位问题至关重要。
4. 传输层:基于端到端连接与协议特性的分析
重点在于分析端到端的传输连接与协议差异。取证方法包括:
① 捕获传输层报文(TCP/UDP段),解析源/目的端口、协议标志位等信息;
② TCP协议:基于三次握手、四次挥手的连接流程,分析连接状态。TCP是“面向连接”的可靠传输协议。
③ UDP协议:作为“面向无连接”协议,传输效率高,取证重点在于端口关联的应用服务及数据流的实时性。
TCP连接机制详解:
- 三次握手(建立连接):
① 客户端发送SYN报文(我能连接你吗?);
② 服务器回复SYN+ACK报文(可以,你能连接我吗?);
③ 客户端发送ACK报文(能,开始通信吧!)。至此连接建立。
- 四次挥手(断开连接):
① 客户端发送FIN报文(我说完了,要断开);
② 服务器回复ACK报文(收到断开请求);
③ 服务器发送FIN报文(我也说完了,断开吧);
④ 客户端回复ACK报文(收到,断开)。至此连接终止。

图4:TCP三次握手与四次挥手流程

5. 会话层、表示层:整合于应用层的关联分析
在实际网络工程中,会话层(管理应用会话)和表示层(数据编解码、加密)的功能通常被整合到应用层实现。因此取证时多与应用层结合,例如跟踪HTTP会话的Cookie,或解析HTTPS的SSL/TLS加密协商过程。
6. 应用层:协议解析与日志审计结合
核心取证对象为应用层协议消息与各类安全设备日志。取证方法包括:
① 解析应用层协议报文(如HTTP/HTTPS、FTP、SMTP、DNS),还原用户操作行为;
② 采集安全设备(如IDS/IPS、防火墙)及服务器、终端的审计日志,提取威胁告警信息;
③ 结合应用层的用户身份标识(如账号),实现身份落地。
HTTP与HTTPS协议对比:
- HTTP:明文传输,在一个TCP连接上可进行多个请求/响应,抓包可直接还原用户访问内容。
- HTTPS:在TCP连接建立后,需进行额外的SSL/TLS握手以协商加密,抓包所见为密文,需密钥才能解密。对这类加密流量的分析是安全/渗透/逆向领域的基础技能。
二、Wireshark 抓包分析技术分享
抓包的核心逻辑是截取网络中传输的数据包。Wireshark是一款全层级的网络数据包分析器,可从数据链路层开始捕获,并向上解析至应用层所有协议。相比之下,Fiddler等工具仅聚焦于应用层协议。

图5:Wireshark软件图形化界面
启动与捕获:
启动Wireshark后,在主界面的“捕获接口”列表中选择需要监听的网卡(如以太网卡或无线网卡),点击“开始捕获”即可实时显示流经该网卡的所有数据包。

开启混杂模式:
要捕获经过网卡的所有数据包(包括非发往本机的),需开启混杂模式。点击“捕获”->“选项”,勾选目标网卡对应的“启用混杂模式”即可。

图6:在Wireshark中启用网卡的混杂模式
常用过滤语法:
过滤器能帮助快速定位目标流量。
ip.src==源IP地址 # 过滤特定源IP的流量
ip.dst==目的IP地址 # 过滤发往特定目的IP的流量
tcp.port==80 # 显示指定端口(如HTTP的80端口)的数据包
http.request.method=="POST" # 筛选HTTP POST请求
http.request.uri contains "/login" # 筛选请求路径包含“/login”的数据包
tcp matches "\x55\x73" # 匹配TCP数据包中含特定二进制序列的流量
逻辑运算符组合使用:
http.request.method==POST AND ip.dst==目标服务器IP # 查看发往特定服务器的POST请求
ip.addr==IP1 or ip.addr==IP2 # 查找与两个IP相关的所有流量
tcp and not (http or https) # 抓取TCP流量,但排除HTTP/HTTPS应用流量
实战步骤解析:
- 打开Wireshark,加载一个已有的抓包文件(.pcap格式)。

- 查看捕获的数据包列表,注意源/目的IP、协议、长度等信息。可通过系统设置确认本机IP。

图7:Wireshark捕获的数据包列表,包含时间、源、目的、协议等元信息

- 选择一个数据包,在详情面板中逐层展开分析。

网络层(IPv4)关键字段解析:
Version: 4 # IPv4协议
Total Length: 41 # 数据包总长度
.1.. .... = Don‘t fragment: Set # 不允许分片
Identification: 0xfbaa (64426) # 数据包标识,用于分片重组
传输层(TCP)关键字段解析:

Src Port: 2025, Dst Port: 443 # 源端口与目的端口(HTTPS)
Flags: 0x010 (ACK) # 这是一个确认包
传输层标志位解析(结合SMB协议示例):

...0 = Fin: Not set # FIN位未置位,非连接终止
.0.. = Reset: Not set # RST位未置位,连接未重置
..0. = Syn: Not set # SYN位未置位,非连接请求
Window: 511 # 接收窗口大小,表示还能接收511字节
应用层(HTTP)攻击行为分析:
通过过滤可以快速发现可疑行为,例如针对后台登录页面的批量POST请求,可能为暴力破解攻击。

图8:使用显示过滤器筛选HTTP POST登录请求
http.request.method=="POST" && (http.request.uri contains "/login" || http.request.uri contains "/admin")
# 筛选登录或后台管理相关的POST请求
分析过滤结果,若发现源IP固定、目标路径固定(如/admin/login/login.html)、请求类型均为POST的重复流量,则需高度警惕。
总结
掌握Wireshark抓包与协议分析是进行网络故障排查、安全事件响应的基本功。本文从理论模型到实操演示,希望能帮助你构建系统的流量分析知识框架。在实际操作中,务必严格遵守法律法规,仅在授权范围内进行测试与分析。欢迎在云栈社区与更多技术同行交流探讨。