文章的类型应该转载为主,原创为辅,还有少量的翻译 :)
最近由于业务需要,进行的调研,参考了很多文章,也以自己的认识,加以通俗化描述。

前言

虽然这次是研究AirPlay技术,但是还是花一点点篇幅,顺带提下当前支持这种无线技术的其他协议。

AirPlay、DLNA、Miracast三大无线技术介绍:

AirPlay

AirPlay 是苹果开发的一种无线技术,可以通过WiFi将iPhone 、iPad、iPod touch 等iOS 设备上的包括图片、音频、视频通过无线的方式传输到支持AirPlay 设备(IOS8后,AirPlay可使用P2P直连,绕过了WIFI,具体有待深入)。现在一些传统的家庭影院和HIFI如马兰士和天龙的新品功放和网络播放器已经支持AirPlay功能。

AirPlay 还有一个非常牛逼的功能,这一功能叫AirPlay镜像,配合上Apple TV这以功能可以将iPhone 或者iPad 上的画面无线传输到电视上,也就是说你设备显示的是什么电视屏幕显示就就是什么,而不仅限于图片和视频。所以用这一个功能来玩游戏是非常酷的,你可以拿着iPad 来当做方向盘,然后看着大屏玩游戏。

DLNA

DNLA,Digital Living Network Alliance,是索尼、英特尔、微软等发起的一套 PC、移动设备、消费电器之间互联互通的协议。它们的宗旨是“随时随地享受音乐、照片和视频”。据说苹果当时也是DLNA联盟的成员,而后来退出了并自立门户。

Miracast

Miracast是由Wi-Fi联盟于2012年所制定,以Wi-Fi直连为基础的无线显示标准。支持此标准的设备可通过无线方式分享视频画面,例如手机可通过Miracast将影片或照片直接在电视或其他装置播放而无需受到连接线缆长度的影响。
与DLNA不同的是,Miracast 也有类似于AirPlay 的镜像功能,可以将手机中屏幕内容直接投放到高清电视屏幕里,这样你也可以通过电视屏幕来玩游戏了。

三种技术的总结:

AirPlay是苹果自家的,对IOS设备支持的完美,也是这次研究的重点。
DLNA是设备厂商之间的一种通信协议,所支持的功能不够完善。
Miracast从技术层面上,最接近AirPlay,但是技术比较新,支持的设备不多,但是它比较全面,以后在智能家居,物联设备上有发展空间。
通俗来说,
AirPlay是苹果自己一个人玩转自己的产品。
DLNA是其他厂家也想玩,但是玩不开,就拉其他厂商一起玩。
Miracast才是带其他设备厂商一起玩的大哥,只是这个大哥被推出来的时间晚了点,支持的小弟不多。

AIRPLAY协议

介绍

AIRPLAY是由苹果公司实现的一套协议族,用来实现在Apple TV上浏览 iPhone、iPod touch、iPad(硬件设备)或者iTunes(软件)中的各种媒体内容。 AirPlay支持如下几种使用场景:

  • 从iOS设备上传输并显示照片、幻灯片;
  • 从iOS设备或者Itunes软件中传输并播放音频;
  • 从iOS设备或者Itunes软件中传输并播放视频;
  • 对iOS设备或者OS X Mountain Lion进行屏幕镜像。由于此功能需要硬件的硬解码支持,所以只能在iPad 2、iPhone 4S、带Sandy Bridge CPU的Mac电脑(或更新的设备)上支持。

最初这套协议名字叫AirTunes,只支持音频流播放。 后来苹果开发Apple TV时,对此协议进行了扩充和改进,加入了视频支持,并改名叫做AIRPLAY。AIRPLAY协议基于一些知名的网络标准协议,如Multicast DNS、HTTP、RTSP、RTP或NTP以及其他的一些自定义扩展。

实现机制

实现AIRPLAY协议的软件不需要再做任何配置就能发现同一网络中的相关设备,这主要得益于Bonjour(基于M-DNS协议实现)

Bonjour:苹果为基于组播域名服务(multicast DNS)的开放性Zeroconf标准所起的名字。

Zeroconf (零设置网络标准):全称为Zero configuration networking,中文名则为零配置网络服务标准,是一种用于自动生成可用IP地址的网络技术,不需要额外的手动配置和专属的配置服务器。“零配置网络”的目标,是让非专业用户也能便捷的连接各种网络设备,例如计算机,打印机等。整个搭建网络的过程都是通过程式自动化实现。如果没有zeroconf,用户必须手动配置一些服务,例如DHCP、DNS,计算机网络的其他设置等。这些对非技术用户和新用户们来说是很难的事情。

具体例子为:用户拥有一台apple tv和一台iPhone4s,那之只要都连入到同一个无线局域网内,iphone4s就会自动找出apple tv,那么在播放音乐或者视频时候,用户只要点击推送,就可以讲音乐和视频推送到apple tv上播放。

除了Bonjour以外,实现Zeroconf协议的还有Avahi和howl。
下面以AirTunes服务为例来具体看是如果实现服务发现的。首先发布RAOP(Remote Audio Access Protocol )服务,其格式如下:

name字段由设备的MAC地址和远程设备的名称组成(通常就在客户端上显示此设备名称)

TXT参数中包含以下字段:

Audio codecs(音频编码)

Encryption Types

Metadata Types

RAOP从本质上来说是实时流协议(RTSP,其内容为实时流传输协议和控制协议),只不过增加了基于身份验证请求-应答的一步。实时流协议是应用层协议,用来实现和控制实时数据的传送。

RAOP服务用两个信道实现流媒体音乐:一个是用实时流协议的控制信道;另一个是数据信道用来发送原始数据。以iTunes客户端(v6.0.4)和Airport Express路由器(简称ApEx)之间的数据交换为例分析RAOP服务过程如下所示:

步骤1:

iTunes客户端提供自己的版本号和一个随机生成的22byte的加密的苹果请求参数给ApEx。然后ApEx回复一个响应,这个响应是由储存在ApEx的私钥加密后的请求参数。然后iTunes用非对称密钥对的公钥对该值进行验证(这种私钥加密公钥验证的方法具体实现细节如果感兴趣可以参考http://zh.wikipedia.org/wiki/RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95)。这一步目的是iTunes用来验证是否正在与一个ApEx对话。在这一步交流过后上述连接断开。

步骤2:

接下来,iTunes在同一个端口建立另外一个与ApEx相连的RTSP连接,同时提供一个随机产生的AES密钥给ApEx。这个AES密钥是经过RSA加密过的,其密钥由iTunes提供(即非对称密钥对的公钥)。然后通过ApEx的私钥解密来验证是否正在跟一个iTunes对话。值得欣喜的是目前通过逆向工程已经破解了非对称密钥对。

步骤3:

ApEx告诉iTunes哪一个端口用于数据连接(server_port,6000)。

步骤4:

在控制包里的RTSP序列和时间戳的交换

已知ApEx支持的方法有:

ANNOUNCE:ANNOUNCE会告诉RTSP服务器音频流使用的是会话描述协议
SETUP:SETUP 会初始化一个记录会话,发送必要的传输信息建立三个UDP信道
RECORD:RECORD:启动音频流,RTP-Info头文件里包含了参数
PAUSE:音频暂停
FLUSH:关闭音频流
TEARDOWN:TEARDOWN结束RTSP会话
OPTIONS, GET_PARAMETER和SET_PARAMETER等

如果想有更深入的了解可以参考http://nto.github.io/AirPlay.html#audio-rtsprequests中关于音频的部分。

AIRPLAY协议的总结:

首先基于zeroconf(零设置网络标准),由服务端发出,然后同wifi网内的设备就可以自动得到分配的IP地址,然后建立RAOP协议链接。(RAOP实时流协议,增加了身份验证 请求-应答),这个服务有两个信道,一个是实时流协议的控制信道,另一是数据信道用来发送原始数据。链接建立成功后,就是RTSP协议链接,数据端口的确定,之后就可以通过协议约定好的方法,实现所需功能。

参考的网址

已知的支持AirPlay协议的服务器或者客户端软件:https://github.com/jamesdlow/open-airplay

Shairport4w+Aerodrom免费在Windows电脑上使用苹果AirPlay:http://www.iplaysoft.com/airplay-for-windows.html

Reflector 已测试过的win软件:http://www.sdifenzhou.com/Reflector.html

Android平台Airplay的实现方法:http://blog.csdn.net/shareviews/article/details/8729686

AirPlay 镜像 :https://www.aorensoftware.com/blog/2011/08/20/exploring-airplay-mirroring-internals/

AirPlay无线技术研究相关推荐

  1. 多屏互动技术研究(三)之Airplay研究

    Airplay技术研究 1. Airplay简介 1.1 Airplay协议构成 1.2 Airplay难点分析 1.2.1 Airplay 协议文档缺失 1.2.2 Airplay 敏感数据加密的破 ...

  2. 多屏互动技术研究(一)之技术概述

    多屏互动技术研究之技术概述 多屏互动技术研究之技术概述 1 技术背景 2 多屏互动研究与应用现状 2.1 DLNA 2.2 Miracast 2.3 AirPlay 2.4 GoogleCast 2. ...

  3. 计算机病毒攻防技术研究,计算机网络病毒辐射攻防技术研究.pdf

    会议论文,完美pfd格式 全国抗恶劣环境计算机第十七届学术年会论文集 ·防信息泄一技术· 计算机网络病毒辐射攻防技术研究 田■.王力,邱扬 (西安电子科技大学机电工程学院,西安710071) ■蔓:本 ...

  4. 未来趋势?通过无线技术管理汽车电池,可消除90%物理布线

    电动汽车的电池寿命要求远比手机电池要高. 来源 |  雷锋网 作者 | 伍文靓 雷锋网按,当智能手机中的电池损耗殆尽,无法满足正常使用的续航体验时,用户往往会选择换一台新的设备,以此来解决问题.这是十 ...

  5. dlna和miracast可以共存吗_AirPlay、DLNA、Miracast三大无线技术介绍

    在昨天的小米盒子发布会上,小米官方称小米盒子的米联功能可以将小米手机或iPhone.iPad上的图片.音乐.视频等精彩内容投射到电视上,让你感受大屏的刺激.而小米盒子能实现这一技术主要依靠的是Airp ...

  6. java开发爱恩斯坦棋,爱恩斯坦棋计算机博弈关键技术研究

    爱恩斯坦棋计算机博弈关键技术研究 [摘要]:计算机博弈是人工智能领域的重要研究方向之一,被誉为人工智能学科的"果蝇".爱恩斯坦棋属于完备信息博弈棋种,是一种棋局信息完全透明的博弈类 ...

  7. PUCCH(2)格式与DTX检测(源于5G上行控制信道增强技术研究)

    目录 上行时隙结构与物理资源 PUCCH格式与流程 PUCCH简介 PUCCH格式 PUCCH format 0 PUCCH format 1 PUCCH format 2 PUCCH format ...

  8. 带内全双工水声通信系统自干扰抵消技术研究框架与思路

    [摘  要]水声通信技术已经被广泛应用于水下信息交互.海洋环境监测数据回传等方面,但受限于半双工体制,频率效率难以获得突破性的提升.首先对目前IBFD-UWAC技术研究现状进行了简述:然后重点阐述并分 ...

  9. 无线技术应用—浅谈红外技术和卫星通信(个人向)

    无线网络技术的应用特点 在进行无线网络技术应用的过程中,可以对外界环境的变化进行有效的感知,进而进行更深层次的理解和学习,还可以对通信网络内部的所有资源进行高效的配置和调整,以此来适应外界环境的改变. ...

  10. HSDPA——WCDMA的增强型无线技术(转)

    HSDPA是指高速下行分组接入,它是3GPP在R5协议中为了满足上/下行数据业务不对称的需求而提出的一种调制解调算法,它可以在不改变已经建设的WCDMA网络结构的情况下,把下行数据业务速率提高到10M ...

最新文章

  1. 百度安全入选中国工业互联网安全市场研究报告推荐服务商
  2. cudnn的下载地址
  3. [USACO] Beef McNuggets
  4. leetcode面试题 16.26. 计算器(栈)
  5. android静态类保存context,Android:静态获取Context是一个好习惯吗?
  6. 数据决策成共识 大数据产业期待点“数”成金
  7. JDBC03 Statement接口
  8. docker login Error response from daemon: Get http://ip:port/v2/: net/http: request canceled
  9. 第一次开卡SSD硬盘成功,主控为SM2258XT(附软件)
  10. 单节1A锂电池充电芯片
  11. JAVA文件上传限制
  12. php微信卡包代码,微信卡券,在卡包中跳转到小程序的字段怎么填写
  13. 【Java WEB】Linux常用命令汇总
  14. 联想小新i2000装win10教程(u盘装系统)
  15. mac +xcode 下WebDriverAgent环境配置
  16. 小程序与后台 api接口数据交互详解(微信报修小程序源码讲解七)
  17. python 一组数据 正态分布散点图_R语言入门之散点图
  18. “凡客好声音”摇滚派对专场 正火热抢票中!
  19. 嵌入式系统驱动高级【5】——input子系统
  20. 常用的git操作指令

热门文章

  1. 微信朋友验证消息是什么来源_微信开启朋友验证什么意思
  2. keil5工程函数无法跳转到函数定义解决方法
  3. 怎么用Goldwave剪辑音乐?GoldWave绿色汉化版使用教程分享
  4. ERP系统和CRM系统
  5. 腾讯与清华大学物理系签署合作备忘录,探索材料计算新领域
  6. 两台电脑之间串口传输文件
  7. 计算机安全模式无法启动,电脑无法启动,电脑安全模式进不去解决方法大全?...
  8. win10电脑右键视频或者图片文件卡死
  9. miui删除内置不卡米教程_MIUI11卸载系统自带软件,无需ROOT也可以
  10. 平衡树--替罪羊树 *