CN102769575A - 一种用于智能网卡的流量负载均衡方法 - Google Patents

一种用于智能网卡的流量负载均衡方法 Download PDF

Info

Publication number
CN102769575A
CN102769575A CN2012102815544A CN201210281554A CN102769575A CN 102769575 A CN102769575 A CN 102769575A CN 2012102815544 A CN2012102815544 A CN 2012102815544A CN 201210281554 A CN201210281554 A CN 201210281554A CN 102769575 A CN102769575 A CN 102769575A
Authority
CN
China
Prior art keywords
packet
flow
algorithm
intelligent network
application
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
CN2012102815544A
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.)
NANJING ZHONGXING SPECIAL SOFTWARE CO Ltd
National Computer Network and Information Security Management Center
Original Assignee
NANJING ZHONGXING SPECIAL SOFTWARE CO Ltd
National Computer Network and Information Security Management Center
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 NANJING ZHONGXING SPECIAL SOFTWARE CO Ltd, National Computer Network and Information Security Management Center filed Critical NANJING ZHONGXING SPECIAL SOFTWARE CO Ltd
Priority to CN2012102815544A priority Critical patent/CN102769575A/zh
Publication of CN102769575A publication Critical patent/CN102769575A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种用于智能网卡的流量负载均衡方法,当服务器接收数据时,智能网卡根据用户配置的不同分流方式,包括接收数据包中五元组的任意组合、协议、UDP载荷的动态字段,送到分流控制模块进行分流,计算出分流号,再送至数据处理模块进行数据包预处理。最后把数据包、分流号和预处理结果送至DMA模块,把数据包DMA至主机相应收包缓存供主机应用或线程提取处理。利用本发明的流量负载均衡方法,可以避免传统方法导致浪费服务器处理器性能资源,无法实现轻量级线程,功能扩展麻烦,应用负担过重的问题。

Description

一种用于智能网卡的流量负载均衡方法
技术领域
 本发明涉及计算机领域,尤其涉及一种用于智能网卡的流量负载均衡方法。
 
背景技术
目前,随着信息技术和网络应用以几何性和***性的速度急剧发展,网络分析的重要性越来越明显。而同时,多核服务器的应用也越来越广泛。传统网络分析设备一般由多核X86服务器及其上运行的相应软件组成。
传统的发挥多核处理器优势的软件架构为,服务器网卡收到的所有包根据IP地址分流,均匀分为多条流,只考虑源目的地址,不考虑数据包的业务类型。而网络分析软件起多条线程,每条线程地位平等,处理的业务完全相同,接收一条数据包流进行处理。
传统的做法虽然发挥了服务器多核处理器的并行处理能力,但是每条线程必须具备全功能,处理全业务。在今后网络应用越来越丰富,网络环境越来越复杂的情况下,每扩展对一种业务的支持,所有线程都会同时加重一层负担。所以这种软件架构下的线程负担过重,无法实现轻量线程,要发挥它的性能最多只能开和服务器核数相同的线程数,无法实现轻松的功能扩展。浪费过多服务器处理器性能资源,在网络流量较大的情况下容易出现丢包现象。
 
发明内容
本发明针对根据IP包源目的地址进行平均分流,把全业务数据包平均分配到多核服务器各个线程上处理,导致浪费服务器处理器性能资源,无法实现轻量级线程,功能扩展麻烦,应用负担过重的问题,提出一种用于智能网卡的流量负载均衡方法。该方法基于智能网卡技术,智能网卡采用多核网络处理器,处理性能高,软件开发配置灵活,可以充分根据使用者的要求开发。在该方法中智能网卡本身分为网络接口模块、分流模块、数据处理模块、DMA模块,充分发挥了智能网卡软件功能强大,硬件资源丰富的优势。
本发明的技术方案是:
智能网卡将收到的网络流量根据用户配置的不同分流方式,包括接收数据包中五元组的任意组合、协议、UDP载荷的动态字段,送到分流控制模块进行分流,计算出分流号,送到接插网卡的服务器上的对应处理程序进行处理。本发明所述方法具体包含如下步骤:
1)智能网卡加载驱动,为每个上层应用或应用的线程分配独立的收包缓存,包括收包缓存的首地址、一套读写指针,都配置到网卡相应的寄存器中;同时为每个上层应用或应用的线程分配相应的DMA资源;
2)根据每个应用或线程的需求,在后台服务器端配置相应的分流算法,相同分流算法的应用或线程组成一个分流组,同一个分流组之间流量均衡分配;各分流算法配置有查询匹配条件、查询终结条件和优先级;
3)智能网卡收到数据包后,在分流控制模块中,根据分流算法的条件来过滤数据包,判断当前数据包的分流算法,从优先级高的分流算法开始查询,若满足高优点级分流算法的匹配条件,则送到相应的分流组;若不满足,则该优先级分流算法查询终结,进入下一步流程。
4)对依次降低优先级的分流算法重复3)所述步骤,直到查询完所有应用配置的分流算法,对数据包执行默认的分流算法;
5)对于数据包命中了分流算法后,分流模块将该分流算法对应的分流号和数据包同时送入数据处理模块;
6)数据处理模块对数据包进行预处理,将一部分包处理工作放在网卡上完成;其处理过程由用户配置,根据不同分流算法配置相应的处理方式,包括流还原、内容匹配、协议识别的动作;
7)数据包的预处理完成后,智能网卡数据处理模块将数据包、预处理结果和分流号都送到DMA模块,DMA模块根据分流号,选择相应的主机缓存,进行DMA操作,把数据包和预处理结果送到主机上,并更新相应的读写指针通知主机。
8)主机上运行的不同应用或线程在各自的分流号上取得相应的数据包。并同时获得对应的预处理结果,加速处理过程。
本发明的分流算法可由各个应用或线程独立配置。
本发明中,配置相同分流算法的应用或线程组成一个分流组。分流组内数据包按流量均衡分配至组内各个分流号上。不同分流算法之间存在优先级,同时每一个分流算法设置查询终结条件。网卡分流模块对每一个数据包从高优先级到低优先级直至默认分流算法逐级查询,命中分流算法后直接将分流号和数据包送至后续数据处理模块进行数据包预处理。
本发明中,数据处理模块对数据包进行预处理。预处理流程由各个应用或线程根据自己的分流算法确定。
本发明中,DMA模块根据分流模块确定的分流号,选取相应的收包缓存,发起DMA操作,送入主机内存中并修改相应的读写指针通知主机应用程序或线程。主机应用程序直接在分配给自己的收包缓冲区内取得自己要处理的数据包。 
本发明的有益效果:
本发明根据服务器配置为支持的每个上层软件线程提供了一个专用的流缓冲区域,同时,应用或线程可以根据自己的需要配置专有的分流算法。智能网卡会把命中相应分流算法的数据包送到对应分流号的收包缓冲区内,供应用或线程提取使用。并且,智能网卡还能对数据包进行诸如流还原、内容匹配、协议识别等预处理操作,大大减轻应用或线程的负担。
本发明中,利用本发明的流量负载均衡方法,可以避免传统方法导致浪费服务器处理器性能资源,无法实现轻量级线程,功能扩展麻烦,应用负担过重的问题。
 
附图说明
图1是本发明的***结构示意图。
图2是本发明的分流模块示意图。
 
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。本方法包含以下步骤:
1)智能网卡驱动加载时,为每个上层应用或应用的线程分配独立的收包缓存,以及相应的DMA资源。包括收包缓存的首地址、一套读写指针,都配置到网卡相应的寄存器中。
2)每个应用或线程都可以根据自己的需求,配置自己所需的分流算法。相同分流算法的应用或线程可以组成一个分流组,同一个分流组之间流量均衡分配。分流算法配置有优先级和查询终结条件。
3)收到数据包后,智能网卡先进行高优先级的分流处理,若满足条件则送到相应的分流组。若不满足(即满足查询终结条件),则进入下一步流程。
4)对低优先级的分流算法重复3)所述步骤,直到查询完所有应用配置的分流算法,对数据包执行默认的分流算法。
5)数据包命中了分流算法后,分流模块将分流号和数据包同时送入数据处理模块。
6)数据处理模块对数据包进行预处理,其目的是将一部分包处理工作放在网卡上完成,减轻主机应用的负担。其处理过程由用户配置,可根据不同分流算法配置不同的处理方式,包括流还原、内容匹配、协议识别等动作。
7)数据包的预处理完成后,智能网卡数据处理模块将数据包、预处理结果和分流号都送到DMA模块。DMA模块根据分流号,选择相应的主机缓存,进行DMA操作,把数据包和预处理结果送到主机上。并更新相应的读写指针通知主机。
8)主机上运行的不同应用或线程在各自的分流号上取得相应的数据包。并同时获得对应的预处理结果,加速处理过程。
本发明根据服务器配置为支持的每个上层软件线程提供了一个专用的流缓冲区域,同时,应用或线程可以根据自己的需要配置专有的分流算法。智能网卡会把命中相应分流算法的数据包送到对应分流号的收包缓冲区内,供应用或线程提取使用。并且,智能网卡还能对数据包进行诸如流还原、内容匹配、协议识别等预处理操作,大大减轻应用或线程的负担。
利用本发明的流量负载均衡方法,可以避免传统方法导致浪费服务器处理器性能资源,无法实现轻量级线程,功能扩展麻烦,应用负担过重的问题。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。

Claims (7)

1.一种用于智能网卡的流量负载均衡方法,所述智能网卡,其包括以下内容:
网络接口模块、分流控制模块、数据处理模块、DMA模块;其中分流控制模块、数据处理模块在硬件上都基于多核网络处理器。
2.根据权利要求1所述的用于智能网卡的流量负载均衡方法,其特征在于:
智能网卡将收到的网络流量根据用户配置的不同分流方式,包括接收数据包中五元组的任意组合、协议、UDP载荷的动态字段,发送到分流控制模块进行分流,识别出分流算法和分流号,发送到接插智能网卡的服务器上与各分流号对应的处理程序进行处理。
3.根据权利要求1~2所述的用于智能网卡的流量负载均衡方法,其包括以下步骤:
1)智能网卡加载驱动,为每个上层应用或应用的线程分配独立的收包缓存,包括收包缓存的首地址、一套读写指针,都配置到网卡相应的寄存器中;同时为每个上层应用或应用的线程分配相应的DMA资源;
2)根据每个应用或线程的需求,在后台服务器端配置相应的分流算法,相同分流算法的应用或线程组成一个分流组,同一个分流组之间流量均衡分配;各分流算法配置有查询匹配条件、查询终结条件和优先级;
3)智能网卡收到数据包后,在分流控制模块中,根据分流算法的条件来过滤数据包,判断当前数据包的分流算法,从优先级高的分流算法开始查询,若满足高优点级分流算法的匹配条件,则送到相应的分流组;若不满足,则该优先级分流算法查询终结,进入下一步流程;
4)对依次降低优先级的分流算法重复3)所述步骤,直到查询完所有应用配置的分流算法,对数据包执行默认的分流算法;
5)对于数据包命中了分流算法后,分流模块将该分流算法对应的分流号和数据包同时送入数据处理模块;
6)数据处理模块对数据包进行预处理,将一部分包处理工作放在网卡上完成;其处理过程由用户配置,根据不同分流算法配置相应的处理方式,包括流还原、内容匹配、协议识别的动作;
7)数据包的预处理完成后,智能网卡数据处理模块将数据包、预处理结果和分流号都送到DMA模块,DMA模块根据分流号,选择相应的主机缓存,进行DMA操作,把数据包和预处理结果送到主机上,并更新相应的读写指针通知主机;
8)主机上运行的不同应用或线程在各自的分流号上取得相应的数据包,并同时获得对应的预处理结果,加速处理过程。
4.根据权利要求3所述的用于智能网卡的流量负载均衡方法,其特征在于:
分流算法由各个应用或线程独立配置。
5.根据权利要求3所述的用于智能网卡的流量负载均衡方法,其特征在于:
配置相同分流算法的应用或线程组成一个分流组,分流组内数据包按流量均衡分配至组内各个分流号上,不同分流算法之间存在优先级,同时每一个分流算法设置查询匹配条件和查询终结条件,网卡分流模块对每一个数据包从高优先级到低优先级直至默认分流算法逐级查询,命中分流算法后直接将分流号和数据包送至后续数据处理模块进行数据包预处理。
6.根据权利要求3所述的用于智能网卡的流量负载均衡方法,其特征在于:
数据处理模块对数据包进行预处理,预处理流程由各个应用或线程根据已配置的分流算法确定。
7.根据权利要求3所述的用于智能网卡的流量负载均衡方法,其特征在于:
DMA模块根据分流模块确定的分流号,选取相应的收包缓存,发起DMA操作,送入主机内存中并修改相应的读写指针通知主机应用程序或线程,主机应用程序直接在分配给自己的收包缓冲区内取得自己要处理的数据包。
CN2012102815544A 2012-08-08 2012-08-08 一种用于智能网卡的流量负载均衡方法 Pending CN102769575A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012102815544A CN102769575A (zh) 2012-08-08 2012-08-08 一种用于智能网卡的流量负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012102815544A CN102769575A (zh) 2012-08-08 2012-08-08 一种用于智能网卡的流量负载均衡方法

Publications (1)

Publication Number Publication Date
CN102769575A true CN102769575A (zh) 2012-11-07

Family

ID=47096829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012102815544A Pending CN102769575A (zh) 2012-08-08 2012-08-08 一种用于智能网卡的流量负载均衡方法

Country Status (1)

Country Link
CN (1) CN102769575A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677750A (zh) * 2013-12-09 2014-03-26 龙芯中科技术有限公司 线程的处理方法和装置
CN104539642A (zh) * 2014-10-29 2015-04-22 杭州银江智慧医疗集团有限公司 一种基于感控协议包的物联模组设备硬件加速装置及方法
WO2015096656A1 (zh) * 2013-12-26 2015-07-02 华为技术有限公司 线程创建方法、业务请求处理方法及相关设备
WO2015113437A1 (zh) * 2014-01-29 2015-08-06 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
CN106165359A (zh) * 2014-10-17 2016-11-23 华为技术有限公司 数据流分发方法和设备
CN107135278A (zh) * 2017-07-06 2017-09-05 深圳市视维科技股份有限公司 一种高效的负载均衡器及负载均衡***
CN107317759A (zh) * 2017-06-13 2017-11-03 国家计算机网络与信息安全管理中心 一种网卡的线程级动态均衡调度方法
CN107592370A (zh) * 2017-10-31 2018-01-16 郑州云海信息技术有限公司 一种网络负载均衡方法及装置
CN108092913A (zh) * 2017-12-27 2018-05-29 杭州迪普科技股份有限公司 一种报文分流的方法和多核cpu网络设备
CN110300131A (zh) * 2018-03-21 2019-10-01 北京金风科创风电设备有限公司 风电场的多重服务的路由方法、装置和设备及***
CN113157447A (zh) * 2021-04-13 2021-07-23 中南大学 一种基于智能网卡的rpc负载均衡方法
WO2022089175A1 (zh) * 2020-10-29 2022-05-05 华为技术有限公司 网络拥塞控制方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540727A (zh) * 2009-05-05 2009-09-23 曙光信息产业(北京)有限公司 一种ip报文的硬件分流方法
CN101699788A (zh) * 2009-10-30 2010-04-28 清华大学 模块化的网络入侵检测***
CN102073547A (zh) * 2010-12-17 2011-05-25 国家计算机网络与信息安全管理中心 一种多路服务器多缓冲区并行收包的性能优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540727A (zh) * 2009-05-05 2009-09-23 曙光信息产业(北京)有限公司 一种ip报文的硬件分流方法
CN101699788A (zh) * 2009-10-30 2010-04-28 清华大学 模块化的网络入侵检测***
CN102073547A (zh) * 2010-12-17 2011-05-25 国家计算机网络与信息安全管理中心 一种多路服务器多缓冲区并行收包的性能优化方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677750A (zh) * 2013-12-09 2014-03-26 龙芯中科技术有限公司 线程的处理方法和装置
WO2015096656A1 (zh) * 2013-12-26 2015-07-02 华为技术有限公司 线程创建方法、业务请求处理方法及相关设备
US10218820B2 (en) 2014-01-29 2019-02-26 Huawei Technologies Co., Ltd. Method and apparatus for processing data packet based on parallel protocol stack instances
WO2015113437A1 (zh) * 2014-01-29 2015-08-06 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
US10715589B2 (en) 2014-10-17 2020-07-14 Huawei Technologies Co., Ltd. Data stream distribution method and apparatus
CN106165359B (zh) * 2014-10-17 2020-05-08 华为技术有限公司 数据流分发方法和设备
CN106165359A (zh) * 2014-10-17 2016-11-23 华为技术有限公司 数据流分发方法和设备
CN104539642A (zh) * 2014-10-29 2015-04-22 杭州银江智慧医疗集团有限公司 一种基于感控协议包的物联模组设备硬件加速装置及方法
CN107317759A (zh) * 2017-06-13 2017-11-03 国家计算机网络与信息安全管理中心 一种网卡的线程级动态均衡调度方法
CN107135278A (zh) * 2017-07-06 2017-09-05 深圳市视维科技股份有限公司 一种高效的负载均衡器及负载均衡***
CN107592370A (zh) * 2017-10-31 2018-01-16 郑州云海信息技术有限公司 一种网络负载均衡方法及装置
CN108092913A (zh) * 2017-12-27 2018-05-29 杭州迪普科技股份有限公司 一种报文分流的方法和多核cpu网络设备
CN108092913B (zh) * 2017-12-27 2022-01-25 杭州迪普科技股份有限公司 一种报文分流的方法和多核cpu网络设备
CN110300131A (zh) * 2018-03-21 2019-10-01 北京金风科创风电设备有限公司 风电场的多重服务的路由方法、装置和设备及***
CN110300131B (zh) * 2018-03-21 2022-02-15 北京金风科创风电设备有限公司 风电场的多重服务的路由方法、装置和设备及***
WO2022089175A1 (zh) * 2020-10-29 2022-05-05 华为技术有限公司 网络拥塞控制方法及装置
CN113157447A (zh) * 2021-04-13 2021-07-23 中南大学 一种基于智能网卡的rpc负载均衡方法
CN113157447B (zh) * 2021-04-13 2023-08-29 中南大学 一种基于智能网卡的rpc负载均衡方法

Similar Documents

Publication Publication Date Title
CN102769575A (zh) 一种用于智能网卡的流量负载均衡方法
US10210125B2 (en) Receive queue with stride-based data scattering
CN101540727B (zh) 一种ip报文的硬件分流方法
CN103176780B (zh) 一种多网络接口绑定***及方法
US7813339B2 (en) Direct assembly of a data payload in an application memory
KR20060101466A (ko) 네트워크에서의 동적 실시간 스트림 집합을 위한 방법,시스템 및 제조물
US20180052789A1 (en) Direct Memory Access Transmission Control Method and Apparatus
US9712612B2 (en) Method for improving mobile network performance via ad-hoc peer-to-peer request partitioning
CN1688989A (zh) 高数据率的状态式协议处理
CN103733574A (zh) 虚拟化与非虚拟化网络之间的虚拟化网关
CN103580842A (zh) 一种多类型无线链路并行传输的方法和***
CN111470228B (zh) 货物拣选***、方法、装置及存储介质
US20090323691A1 (en) Method and apparatus to provide virtual toe interface with fail-over
CN101840328A (zh) 一种数据处理方法及***以及相关设备
CN106936916A (zh) 数据共享方法及装置
CN103795622A (zh) 一种报文转发方法及其装置
CN102209019B (zh) 一种基于报文净荷的负载均衡方法和负载均衡设备
CN103200072A (zh) 一种基于网络的数据传输方法、装置及***
CN105553889A (zh) 一种内核网桥下物理网卡和虚拟网卡快速收发包传递方法
CN107291638A (zh) 并行处理装置和控制通信的方法
CN106790767A (zh) 一种基于VMware虚拟化自动分配虚拟机IP的方法
CN102075432A (zh) 一种用于发送及接收报文的方法、装置、设备及***
CN105119964A (zh) 经由物理块地址的文件存储
CN102088457A (zh) 一种基于保证连接均衡性的报文分流方法
CN109189581A (zh) 一种作业调度方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Lu Song

Inventor after: Wang Yanhai

Inventor after: Wang Lidong

Inventor after: Zou Cuan

Inventor after: Zhou Li

Inventor after: Yan Pan

Inventor after: Wang Yong

Inventor after: Zhang Liang

Inventor after: Han Zhiqian

Inventor after: Liu Xin

Inventor before: Zhou Li

Inventor before: Sun Chuanming

Inventor before: Lu Song

Inventor before: Zou Cuan

Inventor before: Wang Lidong

Inventor before: Zhang Xiaoming

Inventor before: Wang Weicheng

Inventor before: Wang Yong

Inventor before: Zhou Qing

Inventor before: Li Jianang

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHOU LI LU SONG ZOU XIN WANG LIDONG ZHANG XIAOMING WANG WEISHENG WANG YONGZHOU QING LI JIANANG SUN CHUANMING TO: LU SONG WANG LIDONG ZOU XIN ZHOU LI YAN PAN WANG YONG ZHANG LIANG HAN ZHIQIAN LIU XIN WANG YANHAI

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: Yuhuatai District of Nanjing City, Jiangsu province 210012 Bauhinia Road No. 68

Applicant after: Nanjing Sinovatio Technology LLC

Applicant after: State Computer Network and Information Safety Management Center

Address before: Yuhuatai District of Nanjing City, Jiangsu province 210012 Bauhinia Road No. 68

Applicant before: Nanjing Zhongxing Special Software Co., Ltd.

Applicant before: State Computer Network and Information Safety Management Center

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: NANJING ZHONGXING SPECIAL SOFTWARE CO., LTD. TO: NANJING SINOVATIO TECHNOLOGY LLC

CB02 Change of applicant information

Address after: 210012 Yuhuatai, Jiangsu province tulip Road, No. 17, No.

Applicant after: Nanjing Sinovatio Technology LLC

Applicant after: State Computer Network and Information Safety Management Center

Address before: Yuhuatai District of Nanjing City, Jiangsu province 210012 Bauhinia Road No. 68

Applicant before: Nanjing Sinovatio Technology LLC

Applicant before: State Computer Network and Information Safety Management Center

COR Change of bibliographic data
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121107