DSOMEIP丢数据问题分析和总结:

(1)问题现象

        无论使用arm64硬件、x86 ubuntu电脑、ubuntu docker哪种组合进行DSOMEIP event通信,接收端都会在event payload长度增加到一定程度时udp方式出现丢数据现象。

        总体上arm64硬件略优于x86 ubuntu电脑,x86 ubuntu电脑略优于ubuntu docker。并且用wireshark抓包时每次都可以抓到丢的SOMEIP数据包,并且数据包完整并且TP顺序没有问题。

        如果使用vrte example的默认json配置文件,根据上面通信载体不同丢数据现象会出现在event payload长度为500KB、200KB、或50KB。

(2)问题分析

        问题可能是由于硬件资源和网络环境的限制,造成过大的数据包分成过多的TP(以1个tp长度1400为例,两个tp之间时间间隔大约为0.07-0.08ms),从而使接收端接收不及时tp无法组成完整的SOMEIP数据包。

(3)解决方法

 优化方案应该包含以下方面:

[a] 连续发送多个tp后,发送端等待1个小延时,如1ms。

[b] 默认接收端数据接收buffer是1MB,接收大于1MB的数据需要对应增加buffer长度。

[c] 优化SOMEIP-SD的过程,减少测试过程中SD对通信过程的影响。

发送端json几个重要配置的说明:

"event_burstSize":"20"    // 连续20个tp中间不加时间间隔,这个地方如果不填则默认为0

"event_maximum_segment_length": "0x578" // tp长度为1400

"event_separation_time":"0.001"                                  // 两个burst之间的时间间隔,这个从代码看很有误导性,其实可以填小数,单位是s而不是ms。这块之前我们理解错了,应该是json配置解析时比较隐蔽的乘以了1000,从代码看起来还以为直接填整数ms。

接收端json几个重要配置的说明:

"udp_maximum_receive_buffer_size": "5"  // 接收端buffer为5MB

附件为实验用的一对json文件。

在ubuntu docker环境下测了3000KB-1s和1000KB-350ms 10分钟都没有再出现丢数据

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

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

相关文章

CorelDRAW Graphics Suite2023绿色中文版本下载教程

CorelDRAW Graphics Suite2023版是领先的一体化软件包,它包括多个程序,如CorelDRAW、Corel PHOTO-PAINT、Corel CAPTURE、Corel Font Manager、Duplexing Wizard等,可全部安装,也可根据实际需要选择进行安装,都是最新版…

linux权限机制,

目录 用户与组,id,passwd 查看登录用户whomi,who,w 创建用户 useradd 修改用户信息usermod 删除指定用户userdel 组 ​编辑创建修改删除组groupadd groupmod groupdel 权限 ls-l 修改文件所属用户,所属组 chown,chgrp(change group) 修改权限 chmod 默认权…

CSS 模糊效果 CSS 黑白效果 CSS调整亮度 对比度 饱和度 模糊效果 黑白效果反转颜色

CSS 模糊效果 CSS 黑白效果 CSS调整亮度 饱和度 模糊效果 黑白效果 实现 调整亮度 饱和度 模糊效果 黑白效果 使用 filter1、模糊2、亮度3、对比度4、饱和度5、黑白效果6、反转颜色7、组合使用8、 filer 完整参数 实现 调整亮度 饱和度 模糊效果 黑白效果 使用 filter 1、模糊…

2023软工作业(一)——计算器

班级班级社区作业要求软件工程实践第一次作业-CSDN社区作业目标完成一个具有可视化界面的科学计算器参考文献Fyne 目录 作业要求 项目源码地址 作业目标 0. 界面及功能展示 1. PSP表格 2. 解题思路描述 3. 核心代码 4. 设计与实现过程 5. 程序性能改进 6. 单元测试展…

Qt扫盲-QSqlRelationalTableModel 理论总结

QSqlRelationalTableModel 理论总结 一、概述二、使用概述三、常用 一、概述 QSqlRelationalTableModel的行为类似于QSqlTableModel,但允许将列设置为进入其他数据库表的外键。 二、使用概述 在上面左边的截图显示了 QTableView 中的普通 QSqlTableModel。外键(…

分类预测 | MATLAB实现WOA-CNN-GRU-Attention数据分类预测

分类预测 | MATLAB实现WOA-CNN-GRU-Attention数据分类预测 目录 分类预测 | MATLAB实现WOA-CNN-GRU-Attention数据分类预测分类效果基本描述模型描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现WOA-CNN-GRU-Attention数据分类预测,运行环境Matlab2021b及以上&…

Ubuntu 安装PostgreSQL

网上有各种版本的,也可以去官网看官方的文档。我是下载的PostgreSQL-11.4版本的。找到以后直接复制网上的压缩包链接就可以。 $ mkdir /opt/postgresql && cd /opt/postgresql $ wget https://ftp.postgresql.org/pub/source/v11.4/postgresql-11.4.tar.gz…

基于规则架构-架构案例2019(三十九)

电子商务 某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分为不同的等级,并针对不同等级的用户提供相应的折扣方案。在需求分析与架…

运行软件mfc100u.dll缺失是怎么办?mfc100u.dll丢失解决方法分享

Mfc100u.dll 丢失的问题可能困扰着许多使用计算机的用户。Mfc100u.dll 是一个重要的动态链接库文件,它包含了许多功能模块,如字符串处理、数学计算、文件操作等。当 Mfc100u.dll 文件丢失或损坏时,可能会导致许多应用程序无法正常运行&#x…

OS 模拟进程状态转换

下面的这个博主写的很好 但是他给的代码print部分和语言风格python三识别不了 这个特别感谢辰同学帮我调好了代码 我放在主页上了 估计过两天就可以通过了 《操作系统导论》实验一:模拟进程状态转换_process-run.py-CSDN博客 这个补充一下他没有的:OS…

基于yum制作kylin系统docker镜像

注意,由于线上源版本与iso源存在差异,应采用iso源制作docker镜像 [rootlocalhost yeqiang]# yum install --installroot/home/yeqiang/kylin-docker/ yum 无法找到发布版本(可用 --releasever 指定版本) 警告:加载 /e…

正交对角化,奇异值分解

与普通矩阵对角化不同的是,正交对角化是使用正交矩阵对角化,正交矩阵是每列向量都是单位向量,正交矩阵*它的转置就是单位矩阵 与普通矩阵对角化一样,正交对角化的结果也是由特征值组成的对角矩阵 本质还是特征向量对原矩阵的拉伸…

【Java】异常

1. Java的异常概念 1.1 异常体系结构 从上图中可以看到: 1. Throwable:是异常体系的顶层类,其派生出两个重要的子类, Error 和 Exception 2. Error:指的是JVM无法解决的严重问题,比如:JVM的内部错误、资源…

澳大利亚新版《2023年消费品(36个月以下儿童玩具) 安全标准》发布 旨在降低危险小零件的伤害

2023年9月4日,澳大利亚政府发布了新的儿童玩具强制性安全标准《2023年消费品(36个月以下儿童玩具)安全标准》(Consumer Goods (Toys for Children up to and including 36 Months of Age) Safety Standard 2023)。该强制性标准旨在尽可能地降…

MySQL学习笔记20

备份过程需要考虑的因素: 1、必须制定详细的备份计划(策略)(备份频率、时间点、周期)。 一天做一次增量、一周做一次全量。 2、备份数据应该放在非数据本地,并建议多份备份。 可以放在另外一台服务器上…

python使用mitmproxy和mitmdump抓包以及对手机

mitmproxy是一个中间人角色,供python抓包使用。 本机环境:win10 64位,python3.10.4。首先安装mitmproxy,参考我的文章 记录一下python2和python3在同一台电脑上共存使用并安装各自的库以及各自在pycharm中使用的方法-CSDN博客 一…

Nginx的反向代理、动静分离、负载均衡

反向代理 反向代理是一种常见的网络技术,它可以将客户端的请求转发到服务器群集中的一个或多个后端服务器上进行处理,并将响应结果返回给客户端。反向代理技术通常用于提高网站的可伸缩性和可用性,并且可以隐藏真实的后端服务器地址。 #user…

Servlet开发-通过代码案例熟悉HttpServletRequest类

关于Servlet开发的流程推荐看servlet开发-通过Tomcat部署一个简单的webapp Servlet开发与idea集成的插件安装推荐看idea集成tomcat(Smart Tomcate插件安装) postman(第三方创建HTTP请求工具)的安装推荐看创建HTTP请求的几种方式…

组网行动指南:打造对跨国企业友好的专用网络环境

在全球数字化转型的浪潮下,越来越多的企业跨国发展业务,由于跨域网络的复杂性和自建网络架构的各种限制,导致分散在不同地理位置的站点无法实现数据互通和协作。 跨国企业组网常见痛点 痛点一:自建网络方案经常掉线,影…

【如何看待Unity收费】对标中小公司的待就业者的该如何做

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…