wireshark mDNS数据包分析

这个 mDNS(Multicast DNS)数据包是一个 查询响应,展示了某设备对 AirPlay 和 RAOP 服务的扫描和应答。我们逐项解释这个报文结构中每个字段的含义和作用。


📌 顶层结构

yaml 复制代码
yaml
复制编辑
Multicast Domain Name System (query)
Transaction ID: 0x0000
Flags: 0x0000 Standard query
Questions: 3
Answer RRs: 29
Authority RRs: 0
Additional RRs: 0

字段说明:

  • Transaction ID : 0x0000
    多用于匹配 query 和 response。在 mDNS 中,这个值一般是 0,因为它使用 224.0.0.251 多播地址,不依赖 Transaction ID 来区分会话。
  • Flags : 0x0000
    表示这是一个标准查询(Standard Query)。
  • Questions: 3
    表示询问了三个服务类型(见下面的 Queries)。
  • Answer RRs: 29
    应答部分共有 29 个 Resource Record(资源记录),即找到了 29 个符合条件的服务实例。
  • Authority RRs: 0 , Additional RRs: 0
    本次 mDNS 响应没有包含授权记录和附加信息记录。

🔍 Queries(查询部分)

kotlin 复制代码
kotlin
复制编辑
_queries:
    _airplay-bds._tcp.local: type PTR, class IN, "QU" question
    _airplay._tcp.local: type PTR, class IN, "QU" question
    _raop._tcp.local: type PTR, class IN, "QU" question

含义:

  • 类型 type PTR:表示这是一个"指针记录"(Pointer Record),用于查询某一服务类型下有哪些具体实例。
  • class IN:表示 Internet 网络类别。
  • "QU" :表示是"询问"(QU = unicast query flag in mDNS)。

即:发送端(如 iPhone)通过 mDNS 查询以下服务有哪些实例:

  1. _airplay-bds._tcp.local -- 一种带宽发现的 AirPlay 服务类型(较少见)
  2. _airplay._tcp.local -- 标准 AirPlay 服务
  3. _raop._tcp.local -- 音频播放相关服务(Remote Audio Output Protocol)

📦 Answers(应答部分)

总共有 29 条 PTR 类型的记录,可拆成 2 大类:

  • _airplay._tcp.local 的服务实例(普通 AirPlay)
  • _raop._tcp.local 的服务实例(AirPlay 音频)

1. _airplay._tcp.local PTR 回答

这些是服务名 -> 实例名 的映射。每一条说明一个设备正在广播 AirPlay 功能。

例:

bash 复制代码
pgsql
复制编辑
_airplay._tcp.local: type PTR, class IN, UGREEN-6E81E9._airplay._tcp.local

含义:

  • _airplay._tcp.local 是服务类型(你在查询它)

  • UGREEN-6E81E9._airplay._tcp.local 是某台设备的服务实例名

    • UGREEN-6E81E9 是设备名(UGREEN 品牌的投屏盒等)
    • 后缀 _airplay._tcp.local 表示这个设备支持 AirPlay 协议

其他类似项:

  • tranScreen-35091
  • 客厅电视b5D_D3
  • 智能投屏8810
  • 50智慧屏6E

2. _raop._tcp.local PTR 回答

RAOP 是 AirPlay 的音频部分,PTR 的左边是类型,右边是设备 + 标识。

例:

bash 复制代码
pgsql
复制编辑
_raop._tcp.local: type PTR, class IN, E076D0C7D222@UGREEN-6E81E9._raop._tcp.local

含义:

  • E076D0C7D222 是设备的 MAC 地址(或变种)
  • @UGREEN-6E81E9 表示这是对应 UGREEN-6E81E9 设备的 RAOP 服务实例

这些字段的组合规则如下:

xml 复制代码
php-template
复制编辑
<MAC地址>@<设备名称>._raop._tcp.local

表示该设备正在广播支持 AirPlay 音频服务。

其他类似项:

  • 5a14e5d64847@WU-8845
  • 3C4E56C6BD38@客厅电视b5D_D3
  • cd59c7d6f0e0@智能投屏8810
  • 861f0b851c44@50智慧屏6E

✅ 总结

字段 说明
_airplay._tcp.local 表示 AirPlay 视频服务
_raop._tcp.local 表示 AirPlay 音频服务
PTR 记录 查询的服务类型到实际服务实例的映射
实例名 一般形如 设备名._airplay._tcp.local
RAOP 实例名 通常是 <MAC>@设备名._raop._tcp.local
多个相同设备名 (2) 表示局域网中出现了重复的设备名
相关推荐
BestSongC2 分钟前
行人摔倒检测系统 - 前端文档(1)
前端·人工智能·目标检测
0思必得035 分钟前
[Web自动化] Selenium处理滚动条
前端·爬虫·python·selenium·自动化
Misnice37 分钟前
Webpack、Vite、Rsbuild区别
前端·webpack·node.js
青茶36038 分钟前
php怎么实现订单接口状态轮询(二)
前端·php·接口
大橙子额1 小时前
【解决报错】Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
前端·javascript·vue.js
爱喝白开水a3 小时前
前端AI自动化测试:brower-use调研让大模型帮你做网页交互与测试
前端·人工智能·大模型·prompt·交互·agent·rag
董世昌413 小时前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6
吃杠碰小鸡4 小时前
高中数学-数列-导数证明
前端·数学·算法
kingwebo'sZone4 小时前
C#使用Aspose.Words把 word转成图片
前端·c#·word
xjt_09014 小时前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js