SOME/IP 傳輸協議


對於不能裝入一個UDP數據包的SOME/IP數據包,SOME/IP 傳輸協議的任務是對這些SOME/IP數據包分段,在接收端,再重新組裝收到的SOME/IP段。

SOME/IP Transport Protocol是一個簡單的協議來分割數據包,不實現重試機制,在接收端也不重新排序接收到的數據段

在Message Type包含一個bit,作為原始SOME/IP message 的分段PDU的標記,每一個被分段的SOME/IP message都會添加SOME/IP TP的特定字段到SOME/IP Header

這些字段包含分段控制信息和較大的SOME/IPmessage原始信息的重組

只有設置TP-Flag為“1”時,偏移量字段、保留位和更多段標志才會出現。

SOME/IP TP header

Message Type Field

Message Type字段包含TP-Flag,它將這個SOME/IP消息標記為原始SOME/IP消息的一個SOME/IP段。

TP-Flag位置

Offset Field

它從位偏移量0開始,到位偏移量27結束。每個傳輸/接收段之后,所包含的值會根據前一個傳輸/接收的SOME/IP段的負載長度增加

More Segments Flag

更多段標記[1位]表示是否跟隨下一個SOME/IP PDU

舉個例子:

有一個負載長度為5571的SOME/IP消息傳輸,消息的長度字段設置為8 + 5571字節

原始SOME/IP Header

這個原始的SOME/IP消息現在將被分割成5個連續的SOME/IP段。在本例中,這些段的每個有效負載最多攜帶1392字節。

對於這些段,SOME/IP TP模塊添加了額外的TP字段。SOME/IP的Length字段攜帶SOME/IP段的總長度,其中包括Requst ID、協議版本、接口版本、消息類型和返回代碼的8個字節

由於添加了TP字段(4字節),因此長度信息被擴展了4個額外的一些/IP TP字節

相關SOME/IP Header

注意:偏移量字段中提供的值是以16字節為單位的,即:偏移量87對應1392字節的有效負載。

第一個負載數據段,TP-Flag為1,More Segment Flag為1

SOME/IP分段Header

最后一個負載分段數據,TP-Flag為1,More Segment Flag為0(提示后面沒有數據了)

最后一個SOME/IP分段Header

SOME/IP TP總是嘗試使用最大分割,即按照分段數最小的方式進行傳輸


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM