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) 表示局域网中出现了重复的设备名
相关推荐
橘子星7 分钟前
🚀 手把手带你写一个端侧 AI 应用的"加载进度条"与"聊天对话框"
前端·人工智能
37.2℃99543 分钟前
专业的Claude Design解决方案
前端·算法
Jolyne_1 小时前
ng-zorro-table列宽resize后宽度是NaN的源码调试记录
前端
liwulin05061 小时前
【ollama】自定义结构化输出
linux·前端·数据库·ollama
前端甜糖1 小时前
记录We码开发者工具的一个bug
前端·javascript
程序员黑豆1 小时前
鸿蒙应用开发教程:以红绿灯切换为例,掌握条件渲染的核心用法
前端·harmonyos
猫3281 小时前
echarts 日常问题解决
前端·javascript·echarts
新中地GIS开发老师1 小时前
地信职业百科④:GIS开发工程师
前端·数据库·gis·webgis·三维gis开发
我是大卫2 小时前
【图】React源码解析-从数据结构、调度器、源码设计模式到状态计算引擎,深挖useReducer原理
前端·react.js·源码
willes2 小时前
列表中的倒计时组件
前端