技术说明:基于 Wi-Fi Aware™的 Miracast® 应用

如需要了解更多Wi-Fi相关知识,请点击下方连接

https://blog.csdn.net/weixin_47456647/article/details/155307103?spm=1011.2415.3001.5331

1 引言

本技术说明包含设备厂商在实现 "基于 Wi-Fi Aware™的 Miracast®" 时所需的重要信息,描述了将 Wi-Fi Aware 引入 Miracast 的推荐方法。

Wi-Fi Aware [2] 扩展了 Wi-Fi 的能力,可在无需传统网络基础设施的情况下,快速发现、连接其他 Wi-Fi 设备并进行数据交换。它基于用户的即时位置与偏好,建立独立的设备到设备 Wi-Fi 连接,提供丰富的 "即时场景" 体验,适用于支持多设备间的数据通信。

Miracast [1] 目前基于 Wi-Fi 直连、隧道直连链路建立(TDLS)及 Wi-Fi 基础设施网络实现连接。Wi-Fi Aware 是 Miracast 新增的可选连接方式。

本技术说明涵盖 "基于 Wi-Fi Aware 的 Miracast" 的架构、连接拓扑、发现、连接建立与终止流程。支持该功能的设备可作为 Miracast 规范 [1] 中定义的 "Miracast 源端" 或 "Miracast 接收端"。本说明未明确的细节,需遵循 Wi-Fi Aware 与 Miracast 规范 [1][2]。

2 结合 Wi-Fi Aware 的 Miracast 架构

图 1 展示了扩展 Wi-Fi Aware 后的 Miracast 架构。Wi-Fi Aware 作为可选连接方式,与 Wi-Fi 直连、TDLS 及 Wi-Fi 基础设施并列。

3 基于 Wi-Fi Aware 的连接拓扑

Miracast 源端与接收端需通过 Miracast 连接传输所有数据与控制消息,该连接可采用 Wi-Fi 直连、TDLS、基础设施网络或 Wi-Fi Aware 中的任意一种方式。

图 2 展示了基于 Wi-Fi Aware 的 Miracast 连接。

:文中引用失效的图中所示的接入点(AP),可以是同一 AP、不同 AP,也可以不存在。

在服务发现中,Miracast 源端需作为订阅者,Miracast 接收端需作为发布者。

Miracast 设备可支持与基础设施基本服务集(BSS)的并发运行。

Miracast 设备应支持通过 mDNS/DNS-SD 记录 [3] 实现服务发现与连接。

4.1 Miracast 发现

4.1.1 服务发现

基于 Wi-Fi 连接的 Miracast 发现流程,构建于 Wi-Fi Aware 服务发现方法之上(该方法在 Wi-Fi Aware [2] 中定义,使用 mDNS/DNS-SD 记录)。通过 Wi-Fi Aware 传递 mDNS/DNS-SD 记录的推荐实践在 [3] 中描述,Miracast 在 [3] 中被映射为通用服务。

本技术说明中定义的服务类型,与 Miracast [1] 中定义的服务类型兼容。本技术说明中 Miracast 使用的两种服务类型为:

  • Miracast 源端:displayr._tcp
  • Miracast 接收端:display._tcp

服务 ID 的值通过 Wi-Fi Aware [2] 中定义的发布功能获取:

  • 服务 ID:0xAB、0x1E、0x99、0x8A、0x3A、0x94(对应 "display._tcp")

服务实例名称用于提供服务实例的额外描述,关于实例名称的命名规则详见 [4],例如 "Living Room TV"。

PTR 查询(主动或被动)可编码在 Wi-Fi Aware 订阅消息中,格式如下:

  • 属性 ID:0x03 - 服务描述符属性
    • 服务 ID:0xAB、0x1E、0x99、0x8A、0x3A、0x94 - 基于 Wi-Fi Aware 的 Miracast

PTR 查询信息还可额外编码在 Wi-Fi Aware 订阅消息中,格式如下:

  • 属性 ID:0x0E - 服务描述符扩展属性
    • 服务信息
      • OUI:0x50-6F-9A(Wi-Fi 联盟)
      • 服务协议类型:0x02 - 通用
      • 服务特定信息(GSP)
        • 子属性 ID:0x02 - 服务名称
          • 值:_display._tcp - 基于 Wi-Fi Aware 的 Miracast

PTR 响应(请求式或自发式)可编码在 Wi-Fi Aware 发布消息中(包含多种服务类型),格式如下:

  • 属性 ID:0x03 - 服务描述符属性
    • 服务 ID:0xAB、0x1E、0x99、0x8A、0x3A、0x94 - 基于 Wi-Fi Aware 的 Miracast
  • 属性 ID:0x0E - 服务描述符扩展属性
    • 服务信息
      • OUI:0x50-6F-9A(Wi-Fi 联盟)
      • 服务协议类型:0x02 - 通用
      • 服务特定信息(GSP)
        • 子属性 ID:0x02 - 服务名称(可选)
          • 值:_display._tcp - 基于 Wi-Fi Aware 的 Miracast
        • 子属性 ID:0x03 - 服务实例名称
          • 值:DNS-SD 实例名称(例如 "Living Room TV")
        • 子属性 ID:0x04 - 文本信息
          • 值:按 [2] 中表 150 编码的 TXT 记录字段

4.1.2 设备发现

基于 Wi-Fi Aware 的 Miracast 设备发现,构建于 Wi-Fi Aware [2] 中定义的同步方法之上,使 Miracast 设备能够发现相邻的 Miracast 设备,并判断是否可建立后续的 Miracast 连接。

若 Miracast 接收端负责按 Wi-Fi Aware [2] 中的方法传输 Wi-Fi Aware 信标,则需包含服务 ID 列表属性:

  • 属性 ID:0x02 - 服务 ID 列表属性
    • 服务 ID:0xAB、0x1E、0x99、0x8A、0x3A、0x94 - 基于 Wi-Fi Aware 的 Miracast

若 Miracast 源端负责传输 Wi-Fi Aware 信标,则需包含订阅 ID 列表属性:

  • 属性 ID:0x28 - 订阅服务 ID 列表属性
    • 服务 ID:0xAB、0x1E、0x99、0x8A、0x3A、0x94 - 基于 Wi-Fi Aware 的 Miracast

Miracast 设备需包含 WFD 信息元素(WFD IE),其中同时包含 WFD 设备信息子元素与 WFD R2 设备信息子元素 [1],并将其加入所有 NAN 信标、发布和订阅帧中。Miracast 设备使用 WFD 容器属性来承载 WFD IE。

4.2 基于 Wi-Fi Aware 的 Miracast 连接建立

若 Miracast 设备希望通过 Wi-Fi Aware 连接建立 Miracast 会话,应先通过 Wi-Fi Aware 发送发布消息。

Miracast 设备间成功建立连接后,需按照 Miracast [1] 中的规定执行 Miracast 能力协商。能力协商成功后,两台 Miracast 设备即完成配对,下一步是按 [1] 中定义的流程建立 Miracast 会话。

4.2.1 基于 Wi-Fi Aware 的 Miracast 数据路径建立

基于 Wi-Fi Aware 的 Miracast 连接,构建于 Wi-Fi Aware [2] 中定义的单播数据通信操作之上。通过 mDNS/DNS-SD 建立 TCP/IP 连接的 Wi-Fi Aware 数据路径建立推荐实践,在 [3] 中描述。

Miracast 设备间成功建立数据路径后,已连接的 Miracast 设备会尝试按 Miracast [1] 中描述的方式建立 TCP/IP 连接。

图 3:基于 Wi-Fi Aware 的 Miracast 服务发现与连接建立示例

4.2.2 Wi-Fi Aware 与基础设施网络的并发访问

使用 Wi-Fi Aware 进行 Miracast 会话时,Miracast 源端和 / 或接收端也可关联到某个 AP。此类 Miracast 设备应支持与 Wi-Fi BSS 的并发流量访问,且对分发系统上其他设备的干扰最小。

若 Miracast 设备已关联到 AP,可在 NAN 信标、发布和订阅帧中包含 NAN 可用性属性,该属性用于指示关联 AP 的信道及偏好:

  • 属性 ID:0x12 - NAN 可用性属性
    • 使用偏好为 3 的潜在可用性条目

同时关联到 AP 的 Miracast 设备,需遵循 Wi-Fi Aware [2] 中关于 Wi-Fi Aware 链路并发访问的流程。

4.3 基于 Wi-Fi Aware 的 Miracast 连接终止

使用 Wi-Fi Aware 时,Miracast 源端或接收端可通过 Wi-Fi Aware [2] 中定义的连接终止方法,有序终止 Miracast 连接。

相关推荐
xflySnail21 分钟前
nas服务域名高速访问-DNS+ESA
运维·服务器·esa·无端口访问
赵民勇6 小时前
Linux/Unix中install命令全面用法解析
linux·shell
猿小路6 小时前
抓包工具-Wireshark
网络·测试工具·wireshark
Rabbit_QL7 小时前
【网络设置】Docker 自定义网络深度解析:从踩坑到工程实践
网络·docker·容器
苏宸啊8 小时前
Linux指令篇(一)
linux·运维·服务器
浩子智控8 小时前
电子产品三防设计
网络·系统安全
睡不醒的猪儿8 小时前
nginx常见的优化配置
运维·nginx
我要升天!9 小时前
Linux中《网络基础》
linux·运维·网络
国强_dev9 小时前
在数据库开发和运维中的“错误信息误导(Red Herring)”
运维·adb·数据库开发
安科瑞刘鸿鹏179 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网