17 配置可靠性协议
17.1 可靠性协议
CoreDX DDS可靠性协议解决了丢弃的数据包、无序样本、通信断开和应用程序重新启动的问题,以确保将发布的数据传递给预期的收件人。RTPS协议以及DataReader和DataWriter数据缓存支持该协议(有关数据缓存的完整讨论,请参阅第10.5章)。
这种可靠性协议重量轻,并最大限度地减少了延迟。丢弃的数据包会被快速检测和修复。CoreDX DDS为配置可靠性协议提供了可调参数,使应用程序开发人员能够实现开销和及时数据重传的最佳平衡。
17.1.1 缓存管理
可靠的协议比DataWriters和DataReaders之间的握手影响更大。数据缓存在可靠通信中也发挥着重要作用。
在DataWriter上,数据缓存包含尚未被所有可靠订阅确认的样本。[根据持久性QoS配置,数据可以保存更长时间。]数据缓存大小由历史和资源限制QoS策略控制。如果数据缓存已满,则历史QoS策略将发挥作用。在History类型为KEEP_ALL的情况下,write()调用将阻塞,直到有空间为止,或者直到超过max_blocking_time为止。对于“历史记录”类型的KEEP_LAST,将从缓存中删除最旧的样本,为新样本