转自:http://blog.csdn.net/dnfchan/article/details/8558552/

 另外一篇不错的参考文章:http://www.360doc.com/content/16/0418/19/30587597_551729779.shtml

WiFI Display(WFD)是WiFI Alliance 开发出的一种规范,使多媒体设备之间建立和维持一个基于WiFi的连接,并且利用这个连接推进视频/音频的在目标设备的呈现播放。

以下是原话

The Wi-Fi Alliance is developing a “Wi-Fi Display Specification” to enable and
sustain a secure connection between multimedia devices, based on Wi-Fi, to 
facilitate audio/video rendering

Wifi display的一些名詞

1.Source :

A device that is capable of transmitting multimedia content

能提供多媒体内容传输的设备

2.Sink :

A device that is capable of receiving and rendering multimedia content

能接受多媒体内容并将其呈现的设备

3.Session:

一个WFD在传输和接收设备之间连接

4.TDLS:

一项802.11协议,在两个连接到同一个Ap的客户端设备之间建立的直接连接,不懂的可以看图

Tunneled Direct Link Setup. An 802.11 protocol to setup a direct Wi-Fi 
link between two peer client devices (STAs) that are members of the same BSS

5.wifi direct:

设备无需通过无线路由器即可相互连接的技术,需要一台设备作为组织者建立一个类似ap功能的网络,其他设备可以搜索到并用wifi连接上

WFD原理与流程

还是用现有的图来说明其基本的过程吧

WFD连接基础

WFD建立在wifi p2p连接基础上的,支持以下两种连接方式

-wifi direct:(必须支持)

设备无需通过无线路由器即可相互连接的技术,需要一台设备作为组织者建立一个类似ap功能的网络,其他设备可以搜索到并用wifi连接上

-TDLS:(可选)

2台wifi设备连接在同一个Ap上,它们可以直接建立一个点对点的通道实现数据传输

WFD建立的11个过程

1.Device Discovery

wfd设备之间的搜索探测功能,使用现有的wifi p2p技术为基础,并在wifi信标、探测信号中加入了wfd特有格式的探测信号
 
2.Service discovery
此功能是可选功能,也是建立在wifi p2p原有的servicediscovery基础上,并加入wfd特有格式的请求和回应命令
 
3.Device selection
用户选择一个需要连接的设备
Wifi-direct 连接的强制和默认的,TDLS可选
若有2个sink,一级和二级sink,wifi p2p组织者必须是source
 
4.Wifi connection setup
使用wifi direct和tdls技术,建立wfd基础线路
将设备建立TCP连接,并创建一个控制端口来建立和维护session,该端口跑的协议是RTSP
 
5.Display capability negotiation
参数协定,决定需要使用的最佳参数,包括音视频解码率,分辨率,信道负载等等
若有一级和二级sink存在,都需要单独设定
过程和命令如下图
 
 
6.UIBC setup
即user input back channel,用户输入反向通道,此功能是可选的。
有两种类型
    generic:硬件无关型,如鼠标点击,按键点击、touch点击、放大缩小等
    HIDC人机接口设备控制:包括红外线、USB、蓝牙、WIFI、游戏杆、遥控器等
 
7.Link content protection
建立内容保护机制,可选功能
采用的是HDCP2.0安全协议,需要在数据流传输前建立
 
8.WFD Session setup
WFD核心步骤,必须在能力协定的基础上建立
建立过程使用RTSP通信,具体见下图
 
9.AV Streaming
先将Audio和video多路复用成一个MPEG2传输流
在传输流头部用MPEG2-TS格式打包,并封装RTP、UDP、IP报头如下图
 
10.Payload control capability

在数据流建立之后,需要有控制管道负载的能力,包含以下功能

时间同步  如果有2个sink设备,二者音视频必须同步,实现保真
编码速率控制:因信道条件和电源管理优化控制管道负载
 
11.Display Session Teardown
WFD会话终止,按连接分两种方法
Wifi-direct

跟 wifi p2p规范一样,source和sink有序拆除连接

TDLS
IEEE P802.11z specification规范动作,有序的拆除终止连接
 
 
参考资料:Wi-Fi Alliance Member Symposium大会档案 20110421_China_Symposia_full_merge.pdf。下载地址如下
 

wifi diplasy流程介绍的更多相关文章

  1. 转: Annovar 软件注释流程介绍

    第一步:下载Annovar 上Annovar官网下载(http://annovar.openbioinformatics.org/en/latest/user-guide/download/),现在要 ...

  2. 02-FPGA设计流程介绍——小梅哥FPGA设计思想与验证方法视频教程配套文档

    芯航线——普利斯队长精心奉献 课程目标: 1.了解并学会FPGA开发设计的整体流程 2.设计一个二选一选择器并进行功能仿真.时序仿真以及板级验证 实验平台:芯航线FPGA开发板.杜邦线 实验内容: 良 ...

  3. Android WIFI 启动流程(TIP^^)

    前几天因为解决一堆Bug,没时间写.我不会每天都写,就是为了存档一些资料. 内容来源:工作中接触到的+高手博客+文档(Books)=自己理解 仅限参考^^ 此博客是上一个<<Android ...

  4. OpenCart框架运行流程介绍

    框架运行流程介绍 这样的一个get请求http://hostname/index.php?route=common/home 发生了什么? 1. 开始执行入口文件index.php. 2. requi ...

  5. UED视觉交互设计与流程介绍

    UED视觉交互设计与流程介绍 ------------------------------------------------------------------ 今天先到这儿,希望对您技术领导力, ...

  6. Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)

    一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...

  7. shiro原理及其运行流程介绍

    shiro原理及其运行流程介绍 认证执行流程 1.通过ini配置文件创建securityManager 2.调用subject.login方法主体提交认证,提交的token 3.securityMan ...

  8. Zbar算法流程介绍

    博客转载自:https://blog.csdn.net/sunflower_boy/article/details/50783179 zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部 ...

  9. iOS蓝牙连接流程介绍-1

    蓝牙连接流程介绍 1.1-程序员找女朋友流程介绍 0.程序员找女朋友参与者 1.你 2.受害者(女性同胞)  (1)她的性格1 性格的特点 (2)她的性格2  分析性格的特点 1.寻找女性 寻尽身边一 ...

随机推荐

  1. 如何优雅地使用 Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...

  2. Android 中 SQLite 数据库的查看

    当 SQLite 数据库创建完成后,如何查看数据库的内容呢?如果直接使用 File Explorer 查看,最多只能看到 database 目录下出现了一个 BookStore.db 文件,Book ...

  3. 搭建JavaWeb服务器

    JDK安装可以参考 http://www.cnblogs.com/a2211009/p/4265225.html Tomcat安装可参考 1.由于服务器配置比较低综合考虑,选择ubuntu系统进行搭建 ...

  4. 1. Smalidea无源码调试android应用

    一.安装smalidea https://github.com/JesusFreke/smali/wiki/smalidea   1. 进入IntelliJ IDEA/Android Studio开始 ...

  5. Iterator中hasNext(), next() 和ResultSet结果集的next方法的区别

    接口 Iterator专门的迭代输出接口,将元素一个个进行判断,用hasNext() 判断是否有值,用next()方法把元素取出.hasNext() 如果仍有元素可以迭代,则返回 true.next( ...

  6. ThreadPool线程池 小结

    ThreadPool类提供一个线程池,该线程池可用于发送工作项.处理异步 I/O.代表其他线程等待以及处理计时器 线程池通过为应用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程.一个线程 ...

  7. centos 7 升级后yum install出现Exiting on user cancel

    centos 7 升级后yum install出现Exiting on user cancel centos 7.x升级后用yum install进行安装时经常出现Exiting on user ca ...

  8. c# 获取系统版本,获取net framework 版本(Environment 类)

    1.获取当前操作系统版本信息 使用Environment.OSVersion 属性 获取包含当前平台标识符和版本号的 OperatingSystem 对象. 命名空间:  System程序集:  ms ...

  9. Java for LeetCode 234 Palindrome Linked List

    解题思路: O(1)的空间复杂度,意味着不能通过开一个List来解决问题.我们可以把List分成前后两个部分,后半部分通过指针的相互赋值进行翻转即可. JAVA实现如下: public static ...

  10. “假学习“&”真学习“?(摘)

    什么叫做“假学习”? 一.看书 买一堆书,有空看看.看书,这是典型的假学习.看书看不懂还在看,就是假学习,欺骗自己,安慰自己正在学习而已.专业书都写得很好,但大都是写给已经懂的人看的.看书的最大作用就 ...