CN105119960B - 一种网络数据分发方法及网络设备 - Google Patents
一种网络数据分发方法及网络设备 Download PDFInfo
- Publication number
- CN105119960B CN105119960B CN201510409839.5A CN201510409839A CN105119960B CN 105119960 B CN105119960 B CN 105119960B CN 201510409839 A CN201510409839 A CN 201510409839A CN 105119960 B CN105119960 B CN 105119960B
- Authority
- CN
- China
- Prior art keywords
- bit
- parameter
- bits
- unit
- keyword
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004364 calculation method Methods 0.000 claims description 30
- 238000000605 extraction Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 description 33
- 230000008569 process Effects 0.000 description 16
- 230000009471 action Effects 0.000 description 6
- 238000009795 derivation Methods 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种网络数据分发方法及网络设备,所述方法包括:获取第一参数,第一参数包含了当前网络数据的流向信息;获取预设的关键字,关键字的比特位数为A的倍数且每组A个比特位周期性相同;从A个比特位中提取比特位为1或0的各个比特位;在各个比特位中,确定每一比特位在第一参数中的影响区间;将所有影响区间按位进行异或运算,得到第二参数;若A个比特位中比特位为1的位数不超过A/2或第一参数中比特位为1的位数为奇数,则将第二参数取逆序并取反后得到第三参数,若A个比特位中比特位为1的位数超过A/2且第一参数中比特位为1的位数为偶数,则将第二参数取逆序后得到第三参数;根据第三参数将当前网络数据分配给对应的CPU核处理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种网络数据分发方法及网络设备。
背景技术
为了提升计算机的性能,现代计算机一般采用多核架构处理数据。对于基于多核架构的网络设备而言,当它接收到一个网络数据包时,相关的网卡需要通过一种机制决定将这个数据包交给哪个CPU处理,RSS(receive side scaling)就是这样一种机制。RSS应用广泛,尤其是在一些高性能的网络硬件设备中,如Intel推出的基于8259910Gb以太网控制器的万兆网卡就支持使用开发者给定的参数通过RSS来进行CPU的任务分配。
除了用硬件实现RSS算法外,RSS算法的软件实现也具有重要意义。一方面,随着虚拟化技术的发展,用软件模拟硬件行为已经成为重要的发展方向,另一方面,通过软件实现RSS算法,可以及时地预测RSS网卡硬件的行为,进而实现程序开发上的优化。例如,在实际的应用场景中,如NAPT(Network Address Port Translation,网络端口地址转换),为了提升计算机系统的使用效能,网络会话(session)信息的记录往往是与特定的CPU绑定的。因此,常常希望一条会话两个方向上的数据包在RSS作用下均能分配到同一个CPU核上,为了保证这一点,就需要在数据包做NAPT时进行相应的RSS软件计算。
如图1所示的RSS处理流程示意图,可简要表述为如下几个步骤:
步骤1、确定入参。入参包括一个40字节(320比特)的关键字key和一个长度为128的数组分配表redirection table。一般情况下,这两个入参可以由开发者指定,以满足特定场景下的计算需求。Key用于计算hash(哈希)值,redirection table则用于将hash值映射到各个CPU(即各个发送队列的id)上。
步骤2、根据key和输入的网络数据信息input(input从已解析的接收数据包中获取)通过给定的hash算法计算出一个32位的hash值。其中,Input的选取一般有两种形式,一种是取源IP与目的IP二元组连接成的数据段,另一种是取源IP、目的IP、源端口、目的端口四元组连接成的数据段。在计算TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等常用数据包时,一般都采用后一种即四元组的数据形式作为input,四元组形式下input共包含12个字节,它作为一串96(8*12=96)位的0/1数字参与如下计算。关于采用hash算法计算出的32位hash值,由如下方式产生:
(1)、先将32位hash值(采用result表示)的初值置为0;
(2)、如果input最左端的一位为1,则将result更新为result自身与key最左端32位的异或值。否则,保持result不变。
(3)将input与key均左移一位。
(4)如果input各个位均为0,则将当前得到的result作为输出结果。否则,重复(2)(3)(4)。
步骤3、取出作为输出结果的result的7位最低有效位(LSB,即32位二进制hash值的最右侧7位),找出redirection table中下标与所述7位最低有效位数值相同的数组。
步骤4、读取步骤3中找出数组对应的id值。
根据上述RSS处理流程可知,RSS算法的hash值是一系列异或运算的组合,当用软件方法模拟RSS分发数据包时,每次运算的计算量与输入数据input有关,即,通过判断input中96个比特的每一位是否为1来确定异或运算的内容。在最坏的情况下,一次RSS运算需要96次的判断与96次异或运算,在平均情况下,一次运算需要96次的判断与48次异或运算,但是,这样的计算量显然过大,其计算性能无法让人满意。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种网络数据分发方法及网络设备,以实现提高网络数据分发速度的目的。
为实现上述目的,本发明实施例提供了一种网络数据分发方法,包括:
网络设备获取第一参数,所述第一参数包含了当前网络数据的流向信息,所述第一参数为二进制数且所述第一参数的比特位数为A的倍数;
获取预设的关键字,所述关键字的比特位数为A的倍数且每组A个比特位周期性相同;
从所述A个比特位中提取比特位为1或0的各个比特位;
在所述各个比特位中,确定每一比特位在所述第一参数中的影响区间,所述影响区间包括B个比特位;
将所有影响区间按位进行异或运算,得到比特位数为B的第二参数;
若所述A个比特位中比特位为1的位数不超过A/2或所述第一参数中比特位为1的位数为奇数,则将所述第二参数取逆序并取反后得到第三参数,若所述A个比特位中比特位为1的位数超过A/2且所述第一参数中比特位为1的位数为偶数,则将所述第二参数取逆序后得到第三参数;
根据所述第三参数读取预设的数组分配表中的身份标识号码,并将所述当前网络数据分配给所述身份标识号码对应的CPU核处理;
其中,A、B为大于0的自然数,A大于或等于B。
优选地,所述获取第一参数,包括:
从输入数据流中提取当前网络数据的流向信息,所述流向信息包括源IP地址、目的IP地址、源端口号及目的端口号;
利用所述流向信息形成比特位数为C的流向参数,所述流向参数从左到右依次为:比特位数为D的源IP地址、比特位数为E的目的IP地址、比特位数为F的源端口号及比特位数为G的目的端口号,其中,D+E+F+G=C;
将所述流向参数拆分成H块,且每块中的比特位数为A的倍数;
将每块参数的比特位按位进行异或运算,得到第一参数。
优选地,所述从所述A个比特位中提取比特位为1或0的各个比特位,包括:
确定所述A个比特位中比特位为1的个数nk;
若nk小于或等于A/2,则提取所述A个比特位中比特位为1的各个比特位;
若nk大于A/2,则提取所述A个比特位中比特位为0的各个比特位。
优选地,所述在所述各个比特位中,确定每一比特位在所述第一参数中的影响区间,包括:
根据所述各个比特位中每一比特位的序列号b,计算每一比特位在所述第一参数中的影响区间,所述影响区间为[((b%A)+1),(((b+6)%A)+1)]。
优选地,A=16,B=7,C=96,D=E=32,F=G=16。
本发明实施例还提供了一种网络设备,包括:
第一参数获取单元,用于获取第一参数,所述第一参数包含了当前网络数据的流向信息,所述第一参数为二进制数且所述第一参数的比特位数为A的倍数;
关键字获取单元,用于获取预设的关键字,所述关键字的比特位数为A的倍数且每组A个比特位周期性相同;
比特位提取单元,用于从所述关键字获取单元获取的关键字中的A个比特位中提取比特位为1或0的各个比特位;
影响区间确定单元,用于在所述比特位提取单元提取的各个比特位中,确定每一比特位在所述第一参数获取单元获取的第一参数中的影响区间,所述影响区间包括B个比特位;
第二参数计算单元,用于将所述影响区间确定单元确定的所有影响区间按位进行异或运算,得到比特位数为B的第二参数;
第三参数计算单元,用于若所述关键字获取单元获取的关键字中的A个比特位中比特位为1的位数不超过A/2或所述第一参数获取单元获取的第一参数中比特位为1的位数为奇数,则将所述第二参数计算单元计算得到的第二参数取逆序并取反后得到第三参数,若所述所述关键字获取单元获取的关键字中的A个比特位中比特位为1的位数超过A/2且所述第一参数获取单元获取的第一参数中比特位为1的位数为偶数,则将所述第二参数计算单元计算得到的第二参数取逆序后得到第三参数;
网络数据分发单元,用于根据所述第三参数计算单元计算得到的第三参数读取预设的数组分配表中的身份标识号码,并将所述当前网络数据分配给所述身份标识号码对应的CPU核处理;
其中,A、B为大于0的自然数,A大于或等于B。
优选地,所述第一参数获取单元,包括:
信息提取模块,用于从输入数据流中提取当前网络数据的流向信息,所述流向信息包括源IP地址、目的IP地址、源端口号及目的端口号;
参数形成模块,用于利用所述信息提取模块提取的流向信息形成比特位数为C的流向参数,所述流向参数从左到右依次为:比特位数为D的源IP地址、比特位数为E的目的IP地址、比特位数为F的源端口号及比特位数为G的目的端口号,其中,D+E+F+G=C;
参数拆分模块,用于将所述参数形成模块形成的流向参数拆分成H块,且每块中的比特位数为A的倍数;
参数计算模块,用于将所述参数拆分模块拆分的每块参数的比特位按位进行异或运算,得到第一参数。
优选地,所述比特位提取单元,包括:
个数确定模块,用于确定所述A个比特位中比特位为1的个数nk;
第一提取模块,用于若所述个数确定模块确定的nk小于或等于A/2,则提取所述A个比特位中比特位为1的各个比特位;
第二提取模块,用于若所述个数确定模块确定的nk大于A/2,则提取所述A个比特位中比特位为0的各个比特位。
优选地,所述影响区间确定单元,具体用于根据所述各个比特位中每一比特位的序列号b,计算每一比特位在所述第一参数中的影响区间,所述影响区间为[((b%A)+1),(((b+6)%A)+1)]。
优选地,A=16,B=7,C=96,D=E=32,F=G=16。
本发明实施例提供的一种网络数据分发方法及网络设备,其采用的RSS算法非常稳定,其计算量的大小取决于关键字某周期中比特位为1或0的比特位数,由于关键字是开发者预先指定的,所以可以控制RSS算法的计算量,此外,利用关键字某周期中比特位为1或0的每一比特位确定的影响区间,可以一次性的计算最终结果即第三参数(现有技术中hash值的7位最低有效位),进而利用第三参数确定处理当前网络数据的CPU核。与现有RSS算法相比,本发明实施例提供的方法,其计算量与流向参数s(即input)几乎无关,不需要像现有RSS算法那样依次对s的每一位进行0或1的判断且根据判断结果频繁进行异或运算,从而大大减少了运算量、节省了运算时间,且可以取得与现有RSS算法同样的计算效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中RSS处理流程示意图;
图2为本发明实施例网络数据分发方法的流程示意图;
图3为本发明实施例网络设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了表述方便,在介绍本发明实施例前,首先构建RSS算法的数学模型。即,把背景技术中RSS算法的前3步记为hash=f(s,k),这里hash值只包含7位有效位,背景技术中RSS算法的第4步记为id=g(hash,t)。其中,s(后面定义为流向参数)表示input,当取源IP、目的IP、源端口、目的端口四元组连接成的数据段作为input时,s是一个96位的二进制数,可将s表示为s=(ip1,ip2,port1,port2)=(s1,s2,……,s96),这里ip1表示32位的源IP地址,ip2表示32位的目的IP地址,port1表示16位的源端口号,port2表示16位的目的端口号;k表示关键字key,共320位,可记为k=(k1,k2,……,k320);hash表示现有RSS算法中前3步的计算结果,共7位;t表示长度为128的数组分配表redirection table;id表示s在RSS作用下最后的分配结果,即id表示一个发送队列的身份标识号码,s被分配给id对应的CPU核处理。
一般情况下,为了提升CPU使用效能,往往希望一条网络会话(session)两个方向上的数据包在RSS作用下均能hash到同一个id上,即希望:
f((ip1,ip2,port1,port2),k)=f((ip2,ip1,port2,port1),k)
当k满足以16个比特位为周期时,k可表示为:
k=(k1,k2,……,k16,......,......,k1,k2,……,k16)
而函数g一般为取模函数,即:
id=g(hash,t)=hash%n
其中,n表示待分配的CPU核的最大序号(即参与分配的cpu核的总数)。
基于上述内容,下面就本发明实施例进行具体介绍。
参见图2,为本发明实施例提供的网络数据分发方法的流程示意图,利用网络设备(所述网络设备为具有多核CPU的设备,比如所述网络设备为计算机)按照下述步骤实现该方法:
步骤201:获取第一参数,所述第一参数包含了当前网络数据的流向信息,所述第一参数为二进制数且所述第一参数的比特位数为A的倍数。其中,A为大于0的自然数。
在本发明实施例中,网络设备首先从输入的网络数据流中提取当前网络数据的流向信息,所述流向信息包括源IP(Internet Protocol,网络协议)地址、目的IP地址、源端口号及目的端口号。
然后,基于所述流向信息形成96比特位的流向参数s(即sinput):
s=(ip1,ip2,port1,port2)=(s1,s2,……,s96)
其中,ip1表示32位的源IP地址,ip2表示32位的目的IP地址,port1表示16位的源端口号,port2表示16位的目的端口号。
在函数hash=f(s,k)中,hash=f(s,k)满足下述公式(1)和(2)。
如果s的前T个比特位均为0且ki以T为周期(即ki=ki+T),则:
f(s<<T,k)=f(s,k) (1)
其中,T具体可以为16的倍数,下文均以T=16为例进行论述。
对于s的任意分解s=s1^s2,均有:
f(s,k)=f(s1,k)^f(s2,k) (2)
公式(1)和(2)的具体推倒过程,请参见附录。
由于函数hash=f(s,k)满足公式(1)和(2),所以参数s可以拆分成具有T(这里T=16为例)位的多个块,且各个块的计算对结果的影响是对等的。即,对于任意的s=(ip1,ip2,port1,port2)=(s1,s2,……,s96),将s的96个比特位划分为6块,分别为(s1,s2,……,s16)、(s17,s18,……,s32)、……(s81,s82,……,s96),每一块的其它比特位用0填补,也就是说,s可以分解为s=s1^s2^s3^s4^s5^s6,其中:
s1=s1,s2,……,s16,0,......0;
s2=0,......0,s17,s18,……,s32,0,......0;
s3=0,......0,s33,s18,……,s48,0,......0;
s4=0,......0,s49,s18,……,s64,0,......0;
s5=0,......0,s65,s18,……,s80,0,......0;
s6=0,......0,s81,s82,……,s96。
此时,按照公式(2),则有:
f(s,k)=f(s1,k)^f(s2,k)^f(s3,k)^f(s4,k)^f(s5,k)^f(s6,k) (3)
由于s的前T个或T的倍数个比特位均为0,所以可以按照公式(1),将(3)做如下变换:
f(s,k)=f(s1,k)^f(s2<<T,k)^f(s3<<2T,k)^f(s4<<3T,k)^f(s5<<4T,k)^f(s6<<5T,k)
(4)
因此,当k(关键字key)满足以16为周期时,对于任意的
s=(ip1,ip2,port1,port2)=(s1,s2,……,s96),取16比特的s0,使其满足:
s0=(s1,s2,……,s16)^(s17,s18,……,s32)^……^(s81,s82,……,s96)=(s01,s02,……,s016)
则一定有f(s,k)=f(s0,k)。
综上,可以利用6次异或运算将s中的6个“块”捏合成一块,形成唯一的一个只有16位的参数s0。
基于上述内容,可按照下述方式实现步骤101,具体包括:
从输入数据流中提取当前网络数据的流向信息,所述流向信息包括源IP地址、目的IP地址、源端口号及目的端口号;
利用所述流向信息形成比特位数为C的流向参数,所述流向参数从左到右依次为:比特位数为D的源IP地址、比特位数为E的目的IP地址、比特位数为F的源端口号及比特位数为G的目的端口号,其中,D+E+F+G=C;
将所述流向参数拆分成H块,且每块中的比特位数为A的倍数;
将每块参数的比特位按位进行异或运算,得到第一参数s0。
具体地,A=16,C=96,D=E=32,F=G=16,H=C/A。
此外,还可以轻易看出为何当k以16为周期时session的双向数据流可以被hash到同一个id上。因为根据(1)式与(2)式,当T为16时,有:
f((ip1,ip2,port1,port2),k)=f(((ip1<<64)^(ip2<<32)^(port1<<16)^port2),k)
=f((ip1<<64),k)^f((ip2<<32),k)^f((port1<<16),k)^f(port2,k)
=f(ip1,k)^f(ip2,k)^f(port1,k)^f(port2,k)
=f((ip2<<64),k)^f((ip1<<32),k)^f((port2<<16),k)^f(port1,k)
=f(((ip2<<64)^(ip1<<32)^(port2<<16)^port1),k)
=f((ip2,ip1,port2,port1),k)
步骤202:获取预设的关键字,所述关键字的比特位数为A的倍数且每组A个比特位周期性相同。
在步骤202中,当关键字k满足以A(这里A为16)个比特位为周期时,k可表示为:k=(k1,k2,……,k16,......,......,k1,k2,……,k16)。
步骤203:从所述A个比特位中提取比特位为1或0的各个比特位。
在步骤203中,当A为16时,所述A个比特位即为关键字k中的k1,k2,……,k16,其中,k1,k2,……,k16中各个比特位的序列号从左到右依次为1、2、……、16。
假设在关键字k中,16个比特位(即k1,k2,……,k16)中比特位为1的个数为nk,取首先需要确定个比特位所对应的序列号(记为),即,当nk≤8时,表示k1,k2,……,k16中比特位为1的比特位的序列号;当nk>8时,表示k1,k2,……,k16中比特位为0的比特位的序列号。之所以可以这样选取,是因为参数k与~k(~k表示k的按位取反值)在函数hash=f(s,k)中存在着以下对等联系,即:
假设s中比特位为1的个数为ns,对于任意的k,满足下述公式(5)和(6):
当ns为奇数时,有:
f(s,k)=~f(s,~k) (5)
当ns为偶数时,有:
f(s,k)=f(s,~k) (6)
公式(5)和(6)的具体推倒过程,请参见附录。
其中,比特位的个数可以由处理器的_mm_popcnt_u32()命令快速获取。
从公式(5)和(6)可以看出,当k取反时,f(s,k)的取值仅与ns的个数有关。
基于上述内容,可按照下述方式实现步骤203:
确定所述A个比特位中比特位为1的个数nk;
若nk小于或等于A/2,则提取所述A个比特位中比特位为1的各个比特位;
若nk大于A/2,则提取所述A个比特位中比特位为0的各个比特位。
步骤204:在所述各个比特位中,确定每一比特位在所述第一参数中的影响区间,所述影响区间包括B个比特位。其中,B为大于0的自然数,A大于或等于B。
步骤204主要是确定上述对s0的影响区间。事实上,对于函数f(s,k)的计算结果,中任意一个比特位的作用都只体现在s0的某个连续的B(这里取B=7)位固定区间上。也就是说,在这7位之外,s0的任意位在参与f(s,k)的计算时对于相应的b(b指中的任意一位)是不敏感的,即k中的这个第b位不管为0还是为1,计算结果都一样。以k1举例来说,当s01为1时,根据现有RSS算法要求,f(s,k)需要在运算中异或上(k10,k11,……,k16);当s02为1时,f(s,k)需要异或上(k11,k12,……,k16,k1);……当s08为1时,f(s,k)需要异或上(k1,k2,……,k7);……。而对于s08之后的各个为1的位,f(s,k)在运算中异或上的值一定跟k1无关,即k1只影响s02到s08在f(s,k)中的运算。那么,k1的影响区间就是s0中的[2,8],即s0的第2位到第8位(从左到右数)。
更进一步地,在k1,k2,……,k16中,ki(i不等于1)与k1的关系为:
对于任意的1≤i≤16,只要s的前i-1位为0,均有:
f(s,ki)=f(s<<(i-1),k1) (7)
因此,中的某个b所对应的影响区间为[2,8]>>(b-1),其中,>>表示在s0的[1,16]的区间即(s01,s02,……,s016)上做循环位移,即b的影响区间为[((b%16)+1),(((b+6)%16)+1)]。
公式(7)的具体推倒过程,请参见附录。
基于上述内容,可按照下述方式实现步骤204:
根据所述各个比特位中每一比特位的序列号b,计算每一比特位在所述第一参数中的影响区间,所述影响区间为[((b%A)+1),(((b+6)%A)+1)]。其中,A具体可以为16。
步骤205:将所有影响区间按位进行异或运算,得到比特位数为B的第二参数。其中,B为大于0的自然数,A大于或等于B。
步骤206:若所述A个比特位中比特位为1的位数不超过A/2或所述第一参数中比特位为1的位数为奇数,则将所述第二参数取逆序并取反后得到第三参数,若所述A个比特位中比特位为1的位数超过A/2且所述第一参数中比特位为1的位数为偶数,则将所述第二参数取逆序后得到第三参数。
下面介绍步骤205和步骤206的理论基础。
事实上,在函数f(s,k)中,参数k的16个比特位对计算结果的影响是相互独立的。即,对于k的任意分解k=k1^k2,均有:
f(s,k)=f(s,k1)^f(s,k2) (8)
公式(8)的具体推倒过程,请参见附录。
也就是说,对于k1,k2,……,k16中的,可以基于每个b的影响区间确定f(s,k)的最终运算结果。
另外,对于s0和k这两个参数来说,它们的有效计算单位均为16位。在深层次上,这两个参数存在着对等关系。即如果把s0的16位做逆序后周期性的扩展成key,再把k的16位做逆序后充当s0,则对于16位输入s0和以16位为周期的key值k,必有:
其中,表示k按位取逆序。
公式(9)的具体推倒过程,请参见附录。
公式(9)意味着,可以把以k为基础入参的f运算转化为以s0为基础的运算,而异或运算的次数仅仅取决于k上1的个数。
基于上述内容,可以用一个等式(以ns为奇数为例)来完整描述本发明实施例的数学原理:
通过公式(10)可知,当步骤204确定了分别对s0的影响区间后,步骤205再将各个影响区间通过异或运算捏合成一块,得到一个具有B=7比特位的第二参数S,S的逆序就是f(s,k)运算的结果即第三参数(步骤206):
当nk≤8或ns为偶数时,
当nk>8且ns为奇数时,
注:8位数求解逆序有一个简化算法,其结果可以通过下式得到:
步骤207:根据所述第三参数读取预设的数组分配表中的身份标识号码,并将所述当前网络数据分配给所述身份标识号码对应的CPU核处理。
在步骤207中,找出数组分配表redirection table中下标与所述第三参数数值相同的数组a,读取数组a对应的发送队列的id值,再将当前网络数据发送至该id值对应的发送队列,即是将当前网络数据发送给该id值对应的CPU核处理。
本发明实施例提供的一种网络数据分发方法,其采用的RSS算法非常稳定,其计算量的大小取决于关键字某周期中比特位为1或0的比特位数,由于关键字是开发者预先指定的,所以可以控制RSS算法的计算量,此外,利用关键字某周期中比特位为1或0的每一比特位确定的影响区间,可以一次性的计算最终结果即第三参数(现有技术中hash值的7位最低有效位),进而利用第三参数确定处理当前网络数据的CPU核。与现有RSS算法相比,本发明实施例提供的方法,其计算量与流向参数s(即input)几乎无关,不需要像现有RSS算法那样依次对s的每一位进行0或1的判断且根据判断结果频繁进行异或运算,从而大大减少了运算量、节省了运算时间,且可以取得与现有RSS算法同样的计算效果。
为了更方便的了解本发明实施例,下面举例说明。
首先,从输入数据流中提取当前网络数据的流向信息,假设所述流向信息具体为:1.1.1.1/1->2.2.2.2/1026。其中,1.1.1.1为源IP地址,1为源端口号,2.2.2.2为目的IP地址,1026为目的端口号。
然后,将1.1.1.1/1->2.2.2.2/1026转换成96比特位的流向参数s(input):
s=(ip1,ip2,port1,port2)=(s1,s2,……,s96)=(000000010000000100000001000000010000000000000001000000100000001000000010000000100000010000000010)
再然后,将所述流向参数s拆分成6块,且每块中的比特位数为16,将每块中的比特位按位进行异或运算,得到第一参数s0:
s0=(0000000100000001)^(0000000100000001)^(0000000000000001)^(0000001000000010)^(0000001000000010)^(0000010000000010)=(0000010000000011)。
其中,ns=3。
关键字key取为0xfffc,即key=(1111111111111100)。
从关键字key中可知,b1=15,b2=16。
再然后,按照[((b%16)+1),(((b+6)%16)+1)]分别确定b1=15和b2=16对s0的影响区间,得b1=15的影响区间为[16,6],b2=16的影响区间为[1,7],对应的s0上的区间信息分别为(1000001)与(0000010)。
故S=(1000001)^(0000010)=(1000011)。
最后,计算7比特位的f(s,k),由于ns为奇数,故,
为了更直观的展现本发明实施例的有效性,取如下形式的3000*65535条session:
192.168.100.123/i→192.168.100.224/j (0≤i<3000,0≤j≤65535)
分别采用现有RSS算法与本发明实施例提供的RSS算法,在同一台网络设备上分别对上述全部session计算对应的id,共计算10次,结果如下表所示:
现有RRS算法 | 本发明RRS算法 | |
1 | 67.55756 | 9.521232 |
2 | 67.99465 | 10.24496 |
3 | 69.4469 | 10.9895 |
4 | 70.69154 | 9.957898 |
5 | 68.25013 | 9.978514 |
6 | 70.94991 | 10.84693 |
7 | 70.48588 | 10.68625 |
8 | 66.21472 | 10.1963 |
9 | 67.37152 | 9.945687 |
10 | 68.58128 | 10.20824 |
平均 | 68.75441 | 10.25755 |
表格中的数据表示每次计算所耗费的时间(单位为秒)。
可见,利用本发明实施例提供的RSS算法,其计算时间明显低于现有RSS算法所花费的时间,因此,本发明RSS技术的计算效能有了明显的大幅度提升。
参见图3,为本发明实施例提供的网络设备的结构示意图,该网络设备包括:
第一参数获取单元301,用于获取第一参数,所述第一参数包含了当前网络数据的流向信息,所述第一参数为二进制数且所述第一参数的比特位数为A的倍数;
关键字获取单元302,用于获取预设的关键字,所述关键字的比特位数为A的倍数且每组A个比特位周期性相同;
比特位提取单元303,用于从所述关键字获取单元302获取的关键字中的A个比特位中提取比特位为1或0的各个比特位;
影响区间确定单元304,用于在所述比特位提取单元303提取的各个比特位中,确定每一比特位在所述第一参数获取单元301获取的第一参数中的影响区间,所述影响区间包括B个比特位;
第二参数计算单元305,用于将所述影响区间确定单元304确定的所有影响区间按位进行异或运算,得到比特位数为B的第二参数;
第三参数计算单元306,用于若所述关键字获取单元302获取的关键字中的A个比特位中比特位为1的位数不超过A/2或所述第一参数获取单元301获取的第一参数中比特位为1的位数为奇数,则将所述第二参数计算单元305计算得到的第二参数取逆序并取反后得到第三参数,若所述所述关键字获取单元302获取的关键字中的A个比特位中比特位为1的位数超过A/2且所述第一参数获取单元301获取的第一参数中比特位为1的位数为偶数,则将所述第二参数计算单元305计算得到的第二参数取逆序后得到第三参数;
网络数据分发单元307,用于根据所述第三参数计算单元306计算得到的第三参数读取预设的数组分配表中的身份标识号码,并将所述当前网络数据分配给所述身份标识号码对应的CPU核处理;
其中,A、B为大于0的自然数,A大于或等于B。
其中,所述第一参数获取单元301,包括:
信息提取模块,用于从输入数据流中提取当前网络数据的流向信息,所述流向信息包括源IP地址、目的IP地址、源端口号及目的端口号;
参数形成模块,用于利用所述信息提取模块提取的流向信息形成比特位数为C的流向参数,所述流向参数从左到右依次为:比特位数为D的源IP地址、比特位数为E的目的IP地址、比特位数为F的源端口号及比特位数为G的目的端口号,其中,D+E+F+G=C;
参数拆分模块,用于将所述参数形成模块形成的流向参数拆分成H块,且每块中的比特位数为A的倍数;
参数计算模块,用于将所述参数拆分模块拆分的每块参数的比特位按位进行异或运算,得到第一参数。
其中,所述比特位提取单元303,包括:
个数确定模块,用于确定所述A个比特位中比特位为1的个数nk;
第一提取模块,用于若所述个数确定模块确定的nk小于或等于A/2,则提取所述A个比特位中比特位为1的各个比特位;
第二提取模块,用于若所述个数确定模块确定的nk大于A/2,则提取所述A个比特位中比特位为0的各个比特位。
其中,所述影响区间确定单元304,具体用于根据所述各个比特位中每一比特位的序列号b,计算每一比特位在所述第一参数中的影响区间,所述影响区间为[((b%A)+1),(((b+6)%A)+1)]。
具体地,A=16,B=7,C=96,D=E=32,F=G=16。
本发明实施例提供的一种网络设备,其采用的RSS算法非常稳定,其计算量的大小取决于关键字某周期中比特位为1或0的比特位数,由于关键字是开发者预先指定的,所以可以控制RSS算法的计算量,此外,利用关键字某周期中比特位为1或0的每一比特位确定的影响区间,可以一次性的计算最终结果即第三参数(现有技术中hash值的7位最低有效位),进而利用第三参数确定处理当前网络数据的CPU核。与现有RSS算法相比,本发明实施例提供的方法,其计算量与流向参数s(即input)几乎无关,不需要像现有RSS算法那样依次对s的每一位进行0或1的判断且根据判断结果频繁进行异或运算,从而大大减少了运算量、节省了运算时间,且可以取得与现有RSS算法同样的计算效果。
附录:
一、公式(1)的推导过程:
假设s的96个比特中有n个比特位为1(从左到右依次为第1位、第2位……第96位),这n个比特位的序号分别为(i1,i2,……,in),其中,1≤i1<i2<……<in≤96。根据现有RSS算法,有:
如果s的前T个比特位均为0(即i1>T)且ki以T为周期(即ki=ki+T),则:
二、公式(2)的推导过程:
s的96个比特中有n个比特位为1,这n个比特位的序号分别为(i1,i2,……,in)。
如果s可以分解为两个数的异或之和,即s=s1^s2,设s1中有n1个比特位为1,这n1个比特位的序号分别为,s2中有n2个比特位为1,这n2个比特位的序号分别为。当s1与s2没有共同的1比特位(即s1&s2=0)时,s所对应的(i1,i2,……,in)就是与的并集。此时根据(11)式,显然有:
进一步考虑一般化情况,s1与s2可以表示为:
s1=(s1&(~s2))^(s1&s2),s2=(s2&(~s1))^(s2&s1)
其中,(s1&(~s2))&(s1&s2)=0且(s2&(~s1))&(s2&s1)=0
因此根据(13)式,有:
f(s1,k)=f((s1&(~s2)),k)^f((s1&s2),k) (14)
f(s2,k)=f((s2&(~s1)),k)^f((s2&s1),k)
又由于:
s=s1^s2=((s1&(~s2))^(s1&s2))^((s2&(~s1))^(s2&s1))
=(s1&(~s2))^((s1&s2)^(s2&s1))^(s2&(~s1))
=(s1&(~s2))^(s2&(~s1))
且有:
(s1&(~s2))&(s2&(~s1))=0
根据(13)和(14)式,可得:
f(s,k)=f((s1&(~s2))^(s2&(~s1)),k)
=f((s1&(~s2)),k)^f((s2&(~s1)),k)
=f((s1&(~s2)),k)^(f((s1&s2),k)^f((s2&s1),k))^f((s2&(~s1)),k)
=(f((s1&(~s2)),k)^f((s1&s2),k))^(f((s2&(~s1)),k)^f((s2&s1),k))
=f(s1,k)^f(s2,k)
也就是说,对于s的任意分解s=s1^s2,均有
f(s,k)=f(s1,k)^f(s2,k) (15)
三、公式(5)和(6)的推导过程:
根据(11)式:
同时,
任意的两个数a,b,有(~a)^b=a^(~b)=~(a^b),因此:
当n为奇数时,有:
f(s,k)=~f(s,~k) (16)
当n为偶数时,有:
f(s,k)=f(s,~k) (17)
四、公式(7)的推导过程:
根据(11)式:
所以,
因此,ki如果存在于中的第j项,那么k1也一定存在于中的第j项。反之,如果k1如果存在于中的第j项,那么ki也一定存在于中的第j项。推而广之,有:
f(s,ki)=f(s<<(i-1),k1) (18)
五、公式(8)的推导过程:
为方便讨论,用{efh}1≤h≤7,{esi}1≤i≤96,{ekj}1≤j≤320分别表示7维、96维和320维向量空间的一组基底(例如,ef2=(0,1,0,0,0,0,0))。当s中取1的比特位分别为第(i1,i2,……,in)位时,有同理,当k中取1的比特位分别为第(j1,j2,……,jm)时,有
由于f(esi,k)=(0x7f)&(kiki+1…ki+31)=(ki+25ki+26…ki+31),当i+25≤j≤i+31时,f(esi,ekj)=efj-i-24,且
f(esi,k)^f(esi,ekj)=(ki+25ki+26…ki+31)^efj-i-24=(ki+25…(~kj-i-24)…ki+31)=f(esi,k^ekj)
当1≤j<i+25或i+31<j≤320时,f(esi,ekj)=0,且
f(esi,k)^f(esi,ekj)=f(esi,k)^0=f(esi,k)=(ki+25ki+26…ki+31)=f(esi,k^ekj)
因此,对任意的k,i,j值,均有:
f(esi,k^ekj)=f(esi,k)^f(esi,ekj) (19)
进一步,根据(19)式,可得:
利用(20)式,仿造前述s分解性质完全相同的证明方式,不难证明如下性质:
对于任意的key值分解k=k1^k2及基底esi,有:
f(esi,k)=f(esi,k1)^f(esi,k2) (21)
因此,对于任意的根据(15)式与(21)式可得:
至此,证明了如下结论:
对于k的任意分解k=k1^k2,均有:
f(s,k)=f(s,k1)^f(s,k2) (22)
特别地,当时,
六、公式(9)的推导过程:
当key以16为周期时,可以将16维向量空间的16个基底做周期性扩展,形成16个320比特的新基底,记为{k01,k02,…,k0j,…,k016},其中:
k0j=ekj^ekj+16^……^ekj+16*19
同时记s0的16个基底为{s01,s02,…,s0i,…,s016}。
对于任意的1≤i,j≤16,设T=i+j+x,其中x可正可负,但需要保证T≥max(i,j),则有:
f(s0T-j,k0T-i)=f(s0i+x,k0j+x)=f(s0i+x<<(j+x-1),k01)
=f(s0i+x-(j+x-1),k01)=f(s0i-j+1,k01)=f(s0i,k0j) (24)
特别地,取T=16,则:
其中,表示k0j的一块(16位)在按照16位做逆序后所充当的s0,表示s0i在按照16位做逆序后做周期性扩展所充当的k。接下来,再根据(15)(22)、(25)式,得到:
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种网络数据分发方法,其特征在于,包括:
网络设备获取第一参数,所述第一参数包含了当前网络数据的流向信息,所述第一参数为二进制数且所述第一参数的比特位数为A的倍数;
获取预设的关键字,所述关键字的比特位数为A的倍数且每组A个比特位周期性相同;
从所述A个比特位中提取比特位为1或0的各个比特位;
在所述各个比特位中,确定每一比特位在所述第一参数中的影响区间,所述影响区间包括B个比特位;
将所有影响区间按位进行异或运算,得到比特位数为B的第二参数;
若所述A个比特位中比特位为1的位数不超过A/2或所述第一参数中比特位为1的位数为奇数,则将所述第二参数取逆序并取反后得到第三参数,若所述A个比特位中比特位为1的位数超过A/2且所述第一参数中比特位为1的位数为偶数,则将所述第二参数取逆序后得到第三参数;
根据所述第三参数读取预设的数组分配表中的身份标识号码,并将所述当前网络数据分配给所述身份标识号码对应的CPU核处理;
其中,A、B为大于0的自然数,A大于或等于B;
其中,所述获取第一参数,包括:
从输入数据流中提取当前网络数据的流向信息,所述流向信息包括源IP地址、目的IP地址、源端口号及目的端口号;
利用所述流向信息形成比特位数为C的流向参数,所述流向参数从左到右依次为:比特位数为D的源IP地址、比特位数为E的目的IP地址、比特位数为F的源端口号及比特位数为G的目的端口号,其中,D+E+F+G=C;
将所述流向参数拆分成H块,且每块中的比特位数为A的倍数;
将每块参数的比特位按位进行异或运算,得到第一参数。
2.根据权利要求1所述的方法,其特征在于,所述从所述A个比特位中提取比特位为1或0的各个比特位,包括:
确定所述A个比特位中比特位为1的个数nk;
若nk小于或等于A/2,则提取所述A个比特位中比特位为1的各个比特位;
若nk大于A/2,则提取所述A个比特位中比特位为0的各个比特位。
3.根据权利要求1所述的方法,其特征在于,所述在所述各个比特位中,确定每一比特位在所述第一参数中的影响区间,包括:
根据所述各个比特位中每一比特位的序列号b,计算每一比特位在所述第一参数中的影响区间,所述影响区间为[((b%A)+1),(((b+6)%A)+1)]。
4.根据权利要求1所述的方法,其特征在于,
A=16,B=7,C=96,D=E=32,F=G=16。
5.一种网络设备,其特征在于,包括:
第一参数获取单元,用于获取第一参数,所述第一参数包含了当前网络数据的流向信息,所述第一参数为二进制数且所述第一参数的比特位数为A的倍数;
关键字获取单元,用于获取预设的关键字,所述关键字的比特位数为A的倍数且每组A个比特位周期性相同;
比特位提取单元,用于从所述关键字获取单元获取的关键字中的A个比特位中提取比特位为1或0的各个比特位;
影响区间确定单元,用于在所述比特位提取单元提取的各个比特位中,确定每一比特位在所述第一参数获取单元获取的第一参数中的影响区间,所述影响区间包括B个比特位;
第二参数计算单元,用于将所述影响区间确定单元确定的所有影响区间按位进行异或运算,得到比特位数为B的第二参数;
第三参数计算单元,用于若所述关键字获取单元获取的关键字中的A个比特位中比特位为1的位数不超过A/2或所述第一参数获取单元获取的第一参数中比特位为1的位数为奇数,则将所述第二参数计算单元计算得到的第二参数取逆序并取反后得到第三参数,若所述所述关键字获取单元获取的关键字中的A个比特位中比特位为1的位数超过A/2且所述第一参数获取单元获取的第一参数中比特位为1的位数为偶数,则将所述第二参数计算单元计算得到的第二参数取逆序后得到第三参数;
网络数据分发单元,用于根据所述第三参数计算单元计算得到的第三参数读取预设的数组分配表中的身份标识号码,并将所述当前网络数据分配给所述身份标识号码对应的CPU核处理;
其中,A、B为大于0的自然数,A大于或等于B;
其中,所述第一参数获取单元,包括:
信息提取模块,用于从输入数据流中提取当前网络数据的流向信息,所述流向信息包括源IP地址、目的IP地址、源端口号及目的端口号;
参数形成模块,用于利用所述信息提取模块提取的流向信息形成比特位数为C的流向参数,所述流向参数从左到右依次为:比特位数为D的源IP地址、比特位数为E的目的IP地址、比特位数为F的源端口号及比特位数为G的目的端口号,其中,D+E+F+G=C;
参数拆分模块,用于将所述参数形成模块形成的流向参数拆分成H块,且每块中的比特位数为A的倍数;
参数计算模块,用于将所述参数拆分模块拆分的每块参数的比特位按位进行异或运算,得到第一参数。
6.根据权利要求5所述的网络设备,其特征在于,所述比特位提取单元,包括:
个数确定模块,用于确定所述A个比特位中比特位为1的个数nk;
第一提取模块,用于若所述个数确定模块确定的nk小于或等于A/2,则提取所述A个比特位中比特位为1的各个比特位;
第二提取模块,用于若所述个数确定模块确定的nk大于A/2,则提取所述A个比特位中比特位为0的各个比特位。
7.根据权利要求5所述的网络设备,其特征在于,所述影响区间确定单元,具体用于根据所述各个比特位中每一比特位的序列号b,计算每一比特位在所述第一参数中的影响区间,所述影响区间为[((b%A)+1),(((b+6)%A)+1)]。
8.根据权利要求5所述的网络设备,其特征在于,
A=16,B=7,C=96,D=E=32,F=G=16。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510409839.5A CN105119960B (zh) | 2015-07-13 | 2015-07-13 | 一种网络数据分发方法及网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510409839.5A CN105119960B (zh) | 2015-07-13 | 2015-07-13 | 一种网络数据分发方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105119960A CN105119960A (zh) | 2015-12-02 |
CN105119960B true CN105119960B (zh) | 2018-11-06 |
Family
ID=54667846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510409839.5A Active CN105119960B (zh) | 2015-07-13 | 2015-07-13 | 一种网络数据分发方法及网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105119960B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096022B (zh) * | 2016-06-22 | 2020-02-11 | 杭州迪普科技股份有限公司 | 多域网包分类规则的划分方法及装置 |
CN111949403B (zh) * | 2020-08-11 | 2024-01-26 | 北京天融信网络安全技术有限公司 | 一种数据包的分配方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546293A (zh) * | 2011-12-20 | 2012-07-04 | 东南大学 | 基于哈希比特串复用的高速网络流量网络地址测量方法 |
CN103780435A (zh) * | 2014-02-18 | 2014-05-07 | 迈普通信技术股份有限公司 | 使用端口号掩码对数据流进行分类的方法及系统 |
CN104468412A (zh) * | 2014-12-04 | 2015-03-25 | 东软集团股份有限公司 | 基于rss的网络会话数据包分发方法及系统 |
CN104580017A (zh) * | 2014-12-30 | 2015-04-29 | 东软集团股份有限公司 | 基于rss的网络会话分发方法及系统 |
-
2015
- 2015-07-13 CN CN201510409839.5A patent/CN105119960B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546293A (zh) * | 2011-12-20 | 2012-07-04 | 东南大学 | 基于哈希比特串复用的高速网络流量网络地址测量方法 |
CN103780435A (zh) * | 2014-02-18 | 2014-05-07 | 迈普通信技术股份有限公司 | 使用端口号掩码对数据流进行分类的方法及系统 |
CN104468412A (zh) * | 2014-12-04 | 2015-03-25 | 东软集团股份有限公司 | 基于rss的网络会话数据包分发方法及系统 |
CN104580017A (zh) * | 2014-12-30 | 2015-04-29 | 东软集团股份有限公司 | 基于rss的网络会话分发方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105119960A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106487503B (zh) | 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法 | |
De Clercq et al. | Ultra low-power implementation of ECC on the ARM Cortex-M0+ | |
JP2009537025A5 (zh) | ||
CN104468412B (zh) | 基于rss的网络会话数据包分发方法及系统 | |
JP2012185517A5 (zh) | ||
CN105027492B (zh) | 用于确定共享密钥的设备、方法和系统 | |
US20180278426A1 (en) | Online/Offline Signature System and Method Based on Multivariate Cryptography | |
CN106716344A (zh) | 用于密码运算的指数分裂 | |
CN105119960B (zh) | 一种网络数据分发方法及网络设备 | |
CN104580017B (zh) | 基于rss的网络会话分发方法及系统 | |
CN104917608A (zh) | 一种密钥抗功耗攻击的方法 | |
Pang et al. | BOLT: Privacy-Preserving, Accurate and Efficient Inference for Transformers | |
CN110708160B (zh) | 基于sm2算法标量乘法编码的抗侧信道攻击方法及系统 | |
CN115907043A (zh) | 基于多方多模型隐私求交的联邦学习内容推送方法及装置 | |
CN117118637B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
WO2015173870A1 (ja) | 情報処理システム、情報処理方法およびプログラム | |
CN107707351A (zh) | 基于logistic映射的嵌入式加密方法 | |
CN107220702B (zh) | 一种低计算能力处理设备的计算机视觉处理方法及装置 | |
KR101428770B1 (ko) | 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법 | |
Iyengar | Novel elliptic curve scalar multiplication algorithms for faster and safer public-key cryptosystems | |
WO2018109809A1 (ja) | 復号装置、復号方法およびプログラム | |
CN110795227B (zh) | 一种区块链的数据处理方法及相关设备 | |
CN112989421A (zh) | 一种安全选择问题处理方法和系统 | |
Lee et al. | TensorCrypto | |
Moeini | Identification of unidentified equality constraints for integer programming problems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |