Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-18-11 规定了 ConnectionManager 服务的版本 2,对最初在第17-11部分(ConnectionManager v1)中定义的连接管理框架进行了演进。版本 2 解决了大规模复杂 UPnP AV 部署中遇到的几个限制:每次会话单一连接模型、有限的协议协商表达能力以及缺乏连接资源分配的策略框架。V2 引入了多流连接、增强的 protocolInfo 语义以及连接策略系统,为控制点和设备在管理媒体管道方面提供了更大的灵活性。
v2 中最显著的架构变化是引入了多流连接。在 v1 中,每次 PrepareForConnection 调用在源和接收器之间建立一个单一媒体流。在 v2 中,单个连接可以承载多个流,每个流可能使用不同的协议和格式。例如,MediaServer 和 MediaRenderer 之间的连接可以同时承载主视频流(MPEG-4 AVC)、辅助音频评论流(MP3)和字幕流(text/plain)——全部在由单个 ConnectionID 标识的单个连接内。这种复用模型更准确地反映了现代多媒体内容的结构,其中一部电影文件包含多个需要同步传送到渲染器的基础流。
protocolInfo 语义在 v2 中得到了显著扩展。v1 的 protocolInfo 元组(protocol:network:contentFormat:additionalInfo)仍然是基础,但 v2 增加了协议偏好级别的概念。设备现在不仅可以指示支持哪些协议,还可以指示更偏好哪些,从而实现更智能的连接建立。例如,MediaRenderer 可以同时列出 “http-get” 和 “rtsp” 作为支持的协议,但在内容格式支持时指示偏好 RTSP,因为 RTSP 为某些内容类型提供了更好的流控制(传输级的暂停/恢复)。
内容格式解析通过 GetCompatibleFormats 动作得到增强。给定一组源格式和渲染器能力,该动作返回交集——与两端兼容的格式。这消除了 v1 控制点通常不得不采用的反复试验方法,即尝试用猜测的格式建立连接,并通过尝试兼容性列表中的下一个格式来处理失败。GetCompatibleFormats 在单个动作调用中返回确定性的列表,减少了连接建立延迟并改善了用户体验。
| 特性 | ConnectionManager v1 (17-11) | ConnectionManager v2 (18-11) | 优势 |
|---|---|---|---|
| 流模型 | 每连接单流 | 每连接多流 | 同步音频/视频/字幕投递 |
| 协议偏好 | 不支持 | 加权协议偏好 | 为每种内容类型选择最佳协议 |
| 格式解析 | 控制点反复试验 | GetCompatibleFormats 动作 | 单步格式协商;降低延迟 |
| 连接策略 | 无(尽力而为) | 基于策略的资源分配 | 优先流的资源可用性保证 |
| 连接事件 | 基本状态变更 | 每流状态事件、质量指标 | 实时连接健康监控 |
| 方向控制 | 输入/输出/双向 | 新增双向、多点、广播 | 支持会议、多房间和直播场景 |
| 资源预留 | 隐式(无反馈) | 显式,带 GetResourceStatus 动作 | 控制点可在连接前检查资源可用性 |
V2 引入了正式的连接策略框架,用于管理连接资源的分配方式。ConnectionPolicy 状态变量包含一组策略规则,定义:最大并发连接数、每连接最大流数、带宽分配策略(公平共享、基于优先级或预留)以及连接接纳控制规则。管理员可以通过 SetConnectionPolicy 动作配置这些策略,控制点可以通过 GetConnectionPolicy 查询。
资源管理通过显式资源预留和状态报告得到增强。GetResourceStatus 动作返回关于设备当前资源利用率的详细信息,包括:活动连接数与最大允许数、总连接和每连接的带宽消耗、解码器/编码器利用率(百分比)和内存缓冲池状态。这些信息使控制点能够基于当前负载而不仅仅是静态能力通告,为新的流选择使用哪个 MediaRenderer 做出智能决策。
连接事件在 v2 中得到了显著增强。CurrentConnectionIDs 事件变量现在包含每流状态信息,使控制点能够监控复用连接中各个流的健康状态。ConnectionQuality 事件变量为每个流提供实时质量指标——丢包率、抖动缓冲区级别、解码错误计数和平均比特率。这些指标支持自适应流场景,控制点可以根据变化的网络条件或渲染器负载调整源编码参数。