传输层在DDS实体之间提供通信服务,负责通过物理传输实际发送和接收消息。DDS层将此服务用于用户数据和发现流量通信。然而,DDS层本身是独立于传输的,它定义了一个传输API,可以运行在实现该API的任何传输插件上。这样,它就不局限于特定的传输,应用程序可以选择最适合其需求的传输,或者创建自己的传输。
eProsima Fast DDS具有五种已实现的传输:
- UDPv4:IPv4上的UDP数据报通信。如果没有给定特定的传输配置(请参阅UDP传输),则默认情况下会在新的DomainParticipant上创建此传输。
- UDPv6:IPv6上的UDP数据报通信(请参阅UDP传输)。
- TCPv4:IPv4上的TCP通信(请参阅TCP传输)。
- TCPv6:IPv6上的TCP通信(参见TCP传输)。
- SHM:在同一主机上运行的实体之间的共享内存通信。如果没有给定特定的传输配置(请参阅共享内存传输),则默认情况下会在新的DomainParticipant上创建此传输。
虽然它不是传输模块的一部分,但在某些设置下,进程内数据传递和数据共享传递也可用于在实体之间发送消息。下图显示了Fast DDS中可用的不同传输之间的比较。
传输API
下图显示了eProsima Fast DDS的传输API上定义的类。它显示了抽象API接口,以及实现传输所需的类。