下为TCP帧的someip帧,someip帧的首部被认为了TCP帧的数据
下已经解析为someip帧,首部已经被解析,数据为真正的数据
Someip帧首部如下:
首部数据:68 01 81 00 00 00 00 EE 00 00 08 3E 01 01 02 00 00 00 00 E2 7F
68 01 :16bit:Service ID
81 00 :10000001 00000000:1 bit:置1即可
81 00 :10000001 00000000:15bit:Method ID,实际Method ID仅占81 00中的后15个bit
00 00 00 EE:32Bit:Payload Length:长度为238个字节
00 00:16bit:client id,区分不同客户端,Method的请求报文和响应报文Client ID值相同,Event报文Client ID值为0x0000,SD报文中的Client ID值为0x0000
08 3E:16bit:session id,区分同一客户端的多次调用
01:8bit:protocol version:协议版本标识已使用的SOME/IP首部格式,协议版本固定为0x01
01:8bit:interface version:8bit,服务接口的主要版本,接口版本固定为0x01
02:8bit:Message type:区分不同类型的报文,此报文为通知类型
数值 | 类型 | 描述 |
0x00 | 请求 | 期望得到响应的请求(甚至无效) |
0x01 | 无返回请求 | 无返回的请求报文 |
0x02 | 通知 | 期望没有响应的通知/事件回调的请求报文 |
0x80 | 响应 | 响应报文 |
0x81 | 错误 | 包含一个错误的响应报文 |
0x20 | TP请求 | 期望得到响应的TP请求(甚至无效) |
0x21 | TP无返回请求 | 无返回的TP请求报文 |
0x22 | TP通知 | 期望没有响应的通知/事件回调的TP请求报文 |
0x23 | TP响应 | TP响应报文 |
0x24 | TP错误 | 包含一个错误的TP响应报文 |
00 :8bit:return code,返回代码用于指示一个请求是否已被成功处理
Message Type | Allowed Return Codes |
REQUEST | N/A set to 0x00 (E_OK) |
REQUEST_NO_RETURN | N/A set to 0x00 (E_OK) |
NOTIFICATION | N/A set to 0x00 (E_OK) |
RESPONSE | See Return Codes |
ERROR | Sess Return Code, shall not be 0x00 (E_OK) |
00 00 00 E2 7F: Someip帧的数据开始了