someip应用测试

测试工具

  • wireshark,可用将抓包工具的包拖入wireshak查看数据解析;
  • 利用 ANDi 模拟发送 SOME/IP & SOME/IP-SD 包

Vsomeip-SD

SD通讯包含3类报文:Find Service、Offer Service和Subscribe报文,报文介绍:

  • 参考1
  • 参考2
  • 官网参考

SD要点介绍

SOME/IP-SD也是基于SOME/IP的报文,用来实现服务发现和事件订阅机制。SOME/IP-SD消息通过UDP进行传输
特定的服务方法[0xFFFF 8100]

client如何发现服务

  • 当网络中未收到相关服务的OfferService或者暂时未收到,而Client又需要访问该服务,那Client可以发出FindService去主动寻找服务
  • 如果Service已经就绪的话,会回复OfferService报文;服务就绪后,主动发出OfferService,用以告知组播内其他节点,该服务已经启动,可以创建连接

服务不可用,如何通知client

  • 当服务不可用时,会主动发送StopOfferService报文,用以告知组播内其他节点,该服务目前不可用,停止发送请求,并取消订阅。

client如何订阅服务

  • 当Client收到服务OfferService之后,Client可以发送Subscribe报文主动跟Service订阅感兴趣的事件组;
  • 当Client订阅某个事件组之后,后续发现不再需要改事件组的数据了,可以通过StopSubscribe报文来通知Service,避免不必要的数据交互;
  • 当Service收到Client的Subscribe报文之后,需要先行判断是否符合可订阅的条件,如果该Client满足事件组订阅条件,则返回SubscribeAck,告知Client订阅成功,当事件组内的事件准备就绪之后,Service会以某种约定好的形式发送相关事件给成功订阅的Client,如果该Client不符合事件组订阅条件,那Service就会直接回复SubscribeEventgroupNack,告知订阅失败。

-client如何订阅事件

依赖哪些库

boost:system thread filesystem
systemd:

你可能感兴趣的:(someip应用测试)