Routing activation request and response


对于用TCP_DATA socket传输DoIP消息的,必须激活路由,也就是在DoIP通信前,TCP三次连接成功后,需要发送Routing activation request并得到response,才能发送诊断请求,本质上是通过发送routing activation request把源逻辑地址与对应的socket关联起来,称之为注册



DoIP实体既可以是DoIP节点,也可以是DoIP网关


先看一下routing activation request报文的payload组成

详解ISO13400文档-3_网络诊断

  • Source address


由外部测试设备发给DoIP实体的诊断通信前的路由激活请求


2个字节,外部测试设备的逻辑地址

外部测试设备的逻辑地址定义可参考逻辑地址视图

详解ISO13400文档-3_网络诊断_02

  • Activation type

1个字节,routing activation request报文的激活类型

详解ISO13400文档-3_网络诊断_03


Reserverd by this part of ISO 13400和Reserved for OEM-specific use是预留位,前者是必须要有的,默认值是0



每个DoIP实体都应该支持回复routing activation response报文


routing activation response报文的payload格式如下

详解ISO13400文档-3_逻辑地址_04

  • Logic address of external test equipment

2个字节,外部测试设备的逻辑地址

  • Logic address of DoIP entity

2个字节,DoIP实体的逻辑地址

  • Routing activation response code

1个字节,DoIP网关的响应


拒绝路由激活将导致TCP_DATA socket被DoIP网关重置,而成功的路由激活意味着可以通过TCP_DATA socket来路由诊断消息


详解ISO13400文档-3_逻辑地址_05

分析下这几种情况,看看DoIP实体是如何处理路由激活请求的

  • 0x00

DoIP实体由于routing activation request里的源逻辑地址未知而拒绝激活路由,同时关闭这个TCP_DATA socket

  • 0x01

DoIP实体由于支持的所有的并发的TCP_DATA socket都已注册并并处于活动状态而拒绝激活路由,同时关闭这个TCP_DATA socket