CN102497323A - 一种基于intel万兆网卡实现同源同宿报文分流的系统和方法 - Google Patents

一种基于intel万兆网卡实现同源同宿报文分流的系统和方法 Download PDF

Info

Publication number
CN102497323A
CN102497323A CN2011104271028A CN201110427102A CN102497323A CN 102497323 A CN102497323 A CN 102497323A CN 2011104271028 A CN2011104271028 A CN 2011104271028A CN 201110427102 A CN201110427102 A CN 201110427102A CN 102497323 A CN102497323 A CN 102497323A
Authority
CN
China
Prior art keywords
module
hash value
message
random number
address
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.)
Pending
Application number
CN2011104271028A
Other languages
English (en)
Inventor
刘朝辉
窦晓光
李锋伟
刘灿
邵宗有
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Beijing Co Ltd
Original Assignee
Dawning Information Industry Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Beijing Co Ltd filed Critical Dawning Information Industry Beijing Co Ltd
Priority to CN2011104271028A priority Critical patent/CN102497323A/zh
Publication of CN102497323A publication Critical patent/CN102497323A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于intel万兆网卡实现同源同宿报文分流的系统和方法,构造随机数K,使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4]。利用随机数序列配置和修改网卡芯片的参数,基于intel万兆网卡的分流HASH算法,实现报文的同源同宿分流。与现有技术相比,本发明的有益效果在于:解决了基于intel万兆网卡实现同源同宿的报文分流的问题。

Description

一种基于intel万兆网卡实现同源同宿报文分流的系统和方法
技术领域
本发明属于网络数据处理领域,具体涉及一种基于intel万兆网卡实现同源同宿报文分流的系统和方法。
背景技术
Intel万兆网卡支持多缓冲区队列技术,可以把网口输入的报文分流到多个接收报文的缓冲区队列,分流采用的算法,是把报文的IP字段和一个随机数序列K进行位运算,得到一个值,作为报文目标缓冲区队列的编号,这种方法可以保证源ip和目的ip相同的报文被分流到同一个缓冲区队列。
在有些应用中,报文分流不仅要保证源ip和目的ip相同的报文被分流的同一个缓冲队列,还要保证源目ip互换后的报文也要分配到同一个队列,称为同源同宿,intel网卡默认的分流方法无法实现同源同宿的分流。
专利号为CN201010538814.2,名称为“支持多用户的高速报文分流方法”公开了一种支持多用户的高速报文分流方法,目的是为支持多用户模式的高速大容量分流设备提供一种高速、低延迟的数据报文从单块输入卡到多块输出卡的组播分流方法。技术方案是先修改输入卡、输出卡,使输入卡支持多用户模式,使输出卡支持指定端口分流,构建由输入卡、交换卡和输出卡组成的两级交换结构;然后初始化两级交换结构并采用两级交换结构进行分流。
专利号为CN201010598343.4,名称为“一种基于保证连接均衡性的报文分流方法”公开了一种保证TCP连接均衡性的报文分流方法。建立一张基于四元组的分流表;记录每个四元组信息并分配流序号;当IP包到达网络设备时,查找分流表,若可以找到该四元组,则取出流序号进行分流;否则为其在分流表中新分配一项,并分配一个流序号。本发明采用这种方式可以实现网络分流设备负载更加均衡。
但上述技术方案中,硬件本身实现的分流不能做到同源同宿,需要同源同宿分流时,只使用一个缓冲区队列,网卡上的硬件芯片把所有报文分流到一个队列,然后再由软件把该队列中的报文按同源同宿的方法分流到其他队列。而软件实现同源同宿分流,不能充分发挥intel网卡硬件芯片分流的功能,带来系统性能的损失。
发明内容
本发明克服现有技术存在的不足,通过设计intel网卡中分流算法的随机K值,配置和修改网卡芯片的参数,实现了硬件同源同宿的报文分流。
本发明提供了一种基于intel万兆网卡实现同源同宿报文分流的系统,其包括下列模块:初始化模块,该模块构造随机数K,并且设置网卡芯片的HASH值R初始值为0;源目IP地址I判断模块,该模块扫描输入报文的源目IP地址I,并对每一位b进行判断,如果b=1,则进入获取新HASH值模块,否则进入结束循环判断模块;获取新HASH值模块,该模块利用当前HASH值和K的最左边32位得到新的HASH值R;获取新K值模块,该模块把K左移1位,作为新的K;结束循环判断模块,该模块判断是否结束循环,如果结束循环,则进入确定目标缓冲区队列模块,否则进入源目IP地址I判断模块;确定目标缓冲区队列模块,该模块利用R和缓冲区队列数得到该报文的目标缓冲区队列。
本发明提供的基于intel万兆网卡实现同源同宿报文分流的系统,其初始化模块中随机数K的构造是如下实现的:使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4]。
本发明提供的基于intel万兆网卡实现同源同宿报文分流的系统,其源目IP地址I判断模块中从左到右依次扫描输入报文的源目IP地址I,共8个字节,扫描64位从而对每一位b进行判断。
本发明提供的基于intel万兆网卡实现同源同宿报文分流的系统,其获取新HASH值模块中对当前HASH值和K的最左边32位进行异或运算,得到新的HASH值R。
本发明提供的基于intel万兆网卡实现同源同宿报文分流的系统,其确定目标缓冲区队列模块中得到新K值并且扫描I结束后,返回最终的R和缓冲区队列数取模运算后,作为该报文的目标缓冲区队列。
本发明还提供了一种基于intel万兆网卡实现同源同宿报文分流的方法,构造随机数K,使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4]。
完成所述K[i]=K[i+4]后,配置网卡芯片,设置HASH值R初始值为0。
完成所述配置网卡芯片和初始化HASH值R后,从左到右依次扫描输入报文的源目IP地址I,共8个字节,64位,对每一位b进行判断。
所述每一位b进行判断完成后,如果b等于1,则把当前HASH值和K的最左边32位进行异或运算,得到新的HASH值R。
得到所述新的HASH值R后,把K左移1位,作为新的K。
得到所述新K值后,扫描I结束后,返回最终的R,和缓冲区队列数取模运算后,作为该报文的目标缓冲区队列。
与现有技术相比,本发明的有益效果在于:需要同源同宿分流时,避开了由软件把该队列中的报文按同源同宿的方法分流到其他队列,不通过软件实现同源同宿分流,充分发挥intel网卡硬件芯片分流的功能,带来系统性能的提升。
附图说明
图1是本发明的流程示意图。
具体实施方式
本发明利用intel网卡的算法特点,设计一个可实现同源同宿计算的随机数,配置到网卡中,利用随机数和IP地址的位运算,实现同源同宿的分流。
本发明提供了一种基于intel万兆网卡实现同源同宿报文分流的系统,其包括下列模块:初始化模块,该模块构造随机数K,使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4],并且设置网卡芯片的HASH值R初始值为0;源目IP地址I判断模块,该模块从左到右依次扫描输入报文的源目IP地址I,共8个字节,扫描64位从而对每一位b进行判断,如果b=1,则进入获取新HASH值模块,否则进入结束循环判断模块;获取新HASH值模块,该模块利用当前HASH值和K的最左边32位进行异或运算,得到新的HASH值R;获取新K值模块,该模块把K左移1位,作为新的K;结束循环判断模块,该模块判断是否结束循环,如果结束循环,则进入确定目标缓冲区队列模块,否则进入源目IP地址I判断模块;确定目标缓冲区队列模块,该模块利用最终的R和缓冲区队列数取模运算后,作为该报文的目标缓冲区队列。
图1是本发明的流程示意图。
本发明的方法和过程如下:
(1)构造随机数K,使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4]。
(2)配置网卡芯片,设置HASH值R初始值为0。
(3)从左到右依次扫描输入报文的源目IP地址I,共8个字节,64位,对每一位b进行判断。
(4)如果b等于1,则把当前HASH值和K的最左边32位进行异或运算,得到新的HASH值R。
(5)把K左移1位,作为新的K。
(6)扫描I结束后,返回最终的R,和缓冲区队列数取模运算后,作为该报文的目标缓冲区队列。
本发明通过设计intel网卡中分流算法的随机K值,配置和修改网卡芯片的参数,实现了硬件同源同宿的报文分流。不通过软件实现同源同宿分流,充分发挥intel网卡硬件芯片分流的功能,带来系统性能的提升。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所述领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者同等替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于intel万兆网卡实现同源同宿报文分流的方法,其包括下列步骤:
(1)构造随机数K,设置网卡芯片的HASH值R初始值为0;
(2)扫描输入报文的源目IP地址I,并对每一位b进行判断,如果b=1,则进入步骤(3),否则进入步骤(5);
(3)利用当前HASH值和K的最左边32位得到新的HASH值R;
(4)把K左移1位,作为新的K;
(5)判断是否结束循环,如果结束循环,则进入步骤(6),否则进入步骤(2);
(6)利用R和缓冲区队列数得到该报文的目标缓冲区队列。
2.根据权利要求1所述的方法,其特征在于,步骤(1)中随机数K的构造是如下实现的:使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4]。
3.根据权利要求1-2所述的方法,其特征在于,步骤(2)中从左到右依次扫描输入报文的源目IP地址I,共8个字节,扫描64位从而对每一位b进行判断。
4.根据权利要求1-3所述的方法,其特征在于,步骤(3)中对当前HASH值和K的最左边32位进行异或运算,得到新的HASH值R。
5.根据权利要求1-4所述的方法,其特征在于,步骤(6)中得到新K值并且扫描I结束后,返回最终的R和缓冲区队列数取模运算后,作为该报文的目标缓冲区队列。
6.一种基于intel万兆网卡实现同源同宿报文分流的系统,其包括下列模块:
初始化模块,该模块构造随机数K,并且设置网卡芯片的HASH值R初始值为0;
源目IP地址I判断模块,该模块扫描输入报文的源目IP地址I,并对每一位b进行判断,如果b=1,则进入获取新HASH值模块,否则进入结束循环判断模块;
获取新HASH值模块,该模块利用当前HASH值和K的最左边32位得到新的HASH值R;
获取新K值模块,该模块把K左移1位,作为新的K;
结束循环判断模块,该模块判断是否结束循环,如果结束循环,则进入确定目标缓冲区队列模块,否则进入源目IP地址I判断模块;
确定目标缓冲区队列模块,该模块利用R和缓冲区队列数得到该报文的目标缓冲区队列。
7.根据权利要求6所述的系统,其特征在于,初始化模块中随机数K的构造是如下实现的:使K的前面3个32位相等,也就是说,随机数序列K中的前12个字节,排列为K[0]K[1]K[2]…K[11],满足关系K[i]=K[i+4]。
8.根据权利要求6-7所述的系统,其特征在于,源目IP地址I判断模块中从左到右依次扫描输入报文的源目IP地址I,共8个字节,扫描64位从而对每一位b进行判断。
9.根据权利要求6-8所述的系统,其特征在于,获取新HASH值模块中对当前HASH值和K的最左边32位进行异或运算,得到新的HASH值R。
10.根据权利要求6-9所述的方法,其特征在于,确定目标缓冲区队列模块中得到新K值并且扫描I结束后,返回最终的R和缓冲区队列数取模运算后,作为该报文的目标缓冲区队列。
CN2011104271028A 2011-12-19 2011-12-19 一种基于intel万兆网卡实现同源同宿报文分流的系统和方法 Pending CN102497323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104271028A CN102497323A (zh) 2011-12-19 2011-12-19 一种基于intel万兆网卡实现同源同宿报文分流的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104271028A CN102497323A (zh) 2011-12-19 2011-12-19 一种基于intel万兆网卡实现同源同宿报文分流的系统和方法

Publications (1)

Publication Number Publication Date
CN102497323A true CN102497323A (zh) 2012-06-13

Family

ID=46189111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104271028A Pending CN102497323A (zh) 2011-12-19 2011-12-19 一种基于intel万兆网卡实现同源同宿报文分流的系统和方法

Country Status (1)

Country Link
CN (1) CN102497323A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763198A (zh) * 2013-11-15 2014-04-30 武汉绿色网络信息服务有限责任公司 一种数据包分类方法
CN106375237A (zh) * 2016-09-28 2017-02-01 郑州云海信息技术有限公司 一种基于Intel 82599万兆网卡的Hash函数Key值筛选方法
CN106506691A (zh) * 2016-12-06 2017-03-15 北京锐安科技有限公司 一种支持千兆万兆混合多端口负载均衡的方法
CN109756389A (zh) * 2018-11-28 2019-05-14 南京知常容信息技术有限公司 一种万兆网络隐蔽通信检测系统
CN115134284A (zh) * 2021-03-24 2022-09-30 中国电信股份有限公司 通过多个分流器实现同源同宿分流的方法、装置和介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103763198A (zh) * 2013-11-15 2014-04-30 武汉绿色网络信息服务有限责任公司 一种数据包分类方法
CN103763198B (zh) * 2013-11-15 2016-08-17 武汉绿色网络信息服务有限责任公司 一种数据包分类方法
CN106375237A (zh) * 2016-09-28 2017-02-01 郑州云海信息技术有限公司 一种基于Intel 82599万兆网卡的Hash函数Key值筛选方法
CN106375237B (zh) * 2016-09-28 2019-11-01 郑州云海信息技术有限公司 一种基于Intel 82599万兆网卡的Hash函数Key值筛选方法
CN106506691A (zh) * 2016-12-06 2017-03-15 北京锐安科技有限公司 一种支持千兆万兆混合多端口负载均衡的方法
CN106506691B (zh) * 2016-12-06 2019-11-22 北京锐安科技有限公司 一种支持千兆万兆混合多端口负载均衡的方法
CN109756389A (zh) * 2018-11-28 2019-05-14 南京知常容信息技术有限公司 一种万兆网络隐蔽通信检测系统
CN115134284A (zh) * 2021-03-24 2022-09-30 中国电信股份有限公司 通过多个分流器实现同源同宿分流的方法、装置和介质
CN115134284B (zh) * 2021-03-24 2023-07-14 中国电信股份有限公司 通过多个分流器实现同源同宿分流的方法、装置和介质

Similar Documents

Publication Publication Date Title
US11469922B2 (en) Data center network with multiplexed communication of data packets across servers
CN102497323A (zh) 一种基于intel万兆网卡实现同源同宿报文分流的系统和方法
CN107819695B (zh) 一种基于sdn的分布式控制负载均衡系统与方法
Yin et al. LIONS: An AWGR-based low-latency optical switch for high-performance computing and data centers
US8995456B2 (en) Space-space-memory (SSM) Clos-network packet switch
US10979366B1 (en) Optimization of multi-stage hierarchical networks for practical routing applications
CN105337883A (zh) 一种支持多业务的网络交换装置及其实现方法
CN101517981A (zh) 多机架仿真交换机
CN103701710A (zh) 一种数据传输方法、核心转发设备以及端点转发设备
US9374322B2 (en) Optimization of multi-stage hierarchical networks for practical routing applications
Yuan On nonblocking folded-clos networks in computer communication environments
CN102111327A (zh) 信元调度方法和系统
CN102164088A (zh) 数据中心网络系统
CN105791145A (zh) 基于等价多路径ecmp的报文传输方法及装置
CN102201949A (zh) 一种测试网络设备转发性能的系统及方法
CN102594650B (zh) 处理多播报文的方法和交换接入装置
CN102195931A (zh) 一种设备内部多播流量转发的方法、网络设备及线卡
US20050157713A1 (en) Distribution stage for enabling efficient expansion of a switching network
Tu et al. Design a simple and high performance switch using a two-stage architecture
Yang et al. Routing permutations on baseline networks with node-disjoint paths
CN109327405A (zh) 报文保序方法及网络设备
Yoshigoe The CICQ switch with virtual crosspoint queues for large RTT
JP2014068110A (ja) 通信装置および切替制御方法
CN102571529B (zh) 消除头阻塞的数据发送方法和装置
Lee et al. A load balancing scheme for two-stage switches maintaining packet sequence

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120613