• The TCP binding of SOME/IP is heavily based on the UDP binding. In contrast to the UDP binding, the TCP binding allows much bigger SOME/IP messages and uses the robustness features of TCP (coping with loss, reorder, duplication, etc.).
    SOME / IP的TCP绑定很大程度上基于UDP绑定。 与UDP绑定相比,TCP绑定允许更大的SOME / IP消息并使用TCP的鲁棒性(应对丢失,重新排序,复制等)。
  • Every SOME/IP payload shall have its own SOME/IP header.
    每个SOME / IP payload都应具有自己的SOME / IP hearder。
  • In order to lower latency and reaction time, Nagle’s algorithm shall be turned off (TCP_NODELAY).
  • When the TCP connection is lost, outstanding requests shall be handled as timeouts. Since TCP handles reliability, additional means of reliability are not needed.
    当TCP连接丢失时,未完成的请求应作为超时处理。 由于TCP的可靠性,因此不需要额外的可靠性手段。
  • The client and server shall use a single TCP connection for all methods, events, and notifications of a service instance. When having more than one instance of a service a TCP connection per services instance is needed.
    客户端和服务端应对服务实例的所有method,event和notification使用一个TCP连接。 当具有多个服务实例时,则每个服务实例需要一个TCP连接。
  • The TCP connection shall be used for as many services as possible to minimize the number of TCP connections between the client and the server (basically only one connection per TCP port of server).
  • The TCP connection shall be opened by the client, when the first method call shall be transport or the client tries to receive the first notifications.
  • The client is responsible for reestablishing the TCP connection whenever it fails.
  • The TCP connection shall be closed by the client, when the TCP connection is not required anymore.
  • The TCP connection shall be closed by the client, when all Services using the TCP connections are not available anymore (stopped or timed out).
  • The server shall not stop the TCP connection when stopping all services the TCP connection was used for but give the client enough time to process the control data to shutdown the TCP connection itself.
  • Rational合理性:
    When the server closes the TCP connection before the client recognized that the TCP is not needed anymore, the client will try to reestablish the TCP connection.