fastdds源码分析之PDP协议
文章目录1. 概述2. 发现流程3. 内置端点4. ParticipantProxyData 内容5. 两种 PDP 实现6. 与 EDP 的关系7. 总结1. 概述PDP是 RTPS 协议中用于发现参与者 (Participant)的协议是 DDS 发现机制的第一步。2. 发现流程┌─────────────────────────────────────────────────────────────────────┐ │ PDP 发现流程 │ ├─────────────────────────────────────────────────────────────────────┤ │ │ │ Participant A Participant B │ │ │ │ │ │ │ 1. 定时广播 PARTICIPANT_DATA │ │ │─────────────────────────────────▶│ 收到对方的参与者信息 │ │ │ │ │ │ │◀─────────────────────────────────│ 广播 PARTICIPANT_DATA │ │ │ 收到对方的参与者信息 │ │ │ │ │ │ │ │ 2. 创建 ParticipantProxy │ │ │ │ │ 2. 创建 ParticipantProxy │ │ │ │ │ │ │ 3. 启动 EDP │ │ │ │◀─────────────────────────────────│ 3. 启动 EDP │ │ │ │ │ └─────────────────────────────────────────────────────────────────────┘3. 内置端点PDP 使用SPDP (Simple Participant Discovery Protocol)的内置端点内置端点说明SPDP Writer广播本地 Participant 信息SPDP Reader接收远程 Participant 信息4. ParticipantProxyData 内容structParticipantProxyData{// 协议版本ProtocolVersion_t protocolVersion;// 厂商 IDVendorId_t vendorId;// 参与者 GUID 前缀GuidPrefix_t guidPrefix;// 参与者名称string_255 participant_name;// 元流量地址 (发现用)LocatorList_t metatraffic_locators;// 默认单播地址LocatorList_t default_unicast_locators;// 存活时间Duration_t leaseDuration;// 安全相关// ...};5. 两种 PDP 实现实现说明PDPSimple简单实现广播到多播地址PDPServer服务器模式客户端连接服务器获取参与者列表6. 与 EDP 的关系┌────────────────────────────────────────────────────────────────────┐ │ PDP 与 EDP 的关系 │ ├────────────────────────────────────────────────────────────────────┤ │ │ │ PDP: 发现 Participant │ │ ──────────────────────────────────────────────────────────────── │ │ 1. SPDP Writer 广播 PARTICIPANT_DATA │ │ 2. 收到远程 Participant创建 ParticipantProxy │ │ 3. 触发 onParticipantMatched 回调 │ │ │ │ EDP: 发现 Endpoint │ │ ──────────────────────────────────────────────────────────────── │ │ 1. SEDP Writer 广播 PUBLICATION_DATA / SUBSCRIPTION_DATA │ │ 2. 收到远程 Endpoint进行匹配 │ │ 3. 触发 on_writer_matched / on_reader_matched 回调 │ │ │ │ 顺序: PDP → EDP (先有 Participant 才能有 Endpoint) │ │ │ └────────────────────────────────────────────────────────────────────┘7. 总结┌────────────────────────────────────────────────────────────────────┐ │ PDP 总结 │ ├────────────────────────────────────────────────────────────────────┤ │ │ │ 职责: 发现同一 Domain 内的所有 Participant │ │ │ │ 实现: SPDP (Simple Participant Discovery Protocol) │ │ │ │ 内置端点: │ │ • SPDP Writer - 广播本地 Participant 信息 │ │ • SPDP Reader - 接收远程 Participant 信息 │ │ │ │ 消息: PARTICANT_DATA │ │ │ │ 与 EDP 关系: │ │ • PDP 先于 EDP 执行 │ │ • PDP 发现 Participant │ │ • EDP 发现 Endpoint (Writer/Reader) │ │ │ └────────────────────────────────────────────────────────────────────┘
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2558677.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!