ZBLOG

The Locator defines the following data members: Member Data type Description kind int32_t Unique identifier of the transport type. port uint32_t The channel port. address octet[16] The channel address. In TCP, the port of the locator ...

要理解您提到的 Locator 中的物理端口和逻辑端口的区别,我们可以逐步分析其内容:

Locator 数据成员

  • kind (int32_t): 这是一个唯一标识符,表示传输类型,例如 TCP 或 UDP。
  • port (uint32_t): 这是一个 32 位无符号整数,用于指定通道的端口。在此字段中,包含了物理端口和逻辑端口的信息。
  • address (octet[16]): 这是用于指定通道地址的 16 字节数组。根据使用的是 IPv4 还是 IPv6,这部分会有所不同。

物理端口与逻辑端口

  1. 物理端口:

    • 实际上是由操作系统管理的真实网络设备端口。
    • 在 Locator 的 port 成员中,由两个最低有效字节(least significant bytes)存储这个值。这意味着如果你取出 port 字段的最后两个字节,就能得到物理端口。
  2. 逻辑端口:

    • 与 RTPS 协议相关,用于区分不同实体。换句话说,逻辑端口是在同一 IP 地址下,RTPS 用来识别和区分多个 DDS 应用程序的数据流或连接。
    • 存储在 port 字段的两个最高有效字节(most significant bytes)。如果你取出这部分信息,可以确定每个应用程序对应的 RTPS 层级的逻辑连接。

TCP 和 UDP 的区别

  • TCP 中:

    • 可以通过单个物理端口(例如:8080)来处理多个 DDS 应用程序,每个应用程序都有各自独立的 RTPS(逻辑)端口。因此,通过这种方式,多个 DDS 应用可以共享相同的物理资源,只需打开一个实际网络接口即可。
  • UDP 中:

    • 没有这样的区分,因为 UDP 本身并不维护连接状态。这里只有一个固定的物理/RTPS 组合,即所有数据流都通过相同的物理/RTPS 通道进行交换。

总结

整体而言,这种设计允许在 TCP 上实现更高效和灵活的数据通信,同时确保各种 DDS 应用能够使用相同网络资源而不会冲突。而在 UDP 上,由于其无连接特性,设计则比较简单。理解这些概念对于优化 DDS 系统架构非常重要。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?