掌桥专利:专业的专利平台
掌桥专利
首页

用于DoIP诊断场景的TCP连接方法及相关设备

文献发布时间:2024-04-18 19:52:40


用于DoIP诊断场景的TCP连接方法及相关设备

技术领域

本申请涉及诊断领域,具体而言,涉及用于DoIP诊断场景的TCP连接方法及相关设备、计算机可读存储介质。

背景技术

在DoIP诊断/刷新场景中,一些诊断/刷新任务或TCP断开事件(诸如,由于重启Reset(0x11)诊断服务,或者被诊断节点由于诊断模式切换等各种原因需要重启时)会使得诊断节点之间(例如外部测试设备和被诊断设备之间)的TCP连接断开。此时,需要重新进行TCP连接才能继续进行诊断。

发明内容

鉴于上述问题,本发明旨在提供用于DoIP诊断场景的TCP连接方法及相关设备、计算机可读存储介质。

根据本申请的第一方面,提供一种用于基于因特网协议的诊断DoIP诊断场景的传输控制协议TCP连接方法,TCP连接方法用于在经历TCP断开事件后进行TCP连接,TCP连接方法包括以下步骤:

S1:发送第一报文到DoIP客户端,第一报文包括指示将要断开TCP连接的信息:

S2:在TCP断开事件结束后,进入TCP监听状态,发送第二报文到DoIP客户端,第二报文包括指示能够进行TCP连接的信息;以及

S3:响应DoIP客户端发出的TCP握手请求而进行TCP连接。

根据本发明实施例的方法,其中,在步骤S1还包括断开TCP连接。

根据本发明实施例的方法,其中,在步骤S2中,第二报文是周期性发送的。

根据本发明实施例的方法,其中,步骤S2还包括:在TCP断开事件结束后、进入TCP监听状态前,完成因特网协议IP地址分配。

根据本申请的第二方面,提供一种基于因特网协议的诊断DoIP服务端设备,DoIP服务端设备包括处理器和存储器,存储器存储有指令,指令在由处理器执行时,实行根据权利要求1-4中任一项的方法。

根据本申请的第三方面,提供一种用于基于因特网协议的诊断DoIP诊断场景的传输控制协议TCP连接方法,方法包括以下步骤:

S1:接收来自DoIP服务端的第一报文,第一报文包括指示将要断开TCP连接的信息;

S2:断开与DoIP服务端的TCP连接;以及

S3:向DoIP服务端发出TCP握手请求

根据本发明实施例的方法,其中,步骤S2之后、步骤S3之前,方法还包括:接收来自DoIP服务端的第二报文,第二报文包括指示DoIP服务端能够进行TCP连接的信息。

根据本发明实施例的方法,其中,步骤S3是在断开TCP后的时间T后进行,其中,周期性向DoIP服务端发出TCP握手请求,直到完成与DoIP服务端的TCP连接。

根据本申请的第四方面,提供一种基于因特网协议的诊断DoIP客户端设备,DoIP客户端设备包括处理器和存储器,存储器存储有指令,指令在由处理器执行时,实行根据权利要求6-8中任一项的方法。

根据本申请的第五方面,提供一种用于基于因特网协议的诊断DoIP诊断场景的传输控制协议TCP连接方法,TCP连接方法用于在经历TCP断开事件后进行DoIP服务端和DoIP客户端之间的TCP连接,方法包括以下步骤:

S1:由DoIP服务端发送第一报文到DoIP客户端,第一报文包括指示将要断开TCP连接的信息,并且,DoIP服务端断开TCP连接;

S2:在TCP断开事件结束后使DoIP服务端进入TCP监听状态,DoIP服务端发送第二报文到DoIP客户端,第二报文包括指示能够进行TCP连接的信息;

S3:响应于DoIP客户端接收到第二报文,由DoIP客户端向DoIP服务端发出TCP握手请求;以及

S4:基于TCP握手请求而进行TCP连接。

根据本申请的第六方面,提供一种计算机可读存储介质。计算机可读存储介质存储有指令,指令在由处理器执行时,实行根据前述任一个实施例描述的方法。

本申请通过提出一套基于DoIP诊断场景的TCP连接断开和重连的机制,无需额外判定TCP断开后再进行TCP重连或连接,缩短了DoIP诊断中发生的TCP连接断开和重连事件的时间,因此提升了诊断效率。

附图说明

从结合附图的以下详细说明中,将会使本申请的上述和其他目的及优点更加完整清楚,其中,相同或相似的要素采用相同的标号表示。

图1示出了根据一些实施例的基于DoIP的诊断的模块示意图。

图2A和2B分别示出了示例性的DoIP服务端请求断开和DoIP客户端请求连接/重连的信令流程图示意图。

具体实施方式

以下具体实施方式的描述本质上仅仅是示例性的,并且不旨在限制所公开的技术或所公开的技术的应用和用途。此外,不意图受在前述技术领域、背景技术或以下具体实施方式中呈现的任何明示或暗示的理论的约束。

在实施例的以下详细描述中,阐述了许多具体细节以便提供对所公开技术的更透彻理解。然而,对于本领域普通技术人员显而易见的是,可以在没有这些具体细节的情况下实践所公开的技术。在其他实例中,没有详细描述公知的特征,以避免不必要地使描述复杂化。

诸如“包含”和“包括”之类的用语表示除了具有在说明书中有直接和明确表述的单元和步骤以外,本发明的技术方案也不排除具有未被直接或明确表述的其它单元和步骤的情形。

在下文中,将参考附图详细地描述根据本发明的各示例性实施例。

在本文中,如图1所示,基于DoIP的诊断可以包括被诊断节点(或称DoIP服务端)和诊断工具(或称DoIP客户端)。DoIP服务端及其相关设备可以布置在DoIP实体(例如车辆上的待诊断设备/模块、部件或者车辆本身等)中,例如DoIP实体可以是针对某个功能的域控制器模块、某个车载电子控制单元ECU等。在一些示例中,基于DoIP的诊断是指通过DoIP协议进行诊断和刷新,在成功建立TCP连接并且DoIP路由激活成功之后,可以开始DoIP的诊断和刷新。可选地,如图1所示,外部测试设备可以部署针对多个(图示为2个,但不限于此)DoIP实体的多个DoIP客户端,每个DoIP实体布置有对应的DoIP服务端。在一些示例中,可以设置交换机以实现DoIP服务端和DoIP客户端的数据通信交互,通信方式可以例如是基于以太网ETH的通信。

例如,可以通过DoIP协议进行诊断刷新。其中,首先需要建立TCP连接,通常TCP连接是由工具端(DoIP客户端)首先发起,并通过和被诊断节点的三次握手建立TCP连接。具体而言,通过DoIP协议进行诊断刷新,在建立TCP连接之后,工具通过发送符合ISO 13400的DoIP Payload Type(有效载荷类型)为0x0005的路由激活报文给DoIP实体(即通过DoIP协议的诊断刷新模块)来建立DoIP通信逻辑链路,DoIP实体回复(并满足ISO 13400定义),且路由激活成功的DoIP Payload Type为0x0006的路由激活响应报文后,DoIP通信逻辑链路创建成功,由此可以进行DoIP诊断和刷新。当然,可以理解,还有其他建立DoIP通信逻辑链路的方式,而不限于上述举例的一种。

本申请提供根据一些实施例的用于基于因特网协议的诊断DoIP诊断场景的传输控制协议TCP连接方法。本TCP连接方法用于在经历TCP断开事件后进行TCP连接,本方法包括以下步骤:

在步骤S1中,发送第一报文到DoIP客户端,第一报文包括指示将要断开TCP连接的信息。在一些DoIP诊断场景中,可能会发生TCP连接断开的情况(或称TCP断开事件),这些TCP断开事件可能是DoIP诊断过程中主动发起的固定子流程,或者是在DoIP诊断过程中发生的某些意外断开,或者某些可预期的断开,为了继续进行DoIP诊断工作,需要进行TCP重连。因此,在预判将会发生这样的TCP连接断开的情况下(诸如,将要进行Reset(0x11)诊断服务、被诊断节点由于诊断模式切换等各种原因需要重启),可以主动发出第一报文,以更早地提示DoIP客户端TCP连接将断开。此时,优选地,可以在发送第一报文的同时或之后直接断开TCP连接,而不必通过其他超时检测机制来判断TCP是否断开,进一步缩减重连的整体时间。可以理解,DoIP诊断全过程中,或者在其他需要TCP连接的服务中,可能会发生各种各样的TCP连接断开,均可适用本方法。由此,可以在建立TCP连接的收发两端同步获知TCP连接需要断开的信息。

在步骤S2中,在TCP断开事件结束后,进入TCP监听状态,发送第二报文到DoIP客户端,第二报文包括指示能够进行TCP连接的信息。在经历某个诊断子过程或可能会发生TCP连接断开的事件后(例如,在上述的Reset(0x11)诊断服务后、再被诊断节点由于诊断模式切换等各种原因而重启后,等等),可以进入TCP监听状态,并在该状态下发送第二报文(例如,基于用户数据报协议UDP的DoIP报文)到DoIP客户端,以告知DoIP客户端当前具备进行/再次进行TCP连接/重连的条件。

在一些实施例中,第二报文是周期性发送的,并且可以发送多次,以确保DoIP客户端能够有效收到该报文。例如,可以以某个周期(例如,100ms)发送第二报文直到收到来自DoIP客户端的握手请求,又例如,可以设置以某个周期发送第二报文达预定次数(例如3次、5次等)。

在一些实施例中,在DoIP诊断完成后、进入TCP监听状态前,方法还包括完成因特网协议IP地址分配。例如,如果DoIP服务端的IP地址是静态分配,可以使DoIP服务端的TCP状态机开始初始化,并进入监听状态;如果DoIP服务端的IP地址是通过RFC定义的自动AutoIP或者动态主机配置协议DHCP分配IP地址,则在完成Auto IP或者DHCP IP地址分配之后,让DoIP服务端的TCP状态处于监听状态。因此,可以应对不同类型的IP地址分配机制来完成本方法的流程。

在步骤S3中,响应于DoIP客户端发出的TCP握手请求而进行TCP连接。DoIP客户端在得知可以进行TCP连接/重连后,例如通过三次握手建立/再次建立TCP连接。在一些示例中,DoIP客户端可以例如通过周期T(例如100ms)发送SYN(建立连接)报文,直到建立TCP连接(例如,可以按照RFC 793定义的TCP建立过程完成TCP连接的建立)。

由于DoIP客户端无法判断DoIP实体重启完成时间以及进入TCP监听(Listen)状态的时间,本申请的方法在DoIP实体进入到TCP监听状态,DoIP实体主动发送例如指定的UDP报文,并告知工具可以进行TCP连接。由此,无需通过DoIP客户端进行周期性的检测,并且无需在满足检测系统判定的TCP断开的条件后才认为TCP连接断开并尝试进行TCP连接的恢复,因此针对断开后重连或者初次连接而言,耗时更短,提升了DoIP诊断工作的效率。

当然,还可以在建立初次TCP连接的场景中,在DoIP实体的TCP状态初始化完成之后,且DoIP实体状态处于监听状态,DoIP实体也可以主动发送第二报文(例如,DoIP UDP报文),告知工具端(DoIP客户端)可以进行TCP连接。

与本方法对应,本申请还可以包括一种基于因特网协议的诊断DoIP服务端设备,DoIP服务端设备包括处理器和存储器,存储器存储有指令,指令在由处理器执行时,实行根据前述任一实施例方法。由此,可以完成DoIP服务端设备向DoIP客户端的TCP连接/重连,DoIP服务端设备的TCP连接/重连过程在此不再赘述。

在另一方面,本申请还可以包括另一种TCP连接方法,该方法包括以下步骤:

在步骤S1,接收来自DoIP服务端的第一报文,第一报文包括指示将要断开TCP连接的信息。在一些DoIP诊断场景中,可能会发生TCP连接断开的情况(或称TCP断开事件),这些TCP断开事件可能是DoIP诊断过程中主动发起的固定子流程,或者是在DoIP诊断过程中发生的某些意外断开,或者某些可预期的断开,为了继续进行DoIP诊断工作,需要进行TCP重连。因此,在预判将会发生这样的TCP连接断开的情况下(诸如,将要进行Reset(0x11)诊断服务、被诊断节点由于诊断模式切换等各种原因需要重启),可以接收由DoIP服务端发出的第一报文,以更早地获知TCP连接将断开或已经断开。可以理解,DoIP诊断全过程中,或者在其他需要TCP连接的服务中,可能会发生各种各样的TCP连接断开,均可适用本方法。

在步骤S2,断开与DoIP服务端的TCP连接。在获知TCP连接将断开或已经断开后,可以断开与该DoIP服务端的TCP连接,以便尽早开始对来自DoIP服务端的是否与DoIP服务端进行连接/重连的消息/报文进行监听、接收。

在步骤S3,向DoIP服务端发出TCP握手请求。在本步骤中,可以在断开与DoIP服务端的TCP连接就开始向DoIP服务端发出TCP握手请求,这有利于第一时间获得建立新的TCP连接的可能。

在一些实施例中,步骤S2之后、步骤S3之前,方法还包括:接收来自DoIP服务端的第二报文,第二报文包括指示DoIP服务端能够进行TCP连接的信息。也就是说,在一些情况下,向DoIP服务端发出TCP握手请求是基于接收到了来自DoIP服务端的第二报文。

在另一些实施例中,步骤S3是在断开TCP后的时间T(例如100ms)后进行,其中,周期性(例如以100ms为周期)向DoIP服务端发出TCP握手请求,直到完成与DoIP服务端的TCP连接。也就是说,可以在断开TCP连接后的预设的时间T,不论有没有收到来自DoIP服务端的第二报文,都开始以某个周期来发送一次或多次TCP握手请求到DoIP服务端。如此,可以不基于来自DoIP服务端的第二报文而定期发出TCP握手请求并尽早获得建立TCP连接的机会。

因此,本申请还可以包括一种基于因特网协议的诊断DoIP客户端设备,DoIP客户端设备包括处理器和存储器,存储器存储有指令,指令在由处理器执行时,实行根据前述任一实施例方法。由此,可以完成DoIP服务端向DoIP客户端设备的TCP连接/重连,DoIP服务端设备的TCP连接/重连过程在此不再赘述。

在综合DoIP服务端和DoIP客户端场景,本申请还提供一种用于基于因特网协议的诊断DoIP诊断场景的传输控制协议TCP连接方法。该方法用于DoIP服务端和DoIP客户端之间的TCP连接,方法包括以下步骤:S1:由DoIP服务端发送第一报文到DoIP客户端,第一报文包括指示将要断开TCP连接的信息,并且,DoIP服务端断开TCP连接;S2:在前述TCP断开事件结束后使DoIP服务端进入TCP监听状态,DoIP服务端发送第二报文到DoIP客户端,第二报文包括指示能够进行TCP连接的信息;S3:响应于DoIP客户端接收到第二报文,由DoIP客户端向DoIP服务端发出TCP握手请求;以及S4:基于TCP握手请求而进行TCP连接。由此,可以完成DoIP服务端向DoIP客户端的TCP连接/重连,DoIP服务端和DoIP客户端的TCP连接/重连过程与上述关于方法描述的类似,在此不再赘述。

在图2A和2B中示出了一种示例的DoIP服务端请求断开和DoIP客户端请求连接/重连的信令流程图。在图2A中,DoIP服务端发送包括了断开连接请求的第一报文到DoIP客户端,DoIP客户端回复确认(CTL=ACK),与此同时或在DoIP服务端发送第一报文后,DoIP服务端可以例如断开TCP连接并发送断开连接确认(CTL=FIN,ACK),DoIP客户端对此再次回复确认(CTL=ACK)并同样断开TCP连接并发送断开连接确认(CTL=FIN,ACK),最后由DoIP服务端回复确认(CTL=ACK)。在图2B中,DoIP服务端结束可能需要重启(可能导致TCP连接断开)的事件后,进入初始化并开始监听,可以将包括建立连接的请求或定期多次请求的第二报文发送到DoIP客户端,DoIP客户端对此发送建立TCP连接响应/请求

(CTL=SYN),建立TCP连接后,DoIP服务端发送建立连接确认(CTL=SYN,ACK)到DoIP客户端,并最后由回复确认(CTL=ACK)。

在本文中,报文的载体可以是单独的承载DoIP报文内容的信号,也可以例如集合在TCP/IP以太帧中。示例性地,TCP/IP以太网帧可以包括以太网标头(ETH Header)、IP标头、TCP/UDP标头、DoIP部分以及CRC部分,DoIP部分可以例如包括协议版本、有效载荷类型(Payload Type)、有效载荷长度、DoIP有效载荷等等。

根据本申请的另一方面,提供一种计算机可读存储介质,其中存储有指令,当所述指令由处理器执行时,使得所述处理器执行如上文所述的任意一种方法。本申请中所称的计算机可读介质(以及上述所提及的DoIP服务端设备或DoIP客户端设备中的存储器)包括各种类型的计算机存储介质,可以是通用或专用计算机能够存取的任何可用介质。举例而言,计算机可读介质可以包括RAM、ROM、EPROM、E

以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此。本领域的技术人员可以根据本申请所披露的技术范围想到其他可行的变化或替换,此等变化或替换皆涵盖于本申请的保护范围之中。在不冲突的情况下,本申请的实施方式及实施方式中的特征还可以相互组合。本申请的保护范围以权利要求的记载为准。

相关技术
  • 一种通过可穿戴设备进行支付的方法、装置及可穿戴设备
  • 一种用于控制穿戴设备的方法及穿戴设备
  • 一种穿戴式设备散热方法、穿戴式设备及可读存储介质
  • 一种穿戴设备控制方法、移动终端及穿戴设备
  • 一种可穿戴设备及可穿戴设备的信息显示方法及装置
  • 一种多模态融合脱落检测方法及穿戴设备
  • 一种用于可穿戴设备脱落检测的方法及可穿戴设备
技术分类

06120116330877