这段文字讲解了如何配置Fast DDS(Data Distribution Service)以通过互联网或广域网(WAN)进行通信的场景。以下是主要内容的详细解释:
1. 基本概念
- DomainParticipant:在Fast DDS中,DomainParticipant是用于参与数据交换的实体,可以视为一个节点。
- TCP服务器和客户端:一个DomainParticipant可以作为TCP服务器,在特定端口上监听,而另一个DomainParticipant则作为TCP客户端连接到这个服务器。
2. 网络配置
- 在图示场景中,一个DomainParticipant作为TCP服务器,监听5100端口,并通过具有公用IP(80.80.99.45)的路由器连接到WAN。
- 另一个DomainParticipant作为TCP客户端,需要在其初始对等体列表中配置服务器的IP地址和端口。
3. WAN地址设置
- 使用
set_WAN_address(wan_ip)
方法设置参与者定位器中的WAN IP地址,以便在发现阶段期间进行通信。
注意事项:
- 使用
setWAN()
方法手动设置的WAN IP地址会被set_WAN_address()
覆盖,因此不应使用setWAN()
来设置单播定位器的WAN IP。 - 对于单播定位器,只能使用
setIPv4()
或setIPv6()
方法来分配IP地址,这些方法通常用于局域网(LAN)IP地址,但某些配置允许使用它们与WAN IP地址一起工作。
4. 客户端初始对等体列表调整
根据服务器单播定位器是否已配置,其初始对等体列表需要相应调整:
如果服务器的单播定位器使用LAN IP:
- 可以仅用服务器的WAN IP(通过LAN IP设置)来配置初始对等体。
- 或者,可以同时配置LAN和WAN IP。
如果服务器的单播定位器使用WAN IP:
- 初始对等体必须仅用服务器的WAN IP来配置,通过LAN设置。
- 或者,同时使用LAN和WAN设置。
如果服务器没有设置任何单播定位器:
- 同样可以仅用服务器的WAN IP来配置初始对等体。
- 或者,同时配置LAN和WAN IP。
5. 注意事项
- 手动设置单播定位器是可选的。如果未进行此操作或者逻辑端口为0,则客户端初始对等体不应设定其逻辑端口(或者将其设定为0)。否则,初始对等体的逻辑端口必须与服务器的一致。
6. 服务端网络要求
- 在服务端,路由器需要配置为将所有流量转发到5100端口上的TCP服务器。通常,仅需将5100端口进行NAT路由映射到机器上即可。同时,应确保任何防火墙都已正确配置以允许流量进入。
7. 公共IP地址设置
为了允许通过WAN接收连接,TCPv4TransportDescriptor
必须在其公共IP地址字段(wan_addr成员变量)中指明所需的公用IP。这对于成功建立外部连接至关重要。
整体来说,该文档提供了一系列步骤和注意事项,以帮助用户在需要跨越广域网时有效地使用Fast DDS进行数据分发。
内容由零声教学AI助手提供,问题来源于学员提问