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 小时前
JS事件循环
java·前端·javascript
子春一27 小时前
Flutter 2025 可访问性(Accessibility)工程体系:从合规达标到包容设计,打造人人可用的数字产品
前端·javascript·flutter
白兰地空瓶7 小时前
别再只会调 API 了!LangChain.js 才是前端 AI 工程化的真正起点
前端·langchain
jlspcsdn8 小时前
20251222项目练习
前端·javascript·html
行走的陀螺仪8 小时前
Sass 详细指南
前端·css·rust·sass
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ9 小时前
React 怎么区分导入的是组件还是函数,或者是对象
前端·react.js·前端框架
LYFlied9 小时前
【每日算法】LeetCode 136. 只出现一次的数字
前端·算法·leetcode·面试·职场和发展
子春一29 小时前
Flutter 2025 国际化与本地化工程体系:从多语言支持到文化适配,打造真正全球化的应用
前端·flutter
QT 小鲜肉9 小时前
【Linux命令大全】001.文件管理之file命令(实操篇)
linux·运维·前端·网络·chrome·笔记
羽沢3110 小时前
ECharts 学习
前端·学习·echarts