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

【网络安全】从IP头部看网络通信:IPv4、IPv6与抓包工具 Wireshark 实战

从IP头部看网络通信:IPv4、IPv6与抓包工具 Wireshark实战

在网络安全分析和数据通信的世界中,一切都始于“数据包”。数据包是网络上传输的基本单位,而数据包的结构与内容,正是我们理解网络行为的核心。本文将带你深入了解 IP 协议中两种主流版本(IPv4 与 IPv6)的报文头结构,并介绍如何使用 Wireshark 等网络抓包工具高效分析这些数据包。


1. 什么是IP协议?

IP(Internet Protocol,互联网协议)是互联网通信的基石。它负责将数据包从源地址发送到目标地址。IP 协议规定了数据包的格式和路由方式,是实现不同设备之间通信的“邮递系统”。

目前,互联网上主要使用两个版本的 IP 协议:

  • IPv4(Internet Protocol version 4)
  • IPv6(Internet Protocol version 6)

它们的核心区别除了地址长度外,也体现在头部结构的不同设计上。


2. IPv4头部结构解析

在这里插入图片描述

IPv4 是目前最广泛使用的 IP 版本,其报文头部由 13 个字段组成:

字段名说明
Version指明协议版本(4)
IHL(Header Length)头部长度,单位为 4 字节
Type of Service(ToS)指定服务质量,决定优先级
Total Length包含头部与数据的总长度
Identification数据包唯一 ID,用于分片重组
Flags分片控制位
Fragment Offset分片偏移量
Time to Live(TTL)生存时间,防止包在网络中无限循环
Protocol数据部分所用的上层协议(如 TCP、UDP)
Header Checksum头部校验和
Source Address源 IP 地址
Destination Address目的 IP 地址
Options(可选)安全性、记录路由等附加信息

IPv4 的设计虽然精巧,但随着互联网发展,地址资源逐渐枯竭,这也促使了 IPv6 的推广。


3. IPv6头部结构解析

在这里插入图片描述

IPv6 相较于 IPv4 更为简洁高效,仅包含 8 个字段:

字段名说明
Version协议版本(6)
Traffic Class类似 IPv4 的 ToS,用于服务分类
Flow Label流标签,标记数据流以便路由器识别
Payload Length数据部分长度
Next Header下一个头部类型(如 TCP、UDP)
Hop Limit与 TTL 类似,防止无限转发
Source Address源 IPv6 地址
Destination Address目的 IPv6 地址

IPv6 采用 128 位地址,极大地扩展了地址空间,并简化了处理流程。


4. 网络抓包实战:Wireshark的使用

要理解或调查网络中发生了什么,仅靠理论还不够。Wireshark 是一款开源网络协议分析工具,能够实时捕捉网络流量,并以人类可读的方式展示每个数据包的详细内容。

Wireshark基本功能

  • 实时捕获网络数据包
  • 展示每个包的协议、源/目的地址、端口、长度等
  • 支持协议层级解析(链路层、IP层、传输层、应用层)
  • 使用强大的过滤器进行精确分析

常用显示过滤器

Wireshark 提供强大的显示过滤器功能,可以从海量数据包中筛选出你感兴趣的信息。
在这里插入图片描述

协议过滤器

协议过滤是使用显示过滤器最简单的方法之一。您只需输入要过滤的协议名称即可。例如,要过滤 DNS 数据包,只需在过滤器工具栏中输入dns即可。以下是一些可以过滤的协议列表:

  1. dns
  2. http
  3. ftp
  4. ssh
  5. arp
  6. telnet
  7. icmp

过滤 IP 地址

您可以使用显示过滤器来定位具有特定 IP 地址的数据包。

例如,如果要过滤包含特定 IP 地址的数据包,请使用ip.addr,后跟空格、等号==比较运算符以及 IP 地址。以下是针对 IP 地址172.21.224.2进行过滤的显示过滤器示例:

ip.addr == 172.21.224.2

要过滤来自特定源 IP 地址的数据包,可以使用ip.src过滤器。以下示例查找源 IP 地址10.10.10.10 :

ip.src == 10.10.10.10

要过滤发往特定目标 IP 地址的数据包,可以使用ip.dst过滤器。以下示例搜索目标 IP 地址4.4.4.4 :

ip.dst == 4.4.4.4

过滤 MAC 地址

您还可以根据媒体访问控制 (MAC) 地址过滤数据包。MAC 地址是分配给网络上每个物理设备的唯一字母数字标识符。

eth.addr == 00:70:f4:23:18:c4

端口过滤器

端口过滤用于根据端口号过滤数据包。当您想要隔离特定类型的流量时,此功能非常有用。DNS 流量使用 TCP 或 UDP 端口 53,因此这将仅列出与 DNS 查询和响应相关的流量。

例如,如果想过滤 UDP 端口:

udp.port == 53

同样,也可以过滤 TCP 端口:

tcp.port == 25

使用比较运算符

运算类型符号示例
相等(equal)==eqip.src == 8.8.8.8
不等(not equal)!=neip.dst != 192.168.1.1
大于(greater than)>gttcp.port > 1000
小于(less than)<ltudp.port < 1024
大于等于(>=)>=getcp.port >= 80
小于等于(<=)<=letcp.port <= 443

Follow TCP/UDP Stream:追踪会话流

Wireshark 提供“Follow Stream”功能,可以将某个会话的数据包重新组合成完整的通信内容,非常适合分析 HTTP 请求与响应等应用层数据。

在这里插入图片描述
操作步骤:

  • 右键点击任意相关数据包
  • 选择 Follow > TCP StreamUDP Stream
  • 查看重组后的对话内容

Reference

[1] https://www.wireshark.org/docs/wsug_html/

http://www.xdnf.cn/news/14600.html

相关文章:

  • vscode + Jlink 一键调试stm32 单片机程序(windows系统版)
  • ArkTS与仓颉开发语言:鸿蒙编程的双子星
  • 软件工程:从理论到实践,构建可靠软件的艺术与科学
  • 【4目方案】基于海思3403平台开发4目360°全景拼接相机方案
  • 五种 IO 模式的简单介绍 -- 阻塞 IO,非阻塞 IO,信号驱动 IO,IO 多路复用,异步 IO
  • RISC-V三级流水线项目:总体概述和取指模块
  • 基于java SSM的房屋租赁系统设计和实现
  • python基于微信小程序的广西文化传承系统
  • 【入门级-基础知识与编程环境:3、计算机网络与Internet的基本概念】
  • VLN论文复现——VLFM(ICRA最佳论文)
  • AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)
  • 虚拟 DOM 与 Diff 算法:现代前端框架的核心机制
  • 边缘-云协同智能视觉系统:实时计算与云端智能的融合架构
  • PillarNet: Real-Time and High-PerformancePillar-based 3D Object Detection
  • MySQL 8.x配置MGR高可用+ProxySQL读写分离(二):ProxySQL配置MySQL代理及读写分离
  • HarmonyOS 5 多端适配原理与BreakpointSystem工具类解析:附代码
  • Flutter ListTile 徽章宽度自适应的真正原因与最佳实践
  • 十四天机器学习入门——决策树与随机森林:从零构建智慧决策模型
  • Python Django全功能框架开发秘籍
  • Jenkins部署及反向代理
  • 【JS-4.7-表单value属性】深入理解DOM操作中的表单value属性
  • 雷达高度计 RA-6500
  • AI浪潮拐点:MCP与A2A协议如何重塑AI智能体协作生态
  • 金融行业B端系统布局实战:风险管控与数据可视化的定制方案
  • 动手用 Web 实现一个 2048 游戏
  • 如何预防电磁铁损坏
  • Data Vault 初探(九) —— 定期装载_Kettle_附属表
  • Java性能优化权威指南-操作系统性能监控
  • HarmonyOS NEXT应用元服务布局优化ArkUI框架执行流程
  • 从java角度理解io多路复用和redis为什么使用io多路复用