码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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分钟都没有再出现丢数据

  • 相关阅读:
    多台服务器sessionId共享
    【Redis】Redis实现分页+多条件模糊查询组合方案
    安装虚拟机VM和操作系统CentOS
    【探索AI】Sora - 探索AI视频模型的无限可能
    LeetCode //C - 173. Binary Search Tree Iterator
    nohup command>/dev/null 2>&1 含义详解
    android项目实践说明
    【蓝桥杯选拔赛真题63】Scratch云朵降雨 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析
    竞赛选题 基于人工智能的图像分类算法研究与实现 - 深度学习卷积神经网络图像分类
    线性代数的本质笔记
  • 原文地址:https://blog.csdn.net/usstmiracle/article/details/133266634
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号