传输层在 DDS(数据分发服务)中扮演着至关重要的角色,它负责实现不同 DDS 实体之间的通信。具体而言,传输层主要有以下几个功能和特点:
1. 通信服务
- 发送与接收消息:传输层负责在物理网络上传输实际的数据消息,包括用户数据和发现流量(discovery traffic)。这意味着它处理所有与网络相关的操作,比如将数据从一个参与者发送到另一个参与者。
2. 抽象化
- 运输独立性:DDS 层本身是与传输方式无关的。这意味着 DDS 定义了一套传输 API,可以运行于任何实现了该 API 的传输插件上。这样,应用程序就不受限于特定的运输协议,而是可以选择最适合其需求的协议,或甚至开发自定义的协议。
3. 提供多种已实现的传输方式
eProsima Fast DDS 默认提供了五种不同的传输机制:
- UDPv4 和 UDPv6:分别支持 IPv4 和 IPv6 的 UDP 数据报通信。默认情况下,如果没有特定配置,新创建的 DomainParticipant 会使用 UDPv4。
- TCPv4 和 TCPv6:分别支持 IPv4 和 IPv6 的 TCP 通信。
- SHM (共享内存):用于在同一主机上运行的实体之间进行共享内存通信。如果没有特别配置,也会默认使用此方式。
4. 内部过程和数据共享交付
尽管内部过程(intraprocess)数据交付和数据共享交付并不属于运输模块的一部分,但它们也为某些设置下实体间的信息交换提供了可能。这使得在同一进程内或通过共享内存更高效地交换信息成为可能。
总结
总之,DDS 的传输层旨在提供一种灵活且可扩展的方法来进行消息传递,使得用户能够根据其系统架构和性能需求选择最适合其应用场景的通讯协议。同时,它抽象了底层网络细节,使开发人员可以专注于业务逻辑而无需深入了解各个网络协议。
内容由零声教学AI助手提供,问题来源于学员提问