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) 表示局域网中出现了重复的设备名
相关推荐
啃火龙果的兔子6 分钟前
在 React + Ant Design 项目中实现文字渐变色
前端·react.js·前端框架
江城开朗的豌豆8 分钟前
Vue生命周期:beforeMount和mounted到底差在哪?手把手教你避坑!
前端·javascript·vue.js
江城开朗的豌豆27 分钟前
Vue中动态添加对象属性?这个生命周期时机选对了没?
前端·javascript·vue.js
前端小巷子33 分钟前
深入 Vue v-model
前端·vue.js·面试
sunbyte1 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | VerifyAccountUi(验证码组件)
前端·javascript·css·vue.js·vue
yinuo1 小时前
企业微信侧边栏本地开发调试
前端
德育处主任1 小时前
p5.js 加载 3D 模型(loadModel)
前端·数据可视化·canvas
无名客03 小时前
npm run dev 启动项目 报Error: listen EACCES: permission denied 0.0.0.0:80 解决方法
前端·javascript·vue.js
零点七九3 小时前
vue npm install卡住没反应
前端·vue.js·npm
墨菲安全3 小时前
NPM组件 @0xme5war/apicli 等窃取主机敏感信息
前端·npm·node.js·主机信息窃取·npm恶意包·npm投毒