1

在 RTI connext DDS 的 UDP 传输中使用多个端口而在 RTI connext DDS 的 TCP/IP 中只使用一个端口有什么好处?

4

2 回答 2

1

UDP 端口映射由OMG RTPS DDS 互操作性有线协议规范( http://www.omg.org/spec/DDSI-RTPS/ ),平台特定模型 (PSM):UDP/IP定义。

有一些优点/要求证明使用不同的端口进行发现和数据流量是合理的。最相关的是:

  • 流量区分:使用不同的端口更容易识别不同类型的流量。这对于调试(例如,使用wireshark)和对发现和用户数据流量应用不同的处理都是有用的。
  • 并行性:通过使用多个端口,可以并行化发现和用户数据流量的处理和生成。这在某些对用户数据流量有严格延迟要求的环境中至关重要。

RTI Connext TCP Transport设计满足这两个要求,但它还有一个附加要求:

  • NAT 支持:TCP 传输应该很容易在 NAT 环境中配置。

RTI Connext TCP Transport支持一种模式,它只打开一个服务器端口来接受通信两个参与者所需的所有连接(在配置的 server_bind_port 上)。通过这种方式,它与只有运行RTI TCP服务器的参与者具有可公开访问的地址和端口的 NAT 环境兼容。然后,运行RTI TCP客户端的参与者将打开与该服务器的连接。

请注意,即使RTI TCP 传输仅打开一个服务器端口/套接字,服务器也仅使用该套接字来接受连接。RTI TCP 传输仍在打开不同的连接来处理每种流量类型和方向(传入/传出发现、传入/传出用户数据)。仍然满足并行度要求。

关于流量区分,RTI TCP 传输向 RTPS 流量添加了额外的标头,因此可以在线上轻松识别。

请注意,这是特定于RTI的,因为目前没有针对OMG TCP PSM 模型的规范,但它目前正在由OMG开发。

于 2017-11-27T11:19:12.467 回答
0

我无法回答有关“优势”的问题。但是,我可以解释为什么要这样做,因此您可以做出自己的判断。

UDP 匿名点对点发现方法是在标准中定义的。该标准定义了如何在给定地址上为给定参与者到达端口号。因为是在标准中,那么Vendor-A的DDS可以立即找到Vendor-B的DDS。

UDP 定义的标准没有可比的 TCP 模拟。最终会有,但目前,每个希望提供 TCP 传输的供应商都可以自由地做他们想做的事。这意味着在大多数情况下,Vendor-A 的方法不会与 Vendor-B 的方法一起使用,因此它们不会看到对方。

顺便说一句,这就是为什么共享内存传输也不是供应商可互操作的。

RTI Connext TCP/IP 传输使用单个端口进行发现。之后,它使用为对等方之间的套接字连接创建的任何临时端口。

于 2017-11-25T23:30:41.577 回答