目录
前言:
解读SOMEIP-SD报文格式及通信过程;
正文:
一、简介:
SomeIP-SD为服务发现,是SomeIP的一种特殊服务,SOME/IP-SD主要用于:
1、定位服务实例
2、检测服务实例是否在运行
3、实现发布或订阅处理
二、SOME/IP-SD报文格式:
三、EntriesArray:
EntriesArray分为两类,分别是Service和EventGroup。
1、ServiceEntry主要是用于Find或者Offer特定的服务包括Find、Offer、StopService三种类型的操作;ServiceEntry三种服务支持多播传输,OfferSevice也可以单播传输
2、EventGroup Entry主要用来发布或者订阅特定的服务事件,EventGroupEntry只支持单播传输。主要包括:
<1>Subscribe Eventgroup Entry
<2>Stop Subscribe Eventgroup Entry
<3>Subscribe Eventgroup Acknowledgement (Subscribe Eventgroup Ack) Entry
<4>Subscribe Eventgroup Negative Acknowledgement (Subscribe Eventgroup
Nack) Entry
3、报文格式分别如下:
四、Option类型
Option类型主要是Entry的附属信息,主要包括:
4.1.配置信息,可以用来配置服务的名称等;
4.2.在Offer服务中定义服务的优先级;
4.3.声明服务实例(offer引用,Request的目的地址,表明使用它所服务的终端地址)或者订阅端(SubscribeEventgroup引用,Request的源地址)的IP、端口号、传输协议等;
4.4.声明服务端发送多播协议数据传达的终端的IP、端口号等,只能被SubscribeEventgroupAckEntry引用;
4.5.声明发送SD信息的IP、端口号、传输协议,接收端使用该地址代替源地址等。
五、报文传输过程:
六、服务发现通信行为
<1>Startup Behavior:
Initial Wait Phase
Repetition Phase
Main Phase
<2>Server Answer Behavior:
Offer entry (unicast or multicast) after received find entry (multicast)
Subscribe entry (unicast) after received offer entry (multicast)
<3>Shutdown Behavior:
发出停止 Offer Service entry
七、状态机
7.1、服务器状态机
7.2、客户端状态机
八、错误处理机制
九、使用SOMEIP和SOMEIP-SD发布、订阅过程
总结:
全面熟悉SOMEIP-SD协议,涉及报文格式、通信过程等;
本文参考:《AUTOSAR_PRS_SOMEIPServiceDiscoveryProtoco.pdf》