在车载网络中,某个ECU有时会需要调用实现在其他ECU上的个服务,这个时候它俩就分别扮演了client和server的角色,而SOME/IP就是实现这种远程服务调用的接口
SOME/IP其实是构架在传输层之上的应用层通信协议,它的内容虽然很多很杂,但本质上也就是定义了SOME/IP 包头和数据的内容而已
SOME/IP 支持广泛的中间件功能:
功能 | 描述 |
---|---|
序列化 (Serialization) | 在 ECU 内部进行序列化及反序列化以实现信息的高效传输。 |
远程过程调用 (RPC,Remote Procedure Calls)和消息传递 | 是客户端 ECU 在需要来自服务器的一些数据时采用的一种数据交换方法。RPC 可能有返回值也可能没有返回值,即客户端可以请求数据作为响应,或者简单地调用一个函数来在服务器端执行某些任务。 |
服务发现(SD,Service Discovery ) | SOME/IP 协议的数据通信发生在客户端﹣服务器模型中,同时服务器提供客户端可以订阅的许多不同服务。该协议允许客户端动态查找服务、订阅服务并配置对服务的访问。 |
发布与订阅(Pub/Sub,Publish / Subscribe) | 客户端可以订阅服务器提供的服务,服务器可以向活跃的订阅者发布通知。 |
UDP 消息分段 | 允许通过 UDP 传输大型 SOME/IP 消息而无需分段。 |