当前位置: 首页 > news >正文

DDS Discovery数据

9.6.2.1 Discovery traffic
        Discovery流量是由Participant和Endpoint发现协议生成的,对于Simple Discovery Protocols(SPDP和SEDP),discovery流量在Participant内建(builtin)的终端节点(Endpoint)之间交互。
        SPDP的内建(builtin)终端节点上配置了well-known端口,如下表,
        

Discovery traffic type   |        SPDP well-known port        |  Default port number expression
------------------------   ----------------------------------   ---------------------------------Multicast              |   SPDP_WELL_KNOWN_MULITICAST_PORT  |  PB + DG * domainid + d0
------------------------   ----------------------------------   ---------------------------------Unicast               |   SPDP_WELL_KNOWN_UNICAST_PORT     | PB + DG * domainid + d1 + PG * partid
------------------------   ----------------------------------   ---------------------------------


        
        在这里,domainid是Participant所属的domain的ID
        partid是participant的标识符(participantid在RTPSDomainImpl::createParticipant中赋给RTPSParticipantAttributes)
        DG = DomainID Gaid = 250
        PG = ParticipantId Gain = 2
        PB = Port base = 7400
        d0, d1, d2, d3是额外的偏移值
        d0 = 0
        d1 = 10
        d2 = 1
        d3 = 11
        
        SPDP和SEDP使用相同的通信端口。
    
    9.6.2.2 User traffic
        User流量在Participant创建的User终端节点(Endpoint)之间交互。因此,User流量和Discovery(SPDP,SEDP)无关。User终端节点使用的端口的计算方式如下:
      

User traffic type    |    Default port number expression
--------------------   -----------------------------------------------Multicast          |  PB + DG * domainId + d2
--------------------   -----------------------------------------------Unicast            |  PB + DG * domainId + d3 + PG * participantId   
--------------------   -----------------------------------------------


      
    9.6.2.4 Default multicast address
        默认预配置的地址集合中必须包含如下组播地址(UDPv4):

DefaultMulticastLocator = {LOCATOR_KIND_UDPv4, “239.255.0.1”, PB + DG * domainId + d0}


        最后一个是组播的端口
        所有的Participant的PDP通信locator中必须包括该地址
   

SPDPbuiltinParticipantWriter.readerLOocators CONTAINS DefaultMulticastLocator
SPDPbuiltinParticipantReader.multicastLocatorList CONTAINS DefaultMulticastLocator

  

    5.3.2.3. Initial peers  (https://fast-dds.docs.eprosima.com/en/latest/fastdds/discovery/simple.html)
         根据RTPS标准,每个RTPSParticipant必须在两个端口上监听PDP元数据信息,其中一个端口绑定单播地址,另一个绑定组播地址。
         FastDDS允许用户自己配置initial peers(初始化对等节点列表),其中包括一个或者多个IP+端口,这些IP+端口分别是不同远端Participant监听用于交换PDP数据的,因此本地的Participant只需要想这些initial peers发送PDP流量数据即可。
         Participant的initial peers中包含IP和端口的键值对集合,这些IP+端口是要和本地Participant进行PDP流量交互的其他Participant所监听的,这些地址可以是单播地址或者组播地址。
         如果initial peers中没有元素的话,那么DefaultMulticastLocator会被加入initial peers。

http://www.xdnf.cn/news/19891.html

相关文章:

  • PM2模块
  • AI专题(一)----NLP2SQL探索以及解决方案
  • std::unordered_set(C++)
  • Java课程内容大纲(附重点与考试方向)
  • 算法01-最小生成树prim算法
  • C语言复习笔记--字符函数和字符串函数(上)
  • Xen安装ubuntu并启动过程记录
  • final关键字带来的问题
  • 大数据赋能,全面提升‘企业服务平台’实际效能!
  • 见多识广3:帕累托最优解与帕累托前沿
  • HAL详解
  • C#学习第16天:聊聊反射
  • API 即 MCP|Higress 发布 MCP Marketplace,加速存量 API 跨入 MCP 时代
  • 电脑开机启动慢的原因
  • Python 的 pip 命令详解,涵盖常用操作和高级用法
  • ES数据库索引报错
  • 十、数据库day02--SQL语句01
  • 基于Python的MCP Server技术解析:从AI代理到实时数据处理的智能化实践
  • 博客系统案例练习-回顾
  • MMAction2安装
  • 3、整合前端基础交互页面
  • 幽灵依赖与常见依赖管理
  • C++每日训练 Day 17:构建响应式加载动画与异步数据处理
  • 笔记本电脑屏幕闪烁是怎么回事 原因及解决方法
  • 【Drools+springboot3规则匹配】
  • 【计算机网络 | 第一篇】计算机网络基础知识
  • 【Linux】部署vfstpd服务端,让客户端通过访问不同的端口号,可以实现访问不同的目录
  • 刀片服务器的散热构造方式
  • C++17 新特性简解
  • 分享4-5月工信部排考计划