【网络安全】从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.pswp.cn/news/912236.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPv4网络地址分类

目录 一、核心分类标准 二、详细范围与主机数量 1. A类网络&#xff08;超大规模网络&#xff09; 2. B类网络&#xff08;中大型网络&#xff09; 3. C类网络&#xff08;小型网络&#xff09; 三、三类网络对比表 四、保留地址说明 五、现代网络中的变化 六、主机数…

Qt:QCustomPlot库简介

QCustomPlot 是一个基于 Qt 框架的轻量级 C 绘图库&#xff0c;专为高效绘制二维图表&#xff08;如曲线图、柱状图、金融图表等&#xff09;而设计。相比 Qt Charts 模块&#xff0c;它以 高性能 和 高度可定制性 著称&#xff0c;尤其适合需要实时数据可视化的科学计算、工业…

【云桌面容器KasmVNC】如何关闭SSL使用HTTP

1 缘起 根据实际的诉求,调整实现方式。 为用户提供云浏览器(通过浏览器访问远程浏览器),多用户的每个任务提供资源隔离的云浏览器。 该功能,由同事祥嵩曾调研与开发,使用KasmVNC实现功能,非常佩服祥嵩,无论是技术广度还是技术深度都是杠杠滴,无可挑剔。 实际的诉求是…

跟着AI学习C#之项目实战-电商平台 Day5

&#x1f4c5; Day 5&#xff1a;订单提交与支付模拟 ✅ 今日目标&#xff1a; 创建 Order 和 OrderItem 模型实现从购物车生成订单的功能模拟支付流程&#xff08;成功/失败页面&#xff09;添加订单状态跟踪&#xff08;如“待付款”、“已发货”等&#xff09;提交 Git 版…

复杂驱动开发-TLE9471的休眠流程与定时唤醒

文章目录 前言休眠流程定时唤醒功能总结 前言 开发SBC时非常重要的一环就是开发休眠流程&#xff0c;其目的是为了保证接KL30的ECU在休眠模式下尽可能小的消耗低压蓄电池的电量&#xff0c;防止车辆放置长时间后出现亏电。而定时唤醒功能在部分ECU中会有需求休眠后定期对车辆状…

Spark 之 Reuse

src/main/scala/org/apache/spark/sql/execution/reuse/ReuseExchangeAndSubquery.scala case object ReuseExchangeAndSubquery extends Rule[SparkPlan] {def apply(plan: SparkPlan): SparkPlan = {if (conf.exchan

Solidity学习 - 错误处理

文章目录 前言EVM错误处理机制EVM错误处理的核心特性程序中的错误处理 错误抛出方法require()函数require()触发异常的场景关键特性 assert()函数assert()触发异常的场景关键特性 require() vs assert()&#xff1a;选择指南revert()函数关键特性 异常捕获&#xff1a;try/catc…

如何永久删除Android上的短信[无法恢复]

当您不再保留 Android 设备时&#xff0c;您将需要彻底删除所有私人数据&#xff0c;包括短信。因此&#xff0c;有必要了解如何永久删除Android上的短信。现在&#xff0c;阅读本指南&#xff0c;掌握消除信息的实用方法。 第 1 部分&#xff1a;如何一键永久删除 Android 上的…

P12894 [蓝桥杯 2025 国 Java B] 智能交通信号灯

[Problem] \color{blue}{\texttt{[Problem]}} [Problem] 给定一个长度为 n n n 的数组 a 1 … n a_{1\dots n} a1…n​&#xff0c;进行 m m m 次一下操作&#xff1a; 给定 l , r l,r l,r&#xff0c;求出 ∑ l ≤ i < j ≤ r mex { a i , a j } \sum\limits_{l \le…

华为云Flexus+DeepSeek征文|基于华为云一键部署的 Dify-LLM 平台构建智能试卷生成助手

目录 前言 1 华为云Dify-LLM应用平台部署 1.1 一键部署平台简介 1.2 四步完成部署流程 2 接入华为云 DeepSeek 自定义大模型 2.1 ModelArts Studio 模型服务介绍 2.2 配置自定义大模型 3 创建试卷生成工具&#xff08;工作流&#xff09; 3.1 设计 DSL 工作流 3.2 工…

嵌入式硬件与应用篇---寄存器GPIO控制

在 ARM 架构中&#xff0c;通过 32 位寄存器控制 GPIO&#xff08;通用输入输出&#xff09;的核心步骤和方法可分为以下几个关键环节&#xff0c;结合不同芯片的实现差异&#xff0c;具体操作需参考对应的数据手册&#xff1a; 一、GPIO 控制的核心步骤 1. 使能 GPIO 时钟 …

Fiddler中文版抓包工具在跨域与OAuth调试中的深度应用

跨域和OAuth授权流程一直是Web和移动开发中最容易踩坑的领域。复杂的CORS配置、重定向中的Token传递、授权码流程的跳转&#xff0c;以及多域名环境下的Cookie共享&#xff0c;常常让开发者陷入调试困境。此时&#xff0c;一款能够精准捕获、修改、重放请求的抓包工具显得至关重…

React用户交互事件

在React中处理用户交互事件&#xff08;如点击、输入、提交等&#xff09;的方式与原生JavaScript类似&#xff0c;但有一些语法差异和最佳实践。以下是常见交互事件的处理方法及代码示例&#xff1a; 一、基本事件处理&#xff08;点击、输入等&#xff09; 1. 点击事件&…

DHT11 STM32 HAL驱动库 整数

dht11.h #ifndef __DHT11_H #define __DHT11_H#include "stm32f1xx_hal.h" // 根据实际芯片型号调整&#xff08;如stm32f4xx_hal.h&#xff09;// DHT11数据结构 typedef struct {GPIO_TypeDef *GPIOx; // GPIO端口&#xff08;如GPIOA&#xff09;uint16_t GP…

【Actix Web 精要】Rust Web 服务开发核心技术与实战指南

目录 一、Actix Web 核心架构解析1.1 核心组件交互流程1.2 关键组件说明&#xff1a; 二、项目初始化与配置2.1 创建项目2.2 添加依赖 (Cargo.toml)2.3 项目结构 三、核心模块实现3.1 配置管理 (src/config.rs)3.2 应用状态管理 (src/main.rs)3.3 数据模型 (src/models/user.rs…

从URL到视频:用Python和AI构建自动化内容讲解视频生成管道

摘要 本文旨在从技术层面&#xff0c;深入探讨并实践一个将任意网页链接&#xff08;如飞书文档、博客文章&#xff09;自动转换为带有配音和字幕的讲解视频的系统。我们将详细拆解整个实现流程&#xff0c;覆盖从内容抓取与解析、利用大语言模型&#xff08;LLM&#xff09;智…

Java 使用 Easy Excel 进行 Excel 数据导入导出

1. 通过 Maven 下载 Easy Excel 依赖包 在项目的 pom.xml 文件中添加以下依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version> <!-- 使用最新版本 -->…

国产化条码类库Spire.Barcode教程:如何使用 C# 读取 PDF 中的条码(两种方法轻松实现)

在 PDF 文档的 .NET 平台处理流程中&#xff0c;使用 C# 读取 PDF 条码 是一项常见需求&#xff0c;特别适用于处理扫描件或电子表单。无论是物流、金融、医疗还是制造行业&#xff0c;PDF 文档中经常包含用于追踪或识别的条码。这些条码可能是嵌入图像&#xff0c;也可能是矢量…

2023国赛数字取证-流量分析

数据取证 - 1 A 集团的⽹络安全监控系统发现恶意份⼦正在实施⾼级可持续攻击&#xff08;APT&#xff09;&#xff0c;并抓取了部分可疑流量包。请 您根据捕捉到的流量包&#xff0c;搜寻出⽹络攻击线索&#xff0c;分解出隐藏的恶意程序&#xff0c;并分析恶意程序的⾏为。 …

【预约小程序】-健身房预约课程小程序——仙盟创梦IDE

东方仙盟-坐拥万个代码 免费报表 阿雪技术观 让我们积极投身于技术共享的浪潮中&#xff0c;不仅仅是作为受益者&#xff0c;更要成为贡献者。无论是分享自己的代码、撰写技术博客&#xff0c;还是参与开源项目的维护和改进&#xff0c;每一个小小的举动都可能成为推动技术进…