RTI DDS大数据碎片

有两种类型的碎片:IP级碎片和DDS级碎片。

当传输层(通常是UDP或TCP)提供的有效载荷超过适合链路帧的最大有效载荷大小(也称为链路最大传输单元或链路MTU)时,就会发生IP级碎片。如果网络是以太网,则链路MTU是以太网帧的最大大小。当接收器NIC获得IP片段时,它会将它们存储在缓冲区中,直到接收到所有片段,并且可以重新组装以形成UDP数据报或TCP段。当接收到所有片段时,执行重新组装,并将消息提供给应用层。

如果您尝试发送一个大小大于MTU的DDS样本,但尚未设置DDS级碎片,您将看到IP级碎片。众所周知,IP级碎片是脆弱的,如果您的系统配置不正确,可能会导致通信问题。例如,当您的应用程序依赖于传输来对数据进行分片,并且一个分片丢失时,则需要重新发送所有分片以修复丢失的分片——而如果您使用Reliable reliability(见7.5.21 reliability QosPolicy),Connext DDS可以修复单个丢失的DDS分片。

https://community.rti.com/static/documentation/connext-dds/6.1.1/doc/manuals/connext_dds_professional/users_manual/index.htm#users_manual/LargeData_Fragmentation.htm?Highlight=ASYNCHRONOUSicon-default.png?t=N7T8https://community.rti.com/static/documentation/connext-dds/6.1.1/doc/manuals/connext_dds_professional/users_manual/index.htm#users_manual/LargeData_Fragmentation.htm?Highlight=ASYNCHRONOUS

23.3.3异步发布

如果您使用的是Reliable 7.5.21 RELIABILITY QosPolicy,DDS级碎片需要异步发布。发送大于传输的message_size_max的可靠样本需要异步发布,这样碎片化过程就可以在编写样本的线程的上下文之外进行。

如果您使用的是尽力而为的可靠性,则大于message_size_max的样本将被分割;但是,不建议使用此配置(尽力而为,加上碎片化),因为您更有可能丢弃样本。错误“COMMENDSrWriterService_on_Submessage:!write-resend。可靠的大数据需要异步写入”来自序列化样本大于传输的message_size_max,而7.5.21可靠性QOS策略设置为可靠性QOS,但未启用异步发布。

要在使用可靠可靠性的同时对DDS数据包进行分段,请将7.5.20 PUBLISH_MODE QosPolicy(DDS扩展)中的kind设置为ASYNCRONOUS_PUBLISH_MODE_QOS。使用这些设置,Connext DDS将使用单独的线程发送片段。这将减轻应用程序线程执行碎片和发送工作的负担。有关异步发布器的更多信息,请参阅7.4.1异步发布器QoS策略(DDS扩展)。

可能还需要将内置PublicationBuiltinTopicData和SubscriptionBuiltinTopDataWriters的发布模式设置为异步。这是通过9.5.3 DISCOVERY_CONFIG QoS策略(DDS扩展)完成的(详见23.3.5示例)。PublicationBuiltingTopicData或SubscriptionBuiltnTopicData样本较大的最常见原因是序列化的TypeCode或TypeObject,但您也可能发送了大量属性(通过7.5.19 PROPERTY QosPolicy(DDS扩展))或具有较大的ContentFilteredTopic筛选器表达式,以及其他大小可变的字段,这可能会导致样本大小较大。也可能是样本不是特别大,但如果您将message_size_max设置为一个较小的值来强制DDS级分段,则内置DataWriters发送的样本可能会超过此大小并需要分段。

使用异步发送模式可减少DDS碎片

异步发布的优点:

异步发布可能会增加延迟,但具有以下优点:

  • write() 调用不进行任何网络调用,因此速度更快、更具确定性。当用户线程正在执行时间关键代码时,这一点变得很重要。
  • 当数据以突发方式写入或将大型数据类型作为多个分段发送时,流控制器可以限制异步发布线程的发送速率,以避免淹没网络。
  • 针对同一目标的异步写入的 DDS 样本将合并到单个网络数据包中,从而减少带宽消耗。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/873005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大模型】FAISS向量数据库记录:从基础搭建到实战操作

文章目录 文章简介Embedding模型BGE-M3 模型亮点 FAISS是什么FAISS实战安装faiss加载Embedding模型创建FAISS数据库搜索FAISS数据删除FAISS数据保存、加载FAISS索引 总结 本人数据分析领域的从业者,拥有专业背景和能力,可以为您的数据采集、数据挖掘和数…

通用图形处理器设计GPGPU基础与架构(二)

一、前言 本系列旨在介绍通用图形处理器设计GPGPU的基础与架构,因此在介绍GPGPU具体架构之前,需要了解GPGPU的编程模型,了解软件层面是怎么做到并行的,硬件层面又要怎么配合软件,乃至定出合适的架构来实现软硬件协同。…

15- 微分方程

对三角函数不敏感

Linux - 基础开发工具(yum、vim、gcc、g++、make/Makefile、git、gdb)

目录 Linux软件包管理器 - yum Linux下安装软件的方式 认识yum 查找软件包 安装软件 如何实现本地机器和云服务器之间的文件互传 卸载软件 Linux编辑器 - vim vim的基本概念 vim下各模式的切换 vim命令模式各命令汇总 vim底行模式各命令汇总 vim的简单配置 Linux编译器 - gc…

提高记忆力7种自然(高效)的方法

你的记忆力如何?你的认知功能是否如你所希望的那样强大? 如果没有,那么你肯定会对将在本文中与你分享的记忆改善技巧感兴趣的。 不管你怎么想,或者别人怎么说,提高你记忆信息的能力是完全有可能的。只要知道正确的方法即可。(别担心,你并不需要做出任何重大的生活方式改…

10 个 OKR 提示将改变您执行 OKR 的方式

我们都喜欢好的表情包,因为它们很有趣,可以分享,非常适合与同事们一起开怀大笑。表情包可以为工作场所带来一种友情和轻松的感觉,从而建立一种健康的团队文化,这一点很重要。然而,我们都知道它们也会分散注…

怎么减少pdf格式的内存,怎么减少pdf文件大小

在数字化时代,pdf文件因其格式稳定、兼容性强等特点,成为工作与学习中的常用文档格式。然而,较大的pdf文件往往给存储和传输带来不便。本文将为你详细介绍如何巧妙减小pdf文件内存,助你轻松解决文件传输和存储的烦恼。 让我们来看…

基于SpringBoot的招生管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 个人中心 学生管理 专…

[C/C++入门][ifelse]19、制作一个简单计算器

简单的方法 我们将假设用户输入两个数字和一个运算符&#xff08;、-、*、/&#xff09;&#xff0c;然后根据所选的运算符执行相应的操作。 #include <iostream> using namespace std;int main() {double num1, num2;char op;cout << "输入 (,-,*,/): &quo…

OWASP 移动应用 2024 十大安全风险

1. OWASP 移动应用 2024 十大安全风险 开放全球应用程序安全项目 &#xff08;OWASP&#xff09; 是一个非营利性基金会&#xff0c;致力于提高软件的安全性。自 2014、2016 年两次发布了移动应用的十大风险后&#xff0c;今年再次发布2024版。这对移动应用软件的检查工具有着…

xcode下swift .infinity报Invalid frame dimension (negative or non-finite)错误

xcode又报错了&#xff1a;Invalid frame dimension (negative or non-finite) 报错原因 xcode升级后&#xff0c;调整frame的时候不建议使用width: .infinity或者height: .infinity 解决办法 1.使用 maxWidth 属性&#xff1a; 通过将 frame 的宽度属性更改为 maxWidth&am…

数据结构之细说链表

1.1顺序表的问题以及思考 经过上一篇顺序表的学习&#xff0c;我们知道顺序表还是有很多缺点 顺序表的缺点&#xff1a; 1.中间/头部的插入删除&#xff0c;实际复杂度为O(N) 2.增容需要申请新空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗 3.扩容一般…

3.5、matlab打开显示保存点云文件(.ply/.pcd)以及经典点云模型数据

1、点云数据简介 点云数据是三维空间中由大量二维点坐标组成的数据集合。每个点代表空间中的一个坐标点&#xff0c;可以包含有关该点的颜色、法向量、强度值等额外信息。点云数据可以通过激光扫描、结构光扫描、摄像机捕捉等方式获取&#xff0c;广泛应用于计算机视觉、机器人…

用了6年git,不知道cherry-pick是啥意思

背景 可能是测试开发角色原因&#xff0c;平时很少有代码冲突或多人协同的编码场景。今天有个协同项目&#xff0c;需要提交自己的代码到其它业务的代码库中&#xff0c;这个代码库是分支开发分支上线模式&#xff0c;同时会有多个同事提交代码&#xff0c;然后模块负责的同学…

AG32 的MCU与FPGA的主频可以达到568MHz吗

Customers: AG32/ AGRV2K 这个芯片主频和定时器最高速度是多少&#xff1f;用户期望 CPLD计时器功能0.1ns以下。 AGM RE: CPLD做不到 0.1ns的速率&#xff0c;这个需要10G以上的时钟。 那AGRV2K最高多少MHz呢&#xff1f; 一般200MHZ比较容易实现。 进一步说明&#xff1…

昇思25天学习打卡营第29天 | 文本解码原理--以MindNLP为例

今天是29天&#xff0c;学习了文本解码原理--以MindNLP为例。 MindNLP 是一个基于 MindSpore 的开源自然语言处理&#xff08;NLP&#xff09;库。它具有以下特点&#xff1a; 支持多种 NLP 任务&#xff1a;如语言模型、机器翻译、问答、情感分析、序列标记、摘要等&#xff…

如何在 Python 中使用 CSV 文件进行读写?

如何在 Python 中使用 CSV 文件进行读写&#xff1f; 文章目录 一、说明二、什么是 CSV&#xff1f;三、使用 csv.reader 在 Python 中读取 CSV 文件的步骤四、使用 with&#xff08;&#xff09; 语句实现代码五、如何使用 .readlines&#xff08;&#xff09; 在 Python 中读…

YOLOv5和LPRNet的车牌识别系统

车牌识别系统 YOLOv5和LPRNet的车牌识别系统结合了深度学习技术的先进车牌识别解决方案。该系统整合了YOLOv5目标检测框架和LPRNet文本识别模型 1. YOLOv5目标检测框架 YOLO是一种先进的目标检测算法&#xff0c;以其实时性能和高精度闻名。YOLOv5是在前几代基础上进行优化的…

硅谷裸机云多IP服务器怎么样?

硅谷裸机云多IP服务器是一种在硅谷地区提供的、具有多个IP地址的裸机云服务器。这种服务器结合了裸机服务器的高性能和云服务器的灵活性&#xff0c;同时提供了多个IP地址&#xff0c;为用户的各种需求提供了支持。以下是关于硅谷裸机云多IP服务器的一些详细信息&#xff0c;ra…

关于git clone速度极慢的解决方法

关于git clone速度极慢的解决方法 前言 如果没有一个可靠且稳定的魔法&#xff0c;接下来的就不用看了 尝试过的方法(未成功) 既然有成功&#xff0c;那么在探索过程中也必定会有失败的方法&#xff0c;下面也介绍一下我试过的没啥用的方法&#xff0c;给各位避雷&#xff…