0 前言

  • 研究some/ip协议初衷,如下表,为了解决some/ip传输安全,代码上some/ip over TLS支持,但some/ip over DTLS不支持,而在车载网络传输中为了效率选定的是UDP传输。
  • 基于以上背景,研究应用层实现加密或签名的可能性
  • 剧透一下:some/ip协议定义考虑了safety E2E(见2.4章节),但没有考虑security
序号 传输层协议 对应安全协议 some/ip实现TLS/DTLS支持情况
1 TCP TLS 支持
2 UDP DTLS 不支持

1 some/ip 协议介绍

SOME/IP(Scalable service-Oriented MiddlewarE over IP) 是车载以太网专用的面向服务中间件协议,主打ECU间RPC远程调用、事件发布/订阅,深度适配车载嵌入式场景、AUTOSAR架构,支持UDP/TCP双传输、服务自动发现、大数据分片等能力。

1.1 版权与许可

  • 版权:原版权归属BMW(2011-2017),2025版由Technica/KPIT维护;
  • 开源协议:采用 Community Specification License 1.0,允许免费使用、二次开发、制作衍生规范,衍生版本必须向后兼容,且需提交至工作组;
  • 专利规则:贡献方免费开放必要专利(可按规则提交专利排除项),实现方无需缴纳专利费。

1.2 SOME/IP 设计初衷

业界已有多种RPC协议,车载场景仍自研SOME/IP,核心目标:

  1. 适配嵌入式ECU极低资源开销
  2. 全车载场景兼容,无缝对接AUTOSAR协议栈;
  3. 支持从低端MCU到高端车机的全平台、全操作系统(含无OS裸机设备);
  4. 满足车载专属通信(周期信号、事件触发、诊断、OTA等)需求。

1.3 核心术语(车载SOME/IP通用定义)

术语 释义
Method 方法 可被远程调用的函数/接口
RPC 跨ECU远程过程调用
Request/Response 请求-应答模式(同步调用)
Fire&Forget 单向请求(无应答,异步)
Event 事件 服务端主动推送的消息(发布订阅)
Field 字段 远程状态属性,由 Getter(读)、Setter(写)、Notifier(变更通知) 组成(三者至少其一)
Eventgroup 事件组 多个事件/通知的逻辑聚合,统一订阅管理
Client/Server 服务使用方/服务提供方ECU
Endpoint 端点 IP地址 + 四层协议(UDP/TCP) + 端口

1.4 全局ID体系

所有ID均为无符号整型,有固定保留值,是报文路由、服务区分的基础:

  1. Service ID(服务ID,16bit)
    • 0x0000、0xFFFF:系统保留;
    • 0xFFFE:专门用于宣告非SOME/IP协议(如诊断、网管);
    • 规则:整车内不同服务必须使用不同Service ID。
  2. Service Instance ID(服务实例ID,16bit)
    • 0x0000:保留;0xFFFF:代表该服务所有实例
    • 规则:同一服务的多个实例(同ECU/跨ECU)ID必须唯一。
  3. Method ID / Event ID(方法/事件ID,16bit)
    • 服务内部区分方法、事件;
    • 最佳实践:0x0000~0x7FFF 分配给方法,0x8000~0x8FFF 分配给事件。
  4. Eventgroup ID(事件组ID,16bit)
    • 同服务内事件组ID唯一;0x0000/0xFFFF为保留值。

1.5典型车载应用

  • 车身控制、ADAS传感器数据交互(事件推送);
  • 车机/仪表远程调用(请求应答);
  • 诊断、OTA大文件传输(TCP/SOME/IP-TP);
  • 全车ECU服务自动发现、拓扑管理(SOME/IP-SD)。

2、SOME/IP 报文格式

该章节定义SOME/IP底层帧结构、传输规则、字节序、长度限制,是报文解析/编码的依据。

2.1 传输协议 & 端口规则

  1. 支持传输层:UDP 优先,TCP 作为补充
    • UDP:实时性好、时序可控,推荐绝大多数业务使用;
    • TCP:用于超大报文、高可靠传输。
  2. 端口规范:
    • SOME/IP-SD(服务发现)默认端口 30490(UDP/TCP),该端口仅用于服务发现,不承载业务报文
    • 动态端口范围:49152 ~ 65535(遵循IANA规范)。

2.2 报文长度限制(车载以太网最佳实践)

为规避IP分片(车载以太网禁止分片),规范硬性约束:

  1. 标准IPv4+UDP:不分片最大载荷 1472 字节;
  2. 强制最佳实践:SOME/IP头+总载荷 ≤ 1416 字节,预留 1400字节纯业务载荷
  3. 超过该限制的UDP报文,必须使用 SOME/IP-TP 分片协议
  4. 规则:Length字段 < 8字节 的报文,直接丢弃。

2.3 字节序(端序)

  1. 所有SOME/IP头部字段强制使用网络字节序(大端)
  2. 载荷端序由接口规范(ARXML/FRANCA等)定义,优先使用大端。

2.4 标准SOME/IP 头部

在这里插入图片描述

在这里插入图片描述

传输顺序从上至下,所有字段大端:

字段 位宽 核心作用 & 规则
Message ID 32bit 高16bit=Service ID,低16bit=Method/Event ID;整车唯一,用于报文路由
Length 32bit 长度计算起点:Request ID 至报文末尾;<8字节报文丢弃
Request ID 32bit 高16bit=Client ID(ECU内客户端标识),低16bit=Session ID(会话)
• 非会话模式:Session ID=0
• 会话模式:从0x0001开始,0xFFFF后循环
• 响应报文必须原样拷贝请求的Request ID
Protocol Version 8bit SOME/IP协议版本,固定 0x01
Interface Version 8bit 服务接口主版本,用于版本校验
Message Type 8bit 报文类型(见下表),含分片标记(TP-Flag)
Return Code 8bit 返回码(错误码);请求/事件类报文强制置 0x00
  • 扩展:E2E 安全头
    若开启端到端(E2E)安全保护,E2E头插入在 Return Code 与载荷之间。
    在这里插入图片描述

2.5 Message Type 报文类型(核心枚举)

分为请求、响应、事件、异常、预留ACK五大类,车载常用类型如下:

取值 名称 用途
0x00 REQUEST 普通请求(需要服务端应答)
0x01 REQUEST_NO_RETURN Fire&Forget 单向请求(无应答)
0x02 NOTIFICATION 事件/通知(服务端主动推送)
0x80 RESPONSE 正常响应(请求成功)
0x81 EXCEPTION 异常响应(请求失败)
0x20+ TP-Flag 置1 标识该报文为SOME/IP-TP分片

补充:0x40/0x41等ACK类型为预留未使用

2.6 Return Code 返回码(错误码体系)

用于标识调用执行结果,关键码值:
| 取值 | 名称 | 含义 |
| ---- | ---- |
| 0x00 | E_OK | 执行成功(默认值) |
| 0x01 | E_NOT_OK | 未知通用错误 |
| 0x07 | E_WRONG_PROTOCOL_VERSION | 协议版本不匹配 |
| 0x08 | E_WRONG_INTERFACE_VERSION | 接口版本不匹配 |
| 0x09 | E_MALFORMED_MESSAGE | 报文解析/序列化错误 |

规则:

  1. REQUEST / REQUEST_NO_RETURN / NOTIFICATION 报文,Return Code 必须为 0x00;
  2. EXCEPTION 异常报文,Return Code 禁止为 0x00
  3. 收到携带错误的报文,禁止再次回复错误报文

2.7 响应报文 IP/端口 映射规则

响应、异常报文的网络信息必须与原请求完全反转

  • 响应源IP = 请求目的IP
  • 响应目的IP = 请求源IP
  • 响应源端口 = 请求目的端口
  • 响应目的端口 = 请求源端口
  • 传输协议(UDP/TCP)保持不变。

2.8 标准发布订阅全流程(车载最常用)

  1. 服务端上电 → 周期发送 OfferService(宣告服务IP、端口、事件组);
  2. 客户端收到服务公告 → 发送 SubscribeEventgroup 订阅指定事件组;
  3. 服务端回复 SubscribeAck(告知组播地址/接收端口);
  4. 服务端按规则推送事件/字段通知;
  5. 客户端下电/主动退订 → 发送 StopSubscribeEventgroup
  6. 服务端下电 → 发送 StopOfferService 清理全网状态。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐