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

[技术讨论] 用Wireshark抓包无线网络数据,抓到好多东西,还蛮好玩的

之前使用Wireshark软件基本都是用来抓包以太网有线网络数据进行分析,最近有些好奇抓包无线网络数据,于是就用Wireshark软件尝试抓包了无线网络数据,想不到也抓到了好多东西,虽然抓到的很多协议不怎么熟悉,甚至之前没见过,但是除了能够学习和了解一下,其实真的还蛮好玩的呢:

这不抽时间写了一下抓包过程和对一些抓到的数据包的简单理解和解读。
当然,首先我们要配置好无线网络数据的抓包环境:
将电脑连上无线wifi,然后去设置里面就可以看到无线网卡的具体名称:


或者直接到设备管理器里面找到带wifi字样的网络适配器,也可以看到无线网卡的名称:

再打开Wireshark,在“捕获选项”里面选择对应的接口后点击“开始”:


然后就可以看到很多很多的无线网络数据包了:

比如我的电脑的无线局域网适配器的IPv4地址的网段是172.19.64:


在抓到的无线网络数据包里面肯定会有很多源端或者目的端的ip地址的网段是172.19.64,我们可以用设置过滤条件的方式来看一下就知道了,比如我只看与172.19.64.113这个ip地址相关的数据包,在过滤条件里面设置为ip.addr == 172.19.64.113后按回车键即可只显示与172.19.64.113这个设备相关的无线网络数据包了:

或者随便输入一个ip字段为172.19.64的ip地址,比如172.19.64.57,看下有木有数据包:

这种设置过滤条件的方式是非常有用的,特别是在抓包数据特别多的时候,非常有利于进行问题分析。
接着,我们一起来看下抓到了哪些东西:
启动抓包后,过5秒左右,停止抓包,在我这边的无线网络环境下,大概抓到了197条报文,报文内容从左到右依次是:

No.:编号
Time:时间
Source:源端地址
Destination:目的端地址
Protocol:协议类型
Length:数据包长度
info:数据包信息(内容)




这些网络数据包涉及到的网络协议主要包括:
SSDP
NBNS
MDNS
UDP
TCP
HTTP
ICMPv6
LLMNR
DTLS
当然,不同的无线网络环境下,数据包内容和涉及的网络协议都是不一样的,因此,要具体问题具体分析。
接下来我们以协议为准来解读一下数据包,一起学习和了解一下网络协议,说不定哪天你就用上某个协议了。
SSDP
Simple Service Discovery Protocol,简单服务发现协议,是一种应用层协议,是构成通用即插即用技术的核心协议之一;该协议提供了在局部网络里面发现设备的机制。
按照协议的规定,当一个控制点(客户端)接入网络的时候,它可以向一个特定的多播地址的SSDP端口使用M-SEARCH方法发送“ssdp:discover”消息;类似的,当一个设备接入网络的时候,它应当向一个特定的多播地址的SSDP端口使用NOTIFY方法发送“ssdp:alive”消息,如下数据包所示:





NBNS
NetBIOS Name Service,网络基本输入/输出系统名称服务器协议,是TCP/IP上的NetBIOS 协议族的一部分,在基于NetBIOS名称访问的网络上提供主机名和地址映射方法,是NetBIOS的子协议,主要负责将NetBIOS名称解析为IP地址,从而实现设备间的通信。
我们也来看下抓到的NBNS数据包,为了方便查看,我们在过滤条件里直接输入协议名称(注意要用小写nbns,这样就只看NBNS相关的数据包:

报文信息info显示的开头内容其实是协议指定的Opcode(命令,操作码),这一点要清楚,这也是使用Wireshark分析一些网络协议数据包的技巧之一,比如Name query表示名称查询,Registration表示注册:

抓到的数据包里大部分都是类似Name query NB+一个类似计算机网络名称的报文,计算机网络名称就像下面这样的,即称为计算机名:

随便找一条报文(比如编号30)打开,然后简单解析看下就知道了:

其中,NamequeryNB是请求包,NamequeryresponseNB是响应包,但抓到的数据包里貌似没有这个,有点奇怪,还没有仔细研究原因,然后双方的端口号均为固定的137。
另外,还有几个注册(Registration)的数据包,NBNS的注册是NetBIOS over TCP/IP(NetBT)协议中的一个核心过程,用于将NetBIOS名称与其对应的IP地址关联并存储在NBNS服务器中,以便局域网内的其他设备可以通过名称进行通信:

说到底,其实就是有了NBNS协议,就可以使设备能够通过计算机名HZL000044而非IP地址进行通信。
MDNS
Multicast Domain Name System,多播域名系统协议,其实是一个零配置网络协议,主要目的是在让设备在没有传统DNS服务器的小型局域网内,通过主机名能自动发现彼此并相互通信,也就是MDNS协议可以将主机名解析为不包含本地名称服务器的小型网络中的IP地址。
我们也来看下MDNS的数据包:

确实有不少这样的数据包,主要包括两种,即Standard query和Standard query response:



我们再来通俗一点理解MDNS吧,比如在一个比较典型的局域网中,IP地址通常由DHCP(动态主机分配协议)服务器动态分配;这意味着当局域网内有很多网络设备时,你其实很难知道它当前的IP地址是多少,而MDNS的出现就是为了解决这个痛点,即它允许你通过一个固定的、易记的本地主机名(每个网络设备一般都有一个名称)来访问这些设备,而不需要关心其IP地址如何变化。
MDNS就是为了解决上面这个问题,这样好理解了吧。
UDP
User Datagram Protocol,用户数据报协议,是TCP/IP协议栈中的一种面向无连接的传输层协议,由于其通信速度快,网络开销较少,是应用非常多的一种网络协议。
我们看下抓到的里面有没有UDP相关的:

你发现没有,搜索UDP的时候,SSDP,NBNS和MDNS都会显示出来,这是为什么呢?
虽然它们本身不是UDP协议,但都是一种基于UDP协议运行的网络服务协议,都需要依赖UDP协议进行数据传输,随便打开一个,里面也能看到指示:

所以协议的报文内容里面会有UDP相关的信息。
因此如果你是从事网络方面的开发,有空的时候多看看各种协议的数据包信息,其学习效果比单独看资料好很多,印象会很深刻。
而关于UDP协议的数据帧格式和详细解释,可以看我之前发的一篇文章,帖子名称和链接如下:
【每周分享】UDP协议的报文到底长啥样?不要急,Wireshark抓包告诉你!
https://bbs.21ic.com/icview-3473686-1-1.html


TCP
Transmission Control Protocol,传输控制协议,是TCP/IP协议栈中的一种面向连接的、可靠的、基于字节流的传输层通信协议,,由于其面向三次握手连接,传输可靠和全双工通信等特性,也是应用非常多的一种网络协议。
我们看下抓到的里面有没有TCP相关的:

除了与TCP相关的数据包以外,还有与HTTP协议相关的,但是要清楚一点,‌HTTP不属于TCP协议‌,它是应用层协议,TCP是传输层协议(可以学习一下OSI网络七层协议),只是HTTP通常基于TCP实现,即在TCP连接之上进行数据传输:

而关于TCP协议的数据帧格式和详细解释,也可以看我之前发的一篇文章,帖子名称和链接如下:
【每周分享】TCP协议的报文到底长啥样?不要急,Wireshark抓包告诉你!
https://bbs.21ic.com/icview-3473620-1-1.html
HTTP
HyperText Transfer Protocol,超文本传输协议,是互联网上应用最为广泛的一种请求-响应的应用层网络协议,它定义了客户端(如浏览器)和服务器之间如何通信,以请求和传输超文本(如HTML网页、图片、视频等),一般运行在TCP之上。
我们也可以看下HTTP的数据包:

之所以说HTTP是一种请求-响应形式的协议,主要是基于客户端和服务器端之间的通信形式,一方请求,另一方响应(应答),我按如下标注一下就比较清楚了:



其中的POST是HTTP请求方式(方法)里面的一种,比较常用的请求方法包括:
GET‌:请求指定资源(如网页、图片),参数通过 URL 传递,仅用于获取数据;
‌POST‌:向服务器提交数据(如表单、文件),可能创建或修改资源,数据在请求体中传输;
‌PUT‌:上传完整资源内容以覆盖或创建新资源;
‌DELETE‌:删除指定资源;
‌HEAD‌:仅获取响应头信息(如资源类型、大小),不返回正文。‌‌
比如当你在网页中输入www.baidu.com再按回车后,你抓包看下,肯定就可以抓到指定的请求方法:



会自动出来一个https的前缀,其实这个https就是加密形式的HTTP协议,因为HTTP协议是明文传输的,存在不安全性,因此就有了密文传输的HTTPS协议。
从事嵌入式软件开发的涉及HTTP协议和HTTPS协议的应该很少吧。
剩余的几种协议就只给大家展示一下协议的基本信息,我对它们也比较陌生,就不展开详述了:
ICMPv6
Internet Control Message Protocol version 6,互联网控制信息协议版本6,其实是专门为IPv6配套开发的,它是IPv6的基础协议之一,所有IPv6实现都必须完全支持它:


LLMNR
Link Local Multicast Name Resolution,链路本地多播名称解析协议,是一个集成在Windows等操作系统中、用于在局域网内解析主机名的辅助协议,当常规的DNS(域名系统)解析失败时,它便会发挥作用:


DTLS
Datagram Transport Layer Security,数据报传输层安全性协议,可以理解为TLS协议在UDP协议上的“孪生兄弟”,它的核心目标是为不可靠的UDP通信提供与TLS等同的安全保障,包括数据加密、完整性校验和身份验证。由于UDP本身不保证数据包的可靠到达、按序交付,且容易遭受DoS攻击,因此DTLS在继承TLS核心安全机制的同时,也进行了一系列有针对性的改造:


确实,时不时通过Wireshark抓点包来研究和学习一下,可能在实际项目上用不上,但说不定哪天就有用武之地了,其实真的蛮好玩的~~欢迎志同道合的坛友一起来学习和讨论~~


---------------------
作者:dffzh
链接:https://bbs.21ic.com/icview-3507321-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

http://www.cnnetsun.cn/news/3580957.html

相关文章:

  • 摔箱测试不是随便摔!ASTM D4169自由跌落测试和旋转棱跌落测试有何区别!
  • 中南林业科技大学食堂美食评价系统任务书
  • Spring Batch企业级批处理系统设计与优化实践
  • 嵌入式视频处理实战:HDVPSS缩放器与VENC编码器寄存器配置详解
  • 本地AI视频生成:从Stable Video Diffusion到ComfyUI实战指南
  • 大模型分类体系
  • 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (7)--- Policy Serving
  • TI C6000 DSP SYSCFG模块配置详解:从CHIPSIG到CFGCHIP的嵌入式系统核心控制
  • UVa 11669 Non Decreasing Prime Sequence
  • ComfyUI与Hermes Agent:自然语言控制AI绘画工作流
  • 临沂鑫旺2026 耐腐材质告别后期频繁更换
  • FTP服务部署与优化:vsftpd实战指南
  • Seedance3.0本地部署实战:免费AI视频生成与绘画完整指南
  • Spark MLlib分布式机器学习框架入门与实践
  • 嵌入式外设驱动核心:I2C与LCD控制器寄存器配置与中断处理实战
  • 前端开发环境配置常见问题与解决方案
  • AI工具如何提升学术论文写作效率与质量
  • 2026年AI学术写作工具评测与应用指南
  • Informer:长序列时间预测的Transformer优化方案
  • Open CaptchaWorld:多模态验证码测试与评估平台
  • Unity UGUI性能优化实战:数字孪生项目中的Canvas渲染与控件优化策略
  • 跨境价格监控为什么会误判?关键在地区上下文校验
  • 免费AI绘画解决方案:Stable Diffusion本地部署与优化实践
  • 2026年AI写作论文工具排行榜:5款热门工具真实对比
  • 《墨香情》三端互通MMORPG安全下载与优化指南
  • SIEMENS 6SE6420-2AB17-5AA1 控制系统
  • AI如何加速药物临床试验的数据处理与审批
  • 【AI量化交易实战】第02讲:看懂K线与估值——A股市场语言一本通
  • 蚂蚁开源万亿参数模型Ring-2.5-1T:架构解析与应用实践
  • sin(x)在 x to infty时极限不存在。