wireshark抓包看ip协议

news2026/5/21 14:53:49
注意Wireshark 中没有单独一个叫做“IP”的协议条目。在 Wireshark 的 “Protocol” 列里你永远不会看到一个孤零零的IP包。你看到的总是TCP、UDP、ICMP、ARP等。但这并不意味着 IP 协议不存在恰恰相反IP 协议是所有这些数据包的“隐形骨架”——它无处不在但从不以“主角”身份单独出现。1. 为什么 Wireshark 不显示单独的 IP因为IP 协议从不单独传输。它的唯一使命就是为其他协议TCP、UDP、ICMP 等提供传输服务。这就像你写一封信信纸上的内容 应用层数据HTTP 请求信封上的收/发件人姓名 传输层TCP/UDP 端口信封上的收/发件人地址 网络层IP 地址快递单号 链路层MAC 地址你永远不会收到一个只有“地址”而没有“信纸”或“收件人姓名”的空信封。同样网络上也没有只包含 IP 头部、没有任何上层数据的“纯 IP 包”。2. Wireshark 中的实际显示当你抓包时看到的是这样的No. Time Source Destination Protocol Info 1 0.000000 192.168.1.2 8.8.8.8 ICMP Echo (ping) request 2 0.012345 192.168.1.2 8.8.8.8 TCP 80 → 54321 [SYN] 3 0.025000 192.168.1.2 8.8.8.8 UDP 53 → 54321Protocol 列显示的是“最上层”的协议ICMP、TCP、UDP等。Wireshark 认为这些才是这个数据包的“业务类型”。IP 协议作为“基础层”被隐藏在了细节里。你只有展开数据包才能看到Internet Protocol Version 4这个部分。3. 唯一的例外IP 分片包有一种情况Wireshark 会在 Protocol 列显示IPv4或IP当数据包被分片时。如果一个大包被拆成了多个 IP 分片第一个分片可能仍然显示为TCP或UDP因为它还包含传输层的头部。后续分片只包含 IP 头部和部分数据没有传输层头部。Wireshark 无法判断它属于 TCP 还是 UDP就会在 Protocol 列显示IPv4。你可以用过滤器ip.flags.mf 1 or ip.frag_offset 0来找到这些分片包。4. 如何“看到”IP 协议在 Wireshark 中IP 协议无处不在只是不单独显示。你可以通过以下几种方式感受它的存在展开任意包选中任何一个TCP或UDP包展开Internet Protocol Version 4部分你会看到完整的 IP 头部源/目的 IP、TTL、总长度等。使用ip.过滤器这是最有力的证据。Wireshark 中大量以ip.开头的过滤器都是针对 IP 协议字段的ip.src 192.168.1.2过滤源 IPip.dst 8.8.8.8过滤目的 IPip.ttl 10过滤 TTL 小于 10 的包ip.len 1400过滤大包查看统计信息菜单Statistics-IPv4 Statistics-All Addresses可以看到所有 IP 地址的流量统计。这些过滤器和统计数据的存在恰恰证明了 IP 协议是 Wireshark 底层解析的核心。总结你的疑问解释Wireshark 没有单独的 IP 协议对没有。IP 从不单独出现。为什么没有IP 是底层承载者总是为TCP、UDP、ICMP等上层协议服务。那 IP 在哪里在每一个数据包里。展开任意TCP/UDP/ICMP包你都会看到它。什么时候会显示IPv4IP 分片的后续分片因为上层协议头部缺失。如何验证它的存在使用ip.src、ip.dst等过滤器或查看 IPv4 统计信息。一句话总结Wireshark 中不显示单独的 IP 协议因为它不是一个“业务类型”而是所有业务的“底层基础设施”。它就像空气一样你看不到它本身但它在每一个你抓到的包里。抓包实战下面通过实际操作用Wireshark抓取真实网络流量详细分析IPv4协议的每个字段和行为。一、准备工作1.1 启动抓包打开Wireshark选择正在使用的网卡以太网或WLAN点击蓝色鲨鱼鳍按钮开始抓包设置显示过滤器可选在过滤器栏输入ip只显示IP数据包1.2 常用IP过滤器速查过滤器表达式作用ip显示所有IPv4数据包ip.src 192.168.1.2显示源IP为指定地址的包ip.dst 8.8.8.8显示目的IP为指定地址的包ip.proto 6只显示TCP包6TCP17UDP1ICMPip.ttl 10显示TTL小于10的包ip.flags.df 1显示设置了DF标志的包ip.frag_offset 0显示分片包ip.len 1400显示大于1400字节的包二、IPv4头部结构回顾IPv4头部通常为20字节不含选项字段0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 -------------------------------- |Version| IHL |Type of Service| Total Length | -------------------------------- | Identification |Flags| Fragment Offset | -------------------------------- | Time to Live | Protocol | Header Checksum | -------------------------------- | Source Address | -------------------------------- | Destination Address | --------------------------------三、实战分析ICMP包ping3.1 抓包步骤开始抓包命令行执行ping 8.8.8.8停止抓包在过滤器输入icmp或ip.proto 13.2 抓包结果分析选中一个ICMP Echo Request包展开Internet Protocol Version 4部分Internet Protocol Version 4, Src: 192.168.1.2, Dst: 8.8.8.8 0100 .... Version: 4 .... 0101 Header Length: 20 bytes (5) Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) 0000 00.. Differentiated Services Codepoint: Default (0) .... ..00 Explicit Congestion Notification: Not ECN-Capable Transport (0) Total Length: 84 Identification: 0x3a2b (14955) Flags: 0x40 (Dont Fragment) 0... .... Reserved bit: Not set .1.. .... Dont fragment: Set ..0. .... More fragments: Not set Fragment Offset: 0 Time to Live: 64 Protocol: ICMP (1) Header Checksum: 0x8c4a [correct] [Header checksum status: Good] Source: 192.168.1.2 Destination: 8.8.8.83.3 逐字段解读字段抓包值含义Version4IPv4固定为4Header Length20 bytes (5)IHL5表示头部5个32位字20字节无选项Differentiated Services Field0x00服务类型未使用QoSTotal Length84IP包总长度84字节 20(IP头) 8(ICMP头) 56(数据)Identification0x3a2b (14955)标识符同一数据流的分片此值相同Flags0x40 (Dont Fragment)DF1禁止分片Fragment Offset0分片偏移为0表示这是第一个分片或唯一分片Time to Live64TTL64最多经过64跳ProtocolICMP (1)上层协议是ICMPHeader Checksum0x8c4a [correct]头部校验和正确Source192.168.1.2源IP地址你的电脑Destination8.8.8.8目的IP地址Google DNS3.4 对应的ICMP部分Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 Checksum: 0x4a2b [correct] Identifier (BE): 1 (0x0001) Sequence Number (BE): 1 (0x0001) Data (56 bytes)四、实战分析TCP包HTTP/HTTPS4.1 抓包步骤开始抓包浏览器访问http://www.baidu.com注意用HTTP不是HTTPS便于观察停止抓包在过滤器输入tcp或ip.proto 64.2 抓包结果分析选中一个TCP包如HTTP GET请求展开IP头部Internet Protocol Version 4, Src: 192.168.1.2, Dst: 110.242.68.66 0100 .... Version: 4 .... 0101 Header Length: 20 bytes (5) Total Length: 84 Identification: 0x5678 (22136) Flags: 0x40 (Dont Fragment) Time to Live: 64 Protocol: TCP (6) Header Checksum: 0x9b2a [correct] Source: 192.168.1.2 Destination: 110.242.68.664.3 对比ICMP包的差异字段ICMP包TCP包说明Protocol1 (ICMP)6 (TCP)标识上层协议类型Total Length8484可能变化取决于数据大小Destination8.8.8.8110.242.68.66不同目标地址五、实战分析UDP包DNS查询5.1 抓包步骤开始抓包命令行执行nslookup google.com或dig google.com停止抓包在过滤器输入udp或ip.proto 175.2 抓包结果分析Internet Protocol Version 4, Src: 192.168.1.2, Dst: 8.8.8.8 0100 .... Version: 4 .... 0101 Header Length: 20 bytes (5) Total Length: 64 Identification: 0x9abc (39612) Flags: 0x40 (Dont Fragment) Time to Live: 64 Protocol: UDP (17) Header Checksum: 0x7d3b [correct] Source: 192.168.1.2 Destination: 8.8.8.85.3 对比三种协议协议类型Protocol字段值Wireshark显示典型用途ICMP1ICMPping诊断TCP6TCP网页、邮件、文件传输UDP17UDPDNS、音视频、游戏六、TTL分析traceroute实战6.1 原理traceroute通过递增TTL值让沿途路由器依次返回ICMP超时报文从而发现路径上的每一跳。6.2 抓包步骤开始抓包Windows执行tracert 8.8.8.8Linux执行traceroute -I 8.8.8.8停止抓包过滤器输入icmp6.3 抓包结果分析TTL1的包第一个路由器会丢弃Internet Protocol Version 4, Src: 192.168.1.2, Dst: 8.8.8.8 Time to Live: 1 ← TTL1 Protocol: ICMP (1)路由器返回的ICMP超时消息Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.2 Time to Live: 64 Protocol: ICMP (1) Internet Control Message Protocol Type: 11 (Time to live exceeded in transit) Code: 0 (Time to live exceeded in transit)TTL2的包Internet Protocol Version 4, Src: 192.168.1.2, Dst: 8.8.8.8 Time to Live: 2 ← TTL2观察要点第一个包TTL1到第一跳路由器后TTL变为0被丢弃第一跳路由器返回ICMP Type11源IP是路由器的IP如192.168.1.1traceroute通过递增TTL逐步发现路径上的每一跳七、分片包分析7.1 制造分片场景# Linux发送2000字节的大ping包MTU通常是1500会触发分片 ping -s 2000 8.8.8.8 -M dont # 不加-M dontDF1会失败 # 或者用 ping -s 2000 8.8.8.87.2 抓包过滤器ip.frag_offset 0 or ip.flags.mf 17.3 分片包抓包结果第一个分片More Fragments1Offset0Internet Protocol Version 4, Src: 192.168.1.2, Dst: 8.8.8.8 Version: 4 Header Length: 20 bytes Total Length: 1500 ← 第一个分片满载1500字节 Identification: 0xabcd (43981) Flags: 0x20 (More Fragments) ← MF1表示后面还有分片 0... .... Reserved bit: Not set .0.. .... Dont fragment: Not set ..1. .... More fragments: Set Fragment Offset: 0 ← 偏移0是第一个分片 Time to Live: 64 Protocol: ICMP (1)第二个分片More Fragments0Offset185Internet Protocol Version 4, Src: 192.168.1.2, Dst: 8.8.8.8 Version: 4 Header Length: 20 bytes Total Length: 548 ← 最后一个分片长度较小 Identification: 0xabcd (43981) ← 相同的ID Flags: 0x00 (None) ← MF0最后一个分片 Fragment Offset: 185 ← 偏移185 × 8 1480字节 Time to Live: 64 Protocol: ICMP (1)7.4 分片关键点字段第一个分片第二个分片说明Identification0xabcd0xabcd相同ID用于重组Flags.MF10MF1表示还有后续Fragment Offset0185偏移185×81480字节Total Length1500548第一个满载最后一个较小八、DF标志位分析8.1 观察DF标志大多数现代系统发送的IP包都会设置DF1Dont FragmentFlags: 0x40 (Dont Fragment) .1.. .... Dont fragment: Set8.2 当DF1且包太大时的行为如果路由器收到一个需要分片但DF1的包会丢弃该包并返回ICMP错误Internet Control Message Protocol Type: 3 (Destination unreachable) Code: 4 (Fragmentation needed but dont fragment was set)这就是PMTUDPath MTU Discovery的工作原理。九、IP头部校验和验证9.1 查看校验和在Wireshark中IP头部底部会显示校验和状态Header Checksum: 0x8c4a [correct] [Header checksum status: Good]9.2 校验和错误的情况如果看到[Header checksum status: Bad]说明IP头部在传输中损坏了。这通常表示网卡硬件问题驱动问题中间设备损坏十、综合实战练习练习1识别IP头部各字段打开Wireshark开始抓包ping 8.8.8.8停止抓包找一个ICMP请求包展开IP头部记录以下字段的值VersionHeader LengthTotal LengthIdentificationFlagsTTLProtocolSource/Destination练习2对比不同协议的Protocol字段分别执行以下操作抓包对比Protocol字段ping 8.8.8.8ICMPProtocol1打开浏览器访问网页TCPProtocol6nslookup google.comDNSUDPProtocol17观察并记录Protocol值的差异练习3观察TTL变化ping 8.8.8.8查看TTL值ping 192.168.1.1你的网关查看TTL值对比两者差异练习4过滤技巧练习在Wireshark中依次输入以下过滤器观察结果ip.src 你的IP地址 ip.dst 8.8.8.8 ip.ttl 1 ip.flags.df 1 ip.proto 6 ip.len 1400练习5traceroute分析开始抓包执行tracert 8.8.8.8Windows或traceroute -I 8.8.8.8Linux观察TTL从1递增的过程找到每一跳返回的ICMP Type11包十一、IP头部速查表Wireshark显示Wireshark显示字段对应IP头字段常见值位置字节Version: 4Version4第0字节高4位Header Length: 20 bytes (5)IHL5第0字节低4位Differentiated Services Field: 0x00ToS0第1字节Total Length: 84Total Length变化第2-3字节Identification: 0x3a2bIdentification随机/递增第4-5字节Flags: 0x40 (Dont Fragment)Flags0x40DF1第6字节高3位Fragment Offset: 0Fragment Offset0第6字节低5位第7字节Time to Live: 64TTL64/128/255第8字节Protocol: ICMP (1)Protocol1/6/17第9字节Header Checksum: 0x8c4aChecksum变化第10-11字节Source: 192.168.1.2Source Address你的IP第12-15字节Destination: 8.8.8.8Destination Address目标IP第16-19字节十二、常见问题排查Q1为什么看不到IP头部确保过滤器是ip而不是其他。另外ARP包没有IP头部需要过滤掉ip and not arpQ2为什么TTL值不同Windows默认TTL128Linux默认TTL64某些设备默认TTL255经过路由器后TTL会递减Q3分片包为什么没有出现现代网络MTU通常足够大以太网1500普通包不会分片。需要发送大包如ping -s 2000才会触发分片。Q4如何找到TCP重传包tcp.analysis.retransmission这些包通常TTL值较小或者有特殊的IP标识。十三、总结通过Wireshark抓包分析IP协议你可以直观地看到学习要点如何观察IP头部结构展开IPv4部分看20字节固定头部的每个字段分片机制发送大包观察相同ID、不同Offset和MF标志TTL机制运行traceroute观察TTL从1递增和ICMP超时报文协议复用对比ICMP、TCP、UDP包的Protocol字段校验和查看Wireshark显示的[correct]或[bad]状态DF标志观察Flags字段中的Dont Fragment位一句话总结Wireshark是理解IP协议的最佳工具通过抓包可以亲眼看到Version、IHL、Total Length、Identification、Flags、Fragment Offset、TTL、Protocol、Checksum、Source、Destination这11个核心字段的真实值以及分片、TTL递减、协议复用等动态行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2541750.html

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…