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总是尝试使用最大分割,即按照分段数最小的方式进行传输

posted @ 2020-01-09 16:09  丶仰望星空  阅读(4136)  评论(0编辑  收藏  举报