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的内容

。。。。。。。。。。。

相关文章
|
1月前
|
网络协议 网络架构 Windows
NDP 常用报文格式
【2月更文挑战第27天】
|
1月前
Modbus-TCP数据帧
Modbus-TCP数据帧
28 0
|
1月前
|
网络协议 数据格式
|
4月前
|
网络协议 算法 安全
UDP报文格式详解
UDP报文格式详解
110 0
|
4月前
|
存储 网络协议 Serverless
C/C++ 运用Npcap发送UDP数据包
Npcap 是一个功能强大的开源网络抓包库,它是 WinPcap 的一个分支,并提供了一些增强和改进。特别适用于在 Windows 环境下进行网络流量捕获和分析。除了支持通常的网络抓包功能外,Npcap 还提供了对数据包的拼合与构造,使其成为实现 UDP 数据包发包的理想选择。本章将通过Npcap库构造一个UDP原始数据包,并实现对特定主机的发包功能,通过本章的学习读者可以掌握如何使用Npcap库伪造特定的数据包格式。
95 0
C/C++ 运用Npcap发送UDP数据包
|
6月前
|
缓存 网络协议 Shell
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
59 0
|
缓存 网络协议 网络架构
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
数据链路层,Ethernet_II帧格式、IEEE802.3帧格式,帧格式的区分以及链路层每种帧格式有什么作用,怎么区别分辨帧格式,以太网MAC地址的组成,ARP地址解析协议原理、什么是单播帧?什么是组播数据帧?什么是广播帧?...............
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
|
机器学习/深度学习 网络协议 网络架构
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
546 0
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
|
缓存 监控 网络协议
网络层协议与应用(IP数据包、ARP协议)
网络层协议与应用(IP数据包、ARP协议) 1、网络层的功能 定义了基于IP协议的逻辑地址,就是IP地址 连接不同的媒介类型 选择数据通过网络的最佳路径,完成逻辑地址寻址 2、IP数据包
277 0