SOME/IP,全稱(chēng)為Scalable service-Oriented MiddlewarE over IP,是用于控制消息的汽車(chē)中間件解決方案,是一種面向服務(wù)的可伸縮的協(xié)議。SOME/IP于2011年由BMW設(shè)計(jì),2014年納入AUTOSAR規(guī)范。
SOME/IP的報(bào)文格式如下圖所示,由消息頭部(Header)和消息體(Payload)組成,Header主要包括以下字段:
Message ID,用于唯一標(biāo)識(shí)消息,當(dāng)消息為Method類(lèi)型時(shí),由Service ID和Method ID組成,當(dāng)消息為Event類(lèi)型時(shí),由Service ID和Event ID組成,如下圖所示:
Length,消息長(zhǎng)度(從Request ID開(kāi)始到Payload結(jié)束);
Request ID,服務(wù)提供者和調(diào)用者可用于區(qū)分相同消息的不同調(diào)用,由Client ID和Session ID組成,如下圖所示:
通常我們稱(chēng)服務(wù)提供者為Service,服務(wù)調(diào)用者為Client,Service ID和Client ID用于區(qū)分,一般會(huì)在一個(gè)SOA架構(gòu)中統(tǒng)一地配置這些ID的數(shù)值。
這里插播一點(diǎn)個(gè)人理解,在SOA中,每個(gè)服務(wù)就好像我們每一個(gè)人在社會(huì)中扮演的角色,在對(duì)別人提供著服務(wù)的同時(shí),同時(shí)也享受著別人提供出來(lái)的服務(wù),人與人之間,既是彼此獨(dú)立的,又是需要互相通訊的。服務(wù)提供者將功能具象為一組接口,這樣使用者就能知道如何調(diào)用服務(wù),完成某件事情,得到某個(gè)結(jié)果。
Protocol Version,協(xié)議頭版本號(hào),目前該值必須為1;
Interface Version,接口版本號(hào),一般由服務(wù)提供者定義;
Message Type,用于標(biāo)識(shí)消息的類(lèi)型,如下圖所示:
消息類(lèi)型和通信機(jī)制之間的映射關(guān)系,如下圖所示(靈魂畫(huà)手,將就看吧),不難發(fā)現(xiàn),F(xiàn)ield結(jié)合了Method和Event,這也就理解了Message ID中為什么只有Method ID和Event ID,沒(méi)有Field ID。Field可以用于實(shí)現(xiàn)這樣一種通信場(chǎng)景:客戶(hù)端希望能夠獲取/設(shè)置/監(jiān)聽(tīng)服務(wù)端的某一個(gè)狀態(tài)值,圖中SOME/IP-SD
Return Code,用于標(biāo)識(shí)請(qǐng)求是否成功處理,不同的消息類(lèi)型,它們?cè)趥鬏敃r(shí)所攜帶的Return Code也不同:
具體返回值和錯(cuò)誤碼定義如下:
Payload,也叫有效載荷,是消息內(nèi)容,通常它的長(zhǎng)度是可變的。SOME/IP協(xié)議在OSI七層網(wǎng)絡(luò)結(jié)構(gòu)中位于應(yīng)用層,它建立在TCP或者UDP傳輸層協(xié)議之上。當(dāng)通過(guò)UDP傳輸時(shí),由于UDP的限制,Payload的長(zhǎng)度應(yīng)該限制在1400字節(jié)以?xún)?nèi),超了則要分組(SOME/IP-TP),而當(dāng)通過(guò)TCP傳輸時(shí),可以傳輸更多的字節(jié),理論上只要不超過(guò)Length字段的大小即可。
對(duì)于AUTOSAR系統(tǒng),Payload要遵循AUTOSAR規(guī)范進(jìn)行序列化,對(duì)于非AUTOSAR系統(tǒng),可以遵循AUTOSAR規(guī)范進(jìn)行序列化,也可以采用其他序列化方式如常用的Google Protocol Buffer、JSON等。
以上介紹了SOME/IP協(xié)議,可以發(fā)現(xiàn),SOME/IP其實(shí)并不等同于SOA,只能說(shuō)要實(shí)現(xiàn)SOA,SOME/IP是一個(gè)很不錯(cuò)的協(xié)議選擇。
審核編輯:劉清
-
UDP協(xié)議
+關(guān)注
關(guān)注
0文章
70瀏覽量
13040 -
SOA
+關(guān)注
關(guān)注
1文章
300瀏覽量
28023 -
TCP通信
+關(guān)注
關(guān)注
0文章
146瀏覽量
4462
發(fā)布評(píng)論請(qǐng)先 登錄
SOME/IP協(xié)議安全攻擊

tcp ip 協(xié)議講座:介紹IP協(xié)議與UDP協(xié)議
詳細(xì)介紹一下ACM的優(yōu)點(diǎn)資料下載

車(chē)載以太網(wǎng)的SOME/IP-SD協(xié)議了解與認(rèn)識(shí)
介紹一種用于SOME/IP應(yīng)用的灰盒模糊器Ori
SOME/IP-SD有何作用
SOME/IP-SD有何作用
SOME/IP在實(shí)踐中到底應(yīng)該如何使用
汽車(chē)SOME/IP模糊測(cè)試的常規(guī)設(shè)計(jì)步驟
SOME/IP協(xié)議的基本原理

《聊一聊ZXDoc》之汽車(chē)服務(wù)導(dǎo)向SOME/IP

評(píng)論