SOME/IP 报文帧格式是什么

简介: SOME/IP 报文帧格式是什么

1 SOME/IP 消息的布局

前面两篇文章「SOME/IP概述【分层结构及要实现的需求】」、「SOME/IP概述2【SOME/IP的主要中间件功能+SOME/IP报文PDU的封装】 」讲述了SOME/IP的基本概念/需求及架构在以太网的4层模型。这一篇我们研究一下SOME/IP 消息报文的帧格式是什么?我们要按照这个格式才能让发送和接收的双方心领神会,知道对方说了什么?先看代码,大概理解一下:

typedef struct someip_header_s {
    uint32_t    msg_id;
    uint32_t    length;
    uint32_t    req_id;
    uint8_t     protocol_ver;
    uint8_t     interface_ver;
    uint8_t     msg_type;
    uint8_t     ret_code;
    uint8_t     payload[0];
} __attribute__((packed)) someip_t;

注意 payload[0]可变零长度数组经常以变长结构体的形式。在一个变长结构体中,零长度数组不占用结构体的存储空间,但是我们可以通过使用结构体的成员 payload去访问内存,非常方便,其本质是一块可变字节长度缓存的首地址。

根据SOME/IP 需求,SOME/IP 协议应定义SOME/IP 消息的报文头的布局。下图定义了SOME/IP 消息的布局(报文头+Payload的布局)。

655dfe3e807dc6e0a71599db863802f5_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

SOME/IP报文头 长 为16 个字节,包含以下部分:

  • (1)第一个 4 字节包含消息标识符,可以是服务ID或方法ID
  • (2)第二个 4 字节包含消息长度
  • (3)第三个 4 字节包含请求标识符
  • (4)第 12 字节包含 SOME/IP 协议版本
  • (5)第 13 字节包含服务接口版本
  • (6)第 14 个字节包含消息类型,它是SOME/IP功能实现的重要部分,其长度为8 bit,有以下五种取值:
  • ① REQUEST(期待响应的请求)
  • ② REQUEST_NO_RETURN(不期待响应的请求)
  • ③ NOTIFICATION(事件通知)
  • ④ RESPONSE(响应消息)
  • ⑤ ERROR(报错消息)
  • (7)第 15 个字节包含可能的消息错误代码

SOME/IP有效Payload是可变长度的字节缓存,包含以下部分:

  • 包含已经序列化的Event/Field/Method的内容

。。。。。。。。。。。

相关文章
|
2月前
|
网络协议 Unix 网络架构
网际控制报文协议ICMP
网际控制报文协议(ICMP)是TCP/IP体系结构中网际层的关键组件,用于提高IP数据报的成功传输率。ICMP主要处理两类报文:差错报告报文与询问报文。前者包括终点不可达、源点抑制、时间超过、参数问题及重定向等五类;后者则涵盖回送请求/回答及时间戳请求/回答。ICMP广泛应用于检测网络连通性的PING工具和追踪数据包路径的traceroute工具中。两者分别利用ICMP的回送请求报文及差错报告报文实现功能。
77 10
|
4月前
|
人工智能 缓存 网络协议
网络层之三层交换、icmp协议、arp协议
网络层之三层交换、icmp协议、arp协议
|
6月前
|
网络协议 Linux 网络安全
IP 数据包格式 ICMP协议
IP 数据包格式 ICMP协议
|
6月前
|
网络协议 数据库 数据安全/隐私保护
|
6月前
|
网络协议 数据格式
|
6月前
Modbus-TCP数据帧
Modbus-TCP数据帧
107 0
|
缓存 网络协议 网络架构
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
数据链路层,Ethernet_II帧格式、IEEE802.3帧格式,帧格式的区分以及链路层每种帧格式有什么作用,怎么区别分辨帧格式,以太网MAC地址的组成,ARP地址解析协议原理、什么是单播帧?什么是组播数据帧?什么是广播帧?...............
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
|
缓存 网络协议 Shell
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
143 0
|
机器学习/深度学习 网络协议 网络架构
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
677 0
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )