报文的数据预取方法、装置及网络设备与流程

文档序号:16544553发布日期:2019-01-08 20:46阅读:323来源:国知局
报文的数据预取方法、装置及网络设备与流程

本发明涉及通信技术领域,特别是涉及一种报文的数据预取方法、装置及网络设备。



背景技术:

网络设备在进行报文转发时,通常先从报文中选取特定字段信息作为关键字信息,例如源ip(internetprotocol,互联网协议)地址、源端口号、目的ip地址、目的端口号等信息,再利用预设的选路算法,对关键字信息进行计算,得到各报文对应的最优转发路径,然后将各报文分配至不同的接口进行转发。网络设备在进行计算时需要从cache(缓存)中提取数据,这就要求网络设备在转发报文前,先将报文存储至cache中,严重影响了报文转发的效能。

为了应对上述问题,在进行计算之前,按照设置的预取操作,从报文中提取出计算所需的关键字信息加载至cache中,以进行转发路径的计算。但是,由于网络设备所承担的业务存在多样性,报文的形式多种多样,报文中的关键字信息也存在较大的区别。同一网络设备若按照同一种预取操作从不同的报文中提取关键字信息,会导致部分关键字信息不完整的情况,使得所计算出的转发路径并不能保证最优,影响网络设备的转发性能。



技术实现要素:

本发明实施例的目的在于提供一种报文的数据预取方法、装置及网络设备,以提高网络设备的转发性能。具体技术方案如下:

第一方面,本发明实施例提供了一种报文的数据预取方法,所述方法包括:

提取报文的封装特征;

根据所述封装特征,确定接收到所述报文的接口的预取操作;

按照所述预取操作,从所述报文中预取指定数据。

第二方面,本发明实施例提供了一种报文的数据预取装置,所述装置包括:

提取模块,用于提取报文的封装特征;

确定模块,用于根据所述封装特征,确定接收到所述报文的接口的预取操作;

预取模块,用于按照所述预取操作,从所述报文中预取指定数据。

第三方面,本发明实施例提供了一种网络设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现本发明实施例第一方面所述的方法步骤。

本发明实施例提供的报文的数据预取方法、装置及网络设备,网络设备通过提取报文的封装特征,根据封装特征,确定接收到该报文的接口的预取操作,按照预取操作,从报文中预取指定数据。每个接口的预取操作不同,针对不同封装特征的报文,根据报文的封装特征,来确定接收到该报文的接口的预取操作,利用确定出的预取操作进行数据预取,很好的应对了报文业务的多样性,对不同报文进行不同的数据预取操作,保证了数据预取的有效性,提高了网络设备的转发性能。

附图说明

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

图1为本发明一实施例的报文的数据预取方法的流程示意图;

图2为本发明另一实施例的报文的数据预取方法的流程示意图;

图3为本发明实施例的网络设备硬件执行流程示意图;

图4为本发明再一实施例的报文的数据预取方法的流程示意图;

图5为本发明实施例的报文的数据预取装置的结构示意图;

图6为本发明实施例的网络设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了提高网络设备的转发性能,本发明实施例提供了一种报文的数据预取方法、装置、网络设备及机器可读存储介质。

下面,首先对本发明实施例所提供的一种报文的数据预取方法进行介绍。

本发明实施例所提供的一种报文的数据预取方法的执行主体可以为网络设备,例如交换机、路由器、网关、计算机设备等。实现本发明实施例所提供的一种报文的数据预取方法的方式,可以为设置于执行主体中的软件、硬件电路和逻辑电路中的至少一种方式。

本发明实施例所提供的一种报文的数据预取方法,如图1所示,该方法可以包括如下步骤。

s101,提取报文的封装特征。

封装特征可以表示报文的类型,能够体现报文的转发场景,例如,普通封装的ip报文、vxlan(virtualextensiblelocalareanetwork,可扩展虚拟局域网)封装的报文、gre(genericroutingencapsulation,通用路由封装)封装的报文、内层封装为ip报文的mpls(multi-protocollabelswitching,多协议标签交换)报文等,报文的封装特征可以通过对报文格式进行分析提取到,不同封装特征的报文,报文格式不同,例如,普通封装的ip报文包括头封装及数据封装,头封装包括固定部分和可变部分;而vxlan封装报文包括vxlan头封装、外层udp(userdatagramprotocol,用户数据报协议)头封装、外层ip头封装和外层以太网头封装,其他封装特征的报文不再一一列举。由此可以看出不同的报文格式对应着不同的封装特征,通过对报文格式的分析,可以提取出报文的封装特征。

在一种可选的实施方式中,可以根据各报文的特征生成报文的特征值,可以在报文的指定字段直接携带该特征值,更便于网络设备直接提取。相应的,可以提取报文的指定字段中携带的特征值,由此可以识别出报文的特征。

s102,根据封装特征,确定接收到报文的接口的预取操作。

预取操作为对报文进行数据预取的具体操作方式,例如,针对普通封装的ip报文,只需预取一个cacheline(一次访问的高速缓存长度单元)长度,即从报文头开始的一个cacheline长度的报文内容已经覆盖了需要预取的数据;针对带vxlan封装、gre封装、内层封装为ip报文的mpls报文等,需要预取两个(或者更多)cacheline长度才能覆盖需要预取的数据。

通常情况下,一个接口对应一个预取操作,同一个接口接收到的报文都采用相同的预取操作,然而,由于受设备配置、网络环境等影响,接口的预取操作可能会发生变化,尤其是网络环境的改变,所传输的报文类型也会随之改变,这样,接口的预取操作也需要随着变化。网络设备中可以预先设置封装特征与预取操作的对应关系,根据该对应关系,即可确定出接收到报文的接口的预取操作。

预取操作中给定了提取数据的位置和长度,例如,从报文的第0位起提取64字节的数据,预取操作中数据的长度与cache的硬件性能相关,例如cache的最大存储能力为64字节,则预取操作中数据的长度可以为64字节。

s103,按照预取操作,从报文中预取指定数据。

在确定预取操作后,就可以按照该预取操作,从报文中预取指定数据,例如,从报文的第0位起,提取64字节的数据;分别从报文的第4位和第525位起,提取64字节的数据等。

应用本实施例,网络设备通过提取报文的封装特征,根据封装特征,确定接收到该报文的接口的预取操作,按照预取操作,从报文中预取指定数据。

网络设备承担的业务存在多样性,相关技术中,某些场景下只需根据从报文中预取的一段报文内容来分配报文的转发接口,而在某些场景下需要根据从报文中预取的多段报文内容来分配报文的转发接口;对于一个接口而言,预取操作是预先设置好的,只能是上述两者择一,少预取会导致第二种场景下有一部分字段未被提取而使得所分配的转发接口并不是最理想的转发接口,影响转发性能,多预取会导致第一种场景下额外的预取动作引起过多损耗,影响转发性能。而在本实施例中,针对不同封装特征的报文,根据报文的封装特征,来确定接收到该报文的接口的预取操作,利用确定出的预取操作进行数据预取,很好的应对了报文业务的多样性,对不同报文进行不同的数据预取操作,保证了数据预取的有效性,提高了网络设备的转发性能。

基于图1所示实施例,如图2所示,提供了一种具体实施例,具体可以包括如下步骤。

s201,获取接口的角色信息。

接口的角色信息表征了网络设备接口的功能,例如,网络设备可以配置为支持转发ipv4报文、ipv6报文、vxlan报文、gre报文等,而当前的角色信息可以设置为支持ipv4报文,则通过角色信息可以大致确定出网络设备的功能。

s202,根据角色信息,设置缺省预取操作。

基于网络设备接口的角色信息,可以设置缺省预取操作,例如,网络设备接口的角色信息为支持转发ipv4报文,那么设置的缺省预取操作可以为从报文的第0位起,提取64字节的数据。

需要说明的是,本发明的另一实施例中,缺省预取操作的设置方式,还可以包括:

若报文为接口接收到的第一个报文,则将该报文的封装特征对应的预取操作设置为缺省预取操作。

可选的,本发明实施例所提供的报文的数据预取方法还可以执行:

监测接口的角色信息;

若角色信息发生变化,则根据变化后的角色信息,更新缺省预取操作。

网络设备的接口功能可以由人工设置,或者可以根据网络环境自行调整,例如,接口角色从支持ipv4报文更改为了支持gre隧道报文,因此,需要实时监测接口的角色信息,判断角色信息是否发生变化,如果发生变化,则需要根据变化后的角色信息,更新缺省预取操作。

s203,按照预设周期,提取报文的封装特征。

在实际场景中,网络环境不可避免的会受到噪声干扰,网络设备所接收到的报文中可能包括杂包,但是由于杂包往往是间歇性的,因此,可以按照预设周期,持续监测报文的封装特征,在一种可选的实施方式中,图1所示实施例中的s101具体可以按照s203进行实施。

s204,统计持续提取到同一封装特征的持续时间,若持续时间大于或等于预设时间阈值,则执行s205至s206,否则执行s207。

可以设定一个预设时间阈值fwd_persist_time,通过持续监测报文的封装特征,记录报文处于某个场景的持续时间(即持续提取到同一封装特征的持续时间)。

s205,根据预先设置的封装特征与预取操作的对应关系,查找封装特征对应的预取操作。

如果持续时间大于或等于预设时间阈值,则认为提取封装特征有效,可以根据预先设置的封装特征与预取操作的对应关系查找封装特征对应的预取操作。封装特征与预取操作的对应关系可以存储在预设预取操作库中,预设预取操作库为预先基于封装特征与预取操作的对应关系构建的数据库。

s206,按照查找到的预取操作,设置接收到报文的接口的预取操作。

在查找到预取操作后,则将接收到报文的接口设置为该预取操作,之后该接口接收到的报文按照该预取操作进行数据预取操作。网络设备继续统计持续提取到同一封装特征的持续时间,直至报文的封装特征发生变化。

s207,按照缺省预取操作,从报文中预取指定数据。

如果统计的持续时间小于预设时间阈值,则认为提取封装特征无效,可以按照设置的缺省预取操作,进行数据预取。当然,如果封装特征无效,也可以不对报文进行数据预取。如果缺省预取操作更新,则需要按照更新后的缺省预取操作从报文中预取指定数据。

具体的,网络设备的硬件执行过程如图3所示,网络设备从网卡接口nic1a和nic2a接收报文,网络设备的处理器分别针对nic1a和nic2a,基于采样计时器,周期性地提取封装特征,根据封装特征,分别确定nic1a和nic2a各自对应的预取操作,按照预取操作预取数据,然后通过计算得到转发路径,将报文通过网卡接口nic1b和nic2b转发出去。

基于图1所示实施例,如图4所示,还提供了一种具体实施例,具体可以包括如下步骤。

s401,获取接口的角色信息。

s402,根据角色信息,设置缺省预取操作。

需要说明的是,本发明的另一实施例中,缺省预取操作的设置方式,还可以包括:

若报文为接口接收到的第一个报文,则将该报文的封装特征对应的预取操作设置为缺省预取操作。

可选的,在s402之后,本发明实施例所提供的报文的数据预取方法还可以执行:

监测接口的角色信息;

若角色信息发生变化,则根据变化后的角色信息,更新缺省预取操作。

网络设备的接口功能可以有人工设置,或者可以根据网络环境自行调整,因此,需要实时监测接口的角色信息,判断角色信息是否发生变化,如果发生变化,则需要根据变化后的角色信息,更新缺省预取操作。

s403,按照预设周期,提取报文的封装特征。

s401至s403与图2实施例所示的s201至s203为相同的步骤,这里不再赘述。

s404,统计连续提取到同一封装特征的次数,若次数大于或等于预设次数阈值,则执行s405至s406,否则执行s407。

本发明实施例还可以统计连续提取到同一封装特征的次数,并且设定一个阈值fwd_persist_sum,每连续提取到同一个封装特征,就将次数加1,如果提取到不同的封装特征,就将次数置0。

s405,根据预先设置的封装特征与预取操作的对应关系,查找封装特征对应的预取操作。

s406,按照查找到的预取操作,设置接收到报文的接口的预取操作。

如果统计的次数大于或等于预设次数阈值,则认为提取封装特征有效,可以根据预先设置的封装特征与预取操作的对应关系查找封装特征对应的预取操作。

s407,按照缺省预取操作,从报文中预取指定数据。

如果统计的次数小于预设次数阈值,则认为提取封装特征无效,可以按照设置的缺省预取操作,进行数据预取。当然,如果封装特征无效,也可以不对报文进行数据预取。如果缺省预取操作更新,则需要按照更新后的缺省预取操作从报文中预取指定数据。

应用本实施例,网络设备通过提取报文的封装特征,根据封装特征,确定接收到该报文的接口的预取操作,按照预取操作,从报文中预取指定数据。每个接口的预取操作不同,针对不同封装特征的报文,根据报文的封装特征,来确定接收到该报文的接口的预取操作,利用确定出的预取操作进行数据预取,很好的应对了报文业务的多样性,对不同报文进行不同的数据预取操作,保证了数据预取的有效性,提高了网络设备的转发性能。并且,通过统计持续提取到同一封装特征的持续时间,来判别提取封装特征是否有效,有效时才执行数据预取操作,可以防止杂包污染。

相应于上述方法实施例,本发明实施例提供了一种报文的数据预取装置,如图5所示,该装置可以包括:

提取模块510,用于提取报文的封装特征;

确定模块520,用于根据所述封装特征,确定接收到所述报文的接口的预取操作;

预取模块530,用于按照所述预取操作,从所述报文中预取指定数据。

可选的,所述提取模块510,具体可以用于:

按照预设周期,提取报文的封装特征;

所述确定模块520,具体可以用于:

统计持续提取到同一封装特征的持续时间;

若所述持续时间大于或等于预设时间阈值,则根据预先设置的封装特征与预取操作的对应关系,查找所述封装特征对应的预取操作;

按照查找到的预取操作,设置接收到所述报文的接口的预取操作。

可选的,所述装置还可以包括:

设置模块,用于获取所述接口的角色信息,并根据所述角色信息,设置缺省预取操作;或者,若所述报文为所述接口接收到的第一个报文,则将所述报文的封装特征对应的预取操作设置为缺省预取操作;

所述预取模块530,还可以用于:

若所述持续时间小于所述预设时间阈值,则按照所述缺省预取操作,从所述报文中预取指定数据。

可选的,所述提取模块510,具体可以用于:

按照预设周期,提取报文的封装特征;

所述确定模块520,具体可以用于:

统计连续提取到同一封装特征的次数;

若所述次数大于或等于预设次数阈值,则根据预先设置的封装特征与预取操作的对应关系,查找所述封装特征对应的预取操作;

按照查找到的预取操作,设置接收到所述报文的接口的预取操作。

可选的,所述装置还可以包括:

设置模块,用于获取所述接口的角色信息,并根据所述角色信息,设置缺省预取操作;或者,若所述报文为接口接收到的第一个报文,则将所述报文的封装特征对应的预取操作设置为缺省预取操作;

所述预取模块530,还可以用于:

若所述次数小于所述预设次数阈值,则按照所述缺省预取操作,从所述报文中预取指定数据。

可选的,所述装置还可以包括:

监测模块,用于监测所述角色信息;

更新模块,用于若所述角色信息发生变化,则根据变化后的角色信息,更新所述缺省预取操作。

应用本实施例,网络设备通过提取报文的封装特征,根据封装特征,确定接收到该报文的接口的预取操作,按照预取操作,从报文中预取指定数据。每个接口的预取操作不同,针对不同封装特征的报文,根据报文的封装特征,来确定接收到该报文的接口的预取操作,利用确定出的预取操作进行数据预取,很好的应对了报文业务的多样性,对不同报文进行不同的数据预取操作,保证了数据预取的有效性,提高了网络设备的转发性能。并且,通过统计持续提取到同一封装特征的持续时间,来判别提取封装特征是否有效,有效时才执行数据预取操作,可以防止杂包污染。

本发明实施例还提供了一种网络设备,如图6所示,可以包括处理器601和机器可读存储介质602,所述机器可读存储介质602存储有能够被所述处理器601执行的机器可执行指令,所述处理器601被所述机器可执行指令促使:实现如上述报文的数据预取方法的步骤。

本实施例中,处理器601通过读取机器可读存储介质602中存储的机器可执行指令,并通过运行该机器可执行指令,能够实现:网络设备通过提取报文的封装特征,根据封装特征,确定接收到该报文的接口的预取操作,按照预取操作,从报文中预取指定数据。每个接口的预取操作不同,针对不同封装特征的报文,根据报文的封装特征,来确定接收到该报文的接口的预取操作,利用确定出的预取操作进行数据预取,很好的应对了报文业务的多样性,对不同报文进行不同的数据预取操作,保证了数据预取的有效性,提高了网络设备的转发性能。

本发明实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,实现如上述报文的数据预取方法的步骤。

本实施例中,机器可读存储介质存储有在运行时执行本发明实施例所提供的报文的数据预取方法的机器可执行指令,因此能够实现:网络设备通过提取报文的封装特征,根据封装特征,确定接收到该报文的接口的预取操作,按照预取操作,从报文中预取指定数据。每个接口的预取操作不同,针对不同封装特征的报文,根据报文的封装特征,来确定接收到该报文的接口的预取操作,利用确定出的预取操作进行数据预取,很好的应对了报文业务的多样性,对不同报文进行不同的数据预取操作,保证了数据预取的有效性,提高了网络设备的转发性能。

上述机器可读存储介质可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离上述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

对于网络设备以及机器可读存储介质实施例而言,由于其所涉及的方法内容基本相似于前述的方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络设备及机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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