ZBLOG

10.11.7. BuiltinTransports It controls the builtin transports that will be used during the initialization of the DomainParticipant. Please refer to Managing the Builtin Transports for further information on builtin transports. This type must fol...

10.11.7 BuiltinTransports

BuiltinTransports 是用于控制在初始化 DomainParticipant 时所使用的内置传输模式的配置。内置传输允许 DDS 实现不同的通信方式,以适应各种应用场景和网络条件。

配置说明:

  1. builtinTransport:

    • 描述:定义要使用的内置传输模式。

    • 可选值:

      • NONE: 不使用任何内置传输。
      • DEFAULT: 使用默认传输设置,通常是 UDPv4。
      • DEFAULTv6: 使用 IPv6 的默认传输设置。
      • SHM: 使用共享内存进行进程间通信,适合同一机器上的多个进程之间低延迟数据交换。
      • UDPv4: 使用 IPv4 协议的用户数据报协议(UDP)。
      • UDPv6: 使用 IPv6 协议的用户数据报协议(UDP)。
      • LARGE_DATA: 专门处理大数据量传输的模式,提供优化以支持更大的消息负载。
    • 默认值:DEFAULT。这意味着如果未显式指定,将使用默认的 UDPv4 模式。

属性配置:

  • max_msg_size

    • 描述:指定在传输层可以接收或发送的最大消息大小。
    • 有效值范围:从 1 到 (2^32)-1 字节,即 4294967295 字节。这允许很大尺寸的数据包,但具体限制依赖于网络条件和应用需求。
    • 类型:uint32_t(无符号整型)。
    • 默认值:65500 字节,这是为了避免与底层协议(如 UDP)的最大负载限制冲突,并留有足够空间以防头部信息占用。
  • sockets_size

    • 描述:发送和接收套接字缓冲区的大小。
    • 有效值范围:从 0 到 (2^32)-1 字节。为确保良好的性能,这个参数应该根据预期负载和网络条件调整。
    • 类型:uint32_t。
    • 默认值:操作系统默认缓冲区大小。这个选择通常能满足一般情况下的数据交换需求,但在高负载环境下可能需要手动调整以提升吞吐量。
  • non_blocking

    • 描述:是否使用非阻塞发送调用。
    • 有效值:true 或 false。如果设为 true,则发送调用不会被阻塞,允许程序继续执行其他任务,而不等待发送完成;如果设为 false,则会阻塞直至发送操作完成。
    • 类型:bool(布尔型)。
    • 默认值:false。在大多数场景下,这种阻塞行为是可接受并且能够简化代码逻辑,但在对实时性要求高的应用中,可以考虑启用非阻塞模式。
  • tcp_negotiation_timeout

    • 描述:逻辑端口协商时的超时时间,仅适用于 LARGE_DATA 模式。这是为了确保在长时间无响应时能够退出协商过程,并采取相应措施。
    • 有效值范围:从 1 到 (2^32)-1 毫秒。
    • 类型:uint32_t。
    • 默认值:0,表示没有设置超时,这可能导致在某些情况下无限期地等待协商完成,因此建议根据实际情况合理配置这一参数。

应用场景

  • 在设计 DDS 应用程序时,根据不同应用对带宽、延迟及可靠性的需求,可以选择合适的 builtinTransport 和属性。例如,在资源受限或局域网环境中,可以选择 SHM 来减少延迟,而在广域网中则可能更倾向于 UDPv4UDPv6 提供更好的兼容性和灵活性。

  • 对于需要大量数据交换或实时性强的数据流场景,例如视频流处理或大规模分布式系统,可以考虑将 builtinTransport 设置为 LARGE_DATA 并合理配置相关参数,如增加 max_msg_size 和调优缓冲区大小,以提高性能和稳定性。同时也要关注网络特性来避免过多的数据丢失与重发。

综上所述,通过恰当配置 BuiltinTransports 的各项参数,开发者可以针对具体应用场景有效提升 Fast DDS 中的数据传输效率、延迟及整体表现。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=21650

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?