E2E工程问题:小周期转大周期Gateway

摘要:

本文讨论一个具体的工程问题,E2E报文对应的信号,由小周期转大周期导致的E2E校验失败问题。

工程中,网关节点很重要的一个功能就是路由。当然,E2E(End to End)报文也可路由,但是,路由的信号(Signal),如果周期不同,通信矩阵设计又未充分考虑,可能会带来一些预料之外的问题。本文讨论一个具体的工程问题,E2E报文对应的信号,由小周期转大周期导致的E2E校验失败问题。

1、问题描述

节点Node1和节点Node2之间通过网关节点(Gateway Node)通信,其中,某帧PDU受E2E保护。Node1通过CAN总线,以10ms周期发送E2E Tx PDU,发送给网关节点(Gateway Node),Gateway Node再通过Flexray总线,以320ms周期将此PDU信息路由给Node2,Node2接收E2E Rx PDU,并对此PDU做E2E校验。此E2E PDU的传输示意如下:

提示:Gateway Node仅仅是路由功能,不做E2E校验。路由时,如果Node1中的信号或者信号组配置了UB(Update Bit),路由信息之前,需要进行UB位检查。

(一)问题现象采集的数据如下所示:

如上图,在T1时刻,Node1停止发送E2E Tx PDU,即:E2E Tx PDU包含的信号SignalCnt停发。而在T2时刻,Node2接收到的SignalCnt UB = 1,继续接收SignalCnt,但是,此时的SignalCnt = 11,而上一次的SignalCnt = 12,Node2做E2E校验时,认为此时Sequence Number Error,进而进行了故障处理,eg:故障指示灯提示等。具体错误 :由于DeltaCounter >MaxDeltaCounter,导致E2EPW_STATUS_WRONGSEQUENCE。DeltaCounter的计算如下:(ReceiverCounter >= State->LastValidCounter)?(DeltaCounter = ReceivedCounter -State->LastValidCounter):(DeltaCounter = 15 + ReceivedCounter - State->LastValidCounter)由于Node2最新一次接收的值ReceiverCounter = 11,State->LastValidCounter = 12,DeltaCounter = 14。而配置的State->MaxDeltaCounter = 8,最终导致E2EPW_STATUS_WRONGSEQUENCE。

2、问题分析

这个问题的本质是因为信号小周期(本文:10ms)转大周期(本文:320ms)过程中,UB处理问题。如下图:

t0时刻,Node1正常发送E2E报文,且Tx UB = 1,Gateway Node正常路由信号SignalCnt,Rx UB = 1,Node2正常接收E2E报文,并做E2E校验;

t1时刻,Node1停发E2E报文,但是,t0~t1期间,由于Tx UB = 1,Gateway Node仍正常路由信号SignalCnt,且路由的SignalCnt值为11;

t1~t2期间,由于Tx UB = 0,Gateway Node不再路由信号SignalCnt;

t2时刻,由于Gateway Node所在的Flexray并没有停止通信,Gateway Node继续路由数据,而此时路由的SignalCnt = 11。由于t0~t1期间,Gateway Node的发送缓冲区数据有更新,因此,t2时刻发送数据时,UB = 1,因此,Node2接收到的Rx UB = 1,进而Node2继续校验Node1发送的E2E报文,由于此时,SignalCnt = 11,不是预期的SignalCnt = 13,且DeltaCounter >MaxDeltaCounter,进而导致校验失败。

3、处理措施

如上的分析,问题并不出在收/发两方,而是通信矩阵设计时,未有充分考虑E2E路由的问题,即:小周期转大周期的E2E路由问题。

如上的通信设计中,已经失去了E2E的保护意义。因为发送端的Counter值路由到接收端时,可能存在随机性。发送端每10ms发送一次,而接收端每320ms接收一次,也就是说,发送端的Counter更新了32次,接收端才接收到一次。收/发两端SignalCnt变化情况如下所示:

如上图,可以看出,接收端在接收到SignalCnt存在一定的随机性。

所以,上述问题,需要系统重新评估和设计通信矩阵,或者接收端优化网络休眠时的E2E处理策略。

来源 **|**开心果 Need Car

相关推荐
网安蟹佬霸4 小时前
2026网络安全每日学习计划:每天学多久?学什么?怎么安排?照着做就行!
网络·学习·安全·web安全·学习路线·网安
念恒123064 小时前
传输层协议TCP
服务器·网络·tcp/ip
慧一居士4 小时前
Sass和Less功能、使用场景、用法对比
前端·css·less·sass
leoZ2314 小时前
AI+前端提效-09 AI赋能前端测试:单元测试、E2E测试自动生成,提升覆盖率
前端·人工智能·opencv·目标检测·数据挖掘·单元测试·语音识别
爱研究的小梁4 小时前
打破时延‑带宽悖论|乾元通 QMP‑UDP,为无人载具提供低延时高带宽原生通信方案
网络·网络协议·udp
hkNaruto4 小时前
【游戏】低帧率策略游戏类帧同步保障公平性软件详细设计文档
网络·游戏
计算机魔术师4 小时前
OpenAI 评定 Astra 达到网络安全 Critical 能力阈值,将受限发布
前端
JavaGuide4 小时前
SpaceX 工程师的 AI Coding 玩法太牛了, 200 多个 Agent 并行!
前端·后端
小猪code4 小时前
frp 80/443 Web 服务两种部署模式实操笔记
前端·笔记
JamesZhang800784 小时前
Chrome相关知识点
前端