目录
- [5. 协议说明](#5. 协议说明)
-
- [5.1 SOME/IP Service Discovery(SOME/IP-SD)](#5.1 SOME/IP Service Discovery(SOME/IP-SD))
-
- [5.1.1 概括](#5.1.1 概括)
-
- [5.1.1.1 术语和定义](#5.1.1.1 术语和定义)
- [5.1.2 SOME/IP 消息格式](#5.1.2 SOME/IP 消息格式)
-
- [5.1.2.1 整体要求](#5.1.2.1 整体要求)
5. 协议说明
5.1 SOME/IP Service Discovery(SOME/IP-SD)
5.1.1 概括
SOME/IP-SD的作用
- 定位SOMEIP服务的位置(IP地址+端口号)
- 监控SOMEIP服务状态(发现服务的运行和停止)
- 实现"发布/订阅"机制
在车载以太网中服务的位置通常是实现约定好的,因此SOME/IP-SD优先考虑的是监控服务的状态,第二要考虑的才是定位服务位置。
5.1.1.1 术语和定义
PRS_SOMEIPSD_00238
如果一个服务需要在多个网络接口/地址提供服务,需要为每个网络接口/地址提供独立的服务实例。
PRS_SOMEIPSD_00239
如果客户端需要在多个网络接口/地址使用服务,需要为每个网络接口/地址提供独立的客户端实例。
译者理解:综上两条,对于一个网络接口/地址,服务端和客户端是1:1对应的。
5.1.2 SOME/IP 消息格式
5.1.2.1 整体要求
PRS_SOMEIPSD_00220
SOME/IP-SD的消息需通过UDP协议发送。
** PRS_SOMEIPSD_00251**
SOME/IP-SD消息格式如下
- Message ID(Service ID/Method ID)32bit:0xFFFF 8100
- Length 32bit
- Request ID(Client ID/Session ID)32bit
- Protocol Version 8 bit: 0x01
- Interface Version 8 bit: 0x01
- Message Type 8 bit: 0x02
- Return Code 8 bit: 0x00
- Flags 8 bit
- Reserved 24 bit
- Length of Entries Array 32 bit
- Entries Array variable size
- Length of Options Array 32 bit
- Options Array variable size

PRS_SOMEIPSD_00250
SOME/IP-SD 的消息以SOMEIP协议头为开始。见Figure 5.1
** PRS_SOMEIPSD_00151**
SOME/IP-SD消息中Service ID固定为 0xFFFF
PRS_SOMEIPSD_00152
SOME/IP-SD消息中Method ID固定为 0x8100
** PRS_SOMEIPSD_00153**
SOME/IP-SD消息的Length字段存储的是,从Length字段之后到SOME/IP-SD消息结尾的字节数。
PRS_SOMEIPSD_00154
由于只有一个SOME/IP-SD实体,因此SOME/IP-SD消息的Client ID固定为0x0000
PRS_SOMEIPSD_00157
每发送一条SOME/IP-SD消息,Session-ID的值需要被增加
PRS_SOMEIPSD_00158
Session-ID 需要从1开始增加,增加到最大值后回到1
** PRS_SOMEIPSD_00159**
Session-ID 不能被设置成0
PRS_SOMEIPSD_00160
SOME/IP-SD中每个通信关系中Session-ID应独立管理。通信关系指"一个组播"或"一对单播的两个通信端"。
PRS_SOMEIPSD_00161
SOME/IP-SD消息的 Protocol-Version 固定为0x01.
** PRS_SOMEIPSD_00162**
SOME/IP-SD消息的 Interface-Version 固定为0x01.
PRS_SOMEIPSD_00163
SOME/IP-SD消息的 Message Type 固定为0x02(通知类型的消息,Notification)
PRS_SOMEIPSD_00164
SOME/IP-SD消息的 Return Code 固定为0x00
** PRS_SOMEIPSD_00853**
SOME/IP-SD消息的所有字段都采用网络字节端序(大端序)
