ISO/IEC 29341-10-10:UPnP QoS设备服务

QoS策略配置、监控与带宽预留的服务级接口

1. QoS设备服务架构

ISO/IEC 29341-10-10规定了UPnP QoS设备服务,这是将QoS设备能力暴露给UPnP控制点的服务级接口。该服务定义了使控制点能够查询、配置和监控QoS设备上的QoS策略的动作、状态变量和事件机制。它是UPnP QoS框架实现流量管理的程序化接口。

QoS设备服务作为托管在QoS设备上的标准UPnP服务运行。它公开了用于检索支持的流量类别、应用流量策略、查询当前QoS状态以及订阅QoS相关事件(如带宽变化或策略违规)的动作。

实施QoS设备服务时,设计状态变量表应尽量减少事件型变量。仅当控制点确实需要实时通知时才将变量标记为事件型——过多的事件型变量会产生不必要的网络流量并增加控制点处理开销。

2. 关键动作与状态变量

QoS设备服务定义了一套全面的动作,按功能组组织。配置动作允许控制点设置流量策略和带宽预留。查询动作检索当前QoS状态、活动流信息和可用的流量类别。监控动作提供QoS统计信息的访问,包括数据包计数、丢弃数据包数和队列深度。

QoS设备服务中的状态变量分为三类:配置变量(可由授权控制点写入)、状态变量(只读,反映当前设备状态)和事件型变量(变更时触发通知)。关键状态变量包括:QosDeviceState(空闲/活动/配置中/错误)、TotalBandwidth、AvailableBandwidth、ActiveFlowCount和PolicyViolationCount。

动作名称 类别 说明 关键参数
GetSupportedTrafficClasses 查询 检索支持的流量类别列表 输出: TrafficClassList
ApplyTrafficPolicy 配置 对流量流应用QoS策略 输入: FlowSpec, TrafficClass, Priority
RemoveTrafficPolicy 配置 移除之前应用的策略 输入: PolicyID
GetQosState 查询 检索当前QoS设备状态 输出: QosState, ActiveFlows
GetQosStatistics 查询 获取流量/性能统计信息 输出: StatsData
RequestBandwidthReservation 配置 为特定流量流预留带宽 输入: FlowID, Bandwidth, Duration
ReleaseBandwidthReservation 配置 释放带宽预留 输入: ReservationID
SubscribeToQosEvents 事件 订阅QoS事件通知 输入: EventFilter, 输出: SubscriptionID
ApplyTrafficPolicy动作必须验证请求的流量类别是否与设备能力兼容。当特定流量类别不受支持时,返回过于通用的错误(如”动作失败”)会使控制点开发者的调试变得困难。

3. 实际实施QoS设备服务

实际实施QoS设备服务需要仔细的线程安全设计。服务必须处理来自多个控制点的并发动作调用,同时保持状态变量的一致性。标准建议使用读写锁模式:多个并发查询动作是安全的,但配置动作应获取独占访问权限以防止竞态条件。

错误处理需要特别关注。服务应为常见的故障场景返回有意义的错误代码:无效的动作参数返回402(无效参数)、内部设备错误返回501(动作失败)、无效的流量类别或带宽值返回606(参数值超出范围)、请求控制点缺少权限时返回702(未授权)。

对于带宽预留管理,实现超时机制,在控制点意外断开时自动释放孤立预留。标准建议使用可配置的超时时间,300秒(5分钟)是合理的默认值。这可以防止带宽被崩溃或无响应的控制点永久占用。

具有良好错误处理和超时机制的QoS设备服务实现即使在控制点故障期间也能维持稳定的QoS保证,在配置的超时时间内自动恢复带宽预留。
切勿使用阻塞动作处理程序实现QoS设备服务。缓慢或阻塞的动作(例如查询暂时繁忙的硬件QoS寄存器)会拖慢整个服务,阻止其他控制点检索QoS状态或应用策略。

4. 常见问题

问:QoS设备服务可以管理多少个并发QoS策略?
答:这取决于具体实现,主要受限于设备的内存和硬件QoS表大小。消费级设备通常支持8到32个并发策略,而企业级设备可以处理数百甚至数千个。
问:QoS设备服务是否在设备重启后持久保留策略?
答:持久化是可选的。标准定义了一个PersistPolicy动作标志——设置后设备将策略存储在非易失性存储器中。不过,大多数消费级实现默认使用易失性(非持久)策略,重启后清除。
问:服务如何处理来自多个控制点的冲突策略请求?
答:标准定义了基于优先级的解析方案。每个ApplyTrafficPolicy请求包含一个优先级参数。当冲突发生时,最高优先级的策略生效,低优先级的控制点会收到关于策略被覆盖的事件通知。
问:服务和网络元素之间的QoS信令支持哪些传输协议?
答:服务通过抽象层与上游网络元素通信。常见协议包括SNMP(用于受管交换机)、802.1p标签(用于支持VLAN的交换机和DiffServ DSCP标记(用于IP路由器)。具体机制取决于网络元素的能力。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注