RTPS(Real-Time Publish-Subscribe Wire Protocol)是DDS(Data Distribution Service)规范的核心组成部分和底层通信协议。它定义了DDS实体(如DataWriter和DataReader)之间如何在网络上实际交换信息,实现发布-订阅模型的互操作性和实时通信。
以下是关于 DDS 中 RTPS 协议的详细解释:
-
定位与目的
- 互操作性协议:RTPS 的核心目标是提供不同 DDS 实现(来自不同供应商)之间进行通信的标准方式。它定义了 DDS 实体(发布者、订阅者、数据写入器、数据读取器)如何在网络上交换发现信息和实际应用数据的线协议。
- 实时通信基础:它专为满足分布式实时系统的需求而设计,强调低延迟、可预测性、可靠性和可扩展性。
- 网络承载:RTPS 通常运行在 UDP/IP 之上(利用其多播能力进行高效发现),但也支持 TCP/IP 和其他传输层协议(用于点对点可靠通信或穿越防火墙)。它属于应用层协议。
-
关键特性和设计目标
- 互操作性:这是 RTPS 存在的首要原因。遵循 RTPS 标准的任何 DDS 实现都可以与其他遵循标准的实现进行通信。
- 实时性:协议设计考虑了实时约束,通过 QoS 策略(如截止期限、基于时间的过滤、流量控制)和高效的报文格式来支持可预测的端到端延迟。
- 可靠性:提供可配置的可靠性保证。支持“尽力而为 BEST_EFFORT”和“可靠 RELIABLE”两种模式。在可靠模式下,使用类似 TCP 的 ACK/NACK 机制(但更灵活、高效,支持多播)来确保数据按顺序、无丢失地传输。
- 可扩展性:利用 UDP 多播进行高效的发现(自动找到网络上的参与者、主题、端点),极大地减少了发现大量实体时的网络流量和配置负担。支持大规模分布式系统。
- 平台无关性:作为标准协议,它独立于操作系统、编程语言和硬件平台。
- 灵活性:支持多种拓扑结构(点对点、多播、广播)和通信模式(一对一、一对多、多对一、多对多)。
- 冗余与容错:支持发现和使用冗余的数据写入器(发布者端)和数据读取器(订阅者端),增强了系统的容错能力。
- 松耦合/匿名发布订阅:生产者和消费者在空间(位置透明)和时间(生命周期解耦)上解耦。发布者和订阅者无需直接知道对方的存在,通过主题进行匹配。
- 动态发现:RTPS 定义了强大的发现协议(

最低0.47元/天 解锁文章
460

被折叠的 条评论
为什么被折叠?



