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

【网络安全】从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.lryc.cn/news/574698.html

相关文章:

  • WinUI3入门11:改变鼠标形状 设置光标
  • 鸿蒙应用开发中的状态管理:深入解析AppStorage与LocalStorage
  • 基于Qt C++的影像重采样批处理工具设计与实现
  • jenkinsfile调用groovy
  • 服务器安装指南
  • 从iOS到Flutter:我的转型之路与技术成长启示
  • Redis哈希表Rehash全解析:扩容缩容背后的渐进式智慧
  • 一种集成统计、视觉和基于规则方法的新型可解释医学图像分类人工智能框架|文献速递-最新论文分享
  • ffmpeg下载地址
  • wpf单文件打包还有 一些dll打包不进去?
  • 基于单片机的语音控制设计(论文)
  • PYTHON从入门到实践2-环境配置与字符串打印用法
  • 【开源项目】比 PyInstaller 更方便:图形界面打包 Python 脚本的体验
  • linux nginx更换域名证书
  • Ubuntu服务器中MySQL如何进行主从复制
  • 解锁阿里云AnalyticDB:数据仓库的革新利器
  • 支持向量机(SVM)python语言版本
  • 从0开始学习R语言--Day31--概率图模型
  • FPGA基础 -- Verilog 验证平台之 **cocotb 验证 `阶乘计算模块(factorial)` 的例子**
  • 洛谷P1092 [NOIP 2004 提高组] 虫食算
  • 基于DE1-SoC的My_First_oneAPI(一)
  • SpringBoot 3.0 - 自定义注解+拦截器+Redis 解决接口幂等性
  • 【apache-maven3.9安装与配置】
  • 从虚拟机角度解释python3相对导入问题(下)
  • 轻量化实物建模革命:WebGL如何实现复杂模型的高效加载与交互
  • ​CentOS 7 单用户模式重置 root 密码完整指南
  • 新中国风通用读书颂词分享PPT模版
  • JS核心操作符:从基础到ES6+
  • (ICML-2023)BLIP-2:使用冻结图像编码器与大型语言模型的语言-图像预训练引导方法
  • SQL Server 查询数据库及数据文件大小