目录
- [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消息的所有字段都采用网络字节端序(大端序)
