一.AVDTP介绍
Audio/Video Distribution Transport Protocol(AVDTP),音视频分布传输协议。
如其名,AVDTP在BT连接使用的过程中起的作用就是对连接双方之间的音频流进行管理。包括音频链路建立,音频流的传输/分包/恢复/,音频流链路的控制,音频链路信令包的定义以及交互等功能。
根据AVDTP SPEC,AVDTP是基于RTP协议,其包括RTP/RTCP两个协议。熟悉RTP交互流程,以及数据包结构的同学,学习了解AVDTP应该会有似曾相识的感觉,
其stack如下:
如果再细分的话:
可以很明显看到,AVDTP需要建立在L2CAP之上,并且其UL为A2DP profile
图中黑灰色的模块即是AVDTP提供的功能。我们主要关注①②③⑧⑨这五个通道提供的接口能力。
Signalling :命令以及命令响应交互通道
Stream Manager:流管理组件,一共有以下几种能力:传输流,组合media封包,时间戳管理,media封包序号管理,报告丢包给上层,抖动计算等
Recovery:封包恢复组件
Adaptation Layer:这层提供了一下几个能力:多路复用模式,允许在一个传输通道(TCID)上多路复用多个传输会话(TSID),以及使用更强劲头压缩功能
上图中①②③⑧⑨对应的channel功能如下:
①:提供应用/传输服务的发现,流的建立、协商、销毁、暂停以及恢复等功能
②:提供音频流,与时间戳相关的音频流
③:音频流Qos的上报
⑧⑨:AVDTP与L2CAP之间的channel 交互,包括信令传输、音频传输、控制等