主要介绍SOME/IP协议中远程过程调用RPC,事件通知Event。
一 Transport Protocol Bindings传输协议绑定
SOME/IP目前支持TCP连接,UDP单播连接,UDP多播连接
1.1 使用UDP还是TCP的指导原则:
• 只有在传输大数据块(>1400bytes),且在出现错误时对延时没有严格要求时使用TCP。
• 如果对延时有严格要求(延时<100ms)时使用UDP。
• 如果要传输的数据块大,同时对延时也有严格要求,可以使用SOME/IP-TP的UDP传输。
同一个insatnce的所有event,method,field应该使用同一个udp单播或者udp多播或者tcp连接,即绑定方式是针对instance的不是针对具体的event或者method的。
而实际上,车辆内部许多应用程序,尤其是智驾相关的应用程序,为了做出快速的响应,对延时有严格的要求,所以UDP传输用的更普遍。虽然UDP不能像TCP那样处理位错误、丢包、分段、网络拥塞等错误,但应用程序本身可以处理 这些不太可能发生的错误。
1.2 支持一个包里传输多个SOME/IP消息
比如下面的例子,一个PDU中包含了2个Subscribe消息和6条Subscribe ACK消息。
1.3 多service instance
一个service可以有多个service instance,不同的service instance用instance id区分。