处理报文的方法和装置与流程

文档序号:37306614发布日期:2024-03-13 20:54阅读:10来源:国知局
处理报文的方法和装置与流程

本发明涉及车辆通信,特别涉及一种处理报文的方法和装置。


背景技术:

1、基于互联网协议的诊断通信(diagnostic communication over internetprotocol,doip)协议,是车载以太网中常用的一种通信协议。目前针对doip协议报文的安全过滤功能是基于扩展的伯克利包过滤器(extended berkeley packet filter,ebpf)技术实现的。其实现方式为:每当有doip协议报文经过车载的网卡时,ebpf程序检测到doip协议报文,并根据用户配置的规则对报文进行安全检查,最终通过安全检查的报文会被允许通过网卡,而未通过安全检查的报文会被直接丢弃。

2、上述方案的问题在于,某些报文(例如基于tcp协议的报文)被丢弃时,报文的发送方会不断重传这条被丢弃的报文,导致发送方长时间不能执行下一步操作。


技术实现思路

1、针对上述现有技术的缺点,本发明提供一种处理报文的方法和装置,以解决doip协议中发送方不断重传被丢弃的报文的问题。

2、本技术第一方面提供一种处理报文的方法,包括:

3、获得第一报文;

4、在确定所述第一报文为不安全报文的情况下,丢弃所述第一报文,并向所述第一报文的发送方反馈第二报文,所述第二报文表征所述第一报文被确定为不安全报文的依据;

5、丢弃所述第一报文后,在确定所述第一报文的传输层协议为目标通信协议的情况下,关闭所述发送方和所述接收方之间的通信连接,或者,对第三报文进行调整,以维持所述发送发和所述接收方之间的通信连接,所述第三报文是反馈所述第二报文后收到的报文;

6、在确定所述第一报文为安全报文的情况下,将所述第一报文发给所述第一报文的接收方。

7、在第一报文为不安全报文的情况下,该第一报文可以是实施例一中第二请求报文,或者可以是实施例二中第三请求报文,相应的,第一报文的发送方可以是实施例一或二的客户端,第二报文,可以是实施例一或二的否定响应报文;

8、在第一报文为安全报文的情况下,第一报文可以是实施例一或二中第一请求报文,接收方可以是实施例一或二的客户端。

9、丢弃所述第一报文,并向所述第一报文的发送方反馈第二报文,相当于实施例一的步骤s206和s207,或者相当于实施例二的步骤s302和s303。

10、作为示例,目标通信协议可以是tcp协议。

11、关闭发送方和接收方的通信连接的过程,可以参见实施例一的步骤s209和s210。

12、调整第三报文以维持通信连接的过程,可以参见实施例二的步骤s304到s309,其中,第三报文可以是实施例二的第四请求报文或者第四响应报文。

13、在一些可选的实施例中,所述关闭所述发送方和所述接收方之间的通信连接之前,还包括:

14、在发送所述第二报文之后,记录所述第二报文对应的反馈报文的第一序号期望值;

15、接收所述发送方响应于所述第二报文而发送的反馈报文;

16、在确定所述反馈报文携带的第一序号和所述第一序号期望值一致后,执行所述关闭所述发送方和所述接收方之间的通信连接步骤。

17、本实施例的内容可以参见实施例四的情况一关于记录诊断强制关闭状态的内容,其中确定第一序号和所述第一序号期望值一致,相当于情况一中确定应答报文中携带的序号和会话表中记录的期望的序号吻合。

18、其中,反馈报文,可以是实施例一或二中客户端响应于否定响应报文而反馈的应答报文;第一序号期望值,可以是实施例四情况一中,会话表中记录的期望的序号,例如是期望的来自客户端的应答报文的序号值;第一序号可以是应答报文中携带的序号,例如是应答报文的ack号。

19、在一些可选的实施例中,所述关闭所述发送方和所述接收方之间的通信连接,包括:

20、确定用于关闭通信连接的总任务的诊断任务信息,所述诊断任务信息包括组成所述总任务的单任务数,当前执行的单任务索引号,组成所述总任务的每个单任务的编号和按位标识,所述当前执行的单任务索引号的初始值为0;

21、根据所述单任务的编号和按位标识,依次执行组成所述总任务的单任务,以关闭所述发送方和所述接收方之间的通信连接。

22、该实施例的具体实施方式可以参见实施例五,其中,用于关闭通信连接的总任务,可以是实施例五的wait_ack_and_send_reset。

23、在一些可选的实施例中,所述对第三报文进行调整,包括:

24、根据所述第一报文的数据量和所述第二报文的数据量确定序号偏移量;

25、根据所述序号偏移量调整反馈所述第二报文后收到的第三报文的序号,得到调整后的所述第三报文的序号;

26、其中,在所述第三报文是所述发送方发出的报文的情况下,调整后的所述第三报文的序号,由所述第三报文的序号减去所述序号偏移量得到;

27、在所述第三报文是所述接收方发出的报文的情况下,调整后的所述第三报文的序号,由所述第三报文的序号加上所述序号偏移量得到。

28、本实施例中,第三报文来自发送方的情况下调整第三报文的方式,可以参见实施例二步骤s307,此时的第三报文相当于实施例二的第四请求报文;第三报文来自接收方的情况下调整第三报文的方式,可以参见实施例二步骤s309,此时的第三报文相当于实施例二的第四响应报文。

29、确定序号偏移量的方式,可以参见实施例二中步骤s304的相关内容。

30、在一些可选的实施例中,该方法还可以包括:

31、在发送所述第二报文后,在会话表中记录期望序号,并在收到所述发送方响应于所述第二报文发出的反馈报文后,根据所述期望序号校验所述反馈报文,所述期望序号表征期望所述反馈报文携带的序号值。

32、以上内容可以参见实施例四的情况二。

33、在一些可选的实施例中,该方法还可以包括:

34、在发送所述第二报文后,在会话表中记录根据所述第一报文的数据量和所述第二报文的数据量确定的序号偏移量。

35、以上内容可以参见实施例四的情况三,本实施例的以上内容,可以适用于强制关闭通信连接的处理方式,也可以适用于平滑拒绝通信请求的处理方式。

36、在一些可选的实施例中,该方法还可以包括:

37、检测会话表的条目,并删除失效条目,所述失效条目记录的内核时间和当前的内核时间的时间差大于预设的时间差阈值。

38、以上内容可以参见实施例四的情况四。

39、在一些可选的实施例中,该方法还可以包括:

40、在发送所述第二报文且经过预设时长后未收到所述第二报文对应的应答报文的情况下,关闭所述发送方和所述接收方之间的通信连接。

41、以上内容可以参见实施例四的情况五。

42、可选的,所述根据所述序号偏移量调整反馈所述第二报文后收到的第三报文的序号,得到调整后的所述第三报文的序号,包括:

43、确定用于调整报文序号的总任务的诊断任务信息,所述诊断任务信息包括组成所述总任务的单任务数,当前执行的单任务索引号,组成所述总任务的每个单任务的编号和按位标识,所述当前执行的单任务索引号的初始值为0;

44、根据所述单任务的编号和按位标识,依次执行组成所述总任务的单任务,以调整获得的第三报文的序号,得到调整后的所述第三报文的序号。

45、该实施例的具体实施方式可以参见实施例五,其中,用于调整报文序号的总任务,可以是实施例五的adjust_tcp_seq。

46、本技术第二方面提供一种处理报文的装置,包括:

47、获得单元,用于获得第一报文;

48、处理单元,用于:

49、在确定所述第一报文为不安全报文的情况下,丢弃所述第一报文,并向所述第一报文的发送方反馈第二报文,所述第二报文表征所述第一报文被确定为不安全报文的依据;

50、丢弃所述第一报文后,在确定所述第一报文的传输层协议为目标通信协议的情况下,关闭所述发送方和所述接收方之间的通信连接,或者,对第三报文进行调整,以维持所述发送发和所述接收方之间的通信连接,所述第三报文是反馈所述第二报文后收到的报文;

51、发送单元,用于在确定所述第一报文为安全报文的情况下,将所述第一报文发给所述第一报文的接收方。

52、本技术的有益效果在于:

53、在第一报文被确定为不安全报文并被丢弃的情况下,向第一报文的发送方提供第一报文被确定为不安全报文的依据,使得发送方能够基于该依据执行对应的操作,避免发送方因为不确定报文被丢弃的原因而重复发送被丢弃的报文。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1