測試工具
- wireshark,可用將抓包工具的包拖入wireshak查看數(shù)據(jù)解析某宪;
- 利用 ANDi 模擬發(fā)送 SOME/IP & SOME/IP-SD 包
Vsomeip-SD
SD通訊包含3類報文:Find Service骗奖、Offer Service和Subscribe報文,報文介紹:
SD要點介紹
SOME/IP-SD也是基于SOME/IP的報文,用來實現(xiàn)服務發(fā)現(xiàn)和事件訂閱機制镇饺。SOME/IP-SD消息通過UDP進行傳輸
特定的服務方法[0xFFFF 8100]
client如何發(fā)現(xiàn)服務
- 當網(wǎng)絡中未收到相關服務的OfferService或者暫時未收到匙睹,而Client又需要訪問該服務,那Client可以發(fā)出FindService去主動尋找服務
- 如果Service已經(jīng)就緒的話瑟由,會回復OfferService報文絮重;服務就緒后,主動發(fā)出OfferService歹苦,用以告知組播內(nèi)其他節(jié)點青伤,該服務已經(jīng)啟動,可以創(chuàng)建連接
服務不可用殴瘦,如何通知client
- 當服務不可用時狠角,會主動發(fā)送StopOfferService報文,用以告知組播內(nèi)其他節(jié)點蚪腋,該服務目前不可用丰歌,停止發(fā)送請求,并取消訂閱屉凯。
client如何訂閱服務
- 當Client收到服務OfferService之后立帖,Client可以發(fā)送Subscribe報文主動跟Service訂閱感興趣的事件組;
- 當Client訂閱某個事件組之后悠砚,后續(xù)發(fā)現(xiàn)不再需要改事件組的數(shù)據(jù)了晓勇,可以通過StopSubscribe報文來通知Service,避免不必要的數(shù)據(jù)交互灌旧;
- 當Service收到Client的Subscribe報文之后绑咱,需要先行判斷是否符合可訂閱的條件,如果該Client滿足事件組訂閱條件枢泰,則返回SubscribeAck描融,告知Client訂閱成功,當事件組內(nèi)的事件準備就緒之后衡蚂,Service會以某種約定好的形式發(fā)送相關事件給成功訂閱的Client窿克,如果該Client不符合事件組訂閱條件,那Service就會直接回復SubscribeEventgroupNack讳窟,告知訂閱失敗让歼。
-client如何訂閱事件
依賴哪些庫
boost:system thread filesystem
systemd: