声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章
感谢泷羽sec 团队 的教学
本文将对Wireshark进行一个基本介绍以及数据传输的底层逻辑。
一. 什么是 Wireshark?
Wireshark 是开源的网络协议分析器,前身为 Ethereal,由 Gerald Combs 于 1998 年首次发布。它能够捕获网络中的数据包,并以详细的方式展示这些数据,便于用户分析网络通信的细节。
二. Wireshark 的主要功能
1.实时数据包捕获
- 支持捕获网络接口上的实时流量。
- 能捕获局域网内的各种协议数据。
2.协议解析
- 支持上千种网络协议(如 TCP/IP、HTTP、FTP、DNS、TLS 等)。
- 自动解析协议结构并提供详细解读。
3.数据包过滤
- 提供强大的捕获过滤器(Capture Filter)和显示过滤器(Display Filter)。
- 可按 IP 地址、端口号、协议类型、数据内容等条件过滤。
4.数据包分析
- 通过统计功能分析流量分布、协议使用情况和网络延迟。
- 支持 TCP 重组、SSL/TLS 解密等高级功能。
5.数据存储与导出
- 捕获的数据可保存为 .pcap 或 .pcapng 格式,便于后续分析。
- 支持导出特定数据包或字段。
6.支持多平台
- 可运行在 Windows、Linux、macOS 等操作系统上。
三. Wireshark 的应用场景
1.网络故障诊断
- 分析网络延迟、丢包和带宽问题。
- 排查网络连接失败的原因。
2.安全审计与渗透测试
- 检测潜在的网络攻击,如 ARP 欺骗、DNS 劫持等。
- 捕获和分析恶意流量。
四. 如何安装 Wireshark
1.Windows 安装
- 前往 Wireshark 官网 下载对应版本。
- 运行安装程序,根据提示完成安装。
- 可选安装 npcap(用于数据包捕获)和 Wireshark 的 CLI 工具。
2.Linux 安装
-
使用包管理器安装:
bashyum install wireshark
-
安装完成后,确保用户有权限运行 Wireshark:
bashsudo usermod -aG wireshark <username>
抓取eth0接口流量
bash
sudo tshark -i eth0
macOS 安装
-
使用 Homebrew 安装:
bashbrew install --cask wireshark
五. Wireshark 的基本操作
1.启动 Wireshark
- 打开 Wireshark 后,选择要监控的网络接口。
- 双击需要监听的接口开始捕获数据包。
2.使用过滤器
-
捕获过滤器 :在开始捕获前设置,例如只捕获 HTTP 流量:
bashport 80
-
显示过滤器 :在捕获后对数据包进行筛选,例如只显示 TCP 流量:
bashtcp
分析数据包
- 双击数据包查看详细信息。
- 使用右键菜单跟踪 TCP 流(Follow TCP Stream)查看会话完整性。
保存与导出
- 捕获完成后,点击 File > Save As 保存数据包文件。
- 使用 Export Specified Packets 导出特定流量。
六.数据传输的底层逻辑
1. 分层模型详解
数据传输依赖 OSI 模型 或 TCP/IP 模型。通过分层设计,每一层都关注特定功能,且互相独立。
OSI 七层模型:
物理层:
- 负责实际信号传输。
- 包括电缆、光纤、无线信号等。
- 传输比特流(0 和 1),定义电压、电流、光信号的强弱等物理特性。
- 示例:USB、以太网(PHY 部分)、蓝牙。
数据链路层:
- 负责点到点的帧传输,提供错误检测。
- 将数据封装为帧,包含源和目的 MAC 地址。
- 子层:
- 逻辑链路控制(LLC):负责流量控制、帧同步。
- 媒体访问控制(MAC):控制物理设备访问传输介质。
- 示例:以太网(MAC 部分)、Wi-Fi。
网络层:
- 负责路由与逻辑地址(IP 地址)。
- 数据以数据包(Packet)形式传输。
- 提供跨网络的通信路径选择。
- 示例:IP(IPv4、IPv6)、ICMP(Ping 命令)。
传输层:
- 提供端到端通信。
- TCP(Transmission Control Protocol):
- 可靠传输,支持确认(ACK)、重传、流量控制。
- UDP(User Datagram Protocol):
- 无连接协议,速度快但不保证可靠性。
- 数据以段(Segment)形式传输。
- 示例:HTTP 用 TCP;DNS、视频流用 UDP。
会话层:
- 管理应用程序之间的会话。
- 负责会话建立、管理和终止。
- 示例:SQL 数据库的会话管理。
表示层:
- 处理数据格式化、加密、解密和压缩。
- 示例:JPEG、GIF(数据格式);TLS(加密)。
应用层:
- 面向用户,提供网络服务。
- 示例:HTTP、FTP、SMTP。
TCP/IP 模型:
- 应用层:对应 OSI 的应用、表示、会话层。
- 传输层:对应 OSI 的传输层。
- 网络层:对应 OSI 的网络层。
- 网络接口层:对应 OSI 的数据链路层和物理层。
2. 数据封装与解封装
发送端的封装过程:
应用层:
- 应用生成数据(如网页请求)。
- 示例:
GET /index.html HTTP/1.1
。
传输层:
-
数据分段,加 TCP/UDP 头部:
- TCP:源端口、目标端口、序列号、校验和。
-
传输段示例:
bash|TCP Header| 应用数据 |
网络层:
-
为每段数据添加 IP 头:
- 源 IP 地址、目标 IP 地址、TTL 等。
-
数据包示例:
bash|IP Header| TCP Header| 应用数据 |
数据链路层:
-
加入帧头和帧尾:
- 帧头包含源 MAC 地址、目的 MAC 地址。
-
数据帧示例:
bash|帧头| IP Header| TCP Header| 应用数据 | 帧尾 |
物理层:
- 转换为电信号或光信号进行传输。
接收端的解封装过程:
数据逐层解封,剥离各层头部信息,最终交给应用。
3. 可靠传输机制
TCP 的可靠性:
三次握手:
- 确保双方建立连接。
- SYN、SYN-ACK、ACK 确认机制。
错误检测与校验:
- 使用校验和确保数据完整性。
- CRC 检测物理层和数据链路层错误。
重传机制:
- 超时重传:发送端等待确认超时后重发数据。
- 快速重传:接收端发现数据丢失时发送重复 ACK。
流量控制:
- 滑动窗口协议动态调整传输速率。
- 防止接收端因处理能力不足而丢包。
拥塞控制:
- 避免网络过载,使用慢启动和拥塞避免算法。
4.路由与寻址
逻辑地址与物理地址:
- IP 地址:用于网络层,确定网络中设备的位置。
- MAC 地址:用于数据链路层,局域网内标识设备。
路由过程:
- 路由器根据 IP 地址转发数据包。
- 动态路由协议(如 OSPF、BGP)更新路由表。
地址解析协议(ARP):
- 将 IP 地址映射为 MAC 地址。
- 示例:发送 ARP 请求广播,接收设备返回其 MAC 地址。
数据多路复用与分用
多路复用:
- 多个应用通过一个网络连接传输数据。
- 使用端口号区分不同应用。
分用:
- 接收端根据端口号将数据交给对应的应用。
6. 网络安全保障
加密:
- 使用 TLS、IPSec 等协议加密数据。
身份认证:
- 公钥/私钥机制验证身份(如 SSH)。
防篡改:
- HMAC 等校验完整性。
7. 底层硬件支持
传输介质:
- 有线:双绞线、光纤。
- 无线:Wi-Fi、5G。
网络设备:
- 交换机:基于 MAC 地址转发数据。
- 路由器:基于 IP 地址转发数据。
网卡:
- 实现设备与网络的连接。