接下来就通过解析SOME/IP一起来揭开SOME/IP的神秘面纱,以便为后续车载以太网的学习打好基础。
4.1 Wireshark报文例子
4.1.1 Request/Response报文
4.1.2 Field/Getter报文
4.1.3 Notify报文
4.2 相关标识符与版本说明
如下图2所示为SOME/IP协议的Header结构体:
图2 SOME/IP协议Header
如上图中标记的Message ID,Request ID, Protocal Version 以及Interface Version的详细解释如下表2所示:
表2 相关标识符与版本说明
4.3 Length
Length正如上图2所示,其涵盖的范围是Request ID开始至SOME/IP报文结束。
4.4 Message Type
用来识别不同的消息类型,目前存在的类型如下图3所示,其中TP表示分包的报文,按照AUTOSAR标准(R21-11)定义如下:
图3 Message Type表
4.5 Return Code
Return Code用来指示Message是否被成功处理了,或针对请求中的错误内容进行反馈,如下图4为AUTOSAR(R21-11)中定义的Return Code类型:
图4 Return Code定义表
4.6 Payload
有效负载/数据段。Parameter被携带于Payload字段中 。
- 数据长度说明
SOME/IP有效载荷字段的大小取决于所使用的传输协议。
使用UDP时,SOME/IP有效负载应在0到1400字节之间。需要对1400字节进行限制,以允许将来对协议栈进行更改(例如更改为IPv6或添加安全手段)。
由于TCP支持有效负载的分段,因此会自动支持更大的尺寸。
- 端序问题
应该使用大端序(高字节低地址)