CN102436400A - 零拷贝驱动的实现方法和装置 - Google Patents

零拷贝驱动的实现方法和装置 Download PDF

Info

Publication number
CN102436400A
CN102436400A CN2011104028657A CN201110402865A CN102436400A CN 102436400 A CN102436400 A CN 102436400A CN 2011104028657 A CN2011104028657 A CN 2011104028657A CN 201110402865 A CN201110402865 A CN 201110402865A CN 102436400 A CN102436400 A CN 102436400A
Authority
CN
China
Prior art keywords
application
load
processor
packet loss
situation
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
CN2011104028657A
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 Co Ltd
Original Assignee
Dawning Information Industry 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 Co Ltd filed Critical Dawning Information Industry Co Ltd
Priority to CN2011104028657A priority Critical patent/CN102436400A/zh
Publication of CN102436400A publication Critical patent/CN102436400A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种零拷贝驱动的实现方法和装置,其中,该方法包括:该方法包括:对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;在判断结果为是的情况下,确定该应用需要丢包。本发明通过对每个应用对应的负载以及处理器的负载进行判断,进而确定该应用是否需要丢包,能够根据不同应用实现不同的丢包判定,在保证处理器负载符合要求的情况下,尽可能保证优先级高的应用优先得到处理资源,优先级低的应用尽最大能力处理,避免所有从应用均无差别丢包的问题。

Description

零拷贝驱动的实现方法和装置
技术领域
本发明涉及通信领域,并且特别地,涉及一种零拷贝驱动的实现方法和装置。
背景技术
近年来,主干网网络带宽增加迅速,网络安全事件的种类和数量都呈现了指数性增长,由此可能需要多套针对不同安全事件的网络审计系统来应对。
但是,由于机房空间、散热、成本等因素的限制,因此通过无限增加服务器来运行新的业务系统和应对新增加的流量是难以实现的。为了实现多业务、大流量的处理,需要在一台服务器上运行多套业务系统。为了实现这种方案,需要零拷贝驱动提供对多应用的捕包及管理支持。
零拷贝驱动是在用户空间开辟一个共享内存区,通过内存映射机制,将网卡得到的数据直接放入用户空间中,从而避免了层层协议检测同时又避免了数据包从内核空间向用户空间的拷贝,因此,零拷贝驱动明显的提高了捕获数据包的效率。
随着网络的迅速发展,网络上各种新应用不断出现,在促进网络发展的同时也给网络监管带来越来越多的挑战。为了维护国家安全、保障网民的根本利益,涌现出了一大批针对不同类型防御对象的类IDS(入侵检测系统)。为提高类IDS系统的捕包效率,减少不必要的资源占用,曙光公司研发了支持主从应用的零拷贝驱动。
随着时间的推移,网络上安全事件的类型和数量不断增加,直接导致流量审计系统的类型越来越多,零拷贝驱动程序原有的主从应用思想已经不能满足一台服务器上部署多个审计系统的需要,迫切的需要零拷贝驱动支持多个应用,并且需要每个应用都可以独立的设置优先级,这样可以在计算和存储资源坚持时候尽量高优先级的应用多处理。
图1是相关技术中从应用和主应用的丢包和取包策略的原理图。如图1所示,当从应用1和/或从应用2(图1中的虚线所示)需要丢包的情况下,丢包的从应用需要在下次取包时去其他的指定位置(即,主应用的取包位置)进行取包。之前的零拷贝驱动虽然也考虑了对多应用的支持,但是,对于多应用的管理只采用了主从应用的管理思想,在这种主/从的管理方案中,主应用只有一个且具有最高优先级,而其他所有的从应用具有相同的优先级,这将会导致当一个从应用需要丢包时,其他的从应用同样会丢包,在大批量部署服务器的情况下,这种方案会导致大量的从应用无法正常工作。
针对相关技术中零拷贝驱动针对不同从应用进行无差别地丢包而导致大量应用无法正常进行的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中零拷贝驱动针对不同从应用进行无差别地丢包而导致大量应用无法正常工作的问题,本发明提出一种零拷贝驱动的实现方法和装置,能够根据不同应用实现不同的丢包判定,保证所有应用都可达到最大处理能力。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种零拷贝驱动的实现方法。
该方法包括:对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;在判断结果为是的情况下,确定该应用需要丢包。
该方法可进一步包括:以预定周期获取处理器的负载;并且,在针对每个应用判断处理器的负载是否超过该应用所对应的负载阈值时,采用最近一次获取的处理器的负载进行判断。
其中,对于每个应用,在判断处理器的负载小于或等于应用所对应的负载阈值的情况下,则继续从该应用对应的位置获取该应用的数据包。
此外,在确定该应用需要丢包的情况下,该方法可进一步包括:禁止该应用从该应用对应的位置获取数据包。
并且,该方法还可以进一步包括:在禁止一个应用从该应用对应的位置获取数据包的预定时间段结束之后,重新判断处理器的负载是否超过该应用所对应的负载阈值。
其中,每个应用都预先设置有对应的负载阈值,该负载阈值取决于该应用的优先级。
根据本发明的另一方面,提供了一种零拷贝驱动的实现装置
该装置包括:判断模块,用于对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;确定模块,用于在判断结果为是的情况下,确定该应用需要丢包。
该装置可进一步包括:获取模块,用于以预定周期获取处理器的负载;并且,在针对每个应用判断处理器的负载是否超过该应用所对应的负载阈值时,判断模块采用最近一次获取的处理器的负载进行判断。
该装置还可以进一步包括:取包模块,用于对于每个应用,在判断模块判断处理器的负载小于或等于应用所对应的负载阈值的情况下,继续从该应用对应的位置获取该应用的数据包。
该装置可以进一步包括:禁止模块,用于在确定一个应用需要丢包的情况下,禁止该应用从该应用对应的位置获取数据包。
该装置还可以进一步包括:定时器,用于在确定一个应用需要丢包之后开始计时;判断模块还用于在定时器的计时时间长度达到预定时间段的情况下,重新判断处理器的负载是否超过该应用所对应的负载阈值。
本发明通过对每个应用对应的负载以及处理器的负载进行判断,进而确定该应用是否需要丢包,能够根据不同应用实现不同的丢包判定,在保证处理器负载符合要求的情况下,尽可能保证优先级高的应用优先得到处理资源,优先级低的应用尽最大能力处理,避免所有从应用均无差别丢包的问题。
附图说明
图1是相关技术中从应用和主应用的丢包和取包策略的原理图;
图2是根据本发明实施例的零拷贝驱动的实现方法的流程图;
图3是根据本发明实施例的零拷贝驱动的实现方法的原理图;
图4是根据本发明实施例的零拷贝驱动的实现装置的框图。
具体实施方式
根据本发明的实施例,提供了一种零拷贝驱动的实现方法。
如图2所示,根据本发明实施例的零拷贝驱动的实现方法包括:
步骤S201,对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;
步骤S203,在判断结果为是的情况下,确定该应用需要丢包。
其中,该方法可以进一步包括:以预定周期获取处理器的负载;并且,在针对每个应用判断处理器的负载是否超过该应用所对应的负载阈值时,采用最近一次获取的处理器的负载进行判断,从而保证每次判断时所参照的都是处理器的最近负载,保证判断的准确性。
对于每个应用,在判断处理器的负载小于或等于应用所对应的负载阈值的情况下,则继续从该应用对应的位置获取该应用的数据包。
在确定该应用需要丢包的情况下,该方法可进一步包括:禁止该应用从该应用对应的位置获取数据包。
该方法可以进一步包括:在禁止一个应用从该应用对应的位置获取数据包的预定时间段结束之后,重新判断处理器的负载是否超过该应用所对应的负载阈值。
如图3所示,对于每个应用,都有各自的正常取包位置,而当一个应用被判定为丢包的情况下,该应用仅更新下次取包的位置但不返回数据包。
此外,每个应用都预先设置有对应的负载阈值,该负载阈值取决于该应用的优先级。
因此,在实际实现中,可以在零拷贝驱动程序的周期性更新计数模块中增加对每个CPU核心的空闲状态的统计,这样每个CPU核心的空闲状态会以一秒为周期进行周期性更新,以保持相对最新的CPU负载。而每个应用(审计系统)可在主配置文件中独立设置丢包CPU阈值,假设某应用设置丢包CPU阈值是80(表示当CPU的负载超过80%的情况下,会判定该应用需要丢包),当该应用运行时,在每次从共享缓冲区取数据包前都会判断当前线程所在的CPU核心的忙状态是否大于80(最高是100%),若大于80则应用主动丢弃该数据包,然后进行CPU切换(即,该应用停止获取数据包),等一个小时间片后再次取包,若应用取包时当前线程所在的CPU核心的忙状态小于80(即,负载小于80%),则正常取包处理。忙状态的决定因素包括:用户态CPU占用率、系统态占用率、软中断占用率等等。这样可以通过控制应用取包进行优先级控制,高优先级的应用可以多取到数据包,低优先级的应用少取数据包以释放出更多的资源保证高优先级的应用多处理。
而已有的零拷贝驱动采用主从应用丢包思想,当一个从应用丢包时其它从应用一起丢包,灵活性不足。此外,已有的零拷贝驱动根据共享缓冲区空闲状态以决定从应用是否丢包,这样无法保证优先级高的应用优先处理,因为在缓冲区不满时主从应用公平的竞争CPU,当有多个从应用时,从应用连续抢占CPU会导致主应用抢占CPU不足而导致处理少,在大流量或有攻击流量的情况下导致缓冲区被迅速填满而出现短暂丢包。
本发明通过根据CPU阈值设定优先级的方法,可以时刻保证高优先级的应用有更多的机会抢占CPU,实时保证高优先级应用被优先处理。这样,通过根据CPU负载独立控制多应用优先级的方法,能够在资源紧张时低优先级应用主动让出处理资源,时刻保持高优先级应用优先处理的方法,使优先级高的应用得到快速响应处理。
根据本发明的实施例,还提供了一种零拷贝驱动的实现装置。
如图4所示,根据本发明实施例的零拷贝驱动的实现装置包括:
判断模块41,用于对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;
确定模块42,连接至判断模块41,用于在判断结果为是的情况下,确定该应用需要丢包。
根据本发明的上述装置可以进一步包括:(CPU空闲状态)获取模块(未示出),用于以预定周期获取处理器的负载;并且,在针对每个应用判断处理器的负载是否超过该应用所对应的负载阈值时,判断模块采用最近一次获取的处理器的负载进行判断。
该装置还可以进一步包括:取包模块(未示出),用于对于每个应用,在判断模块判断处理器的负载小于或等于应用所对应的负载阈值的情况下,继续从该应用对应的位置获取该应用的数据包。
该装置还可以进一步包括:禁止模块(未示出),用于在确定一个应用需要丢包的情况下,禁止该应用从该应用对应的位置获取数据包。
此外,该装置还可以进一步包括:定时器(未示出),用于在确定一个应用需要丢包之后开始计时;判断模块还用于在定时器的计时时间长度达到预定时间段的情况下,重新判断处理器的负载是否超过该应用所对应的负载阈值。
综上所述,借助于本发明的上述技术方案,通过对每个应用对应的负载以及处理器的负载进行判断,进而确定该应用是否需要丢包,能够根据不同应用实现不同的丢包判定,在保证处理器负载符合要求的情况下,尽可能保证优先级高的应用优先得到处理资源,优先级低的应用尽最大能力处理,避免所有从应用均无差别丢包的问题,即使在大规模部署服务器的场景中,也能够合理地控制应用的取包和丢包。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种零拷贝驱动的实现方法,其特征在于,包括:
对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;
在判断结果为是的情况下,确定该应用需要丢包。
2.根据权利要求1所述的实现方法,其特征在于,进一步包括:
以预定周期获取所述处理器的负载;
并且,在针对每个应用判断所述处理器的负载是否超过该应用所对应的负载阈值时,采用最近一次获取的所述处理器的负载进行判断。
3.根据权利要求1所述的实现方法,其特征在于,对于每个应用,在判断处理器的负载小于或等于应用所对应的负载阈值的情况下,则继续从该应用对应的位置获取该应用的数据包。
4.根据权利要求1所述的实现方法,其特征在于,在确定该应用需要丢包的情况下,所述方法进一步包括:
禁止该应用从该应用对应的位置获取数据包。
5.根据权利要求4所述的实现方法,其特征在于,进一步包括:
在禁止一个应用从该应用对应的位置获取数据包的预定时间段结束之后,重新判断所述处理器的负载是否超过该应用所对应的负载阈值。
6.根据权利要求1至5中任一项所述的实现方法,其特征在于,每个应用都预先设置有对应的负载阈值,该负载阈值取决于该应用的优先级。
7.一种零拷贝驱动的实现装置,其特征在于,包括:
判断模块,用于对于每个应用,判断处理器的负载是否超过该应用所对应的负载阈值;
确定模块,用于在判断结果为是的情况下,确定该应用需要丢包。
8.根据权利要求7所述的实现装置,其特征在于,进一步包括:
获取模块,用于以预定周期获取所述处理器的负载;
并且,在针对每个应用判断所述处理器的负载是否超过该应用所对应的负载阈值时,所述判断模块采用最近一次获取的所述处理器的负载进行判断。
9.根据权利要求7所述的实现装置,其特征在于,进一步包括:
取包模块,用于对于每个应用,在所述判断模块判断所述处理器的负载小于或等于应用所对应的负载阈值的情况下,继续从该应用对应的位置获取该应用的数据包。
10.根据权利要求7所述的实现装置,其特征在于,进一步包括:
禁止模块,用于在确定一个应用需要丢包的情况下,禁止该应用从该应用对应的位置获取数据包。
11.根据权利要求7所述的实现装置,其特征在于,进一步包括:
定时器,用于在确定一个应用需要丢包之后开始计时;
所述判断模块还用于在所述定时器的计时时间长度达到预定时间段的情况下,重新判断所述处理器的负载是否超过该应用所对应的负载阈值。
CN2011104028657A 2011-12-06 2011-12-06 零拷贝驱动的实现方法和装置 Pending CN102436400A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104028657A CN102436400A (zh) 2011-12-06 2011-12-06 零拷贝驱动的实现方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104028657A CN102436400A (zh) 2011-12-06 2011-12-06 零拷贝驱动的实现方法和装置

Publications (1)

Publication Number Publication Date
CN102436400A true CN102436400A (zh) 2012-05-02

Family

ID=45984479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104028657A Pending CN102436400A (zh) 2011-12-06 2011-12-06 零拷贝驱动的实现方法和装置

Country Status (1)

Country Link
CN (1) CN102436400A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880540A (zh) * 2012-08-27 2013-01-16 南京智达康无线通信科技股份有限公司 一种保障接入控制器在高负载下正常工作的方法
CN106506392A (zh) * 2016-12-19 2017-03-15 深圳创维数字技术有限公司 一种网络拥塞处理方法及装置
CN107370684A (zh) * 2017-06-15 2017-11-21 腾讯科技(深圳)有限公司 业务限流方法及业务限流装置
CN108632270A (zh) * 2018-05-03 2018-10-09 河海大学常州校区 基于软件定义网络的防低速率TCP DoS攻击方法
CN110086571A (zh) * 2019-04-10 2019-08-02 广州华多网络科技有限公司 一种数据发送及接收的方法、装置及数据处理系统
WO2021052187A1 (zh) * 2019-09-18 2021-03-25 Oppo广东移动通信有限公司 基于超声波的丢帧处理方法、装置、移动终端及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072224A (zh) * 2006-05-09 2007-11-14 中兴通讯股份有限公司 一种基于绑定链路实现数据发送的方法
CN101267361A (zh) * 2008-05-09 2008-09-17 武汉飞思科技有限公司 一种基于零拷贝技术的高速网络数据包捕获方法
CN102055671A (zh) * 2010-12-17 2011-05-11 天津曙光计算机产业有限公司 一种多应用发包的优先级管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072224A (zh) * 2006-05-09 2007-11-14 中兴通讯股份有限公司 一种基于绑定链路实现数据发送的方法
CN101267361A (zh) * 2008-05-09 2008-09-17 武汉飞思科技有限公司 一种基于零拷贝技术的高速网络数据包捕获方法
CN102055671A (zh) * 2010-12-17 2011-05-11 天津曙光计算机产业有限公司 一种多应用发包的优先级管理方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102880540A (zh) * 2012-08-27 2013-01-16 南京智达康无线通信科技股份有限公司 一种保障接入控制器在高负载下正常工作的方法
CN106506392A (zh) * 2016-12-19 2017-03-15 深圳创维数字技术有限公司 一种网络拥塞处理方法及装置
CN107370684A (zh) * 2017-06-15 2017-11-21 腾讯科技(深圳)有限公司 业务限流方法及业务限流装置
CN107370684B (zh) * 2017-06-15 2021-06-08 腾讯科技(深圳)有限公司 业务限流方法及业务限流装置
CN108632270A (zh) * 2018-05-03 2018-10-09 河海大学常州校区 基于软件定义网络的防低速率TCP DoS攻击方法
CN108632270B (zh) * 2018-05-03 2020-07-24 河海大学常州校区 基于软件定义网络的防低速率TCP DoS攻击方法
CN110086571A (zh) * 2019-04-10 2019-08-02 广州华多网络科技有限公司 一种数据发送及接收的方法、装置及数据处理系统
WO2021052187A1 (zh) * 2019-09-18 2021-03-25 Oppo广东移动通信有限公司 基于超声波的丢帧处理方法、装置、移动终端及存储介质

Similar Documents

Publication Publication Date Title
CN102436400A (zh) 零拷贝驱动的实现方法和装置
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
CN106533805B (zh) 一种微服务请求处理方法、微服务控制器及微服务架构
CN108055203B (zh) 一种等价路由负载分担方法及装置
CN103974440B (zh) 一种车联网中时隙资源的处理方法及装置
CN102811176B (zh) 一种数据流量控制方法和装置
CN101854335A (zh) 一种过滤的方法、系统及网络设备
CN102521057A (zh) 资源调度方法和装置
CN103441946A (zh) 保护cpu的大流量攻击识别方法及装置
US20210243136A1 (en) Method, device and system for resource allocation
CN103340006A (zh) 多用户身份模块调制解调器管理
US20140201354A1 (en) Network traffic debugger
CN110858986A (zh) 带宽调整方法、装置、通信设备及计算机可读存储介质
CN104469855A (zh) 一种时隙资源的选择方法及装置
CN108235432B (zh) 一种基于tte协议的be数据帧预调度方法及装置
CN107155403A (zh) 一种生命周期事件的处理方法及vnfm
CN102316483A (zh) 一种EVDO系统中保证应用业务QoS的方法及装置
CN112260962B (zh) 一种带宽控制方法及装置
CN106775984B (zh) 一种管理线程池的方法和装置
CN114391250A (zh) 带宽管理方法及装置、计算机存储介质及芯片
CN104660500B (zh) 一种信号处理方法及装置
CN109522113B (zh) 一种内存管理方法及装置
CN106412341A (zh) 一种通知信息推送方法、装置及终端
CN109495544A (zh) 一种报文数据处理方法和装置、以及计算机设备
JP5278157B2 (ja) 伝送装置および伝送方法

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: 20120502