ZBLOG

## Reliability QoS Using argument **``-r``** or **``--reliable``** will configure the corresponding endpoint with **``RELIABLE``** reliability QoS. If the argument is not provided, by default is configured as **``BEST_EFFORT``**. Whereas **``BES...

Reliability QoS 解释

Reliability QoS(可靠性服务质量) 是用于配置 DDS(数据分发服务)中数据传输的可靠性机制。它决定了在数据通信中如何处理丢失或未确认的数据样本。

使用方式

  • 命令行参数
    • -r--reliable:用于将相应的端点配置为使用 RELIABLE 可靠性 QoS。

模式说明

  1. 最佳努力模式 (BEST_EFFORT)

    • 默认情况下,DDS 配置为最佳努力模式。在这种模式下,系统会尽最大努力发送数据,但不保证所有样本都会被成功接收。如果在传输过程中发生丢失,系统不会尝试重发这些缺失的样本。
  2. 可靠模式 (RELIABLE)

    • 当使用 -r--reliable 参数时,相应的端点将被配置为可靠模式。在此模式下,每发送一个数据样本,发送方会等待接收方返回确认信号(即 ACK)。这意味着如果某个样本未被接收到,系统会自动进行重发,以确保所有数据最终都能正确送达。

注意事项

  • 使用 RELIABLE 选项可能导致写操作被阻塞,这通常发生在资源限制等特定场景下。这意味着如果网络延迟高或资源紧张,发送线程可能会暂时停止,直到确认所有的数据都已成功送达。

数据读写器兼容性规则

在 DDS 中,不同的数据读者和写者之间存在兼容性规则。具体来说,在创建连接时,会检查两者的可靠性 QoS 类型以确保预期行为。以下是兼容性矩阵:

数据写入者
最佳努力 可靠
数据读取者
最佳努力 ✔️ ✔️
可靠 ✖️ ✔️
  • 从表格可以看出:
    • 当数据读者和写者均配置为最佳努力时,它们是兼容的。
    • 当读者为最佳努力,而写者为可靠时,也保持兼容。
    • 然而,当读者为可靠而写者为最佳努力时,它们是不兼容的,因为这样会造成潜在的数据丢失和不一致。

总结

通过选择合适的可靠性 QoS 设置(最佳努力或可靠),用户能够根据应用需求调整数据传输的安全性与性能要求。对于对数据完整性要求较高的应用,应选择 RELIABLE 模式;而对于实时响应要求更高且可以接受一定程度数据丢失的应用,则可以选择 BEST_EFFORT 模式。这种灵活配置使得 DDS 能够适应多种不同场景下的数据通信需求。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=7866

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?