一.AVDTP 提供的传输服务
AVDTP通过上图四个BLOCK模块,提供了以下6个功能服务
1)Basic Service
基本服务。该服务只提供了两个基本功能,Signaling and Stream Manager
这两个就比较简单了,一个是信令交互,一个是音视频流管理
信令交互也就是INT/ACP双方交互command,该command包括的范围从连接discover,连接get_capabilties,连接set_configuration,连接open,连接start,连接close等都通过该Signalin功能进行交互。
音视频流管理也就是对INT/ACP两端的音视频流进行传输管理
当Basic Service启用时,AVDTP会通过L2CAP建立两个channel,一个用于信令,一个用于音视频流。Basic Service也是AVDTP最基础的功能服务。
2)Recovery Service
恢复服务。最主要的用处就是重构在SNK/SRC之间传输时,丢失的packets。其可以独立作用于某个transport session。对于一些重传计算能力有限,但是又需要较大的带宽传输设备时,会起到很好的效果,保证音视频流的传输。并且其需要一条独立的transport channel。
3)Reporting Service
上报服务。当启用该服务时,该服务可以向远端提供时间对齐的音视频包以及丢包信息。其目的是在SNK/SRC之间,实现一定的音视频流同步以及某些应用层的错误策略兼容。其也是可以使用一个新的transport channel。
4)Adaptation Service – Multiplexing
多路复用服务。其由Adaptation layer提供功能。在此服务中,属于同一种或者属于某一种的多个传输会话不同的流,可以共享一个公共传输(L2CAP)通道。也即是说开启此功能后,不再需要创建多条transport channel。单条transport channel可以同时传输media/Recovery/Reporting数据包。由于公用一条transport channel,所以传输的packet也会有有所改变,需要加上相关包头/flag来区分不同类型的包。并且需要使用TSID and TCID来区分不同transport session。
5)Adaptation Service – Robust Header Compression
强健形头部压缩。其是基于ROHC,对传输的包头进行进一步压缩。作用是减少开销媒体包和恢复包的头引入。SNK/SRC要双方同时开启此功能才可以使用。
6)Transport and Signaling Channel Establishment
传输和信令通道的建立
SNK/SRC 双方channel建立规则和优先级。1为最高优先级。