2024年3月24日发(作者:嬴雪冰)
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以及其他的一些自定义扩展。
由于我们只关注音频部分,所以下面研究的重点是AirTunes服务。
二、实现机制
实现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参数中包含以下字段:
2024年3月24日发(作者:嬴雪冰)
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以及其他的一些自定义扩展。
由于我们只关注音频部分,所以下面研究的重点是AirTunes服务。
二、实现机制
实现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参数中包含以下字段: