Fast DDS入门八、Fast DDS的发现机制

这篇具有很好参考价值的文章主要介绍了Fast DDS入门八、Fast DDS的发现机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


所有DDS都具有三个最重要的机制,一是发现机制,二是收发机制,三是QoS机制。DDS的发现机制是高可靠性和即插即用扩展性的实现基础,也是DDS区别于传统消息队列、原始套接字程序的主要特征。因此,可以说发现机制不仅是Fast DDS的核心机制,也是所有DDS的核心机制,不了解发现机制,则不能进阶为DDS高手。

Fast DDS作为一种数据分发服务(DDS)实现,它也提供了发现机制,允许跨域参与者自动查找和匹配DataWriter和DataReader,以便他们可以开始共享数据。对于Fast DDS的几种发现机制,发现过程共分为两个阶段执行。本节可与上节对照,互相参考。

一、发现阶段

1、参与者发现阶段(PDP):在此阶段,域参与者确认彼此的存在。为此,每个DomainParticipant都会定期发送通知消息。当两个给定的DomainParticipant存在于同一DDS域中时,它们将匹配。默认情况下,使用已知的多播地址和端口(使用DomainId计算)发送通知消息。此外,还可以指定使用单播发送通知的地址列表。此外,还可以配置此类通知的周期性。
2、端点发现阶段(EDP):在此阶段,DataWriter和DataReader相互确认。为此,DomainParticipants使用PDP期间建立的通信信道,彼此共享有关其DataWriter和DataReader的信息。除其他外,此信息还包含主题和数据类型。要使两个端点匹配,其主题和数据类型必须一致。一旦DataWriter和DataReader匹配,它们就可以发送/接收用户数据流量了。

可以使用PDP阶段传输有关运行DomainParticipant的主机、用户和进程(物理信息)的信息。

二、四种发现机制

Fast DDS提供以下发现机制:
简单发现:这是默认机制。它支持PDP和EDP的RTPS标准,因此提供与任何其他DDS和RTPS实现的兼容性。

静态发现:该机制在PDP阶段使用简单参与者发现协议(SPDP)(如RTPS标准所规定),但允许在事先知道所有DataWriter和DataReader的IP和端口、数据类型和主题时跳过简单端点发现协议(SEDP)阶段。

发现服务器:此发现机制使用集中式发现架构,其中DomainParticipant(称为服务器)充当元流量发现的中心。

手动发现:此机制仅与RTPS层兼容。它禁用PDP,允许用户使用其选择的任何外部元信息通道手动匹配和取消匹配RTPSParticipant、RTPSReader和RTPSWriter。因此,用户必须访问DomainParticipant实现的RTPSParticipant,并直接匹配RTPS实体。

三、简单发现协议介绍

SIMPLE发现协议是默认发现协议,它解决了在各种DDS实体之间建立端到端连接的问题。Fast DDS实现了SIMPLE发现协议,以提供与RTPS标准的兼容性。该规范将SIMPLE发现协议分成两个独立的协议:

简单参与者发现协议(SPDP):指定域参与者如何在网络中发现彼此;它宣布并检测同一域中DomainParticipant的存在。

简单端点发现协议(SEDP):定义所发现的域参与者为交换信息而采用的协议,以便发现每个域参与者中包含的DDS实体,即DataWriter和DataReader。

简单发现协议属性 描述
Initial Announcements 它定义了DomainParticipant初始声明的行为。
Simple EDP Attributes 它将SIMPLE协议定义为发现协议。
Initial peers 向其发送SPDP通知的DomainParticipant的IP/端口对列表。

1、Initial Announcement(初始通告)

RTPS标准的简单发现机制要求域参与者发送其在域中存在的通知。这些公告不是以可靠的方式传递的,可以由网络处理。为了避免消息处理导致的发现延迟,可以将初始通知设置为进行多次拍摄,以增加适当的接收机会。请参阅InitialAnnouncementConfig。

初始通知仅在创建参与者时进行。此阶段结束后,执行的唯一公告是基于租赁Duration_announcementperiod(而不是period)的标准公告。

属性名称 描述
count 它定义了启动时要发送的公告数量。
period 它定义了首次通告的具体期限。

2、Simple EDP Attributs(简单节点发现属性)

属性名称 描述
SIMPLE EDP 它将SIMPLE协议定义为EDP阶段的发现协议。DomainParticipant可以同时创建DataWriter和DataReader,也可以两者都不创建。
Publication writer and Subscription reader 它适用于仅实现一个或多个DataWriter的DomainParticipant,即不实现DataReader。它只允许创建与DataReader发现相关的EDP端点。
Publication reader and Subscription writer 它适用于仅实现一个或多个DataReader的DomainParticipant,即不实现DataWriter。它只允许创建与DataWriter发现相关的EDP端点。

3、Initial peers(初始对等列表)

每个RTPS参与者必须在两个不同的端口(一个与多播地址链接,另一个与单播地址链接)中侦听传入的参与者发现协议(PDP)发现元流量。快速DDS允许配置初始对等方列表,该列表包含一个或多个与远程域参与者PDP发现侦听资源相对应的IP端口地址对,从而本地域参与者不仅将其PDP流量发送到其域指定的默认多播地址端口,而且还发送到初始对等列表中指定的所有IP端口地址对。

DomainParticipant的初始对等方列表包含它将与之通信的所有其他DomainParticipate的IP端口地址对列表。它是DomainParticipant将在单播发现机制中一起使用的地址列表,或作为多播发现的替代。因此,这种方法也适用于多播功能不可用的场景。

RTPS参与者的发现流量单播侦听端口使用以下公式计算:7400+250域ID+10+2参与者ID。因此,例如RTPSParticipant在域0(默认域)中操作并且其ID为1,则其发现流量单播侦听端口将为:7400+2500+10+21=7412。默认情况下,Fast DDS使用元流量多播定位器作为初始对等点。文章来源地址https://www.toymoban.com/news/detail-570141.html

到了这里,关于Fast DDS入门八、Fast DDS的发现机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 系统平台同一网络下不同设备及进程的话题通讯--DDS数据分发服务中间件

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理

    2024年02月08日
    浏览(76)
  • SOA协议DDS和Some/IP对比

    SOME/IP 和 DDS 均已被纳入AUTOSAR AP的平台标准中。 SOME/IP的全称为:Scalable service-Oriented MiddlewarE over IP,是一种面向服务的传输协议。 严格地说,SOME/IP不是一款特定的产品,而是一种技术标准。 其最早由宝马在2012-2013年开发,并在2014年集成进AUTOSAR 4.2.1中。 当前,全球最大的商

    2024年02月06日
    浏览(29)
  • 【软件定义汽车】SOA协议DDS和Some/IP对比

    SOME/IP 和 DDS 均已被纳入AUTOSAR AP的平台标准中。 SOME/IP 和 DDS是在不同的应用场景和不同的需求下诞生的技术,所以它们之间注定有很大的区别。 SOME/IP的全称为:Scalable service-Oriented MiddlewarE over IP,是一种面向服务的传输协议。 严格地说,SOME/IP不是一款特定的产品,而是一种

    2024年02月07日
    浏览(28)
  • 工业级数据分发服务DDS之安全篇

    在DDS系统中,我们在以数据为中心的发布-订阅模型中有一组发布者和订阅者。例如,让我们分析下图所示的系统,其中我们有以下节点: Alice:发布Topic-T的合法应用程序,允许发布信息。 Bob:订阅Topic-T的合法应用程序,允许访问信息。 Eve:未经授权订阅Topic-T的窃听者,执行

    2023年04月19日
    浏览(32)
  • CoreDX DDS应用开发指南(9)服务质量QoS

            DDS的强大功能之一是支持各种服务质量(QoS)设置。QoS设置允许应用程序开发人员定制发布者、订阅者的行为以及它们之间的通信。         从DomainParticipantFactory到DataReader和DataWriter,大多数DDS实体都有一组适用的QoS设置。QoS设置包含在一个结构中。      

    2024年02月08日
    浏览(41)
  • 基于vivado DDS ip核的DDS信号发生器(可调频调相)

    基于Vivado DDS ip核的DDS信号发生器: 在Vivado软件中调出DDS ip核进行设置,很多参数可以参考xilinx官方手册,比较重要的是System Clock系统时钟和Phase Widh相位宽度的设置,这是最终得到波形的频率和相位所需要的基础参数,在这里我分别设置为50Mhz和16bit。 在implementation页面设置频

    2024年02月12日
    浏览(27)
  • AD9910模块高速DDS模块、功能性能讲解、开发调试注意事项、代码详解、电子设计大赛DDS

    AD9910是一款内置14 bit DAC的直接数字频率合成器(DDS),支持高达1GSPS的采样速率。AD9910采用高级DDS技术,在不牺牲性能的前提下可极大降低功耗。DDS/DAC组合构成数字可编程的高频模拟输出频率合成器,能够在高达400MHz的频率下生成频率捷变正弦波形。 用户可以访同三个用于控制

    2024年02月16日
    浏览(29)
  • 具于xilinx FPGA的可动态配置DDS频率控制字的DDS IP核使用例程详解

    本文用于讲解xilinx IP 的dds ip examples(动态配置频率)的功能说明,方便使用者快速上手。 本examples 是月隐编写的针对DDS的使用demo,实现通过vio控制频率控制字来调整DDS的输出频率,为大家演示一个可动态配置DDS频率的例程。 例程的平台: 1) 硬件平台:XC7Z020CLG484-2 2) FP

    2024年02月02日
    浏览(31)
  • FPGA——DDS

    DDS DDS 是直接数字式频率合成器(Direct Digital Synthesizer)的英文缩写,是一项关键的数字化技术。利用数字方式累加相位,再以相位之和作为地址来查询正弦函数表得到正弦波幅度的离散数字序列,最后经D/A变换得到模拟正弦波输出。在系统时钟一定的情况下,输出频率决定于

    2024年02月08日
    浏览(33)
  • DDS中间件设计

    应用层 DDS层 RTPS层 传输层 软件层次 FastDDS整体架构如下,这里可以看到DDS和RTPS的关系。另外缺少一部分IDL(统一描述语言),其应该是Pub、Sub的反序列化、序列化工具。 在RTPS层,主角是WriterReader,其接口复杂和灵活。DDS层,主角是PublisherSubscriber。 执行模型 FastDDS中每个节

    2024年02月14日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包