网关报文转发方法、装置、存储介质及网关与流程

    专利2022-07-07  106


    本申请实施例涉及通信技术领域,特别涉及一种网关报文转发方法、装置、存储介质及网关。



    背景技术:

    网关是汽车中can(controllerareanetwork,控制器局域网络)总线的核心单元,用于对车内的各个can节点发送的can报文进行转发。由于汽车应用的强实时性特点,需要网关将can报文的转发时延控制到最小,因此,如何以最小的延时进行can报文的转发,是网关设计的重点和热点。

    在转发can报文时,第一节点将can报文发送给网关,再由网关将该can报文转发给第二节点。由于车内往往包含多个can节点,每个can节点又会接收或发送多个can报文,因此,在整车的网络设计时,需要制定can报文的路由,以便网关在收到can报文后,可以根据第一节点的节点标识和消息标识快速查询路由表以确定第二节点,再将can转发给该第二节点。由于节点数和消息数众多,导致路由表的规模很大,如何最快速的完成查表是网关设计的一个重点。

    为实现快速的进行路由表查询,业界多采用哈希表的形式组织路由表,往往以节点标识和消息标识为输入,经哈希函数运算后得到下标,再以该下标来访问路由表,得到第二节点。但是,不同的节点标识和消息标识经哈希函数运算后得到的下标可能相同,也即出现了哈希碰撞的情形,此时,网关不得不处理碰撞情形,处理的时间复杂度往往跟发生碰撞的个数正相关,由此带来的问题是对于一些节点标识和消息标识,其报文转发延时明显增大。



    技术实现要素:

    本申请实施例提供了一种网关报文转发方法、装置、存储介质及网关,用于解决一些节点发送的can报文的时延较大的问题。所述技术方案如下:

    一方面,提供了一种网关报文转发方法,用于网关中,所述方法包括:

    接收第一节点发送的控制器局域网络can报文;

    从所述can报文中获取标识信息;

    利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值;

    根据所述最小完美哈希值在路由表中查找第二节点;

    将所述can报文转发给所述第二节点。

    在一种可能的实现方式中,所述标识信息包括消息标识和所述第一节点的节点标识。

    在一种可能的实现方式中,在所述根据所述最小完美哈希值在路由表中查找第二节点之前,所述方法还包括:

    根据can网络生成静态的路由表,所述路由表中包括所述can网络中所包含的所有节点的节点标识和各个节点之间发送的can报文的消息标识。

    在一种可能的实现方式中,在所述利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值之前,所述方法还包括:

    获取所述最小完美哈希函数,所述最小完美哈希函数是预先根据所述路由表生成,且编辑在所述网关中的。

    一方面,提供了一种网关报文转发装置,用于网关中,所述装置包括:

    接收模块,用于接收第一节点发送的控制器局域网络can报文;

    获取模块,用于从所述can报文中获取标识信息;

    运算模块,用于利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值;

    查找模块,用于根据所述最小完美哈希值在路由表中查找第二节点;

    转发模块,用于将所述can报文转发给所述第二节点。

    在一种可能的实现方式中,所述标识信息包括消息标识和所述第一节点的节点标识。

    在一种可能的实现方式中,所述装置还包括:

    生成模块,用于在所述查找模块根据所述最小完美哈希值在路由表中查找第二节点之前,根据can网络生成静态的路由表,所述路由表中包括所述can网络中所包含的所有节点的节点标识和各个节点之间发送的can报文的消息标识。

    在一种可能的实现方式中,所述获取模块,还用于在利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值之前,获取所述最小完美哈希函数,所述最小完美哈希函数是预先根据所述路由表生成,且编辑在所述网关中的。

    一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的网关报文转发方法。

    一方面,提供了一种网关,所述网关包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的网关报文转发方法。

    本申请实施例提供的技术方案的有益效果至少包括:

    网关在接收第一节点发送的can报文时,可以先从can报文中获取标识信息,再利用最小完美哈希函数对标识信息进行哈希运算,得到最小完美哈希值,再根据最小完美哈希值在路由表中查找第二节点,最后将can报文转发给第二节点,由于最小完美哈希函数对不同的标识信息生成的最小完美哈希值不同,所以,不会产生哈希碰撞的问题,网关无需处理哈希碰撞,也就可以保证所有节点的can报文都能被实时转发,降低了报文转发的时延。

    附图说明

    为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1是本申请一个实施例提供的网关报文转发方法的方法流程图;

    图2是本申请一个实施例提供的网关报文转发装置的结构框图。

    具体实施方式

    为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

    请参考图1,其示出了本申请一个实施例提供的网关报文转发方法的方法流程图,该网关报文转发方法可以应用于网关中。该网关报文转发方法,可以包括:

    步骤101,接收第一节点发送的can报文。

    本实施应用于汽车中的can网络中,该can网络中包括多个can节点和网关,且各个can节点之间可以通过网关进行通信。在通信时,作为源节点的can节点可以生成can报文,再将该can报文发送给网关,网关确定该can报文的路由路径,再通过该路由路径将该can报文发送作为目的节点的can节点。

    为了便于区分,本实施例中将向网关发送can报文的can节点称为第一节点,将从网关接收can报文的can节点称为第二节点。

    步骤102,从can报文中获取标识信息。

    其中,can报文中至少包括标识信息和消息内容,该标识信息包括消息标识和第一节点的节点标识。比如,消息标识可以是id123,节点标识可以是can1。

    需要说明的是,标识信息可以是由消息标识和节点标识所组成的一个数组,比如,仍以上述消息标识和节点标识为例,则标识信息可以是can1_id123。

    步骤103,利用最小完美哈希函数对标识信息进行哈希运算,得到最小完美哈希值。

    在解释最小完美哈希函数之前,先对哈希函数以及完美哈希函数进行介绍。哈希函数中包含一种映射关系h,可以将一组键值(设为x,n个)映射为另一组数值(也即哈希值)。当h(x1)=h(x2)且x1!=x2时,称作哈希冲突。即哈希函数针对不同的输入生成相同的哈希值。

    完美哈希函数是指不存在哈希冲突的哈希函数,即,完美哈希函数针对不同的输入生成不同的哈希值。但是,完美哈希函数要求函数的值域至少比参数域要大,参数域为输入域,值域为输出域。

    最小完美哈希函数是指值域与参数域相等的完美哈希函数。

    在进行哈希运算之前,需要先生成最小完美哈希函数,而最小完美哈希函数的生成依赖于路由表,所以,下面先对路由表的生成流程进行说明。

    本实施例中,可以根据can网络生成静态的路由表,该路由表中包括can网络中所包含的所有节点的节点标识和各个节点之间发送的can报文的消息标识。

    由于本实施例应用于汽车中的网关中,而该网关内的路由表一般情况是固定不变的,即不会动态地加入can节点或动态地增加消息,所以,可以生成静态的路由表。

    在一个实施例中,静态的路由表可以由用户配置得到。该路由表中包含多个表项,以用来描述can报文的转发规则,即,可以预先规划好哪些消息在哪几个can节点之间传输。一个典型的表项如下:

    can1_id123tocan2_id123

    上述表项用以表述将can网络1接收到的id为0x123的can报文转发给can网络2。

    在得到路由表后,可以利用计算机程序,根据路由表生成最小完美哈希函数,再在网关中编辑代码以实现该最小完美哈希函数。在编辑完成后,网关可以获取最小完美哈希函数,该最小完美哈希函数是预先根据路由表生成,且编辑在网关中的。

    在获取到最小完美哈希函数后,网关可以利用最小完美哈希函数计算标识信息的最小完美哈希值,本实施例不对计算方式作限定。

    步骤104,根据最小完美哈希值在路由表中查找第二节点。

    网关可以将最小完美哈希值作为下标,以该下标在路由表中查找第二节点。

    步骤105,将can报文转发给第二节点。

    在路由表中查找到第二节点后,网关可以将该can报文转发给该第二节点。

    本实施例中,可以将最小完美哈希函数固化在网关中,可以避免可以以最小的内存代价碰撞情形,从而保证对于任意can报文的转发延时恒定,且可以保证检索路由表的时间复杂度固定为o(1),极大地提升了网关的性能。

    综上所述,本申请实施例提供的网关报文转发方法,网关在接收第一节点发送的can报文时,可以先从can报文中获取标识信息,再利用最小完美哈希函数对标识信息进行哈希运算,得到最小完美哈希值,再根据最小完美哈希值在路由表中查找第二节点,最后将can报文转发给第二节点,由于最小完美哈希函数对不同的标识信息生成的最小完美哈希值不同,所以,不会产生哈希碰撞的问题,网关无需处理哈希碰撞,也就可以保证所有节点的can报文都能被实时转发,降低了报文转发的时延。

    请参考图2,其示出了本申请一个实施例提供的网关报文转发装置的结构框图,该网关报文转发装置可以应用于网关中。该网关报文转发装置,可以包括:

    接收模块210,用于接收第一节点发送的can报文;

    获取模块220,用于从can报文中获取标识信息;

    运算模块230,用于利用最小完美哈希函数对标识信息进行哈希运算,得到最小完美哈希值;

    查找模块240,用于根据最小完美哈希值在路由表中查找第二节点;

    转发模块250,用于将can报文转发给第二节点。

    在一个可能的实施例中,标识信息包括消息标识和第一节点的节点标识。

    在一个可能的实施例中,该装置还包括:生成模块,用于在查找模块根据最小完美哈希值在路由表中查找第二节点之前,根据can网络生成静态的路由表,路由表中包括can网络中所包含的所有节点的节点标识和各个节点之间发送的can报文的消息标识。

    在一个可能的实施例中,获取模块220,还用于在利用最小完美哈希函数对标识信息进行哈希运算,得到最小完美哈希值之前,获取最小完美哈希函数,最小完美哈希函数是预先根据路由表生成,且编辑在网关中的。

    综上所述,本申请实施例提供的网关报文转发装置,网关在接收第一节点发送的can报文时,可以先从can报文中获取标识信息,再利用最小完美哈希函数对标识信息进行哈希运算,得到最小完美哈希值,再根据最小完美哈希值在路由表中查找第二节点,最后将can报文转发给第二节点,由于最小完美哈希函数对不同的标识信息生成的最小完美哈希值不同,所以,不会产生哈希碰撞的问题,网关无需处理哈希碰撞,也就可以保证所有节点的can报文都能被实时转发,降低了报文转发的时延。

    本申请一个实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的网关报文转发方法。

    本申请一个实施例提供了一种网关,所述网关包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的网关报文转发方法。

    需要说明的是:上述实施例提供的网关报文转发装置在进行网关报文转发时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将网关报文转发装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网关报文转发装置与网关报文转发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

    本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

    以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。


    技术特征:

    1.一种网关报文转发方法,用于网关中,其特征在于,所述方法包括:

    接收第一节点发送的控制器局域网络can报文;

    从所述can报文中获取标识信息;

    利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值;

    根据所述最小完美哈希值在路由表中查找第二节点;

    将所述can报文转发给所述第二节点。

    2.根据权利要求1所述的方法,其特征在于,所述标识信息包括消息标识和所述第一节点的节点标识。

    3.根据权利要求2所述的方法,其特征在于,在所述根据所述最小完美哈希值在路由表中查找第二节点之前,所述方法还包括:

    根据can网络生成静态的路由表,所述路由表中包括所述can网络中所包含的所有节点的节点标识和各个节点之间发送的can报文的消息标识。

    4.根据权利要求3所述的方法,其特征在于,在所述利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值之前,所述方法还包括:

    获取所述最小完美哈希函数,所述最小完美哈希函数是预先根据所述路由表生成,且编辑在所述网关中的。

    5.一种网关报文转发装置,用于网关中,其特征在于,所述装置包括:

    接收模块,用于接收第一节点发送的控制器局域网络can报文;

    获取模块,用于从所述can报文中获取标识信息;

    运算模块,用于利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值;

    查找模块,用于根据所述最小完美哈希值在路由表中查找第二节点;

    转发模块,用于将所述can报文转发给所述第二节点。

    6.根据权利要求5所述的装置,其特征在于,所述标识信息包括消息标识和所述第一节点的节点标识。

    7.根据权利要求6所述的装置,其特征在于,所述装置还包括:

    生成模块,用于在所述查找模块根据所述最小完美哈希值在路由表中查找第二节点之前,根据can网络生成静态的路由表,所述路由表中包括所述can网络中所包含的所有节点的节点标识和各个节点之间发送的can报文的消息标识。

    8.根据权利要求7所述的装置,其特征在于,所述获取模块,还用于在利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值之前,获取所述最小完美哈希函数,所述最小完美哈希函数是预先根据所述路由表生成,且编辑在所述网关中的。

    9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至4任一所述的网关报文转发方法。

    10.一种网关,其特征在于,所述网关包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至4任一所述的网关报文转发方法。

    技术总结
    本申请实施例公开了一种网关报文转发方法、装置、存储介质及网关,属于通信技术领域。所述方法包括:接收第一节点发送的CAN报文;从所述CAN报文中获取标识信息;利用最小完美哈希函数对所述标识信息进行哈希运算,得到最小完美哈希值;根据所述最小完美哈希值在路由表中查找第二节点;将所述CAN报文转发给所述第二节点。本申请实施例中通过最小完美哈希函数对标识信息计算最小完美哈希值,由于根据不同的标识信息计算得到的最小完美哈希值是不同的,所以,不会出现哈希碰撞的情形,也就可以保证所有节点的CAN报文都能被实时转发,降低了报文转发的时延。

    技术研发人员:樊崇斌
    受保护的技术使用者:上海励驰半导体有限公司
    技术研发日:2020.12.07
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8323.html

    最新回复(0)