DDS/RTPS如何保证Qos?

How does DDS/RTPS guarantee Qos?

DDS/RTPS是一个点对点的数据共享系统。它没有任何中心化 control/scheduling。它如何实际保证与网络相关的 Qos,即传输优先级和延迟预算?

对于那些网络特定的QoS,DDS确实严重依赖网络提供的服务。

transport-priority QoS 的特定行为未由 DDS 标准规定。它被认为是中间件的 'hint' 。典型的实现可能会将其映射到 IP header 中的 ToS 或 (DS) 字段,但这不是必需的。 [考虑 DDS 可以映射到可能支持或不支持数据优先级排序的各种底层传输。]此 QoS 的效果在很大程度上取决于底层网络技术及其配置。 DDS 不对该行为做出任何保证。

latency-budgetQoS也是对DDS实现的提示。例如,较大的 latency-budget 可能允许中间件出于优化目的做出调度决策(将多个数据消息聚合到一个网络数据报中);而小预算可能会迫使中间件发送多个小网络数据包。 DDS 的实现可能会尝试在数据传输的总体计划中考虑网络传输延迟;但如果没有确定性传输,则无法保证不会超过延迟预算。

基于这个问题,您可能会对 deadline QoS 感兴趣。它本质上要求每个数据实例以一定的频率更新,并提供一种机制来警告 Reader 和 Writer 如果不满足此要求。它没有 'guarantee' 数据优先级或延迟,但它提供了一种机制来了解是否不满足所需的数据更新周期。

此外,将时间敏感网络 (TSN) 视为 DDS 的传输方式可能会很有趣。最近有一些标准化 DDS over TSN 的工作。这需要专门的硬件和详细的配置,但可以满足您的要求。 [我倾向于认为,标准以太网网络的精心架构对于绝大多数应用程序来说都是有效且足够的;所以,只要确保您能很好地处理您的要求即可。]