郴州网站制作设计,怎样提高百度推广排名,网站空间怎么弄,哈尔滨信息工程学院指南#xff08;信息性#xff09;
选择传输协议
SOME/IP直接支持互联网上使用最广泛的两种传输协议#xff1a;用户数据报协议#xff08;UDP#xff09;和传输控制协议#xff08;TCP#xff09;。UDP是一种非常简洁的传输协议#xff0c;仅支持最重要的功能#…指南信息性
选择传输协议
SOME/IP直接支持互联网上使用最广泛的两种传输协议用户数据报协议UDP和传输控制协议TCP。UDP是一种非常简洁的传输协议仅支持最重要的功能多路复用和使用校验和进行错误检测而TCP则添加了额外的功能以实现可靠的通信。TCP不仅可以处理位错误还可以处理分段、丢失、重复、重排序和网络拥塞等问题因此TCP是更强大的传输协议。
对于车辆内部使用需求与互联网上的需求不同。对于许多应用程序我们需要非常短的超时时间以在非常短的时间内做出反应。使用UDP可以更好地满足这些要求因为应用程序本身可以处理不太可能的错误事件。例如在循环数据的使用情况下最好的方法通常是等待下一次数据传输而不是尝试修复上一次的传输。UDP的主要缺点是它不处理分段因此只能传输较小的数据块。
指南
• 如果需要非常严格的延迟要求100毫秒以及在出现错误时的需求使用UDP。
• 如果需要传输非常大的数据块 1400字节且在出现错误时没有严格的延迟要求使用TCP。
• 如果适用于使用情况尝试使用外部传输网络文件系统APIX链接1722等。只需传输文件句柄或类似内容。这样可以给设计师更多的自由度缓存等。
所使用的传输协议由接口规范在每个消息的基础上进行指定。方法、事件和字段通常只使用单个传输协议。
实现AUTOSAR应用程序中的高级特性
从AUTOSAR 4.0.3开始将支持SOME / IP。不幸的是并非所有SOME / IP的功能都可以在AUTOSAR中直接支持例如动态长度数组。在AUTOSAR实现中需要高级功能的罕见情况下存在一种解决方案通过将SOME / IP有效负载或其部分通过uint8缓冲区传递来在应用程序内实现高级功能。对于AUTOSAR这些字段似乎只是动态长度的uint8数组并且应相应配置。
请注意在AUTOSAR 4.0.3中只能有一个单独的uint8数组并且它必须位于有效负载的末尾。
包含指针的数据结构的序列化
对于包含指针的数据结构例如内存中的树的序列化不能仅仅使用数据类型例如uint8来传输指针而是应该将其转换为传输格式。存在不同的指针序列化方法。我们推荐以下方法。
隐式ID的数据结构数组
当传输一组包含指针的数据结构且这组数据结构足够小以适应单个RPC消息时
• 将数据结构例如树节点存储在数组中
• 使用数组中的位置作为存储的数据结构的ID
• 将指针替换为指向的数据结构的ID
具有显式ID的数据结构数组
对于较大的数据结构集必须解决其他问题。由于并非所有数据结构都适合单个消息因此ID必须在不同消息之间唯一。这可以通过不同的方式实现
• 在每个消息中添加偏移字段。数组元素的ID将通过将偏移量加到其在数组中的位置来计算。请记住需要仔细选择偏移量。例如如果每个消息最多可以包含十个数据结构0-9则可以选择0、10、20、30等作为偏移量。
• 通过使用结构体数组存储显式ID。结构体中的第一个字段将是ID例如uint32第二个字段将是数据结构本身。出于安全和可靠性原因指针即内存地址永远不应直接用作ID。