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

技术领域

本发明涉及互联网技术领域,尤其涉及一种SRv6报文的存储方法、装置及电子设备。

背景技术

随着大数据、云计算、人工智能等的出现和应用,互联网迎来了新一轮革命。全息通信、意识通信、空天地海一体化通信已悄然而至,一个万物感知,万网互联的智能世界即将到来。纷繁的新应用、新技术对当前IP网络提出了新的要求与挑战。然而,与互联网应用的快速迭代相比,TCP/IP协议作为互联网的基础近40年未做出实质性的变革,IP网络的各项能力亟待增强。IPv6网络作为IPv4网络的改良解决了地址耗尽问题和安全问题,但是始终没有改变TCP/IP技术核心,其固有缺陷一直没有被解决。

为此,华为研究团队聚焦网络5.0典型应用场景对数据网络提出的关键需求,提出一种新型网络协议体系——NewIP。其中,SRv6协议(Segment Routing IPv6,SRv6)作为NewIP网络功能实现的一种技术手段,其在网络层协议与IPv6相互兼容,并能够在转发平面实现段路由。

目前SRv6报文的存储和转发过程多为以前缀分布特点为基础的相关算法。而由于IPv6地址的规模和分布存在较大的不确定性,且IPv6地址更新相对频繁,以前缀值为基础的相关算法形成的查找树中不平衡现象会加剧,导致SRv6报文的存储路径拥挤,占用空间较大,存储效率较低。

发明内容

本发明提供了一种SRv6报文的存储方法、装置及电子设备,能够缓解SRv6报文的存储时的拥挤程度,减小SRv6报文的存储时占用空间,提高SRv6报文的存储效率。

第一方面,本发明提供了一种SRv6报文的存储方法,包括:获取待存储的SRv6报文;并对待存储的SRv6报文中的目的IPv6地址进行进制转换,得到十进制的目标向量;基于目标向量和预先设置的地址索引模型,预测得到与目标向量对应的累计分布函数值;累计分布函数值用于表征SRv6报文的存储地址相对于存储空间的起始地址之间偏移量的大小;地址索引模型用于限定累计分布函数值和目标向量的向量值之间的映射关系;基于累计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,并将SRv6报文存储至目标存储地址。

本发明提供一种SRv6报文的存储方法,通过建立地址索引模型,限定累计分布函数值和目标向量的向量值之间的映射关系,由待存储的SRv6报文中的目的IPv6地址转换得到十进制向量的向量值,确定的累计分布函数值,可以表示SRv6报文的存储地址相对于存储空间的起始地址之间偏移量的大小,也即表示SRv6报文在存储空间中的存储位置;之后基于计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,在存储空间中确定了一个确定的存储位置供SRv6报文存储。由于各SRv6报文中的目的IPv6地址并不相同,得到的目标向量的向量值不同,从而最终确定的目标存储地址不同,实现了SRv6报文存储地址的确定性,缓解了SRv6报文的存储时的拥挤程度,减小SRv6报文的存储时占用空间,提高SRv6报文的存储效率。

在一种可能的实现方式中,基于目标向量和预先设置的地址索引模型,预测得到与目标向量对应的累计分布函数值,包括:确定目标向量的向量值;将目标向量的向量值输入地址索引模型的第一层模型,确定目标向量对应的分类号;将目标向量对应的分类号输入地址索引模型的第二层模型,得到与目标向量对应的累计分布函数值。

在一种可能的实现方式中,基于目标向量和预先设置的地址索引模型,预测得到与目标向量对应的累计分布函数值之前,还包括:获取训练数据,训练数据包括多个SRv6报文,以及每个SRv6报文的存储地址;将多个SRv6报文中的目的IPv6地址转换为十进制向量,生成多个训练样本,其中,每个训练样本包括一个SRv6报文对应的十进制向量和该SRv6报文的存储地址;基于多个训练样本,对新神经网络模型进行训练,得到地址索引模型。

在一种可能的实现方式中,基于多个训练样本,对新神经网络模型进行训练,得到地址索引模型,包括:步骤一:基于十进制向量的向量值,对多个训练样本进行排序,确定各训练样本的排序标签;步骤二:以训练样本中十进制向量的向量值为输入,以训练样本的分类号为输出,对新神经网络模型的第一层模型进行训练,得到地址索引模型的第一层模型;步骤三:以训练样本的分类号为输入,以训练样本中SRv6报文的存储地址对应的累计分布函数值为输出,对新神经网络模型的第二层模型进行训练,得到地址索引模型的第二层模型;步骤四:以未参加训练的训练样本为测试样本,对训练过程中的地址索引模型进行测试;步骤五:若测试精度大于等于设定精度时,结束地址索引模型的训练过程,得到预先设置的地址索引模型;若测试精度小于设定精度时,重复步骤二、步骤三和步骤四,重新训练新神经网络模型。

在一种可能的实现方式中,若测试精度大于等于设定精度时,结束地址索引模型的训练过程,得到预先设置的地址索引模型之前,还包括:确定测试得到的累计分布函数值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的差值;若该差值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的比值大于等于设定值,则确定测试精度大于等于设定精度;否则,确定测试精度小于设定精度。

在一种可能的实现方式中,基于累计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,包括:基于累计分布函数值和存储空间的大小,确定目标存储地址与存储空间的起始地址之间偏移量;基于偏移量和地址映射表,确定目标存储地址,其中,地址映射表用于限定偏移量与存储空间中存储地址之间的映射关系。

在一种可能的实现方式中,地址映射表还用于限定存储空间中存储地址与下一跳地址之间的映射关系;将SRv6报文存储至目标存储地址之后,还包括:基于SRv6报文的目标存储地址和地址映射表,确定下一跳地址;向下一跳地址对应的设备转发SRv6报文。

第二方面,本发明实施例提供了一种SRv6报文的存储装置,其特征在于,包括:通信模块,用于获取待存储的SRv6报文;处理模块,用于对待存储的SRv6报文中的目的IPv6地址进行进制转换,得到十进制的目标向量;基于目标向量和预先设置的地址索引模型,预测得到与目标向量对应的累计分布函数值;累计分布函数值用于表征SRv6报文的存储地址相对于存储空间的起始地址之间偏移量的大小;索引模型用于限定累计分布函数值和目标向量的向量值之间的映射关系;基于累计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,并将SRv6报文存储至目标存储地址。

在一种可能的实现方式中,处理模块,具体用于确定目标向量的向量值;将目标向量的向量值输入地址索引模型的第一层模型,确定目标向量对应的分类号;将目标向量对应的分类号输入地址索引模型的第二层模型,得到与目标向量对应的累计分布函数值。

在一种可能的实现方式中,处理模块,还用于获取训练数据,训练数据包括多个SRv6报文,以及每个SRv6报文的存储地址;将多个SRv6报文中的目的IPv6地址转换为十进制向量,生成多个训练样本,其中,每个训练样本包括一个SRv6报文对应的十进制向量和该SRv6报文的存储地址;基于多个训练样本,对新神经网络模型进行训练,得到地址索引模型。

在一种可能的实现方式中,处理模块,还用于执行如下步骤:步骤一:基于十进制向量的向量值,对多个训练样本进行排序,确定各训练样本的排序标签;步骤二:以训练样本中十进制向量的向量值为输入,以训练样本的分类号为输出,对新神经网络模型的第一层模型进行训练,得到地址索引模型的第一层模型;步骤三:以训练样本的分类号为输入,以训练样本中SRv6报文的存储地址对应的累计分布函数值为输出,对新神经网络模型的第二层模型进行训练,得到地址索引模型的第二层模型;步骤四:以未参加训练的训练样本为测试样本,对训练过程中的地址索引模型进行测试;步骤五:若测试精度大于等于设定精度时,结束地址索引模型的训练过程,得到预先设置的地址索引模型;若测试精度小于设定精度时,重复步骤二、步骤三和步骤四,重新训练新神经网络模型。

在一种可能的实现方式中,处理模块,还用于确定测试得到的累计分布函数值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的差值;若该差值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的比值大于等于设定值,则确定测试精度大于等于设定精度;否则,确定测试精度小于设定精度。

在一种可能的实现方式中,处理模块,具体用于基于累计分布函数值和存储空间的大小,确定目标存储地址与存储空间的起始地址之间偏移量;基于偏移量和地址映射表,确定目标存储地址,其中,地址映射表用于限定偏移量与存储空间中存储地址之间的映射关系。

在一种可能的实现方式中,地址映射表还用于限定存储空间中存储地址与下一跳地址之间的映射关系;处理模块,还用于基于SRv6报文的目标存储地址和地址映射表,确定下一跳地址;通信模块,还用于向下一跳地址对应的设备转发SRv6报文。

第三方面,本发明实施例提供了一种电子设备,所述电子设备包括存储器和处理器,该存储器存储有计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序执行如上述第一方面以及第一方面中任一种可能的实现方式所述方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面以及第一方面中任一种可能的实现方式所述方法的步骤。

上述第二方面至第四方面中任一种实现方式所带来的技术效果可以参见第一方面对应实现方式所带来的技术效果,此处不再赘述。

附图说明

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

图1是本发明实施例提供的一种SRv6报文的存储方法的流程示意图;

图2是本发明实施例提供的另一种SRv6报文的存储方法的流程示意图;

图3是本发明实施例提供的另一种SRv6报文的存储方法的流程示意图;

图4是本发明实施例提供的另一种SRv6报文的存储方法的流程示意图;

图5是本发明实施例提供的一种SRv6报文的存储装置的结构示意图;

图6是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

在本发明的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。

此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选的还包括其他没有列出的步骤或模块,或可选的还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明的附图通过具体实施例来进行说明。

如背景技术所述,目前存在SRv6报文的存储路径拥挤,占用空间较大,存储效率较低等技术问题。

为解决上述技术问题,如图1所示,本发明实施例提供了一种SRv6报文的存储方法。执行主体为SRv6报文的存储装置。该存储方法包括步骤S101-S104。

S101、获取待存储的SRv6报文。

在一些实施例中,待存储的SRv6报文可以为存储装置接收的SRv6报文。

S102、对待存储的SRv6报文中的目的IPv6地址进行进制转换,得到十进制的目标向量。

作为一种可能的实现方式,如图2所示,存储装置可以对十六进制的目的IPv6地址转换为十进制的目标向量。

S103、基于目标向量和预先设置的地址索引模型,预测得到与目标向量对应的累计分布函数值。

本申请实施例中,累计分布函数值用于表征SRv6报文的存储地址相对于存储空间的起始地址之间偏移量的大小。

本申请实施例中,地址索引模型用于限定累计分布函数值和目标向量的向量值之间的映射关系。

作为一种可能的实现方式,存储装置可以确定目标向量的向量值;将目标向量的向量值输入地址索引模型的第一层模型,确定目标向量对应的分类号;将目标向量对应的分类号输入地址索引模型的第二层模型,得到与目标向量对应的累计分布函数值。

在一些实施例中,目标向量的向量值可以为目标向量中各元素之和。或者,目标向量的向量值还可以为目标向量中第一个元素的取值。

示例性的,如图2所示,存储装置将目标向量的向量值输入索引单元的第一级模型,得到目标向量对应的分类号;基于该分类号,确定索引单元的第二级模型中的子模型;基于该子模型预测得到与目标向量对应的累计分布函数值。

S104、基于累计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,并将SRv6报文存储至目标存储地址。

在一些实施例中,地址映射表用于限定偏移量与存储空间中存储地址之间的映射关系。

示例性的,地址映射表可以包括多个槽位,每个槽位对应存储空间中一段存储地址。例如,地址映射表可以包括16个槽位。

作为一种可能的实现方式,存储装置可以基于累计分布函数值和存储空间的大小,确定目标存储地址与存储空间的起始地址之间偏移量;基于偏移量和地址映射表,确定目标存储地址。

示例性的,存储装置可以基于累计分布函数值,确定地址映射表中的第9个槽位,基于每个槽位的大小,确定第9个槽位对应的偏移量,从而确定存储空间中的目标存储地址。

本发明提供一种SRv6报文的存储方法,通过建立地址索引模型,限定累计分布函数值和目标向量的向量值之间的映射关系,由待存储的SRv6报文中的目的IPv6地址转换得到十进制向量的向量值,确定的累计分布函数值,可以表示SRv6报文的存储地址相对于存储空间的起始地址之间偏移量的大小,也即表示SRv6报文在存储空间中的存储位置;之后基于计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,在存储空间中确定了一个确定的存储位置供SRv6报文存储。由于各SRv6报文中的目的IPv6地址并不相同,得到的目标向量的向量值不同,从而最终确定的目标存储地址不同,实现了SRv6报文存储地址的确定性,缓解了SRv6报文的存储时的拥挤程度,减小SRv6报文的存储时占用空间,提高SRv6报文的存储效率。

需要说明的是,存储单元将128位IPv6地址处理为长度适中的神经网络输入向量。对于每个输入的IPv6地址,将冒分十六进制转为十进制表示得到输入向量。考虑到神经网络的分类准确率,对于128位的IPv6地址,为使得每一维向量对应的数据尽可能均匀,考虑将输入向量设计为2n(1≤n≤7)维。存储装置学习IPv6地址在存储器中的分布规律,而存储装置使用的神经网络模型结构关系到索引的效率及存储消耗的大小。因此选用结构小巧的前馈神经网络实现快速计算,并将其搭建成两层的塔式结构以应对百万级别的数据量。该塔式结构第一层包含一个前馈神经网络,将百万级别数据量分为1,000类。第二级包含1,000个前馈神经网络,分别对应第一层的1,000类分类结果,每个前馈神经网络学习各类中数据在存储器中的分布情况。存储装置还部署一个增强型Bitmap结构,用于预测累计分布函数值到存储器中的映射,以获取实际索引地址的偏移量。其中Bitmap被均匀分为若干个部分,其中每个槽记录IPv6地址插入该部分的顺序,以实现存储单元的动态内存分配。将预测的累计分布函数值乘以Bitmap中槽的总个数即可得到映射位置。最后根据该槽中记录的地址偏移量,即可访问到片下实际存储地址。

需要说明的是,将本发明的NewIP网络中SRv6协议下的学习型地址索引模型及其训练方法在一台配置为Intel Xeon E5-1650 v2 3.50GHz、DDR3 24GB SDRAM的小型工作站上进行软件部署测试。考虑到实际路由表索引数据量,实验中利用一亿条路由表索引数据作为训练集,测试集由二百万条全新的路由表索引数据构成。实验结果表明,在误判概率为1%的条件下,该映射模型的存储消耗仅为26.14MB,是传统哈希表存储消耗的6.6%,并可直接部署于高速片内存储器。对于查找速度,其远高于MD5和CityHash256等传统哈希函数以及基于查找树的方案Patricia Trie。因此,该映射模型在实际应用中是切实可行的。由此表明,本发明中设计的基于SRv6协议的学习型地址索引模型,能够在保证数据检索速度的同时提升存储效率,具有良好的综合性能。

可选的,如图3所示,本发明实施例提供的SRv6报文的存储方法,在步骤S103之前,还包括S201-S203。

S201、获取训练数据。

本申请实施例中,训练数据包括多个SRv6报文,以及每个SRv6报文的存储地址。

S202、将多个SRv6报文中的目的IPv6地址转换为十进制向量,生成多个训练样本。

其中,每个训练样本包括一个SRv6报文对应的十进制向量和该SRv6报文的存储地址。

作为一种可能的实现方式,如图4所示,存储装置可以基于多个目的IPv6地址生成十进制向量,进而生成多个训练样本,构成训练集。

S203、基于多个训练样本,对新神经网络模型进行训练,得到地址索引模型。

作为一种可能的实现方式,存储装置可以基于如下步骤训练得到地址索引模型。

步骤一:基于十进制向量的向量值,对多个训练样本进行排序,确定各训练样本的排序标签。

步骤二:以训练样本中十进制向量的向量值为输入,以训练样本的分类号为输出,对新神经网络模型的第一层模型进行训练,得到地址索引模型的第一层模型。

步骤三:以训练样本的分类号为输入,以训练样本中SRv6报文的存储地址对应的累计分布函数值为输出,对新神经网络模型的第二层模型进行训练,得到地址索引模型的第二层模型。

步骤四:以未参加训练的训练样本为测试样本,对训练过程中的地址索引模型进行测试。

步骤五:若测试精度大于等于设定精度时,结束地址索引模型的训练过程,得到预先设置的地址索引模型;若测试精度小于设定精度时,重复步骤二、步骤三和步骤四,重新训练新神经网络模型。

作为一种可能的实现方式,在步骤五之前,存储装置还可以确定测试得到的累计分布函数值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的差值;若该差值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的比值大于等于设定值,则确定测试精度大于等于设定精度;否则,确定测试精度小于设定精度。

如此一来,本发明实施例可以基于训练数据训练得到地址索引模型,从而实现SRv6报文的存储路径的预测。

需要说明的是,本发明同时提出上述NewIP网络中SRv6协议下的学习型地址索引模型的训练方法,存储装置将训练集中的IPv6地址按照向量数值大小进行排序,以当前排序号作为标签标定训练集。将排序完的训练集数据按照排序大小均匀分为1,000类,并以该分类号作为标签标定每一类数据。使用分类号标签训练第一层神经网络,得到的神经网络模型可以输出多模态数据的分类值。使用训练好的第一层神经网络对训练集重新分类,将该1,000类的分类结果作为第二层神经网络的训练集,每一类训练集分别对应第二层一个神经网络。以IPv6地址的排序值作为第二层神经网络训练集标签学习数据在存储器中的分布规律。经过完整训练的神经网络可以输出未知数据在存储器中分布的累计分布函数值。该值乘以映射表的总槽数即可获得该数据在映射表的相对位置,进而可以根据该偏移地址得到实际存储位置。

需要说明的是,地址映射表还用于限定存储空间中存储地址与下一跳地址之间的映射关系。

可选的,本发明实施例提供的SRv6报文的存储方法,在步骤S104之后,还包括S301-S302:

S301、基于SRv6报文的目标存储地址和地址映射表,确定下一跳地址。

S302、向下一跳地址对应的设备转发SRv6报文。

如此一来,本发明实施例可以基于地址映射表转发SRv6报文,存储速度更快,提高SRv6报文的转发速度。

示例性的,本发明实施例中,训练完成后通过该索引模型进行地址映射的一个实例如图2所示,其中箭头线标示了一个实际索引数据获得索引地址的过程。对于一个输入的某节点IPv6地址CDCD:910A:2222:5498:1111:3900:2020,首先将该冒分十六进制转为十进制表示得到输入向量[52685,37130,8738,21656,33909,4369,14592,8224]。将该向量输入到索引单元,第一层神经网络BPNN1.0计算得到分类值99,则该输入向量进入第二层神经网络BPNN2.99计算CDF值。假设BPNN2.99计算得到CDF值为0.6,则该IPv6地址在Bitmap中的映射位置为0.6×15(槽个数)=9。由于位置9位于Bitmap分块的第二部分,其中记录的偏移量为2,所以最终索引的实际地址等于第二部分对应的基地址加上地址偏移量2。

将本发明的高性能路由器学习型数据索引模型及其训练方法在一台配置为IntelXeon E5-1650 v2 3.50GHz、DDR3 24GB SDRAM的小型工作站上进行软件部署测试。考虑到实际路由表索引数据量,实验中利用一亿条路由表索引数据作为训练集,测试集由二百万条全新的路由表索引数据构成。实验结果表明,在误判概率为1%的条件下,该映射模型的存储消耗仅为26.14MB,是传统哈希表存储消耗的6.6%,并可直接部署于高速片内存储器。对于查找速度,其远高于MD5和CityHash256等传统哈希函数以及基于查找树的方案Patricia Trie。因此,该映射模型在实际应用中是切实可行的。由此表明,本发明中设计的基于SRv6协议的学习型地址索引模型,能够在保证数据检索速度的同时提升存储效率,具有良好的综合性能。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

以下为本发明的装置实施例,对于其中未详尽描述的细节,可以参考上述对应的方法实施例。

图5示出了本发明实施例提供的一种SRv6报文的存储装置的结构示意图。该嵌入式设备的配置装置400包括通信模块401和处理模块402。

通信模块401,用于获取待存储的SRv6报文。

处理模块402,用于对待存储的SRv6报文中的目的IPv6地址进行进制转换,得到十进制的目标向量;基于目标向量和预先设置的地址索引模型,预测得到与目标向量对应的累计分布函数值;累计分布函数值用于表征SRv6报文的存储地址相对于存储空间的起始地址之间偏移量的大小;索引模型用于限定累计分布函数值和目标向量的向量值之间的映射关系;基于累计分布函数值和预先设置的地址映射表,确定SRv6报文在存储空间的目标存储地址,并将SRv6报文存储至目标存储地址。

在一种可能的实现方式中,处理模块402,具体用于确定目标向量的向量值;将目标向量的向量值输入地址索引模型的第一层模型,确定目标向量对应的分类号;将目标向量对应的分类号输入地址索引模型的第二层模型,得到与目标向量对应的累计分布函数值。

在一种可能的实现方式中,处理模块402,还用于获取训练数据,训练数据包括多个SRv6报文,以及每个SRv6报文的存储地址;将多个SRv6报文中的目的IPv6地址转换为十进制向量,生成多个训练样本,其中,每个训练样本包括一个SRv6报文对应的十进制向量和该SRv6报文的存储地址;基于多个训练样本,对新神经网络模型进行训练,得到地址索引模型。

在一种可能的实现方式中,处理模块402,还用于执行如下步骤:步骤一:基于十进制向量的向量值,对多个训练样本进行排序,确定各训练样本的排序标签;步骤二:以训练样本中十进制向量的向量值为输入,以训练样本的分类号为输出,对新神经网络模型的第一层模型进行训练,得到地址索引模型的第一层模型;步骤三:以训练样本的分类号为输入,以训练样本中SRv6报文的存储地址对应的累计分布函数值为输出,对新神经网络模型的第二层模型进行训练,得到地址索引模型的第二层模型;步骤四:以未参加训练的训练样本为测试样本,对训练过程中的地址索引模型进行测试;步骤五:若测试精度大于等于设定精度时,结束地址索引模型的训练过程,得到预先设置的地址索引模型;若测试精度小于设定精度时,重复步骤二、步骤三和步骤四,重新训练新神经网络模型。

在一种可能的实现方式中,处理模块402,还用于确定测试得到的累计分布函数值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的差值;若该差值与测试样本中SRv6报文的存储地址对应的累计分布函数值之间的比值大于等于设定值,则确定测试精度大于等于设定精度;否则,确定测试精度小于设定精度。

在一种可能的实现方式中,处理模块402,具体用于基于累计分布函数值和存储空间的大小,确定目标存储地址与存储空间的起始地址之间偏移量;基于偏移量和地址映射表,确定目标存储地址,其中,地址映射表用于限定偏移量与存储空间中存储地址之间的映射关系。

在一种可能的实现方式中,地址映射表还用于限定存储空间中存储地址与下一跳地址之间的映射关系;处理模块402,还用于基于SRv6报文的目标存储地址和地址映射表,确定下一跳地址;通信模块,还用于向下一跳地址对应的设备转发SRv6报文。

图6是本发明实施例提供的一种电子设备的结构示意图。如图6所示,该实施例的电子设备500包括:处理器501、存储器502以及存储在所述存储器502中并可在所述处理器501上运行的计算机程序503。所述处理器501执行所述计算机程序503时实现上述各方法实施例中的步骤,例如图1所示的步骤101至步骤104。或者,所述处理器501执行所述计算机程序503时实现上述各装置实施例中各模块/单元的功能,例如,图5所示通信模块401和处理模块402的功能。

示例性的,所述计算机程序503可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器502中,并由所述处理器501执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序503在所述电子设备500中的执行过程。例如,所述计算机程序503可以被分割成图5所示通信模块401和处理模块402。

所称处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器502可以是所述电子设备500的内部存储单元,例如电子设备500的硬盘或内存。所述存储器502也可以是所述电子设备500的外部存储设备,例如所述电子设备500上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器502还可以既包括所述电子设备500的内部存储单元也包括外部存储设备。所述存储器502用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述存储器502还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

技术分类

06120115629370