CN106506392B - 一种网络拥塞处理方法及装置 - Google Patents
一种网络拥塞处理方法及装置 Download PDFInfo
- Publication number
- CN106506392B CN106506392B CN201611177669.3A CN201611177669A CN106506392B CN 106506392 B CN106506392 B CN 106506392B CN 201611177669 A CN201611177669 A CN 201611177669A CN 106506392 B CN106506392 B CN 106506392B
- Authority
- CN
- China
- Prior art keywords
- data packet
- packet loss
- packet
- current
- cpu usage
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/23—Bit dropping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种网络拥塞处理方法及装置,其中方法包括:获取软中断的当前中央处理器CPU占用率,根据所述当前CPU占用率判断是否进行丢包处理;当确定进行丢包处理时,根据所述当前CPU占用率确定当前丢包率;根据预设数据包选择标准确定满足丢包条件的数据包数量;根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包。本发明实施例解决了现有技术中软中断导致网络拥塞时,无法选择性丢包处理或者选择性丢包处理增大CPU负载的问题,实现了可动态调整的选择性丢包,保证系统的正常运行。
Description
技术领域
本发明实施例涉及计算机网络技术,尤其涉及一种网络拥塞处理方法及装置。
背景技术
随着网络大数据的不断发展,由于网络拥塞导致系统服务器卡死的情况时常出现。
当路由器中存在大量数据流时,频繁网络软中断的系统CPU(Central ProcessingUnit,中央处理器)的占用率可能会达到100%,由于软中断的级别比普通应用进程的级别高,导致路由器本地房屋得不到执行。
针对上述问题,目前常用的解决方式有:一、以太网驱动支持NAPI调度的方式。该方法在网络数据量大时,可缩短轮询处理包的频率或者每次轮询处理包的个数,避免软中断耗尽CPU资源。但是,该方法在网络拥塞时不能选择性丢包,导致关键业务数据包丢失,同时,网络数据量适中时,会出现软中断与轮询两种调度方式的频繁切换,影响系统性能。二、应用QOS(Quality of Service,服务质量)限定接口带宽的方式。该方法可限定总带宽的大小,也可根据业务需要进行选择性丢包,但是TC流量控制方式本身耗费大量CPU,且在当CPU紧张时会导致队列运算不准确,并失去对数据流的控制,当不能压制总带宽时,会加剧CPU的负载。三、缩小以太网接收和发送的缓存区的大小。但是该方式不能实现丢包率的动态调整,不能对数据包的选择性丢包。
发明内容
本发明提供一种网络拥塞处理方法及装置,以实现可动态调整的选择性丢包,保证系统的正常运行。
第一方面,本发明实施例提供了一种网络拥塞处理方法,该方法包括:
获取软中断的当前中央处理器CPU占用率,根据所述当前CPU占用率判断是否进行丢包处理;
当确定进行丢包处理时,根据所述当前CPU占用率确定当前丢包率;
根据预设数据包选择标准确定满足丢包条件的数据包数量;
根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包。
进一步的,根据所述当前CPU占用率确定当前丢包率,包括:
根据所述当前CPU占用率确定当前丢包权值;
根据所述当前丢包权值确定所述当前丢包率。
进一步的,根据所述当前CPU占用率确定当前丢包权值,包括:
判断所述当前CPU占用率是否大于第一阈值;
若所述当前CPU占用率大于所述第一阈值,则确定所述当前丢包权值加1,若所述当前CPU占用率小于或等于所述第一阈值,则判断所述CPU占用率是否小于第二阈值;
若所述当前CPU占用率小于所述第二阈值,则进一步判断所述当前丢包权值是否为零,若是,则确定所述当前丢包权值不变,若不是,则确定所述当前丢包权值减1;
若所述当前CPU占用率大于或等于所述第二阈值,则在预设时间间隔后循环获取新的CPU占用率。
进一步的,根据预设数据包选择标准确定满足丢包条件的数据包数量,包括:
获取数据包信息,其中,所述数据包信息包括数据包的协议类型、数据包长度、源端口和目的端口;
检测所述数据包的所述协议类型是否是预设协议类型,若不是预设协议类型,则确定所述数据包不满足丢包条件,若是预设协议类型,对数据包进行预设协议类型标记,并检测所述数据包的所述数据包长度是否大于预设长度;
若所述数据包的数据包长度小于或等于所述预设长度,则确定所述数据包不满足丢包条件,若所述数据包的数据包长度大于所述预设长度,则确定满足丢包条件的数据包数量加1。
进一步的,在检测所述数据包的协议类型是否是预设协议类型之前,所述方法包括:
检测所述数据包是否含有预设协议类型标记,若是,则确定所述数据包不满足丢包条件,若否,则检测所述数据包的所述协议类型是否是预设协议类型。
进一步的,在确定满足丢包条件的数据包数量之后,所述方法还包括:
检测所述数据包的源端口和/或目的端口是否是预放开端口,若是,则确定所述数据包不满足丢包条件,若否,则确定所述数据包满足所述丢包条件。
进一步的,根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包,包括:
根据所述当前丢包率和所述满足丢包条件的数据包数量确定丢包数量;
在满足丢包条件的数据包中随机选择所述丢包数量的数据包进行丢包处理。
第二方面,本发明实施例还提供了一种网络拥塞处理装置,该装置包括:
丢包处理判断模块,用于获取软中断的当前中央处理器CPU占用率,根据所述当前CPU占用率判断是否进行丢包处理;
丢包率确定模块,用于当确定进行丢包处理时,根据所述当前CPU占用率确定当前丢包率;
数据包数量确定模块,用于根据预设数据包选择标准确定满足丢包条件的数据包数量;
丢包控制模块,用于根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包。
进一步的,所述丢包率确定模块包括:
丢包权值确定单元,用于根据所述当前CPU占用率确定当前丢包权值;
丢包率确定单元,用于根据所述当前丢包权值确定所述当前丢包率。
进一步的,所述丢包权值确定单元包括:
第一阈值判断子单元,用于判断所述当前CPU占用率是否大于第一阈值;
第一丢包权值确定子单元,用于若所述当前CPU占用率大于所述第一阈值,则确定所述当前丢包权值加1;;
第二阈值判断子单元,用于若所述当前CPU占用率小于或等于所述第一阈值,则判断所述CPU占用率是否小于第二阈值;
第二丢包权值确定子单元,用于若所述当前CPU占用率小于所述第二阈值,则进一步判断所述当前丢包权值是否为零,若是,则确定所述当前丢包权值不变,若不是,则确定所述当前丢包权值减1;
CPU占用率循环获取子单元,用于若所述当前CPU占用率大于或等于所述第二阈值,则在预设时间间隔后循环获取新的CPU占用率。
进一步的,所述数据包数量确定模块包括:
数据包信息获取单元,用于获取数据包信息,其中,所述数据包信息包括数据包的协议类型、数据包长度、源端口和目的端口;
协议类型判断单元,用于检测所述数据包的所述协议类型是否是预设协议类型,若不是预设协议类型,则确定所述数据包不满足丢包条件;
数据包长度判断单元,用于若所述数据包的协议类型是预设协议类型,对数据包进行预设协议类型标记,并检测所述数据包的所述数据包长度是否大于预设长度;
数据包数量确定单元,用于若所述数据包的数据包长度小于或等于所述预设长度,则确定所述数据包不满足丢包条件,若所述数据包的数据包长度大于所述预设长度,则确定满足丢包条件的数据包数量加1。
进一步的,所述数据包数量确定模块包括:
标记检测单元,在检测所述数据包的协议类型是否是预设协议类型之前,检测所述数据包是否含有预设协议类型标记,若是,则确定所述数据包不满足丢包条件,若否,则检测所述数据包的所述协议类型是否是预设协议类型。
进一步的,所述数据包数量确定模块还包括:
端口检测单元,用于在确定满足丢包条件的数据包数量之后,检测所述数据包的源端口和/或目的端口是否是预放开端口,若是,则确定所述数据包不满足丢包条件,若否,则确定所述数据包满足所述丢包条件。
进一步的,所述丢包控制模块包括:
丢包数量确定单元,用于根据所述当前丢包率和所述满足丢包条件的数据包数量确定丢包数量;
丢包控制单元,用于在满足丢包条件的数据包中随机选择所述丢包数量的数据包进行丢包处理。
本发明实施例通过根据可动态调节的当前丢包率和满足丢包条件的数据包数量进行选择性丢包,解决了现有技术中软中断导致网络拥塞时,无法选择性丢包处理或者选择性丢包处理增大CPU负载的问题,实现了可动态调整的选择性丢包,保证系统的正常运行。
附图说明
图1是本发明实施例一提供的网络拥塞处理方法的流程图;
图2是本发明实施例二提供的网络拥塞处理方法的流程图;
图3是本发明实施例三提供的网络拥塞处理方法的流程图;
图4是本发明实施例四提供的网络拥塞处理方法的流程图;
图5是本发明实施例五提供的网络拥塞处理装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的网络拥塞处理方法的流程图,本实施例可适用于路由器中存在大量数据流,软终端占用大量CPU导致网络拥塞情况,该方法可以由本实施例提供的网络拥塞处理装置来执行,该装置可采用软件和/或硬件的方式实现,该方法具体包括:
S110、获取软中断的当前中央处理器CPU占用率,根据当前CPU占用率判断是否进行丢包处理。若是,则执行步骤S120,若否,则在预设时间后循环执行步骤S110。
其中,中断指的是在程序运行过程中,系统出现一个必须由CPU立即处理的情况,CPU暂停终止正在执行的程序转而处理新情况的过程,中断包括软中断与硬中断。其中,硬中断由硬件产生,例如可以是磁盘、网卡或者时钟等,软中断是由当前正在运行的进程产生的。CPU占用率指的是正在运行的程序占用的CPU资源,CPU占用率越高说明当前运行了很多程序。当CPU占用率达到100%时,影响智能终端的基础功能的正常运行。
本实施例中,当路由器中存在大量数据流时,频繁的网络软中断的CPU占用率可能达到100%,影响智能终端的基础功能的正常运行。针对上述问题,采用选择性丢包的方式解决。
示例性的,检测当前软中断的CPU占用率,若当前软中断的CPU占用率大于或者等于91%,则确定进行丢包处理,若当前软中断的CPU占用率小于91%,则确定不进行丢包处理。
S120、根据当前CPU占用率确定当前丢包率。
其中,丢包率指的是丢弃数据包的数量与发送数据包数量的比值。示例性的,丢包率可以是10%,即在当前发送的每10个数据包中丢弃1个数据包。
本实施例中,根据当前CPU占用率确定当前丢包率,丢包率可动态调整,在网络拥塞时增大丢包率,提高CPU资源释放效率,在数据量不大时,减小丢包率,避免大量数据包丢失。
S130、根据预设数据包选择标准确定满足丢包条件的数据包数量。
其中,预设数据包选择标准指的是系统中预设的选择性丢包的数据包选择条件,为了保证智能终端的基本功能,示例性的,丢弃的数据包不包括交互性的小数据包,上网常用的数据包,例如HTTPS、HTTP或者DNS等。
需要说明的是,满足丢包条件的数据包在以太网接收和发送数据包的缓存区中缓存数据包中进行选择。
S140、根据当前丢包率和满足丢包条件的数据包数量进行选择性丢包。
本实施例中,在满足丢包条件的数据包中根据当前丢包率和满足丢包条件的数据包数量确定可丢弃的数据包,并进行丢包处理。其中,在不减小以太网接收和发送数据包的缓存区大小的情况下,对缓存区内的数据包进行选择性丢包处理,实现在进行丢包处理,为引进新的CPU负载。
本实施例的技术方案,通过根据可动态调节的当前丢包率和满足丢包条件的数据包数量进行选择性丢包,解决了现有技术中软中断导致网络拥塞时,无法选择性丢包处理或者选择性丢包处理增大CPU负载的问题,实现了可动态调整的选择性丢包,保证系统的正常运行。
在上述实施例的基础上,步骤S140还可以是:
根据当前丢包率和满足丢包条件的数据包数量确定丢包数量;
在满足丢包条件的数据包中随机选择丢包数量的数据包进行丢包处理。
示例性的,当前丢包率可以是10%,满足丢包条件的数据包数量可以是50,可确定丢包数量为5,在满足丢包条件的50个数据包中系统随机的选择5个数据包进行丢包处理。
实施例二
图2是本发明实施例二提供的网络拥塞处理方法的流程图,在上述实施例的基础上,进一步的将根据当前CPU占用率确定当前丢包率优化为:根据当前CPU占用率确定当前丢包权值;根据当前丢包权值确定当前丢包率。相应的,该方法具体包括:
S210、获取软中断的当前中央处理器CPU占用率,根据当前CPU占用率判断是否进行丢包处理。若是,则执行步骤S220,若否,则在预设时间后循环执行步骤S210。
S220、根据当前CPU占用率确定当前丢包权值。
其中,丢包权值指的是用于表示当前CPU占用率的标识,示例性的,当前丢包权值可以是0、1或者2。
S230、根据当前丢包权值确定当前丢包率。
本实施例中,当系统确定当前丢包权值时,生成预设丢包率的指令,并根据该指令进行选择性丢包处理,例如预设丢包率可以是10%。示例性的,若当前丢包权值为1时,确定当前丢包率为10%,若当前丢包权值为2时,确定当前丢包率为20%。
S240、根据预设数据包选择标准确定满足丢包条件的数据包数量。
S250、根据当前丢包率和满足丢包条件的数据包数量进行选择性丢包。
本实施例的技术方案,通过根据可动态调节的当前丢包率和满足丢包条件的数据包数量进行选择性丢包,解决了现有技术中软中断导致网络拥塞时,无法选择性丢包处理或者选择性丢包处理增大CPU负载的问题,实现了可动态调整的选择性丢包,保证系统的正常运行。
实施例三
图3是本发明实施例三提供的网络拥塞处理方法,在上述实施例的基础上,进一步的提供了根据当前CPU占用率确定当前丢包权值的方法,相应的,该方法具体包括:
S310、获取软中断的当前中央处理器CPU占用率,根据当前CPU占用率判断是否进行丢包处理。若是,则执行步骤S320,若否,则在预设时间后循环执行步骤S310。
S320、判断当前CPU占用率是否大于第一阈值。若当前CPU占用率大于第一阈值,则确定当前丢包权值加1,并执行步骤S350,若当前CPU占用率小于或等于第一阈值,则执行步骤S330。
其中,第一阈值可以是90%。
S330、判断CPU占用率是否小于第二阈值。若当前CPU占用率小于第二阈值,则执行步骤S340,若当前CPU占用率大于或等于第二阈值,则在预设时间间隔后返回执行步骤S310。
示例性的,第二阈值可以是68%,预设时间间隔可以是3分钟。
S340、判断当前丢包权值是否为零。若是,则确定当前丢包权值不变,若不是,则确定当前丢包权值减1,同时执行步骤S350。
示例性的,获取当前CPU占用率,若当前CPU占用率大于第一阈值(例如可以是90%),例如当前CPU占用率可以是92%,确定当前丢包权值加1;若当前CPU占用率小于第二阈值(例如可以是68%),例如当前CPU占用率可以是50%,由于当前丢包权值为大于等于0的正整数,若当前丢包权值为零时,确定当前丢包权值保持不变,若当前丢包权值为大于零的正整数时,确定当前丢包权值减1;若当前CPU占用率小于等于第一阈值,同时大于等于第二阈值时,例如当前CPU占用率可以是78%,确定当前丢包权值保持不变。
S350、根据当前丢包权值确定当前丢包率。
示例性的,若当前丢包权值增大,对应的当前丢包率增大,若当前丢包权值减小,对应的当前丢包率减小,实现了丢包率的动态调整,避免了固定大小的丢包率在网络严重拥塞时不能快速降低软中断的CPU占用率,或者在CPU占用率不高时,丢弃大量数据包,导致系统进行数据包重传的情况。
需要说明的是,根据预设时间间隔获取不同时刻的CPU占用率,可确定不同时刻的丢包权值和丢包率,实现了丢包率的动态调整。
S360、根据预设数据包选择标准确定满足丢包条件的数据包数量。
S370、根据当前丢包率和满足丢包条件的数据包数量进行选择性丢包。
本实施例的技术方案,通过当前CPU占用率与预设阈值进行比较,根据比较结果确定当前丢包权值与丢包率,由于在预设时间间隔获取不同时刻的CPU占用率,实现了丢包率的动态调整。
实施例四
图4是本发明实施例四提供的网络拥塞处理方法的流程图,在上述实施例的基础上,进一步的提供了满足丢包条件的数据包数量的确定方法,相应的,该方法具体可以包括:
S410、获取软中断的当前中央处理器CPU占用率,根据当前CPU占用率判断是否进行丢包处理。若是,则执行步骤S420,若否,则在预设时间后循环执行步骤S410。
S420、根据当前CPU占用率确定当前丢包率。
S430、获取数据包信息,其中,数据包信息包括数据包的协议类型、数据包长度、源端口和目的端口。
其中,数据包的协议类型指的是四层协议类型,包括应用程、传输层、网络互联层和主机到网络层;数据包长度指的是数据包中包含的字节数;源端口指的是本地终端数据包发送端口,目的端口指的是目的终端的数据包接收端口。
需要说明的是,数据包信息可通过解包的方法获取。在解包过程中,首先获取数据包的二层包类型,根据二层包类型决定解包方式。示例性的,若数据包为PPPOE(Point-to-Point Protocol over Ethernet,以太网上的点对点协议)类型的数据包,需要先剥去数据包的包头,sk_buf相关指针向下移动8个字节,获取数据包的四层协议类型、目的端口和源端口等数据包信息,在获取信息后需对数据包及时还原。数据包为IP(Internet Protocol,网络之间互连的协议)类型的数据包,在剥去数据包的包头后,sk_buf相关指针无需进行移位可直接获取数据包信息。
S440、检测数据包的协议类型是否是预设协议类型。若数据包的协议类型不是预设协议类型,则确定数据包不满足丢包条件,若数据包的协议类型是预设协议类型,则执行步骤S460。
本实施例中,预设协议类型可以是传输层的UDP(User Datagram Protocol,用户数据报协议)和TCP(Transmission Control Protocol,传输控制协议),若数据包的协议类型不属于UDP或者TCP,则确定该数据包不满足丢包条件,不属于丢包范围内的数据包。
本实施例中,丢包处理只丢弃预设协议类型(UDP和TCP)的数据包,保证了终端的基本业务不受影响。
S450、对数据包进行预设协议类型标记,并检测数据包的数据包长度是否大于预设长度。若数据包的数据包长度小于或等于预设长度,则确定数据包不满足丢包条件,若数据包的数据包长度大于预设长度,则执行步骤S470。
其中,预设长度可以是256字节,数据包长度小于或等于256字节,则确定该数据包不满足丢包条件,不属于丢包范围内的数据包;若数据包长度大于256字节,则确定该数据包满足丢包条件,属于丢包范围内的数据包。示例性的,满足丢包条件的数据包可以是BT(Bit Torrent,比特流)下载数据包。
本实施例中,选择数据包长度大于预设长度的数据包进行丢弃,能够加快CPU占用率的调节效率。
S460、确定满足丢包条件的数据包数量加1。同时返回执行步骤S430,获取下一个数据包信息。
本实施例中,当确定数据包满足丢包条件时,确定满足丢包条件的数据包数量加1,当确定数据包不满足丢包条件时,确定满足丢包条件的数据包数量不变。
S470、根据当前丢包率和满足丢包条件的数据包数量进行选择性丢包。
本实施例的技术方案,通过根据数据包的协议类型和数据包长度选择可丢弃的数据包,根据当前丢包率和满足丢包条件的数据包数量在可丢弃的数据包中选择数据包进行丢包处理,即在保证网络正常运行的情况下,进行丢包处理,实现了选择性丢包。
在上述实施例的基础上,在步骤S440之前该方法还可以包括:
检测数据包是否含有预设协议类型标记。若是,则确定数据包不满足丢包条件,若否,则执行步骤S450。
本实施例中,在检测到数据包的协议类型属于预设协议类型时,对数据包进行预设协议类型标记,表明该数据包被检测。由于根据丢包率随机确定被丢弃的数据包,因此存在被标记但未被丢弃的数据包,又由于软件中断处理函数可能对同一数据包进行多次调用,为了避免同一数据包被反复检测,在对数据包进行预设数据包选择标准检测之前,检测据包是否含有预设协议类型标记,若存在,不在对该数据包进行检测,减少了检测次数,提高了处理效率。
在上述实施例的基础上,在步骤S460之后该方法还可以包括:
检测数据包的源端口和/或目的端口是否是预放开端口。若是,则确定数据包不满足丢包条件,若否,则确定数据包满足丢包条件。
本实施例中,预放开端口例如可以是80端口、443端口、53端口或者22端口等,根据上述预放开端口建立哈希表,若数据包的源端口或目的端口任意端口属于哈希表中的一个预放开端口,则确定数据包不满足丢包条件,若数据包的源端口和目的端口均不属于哈希表中的预放开端口,则确定数据包满足丢包条件。
本实施例中,将源端口和/或目的端口属于预放开端口的数据包确定为不满足丢包条件的数据包,减少了数据包的丢失。
实施例五
图5是本发明实施例五提供的网络拥塞处理装置,该装置适用于执行本发明实施例提供的网络拥塞处理方法,该装置具体可以包括:
丢包处理判断模块510,用于获取软中断的当前中央处理器CPU占用率,根据当前CPU占用率判断是否进行丢包处理;
丢包率确定模块520,用于当确定进行丢包处理时,根据当前CPU占用率确定当前丢包率;
数据包数量确定模块530,用于根据预设数据包选择标准确定满足丢包条件的数据包数量;
丢包控制模块540,用于根据当前丢包率和满足丢包条件的数据包数量进行选择性丢包。
优选的,丢包率确定模块520包括:
丢包权值确定单元521,用于根据当前CPU占用率确定当前丢包权值;
丢包率确定单元522,用于根据当前丢包权值确定当前丢包率。
优选的,丢包权值确定单元521包括:
第一阈值判断子单元5211,用于判断当前CPU占用率是否大于第一阈值;
第一丢包权值确定子单元5212,用于若当前CPU占用率大于第一阈值,则确定当前丢包权值加1;;
第二阈值判断子单元5213,用于若当前CPU占用率小于或等于第一阈值,则判断CPU占用率是否小于第二阈值;
第二丢包权值确定子单元5214,用于若当前CPU占用率小于第二阈值,则进一步判断当前丢包权值是否为零,若是,则确定当前丢包权值不变,若不是,则确定当前丢包权值减1;
CPU占用率循环获取子单元5215,用于若当前CPU占用率大于或等于第二阈值,则在预设时间间隔后循环获取新的CPU占用率。
优选的,数据包数量确定模块530包括:
数据包信息获取单元531,用于获取数据包信息,其中,数据包信息包括数据包的协议类型、数据包长度、源端口和目的端口;
协议类型判断单元532,用于检测数据包的协议类型是否是预设协议类型,若不是预设协议类型,则确定数据包不满足丢包条件;
数据包长度判断单元533,用于若数据包的协议类型是预设协议类型,对数据包进行预设协议类型标记,并检测数据包的数据包长度是否大于预设长度;
数据包数量确定单元534,用于若数据包的数据包长度小于或等于预设长度,则确定数据包不满足丢包条件,若数据包的数据包长度大于预设长度,则确定满足丢包条件的数据包数量加1。
优选的,数据包数量确定模块530包括:
标记检测单元535,在检测数据包的协议类型是否是预设协议类型之前,检测数据包是否含有预设协议类型标记,若是,则确定数据包不满足丢包条件,若否,则检测数据包的协议类型是否是预设协议类型。
优选的,数据包数量确定模块530还包括:
端口检测单元536,用于在确定满足丢包条件的数据包数量之后,检测数据包的源端口和/或目的端口是否是预放开端口,若是,则确定数据包不满足丢包条件,若否,则确定数据包满足丢包条件。
优选的,丢包控制模块540包括:
丢包数量确定单元541,用于根据当前丢包率和满足丢包条件的数据包数量确定丢包数量;
丢包控制单元542,用于在满足丢包条件的数据包中随机选择丢包数量的数据包进行丢包处理。
本发明实施例提供的网络拥塞处理装置可执行本发明任意实施例所提供的网络拥塞处理方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种网络拥塞处理方法,其特征在于,包括:
获取软中断的当前中央处理器CPU占用率,根据所述当前CPU占用率判断是否进行丢包处理;
当确定进行丢包处理时,根据所述当前CPU占用率确定当前丢包率;
根据预设数据包选择标准确定满足丢包条件的数据包数量;
根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包;
其中,根据预设数据包选择标准确定满足丢包条件的数据包数量,包括:
获取数据包信息,其中,所述数据包信息包括数据包的协议类型、数据包长度、源端口和目的端口,其中,所述数据包的协议类型包括应用层、传输层、网络互联层和主机到网络层;所述数据包长度为数据包中包含的字节数;所述源端口为本地终端数据包发送端口,所述目的端口为目的终端的数据包接收端口;
检测所述数据包的所述协议类型是否是预设协议类型,若不是预设协议类型,则确定所述数据包不满足丢包条件,若是预设协议类型,对数据包进行预设协议类型标记,并检测所述数据包的所述数据包长度是否大于预设长度;
若所述数据包的数据包长度小于或等于所述预设长度,则确定所述数据包不满足丢包条件,若所述数据包的数据包长度大于所述预设长度,则确定满足丢包条件的数据包数量加1。
2.根据权利要求1所述的方法,其特征在于,根据所述当前CPU占用率确定当前丢包率,包括:
根据所述当前CPU占用率确定当前丢包权值;
根据所述当前丢包权值确定所述当前丢包率。
3.根据权利要求2所述的方法,其特征在于,根据所述当前CPU占用率确定当前丢包权值,包括:
判断所述当前CPU占用率是否大于第一阈值;
若所述当前CPU占用率大于所述第一阈值,则确定所述当前丢包权值加1,若所述当前CPU占用率小于或等于所述第一阈值,则判断所述CPU占用率是否小于第二阈值;
若所述当前CPU占用率小于所述第二阈值,则判断所述当前丢包权值是否为零,若是,则确定所述当前丢包权值不变,若不是,则确定所述当前丢包权值减1;
若所述当前CPU占用率大于或等于所述第二阈值,则在预设时间间隔后循环获取新的CPU占用率。
4.根据权利要求1所述的方法,其特征在于,在检测所述数据包的协议类型是否是预设协议类型之前,所述方法还包括:
检测所述数据包是否含有预设协议类型标记,若是,则确定所述数据包不满足丢包条件,若否,则检测所述数据包的所述协议类型是否是预设协议类型。
5.根据权利要求1所述的方法,其特征在于,在确定满足丢包条件的数据包数量之后,所述方法还包括:
检测所述数据包的源端口和/或目的端口是否是预放开端口,若是,则确定所述数据包不满足丢包条件,若否,则确定所述数据包满足所述丢包条件。
6.根据权利要求1所述的方法,其特征在于,根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包,包括:
根据所述当前丢包率和所述满足丢包条件的数据包数量确定丢包数量;
在满足丢包条件的数据包中随机选择所述丢包数量的数据包进行丢包处理。
7.一种网络拥塞处理装置,其特征在于,包括:
丢包处理判断模块,用于获取软中断的当前中央处理器CPU占用率,根据所述当前CPU占用率判断是否进行丢包处理;
丢包率确定模块,用于当确定进行丢包处理时,根据所述当前CPU占用率确定当前丢包率;
数据包数量确定模块,用于根据预设数据包选择标准确定满足丢包条件的数据包数量;
丢包控制模块,用于根据所述当前丢包率和所述满足丢包条件的数据包数量进行选择性丢包;
其中,所述数据包数量确定模块包括:
数据包信息获取单元,用于获取数据包信息,其中,所述数据包信息包括数据包的协议类型、数据包长度、源端口和目的端口;其中,所述数据包的协议类型包括应用层、传输层、网络互联层和主机到网络层;所述数据包长度为数据包中包含的字节数;所述源端口为本地终端数据包发送端口,所述目的端口为目的终端的数据包接收端口;
协议类型判断单元,用于检测所述数据包的所述协议类型是否是预设协议类型,若不是预设协议类型,则确定所述数据包不满足丢包条件;
数据包长度判断单元,用于若所述数据包的协议类型是预设协议类型,对数据包进行预设协议类型标记,并检测所述数据包的所述数据包长度是否大于预设长度。
8.根据权利要求7所述的装置,其特征在于,所述丢包率确定模块包括:
丢包权值确定单元,用于根据所述当前CPU占用率确定当前丢包权值;
丢包率确定单元,用于根据所述当前丢包权值确定所述当前丢包率,其中,所述丢包率确定单元包括:
第一阈值判断子单元,用于判断所述当前CPU占用率是否大于第一阈值;
第一丢包权值确定子单元,用于若所述当前CPU占用率大于所述第一阈值,则确定所述当前丢包权值加1;
第二阈值判断子单元,用于若所述当前CPU占用率小于或等于所述第一阈值,则判断所述CPU占用率是否小于第二阈值;
第二丢包权值确定子单元,用于若所述当前CPU占用率小于所述第二阈值,则进一步判断所述当前丢包权值是否为零,若是,则确定所述当前丢包权值不变,若不是,则确定所述当前丢包权值减1;
CPU占用率循环获取子单元,用于若所述当前CPU占用率大于或等于所述第二阈值,则在预设时间间隔后循环获取新的CPU占用率;
相应的,所述丢包控制模块包括:
丢包数量确定单元,用于根据所述当前丢包率和所述满足丢包条件的数据包数量确定丢包数量;
丢包控制单元,用于在满足丢包条件的数据包中随机选择所述丢包数量的数据包进行丢包处理。
9.根据权利要求7所述的装置,其特征在于,所述数据包数量确定模块还包括:
数据包数量确定单元,用于若所述数据包的数据包长度小于或等于所述预设长度,则确定所述数据包不满足丢包条件,若所述数据包的数据包长度大于所述预设长度,则确定满足丢包条件的数据包数量加1;
标记检测单元,在检测所述数据包的协议类型是否是预设协议类型之前,检测所述数据包是否含有预设协议类型标记,若是,则确定所述数据包不满足丢包条件,若否,则检测所述数据包的所述协议类型是否是预设协议类型;
端口检测单元,用于在确定满足丢包条件的数据包数量之后,检测所述数据包的源端口和/或目的端口是否是预放开端口,若是,则确定所述数据包不满足丢包条件,若否,则确定所述数据包满足所述丢包条件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177669.3A CN106506392B (zh) | 2016-12-19 | 2016-12-19 | 一种网络拥塞处理方法及装置 |
PCT/CN2017/110063 WO2018113436A1 (zh) | 2016-12-19 | 2017-11-09 | 一种网络拥塞处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177669.3A CN106506392B (zh) | 2016-12-19 | 2016-12-19 | 一种网络拥塞处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106506392A CN106506392A (zh) | 2017-03-15 |
CN106506392B true CN106506392B (zh) | 2019-11-26 |
Family
ID=58334946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611177669.3A Active CN106506392B (zh) | 2016-12-19 | 2016-12-19 | 一种网络拥塞处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106506392B (zh) |
WO (1) | WO2018113436A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506392B (zh) * | 2016-12-19 | 2019-11-26 | 深圳创维数字技术有限公司 | 一种网络拥塞处理方法及装置 |
CN107872401B (zh) * | 2017-12-22 | 2021-01-12 | 成都飞鱼星科技股份有限公司 | 一种网络关键业务保障方法及装置 |
CN108494761A (zh) * | 2018-03-15 | 2018-09-04 | 四川斐讯信息技术有限公司 | 一种路由器网址过滤方法和过滤系统 |
CN110806924B (zh) * | 2018-08-06 | 2022-06-07 | 大唐移动通信设备有限公司 | 一种基于cpu占用率的网络处理方法及装置 |
CN109117271B (zh) * | 2018-08-10 | 2021-03-23 | 普联技术有限公司 | 自动调节cpu负载的方法、存储介质及终端设备 |
CN113259304B (zh) * | 2020-02-12 | 2022-06-03 | 上海云盾信息技术有限公司 | 一种基于动态调整的攻击防护方法及设备 |
CN112000422B (zh) * | 2020-07-17 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种防止容器编排框架中pod内存溢出的方法、装置 |
CN112231107B (zh) * | 2020-10-28 | 2023-06-30 | 新华三信息安全技术有限公司 | 防火墙的报文限速系统、方法、设备及介质 |
CN114584491B (zh) * | 2022-04-21 | 2023-09-08 | 腾讯科技(深圳)有限公司 | 检测方法、装置、存储介质及设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1677952A (zh) * | 2004-03-30 | 2005-10-05 | 武汉烽火网络有限责任公司 | 线速分组并行转发方法和装置 |
CN100496022C (zh) * | 2006-05-09 | 2009-06-03 | 华为技术有限公司 | 一种流量控制的方法及装置 |
CN101383694A (zh) * | 2007-09-03 | 2009-03-11 | 电子科技大学 | 基于数据挖掘技术的拒绝服务攻击防御方法和系统 |
CN101800699A (zh) * | 2010-02-09 | 2010-08-11 | 上海华为技术有限公司 | 一种丢弃报文的方法及装置 |
CN102185740B (zh) * | 2011-05-13 | 2013-09-18 | 北京星网锐捷网络技术有限公司 | 心跳检测方法及网络设备 |
CN102299850A (zh) * | 2011-08-29 | 2011-12-28 | 中兴通讯股份有限公司 | 保护cpu的方法和装置 |
CN102436400A (zh) * | 2011-12-06 | 2012-05-02 | 曙光信息产业股份有限公司 | 零拷贝驱动的实现方法和装置 |
US9473974B2 (en) * | 2012-05-30 | 2016-10-18 | The University Of Hong Kong | Enhancing AQM to combat wireless losses |
US9055004B2 (en) * | 2012-09-18 | 2015-06-09 | Cisco Technology, Inc. | Scalable low latency multi-protocol networking device |
CN103229466B (zh) * | 2012-12-27 | 2016-03-09 | 华为技术有限公司 | 一种数据包传输的方法及装置 |
CN106506392B (zh) * | 2016-12-19 | 2019-11-26 | 深圳创维数字技术有限公司 | 一种网络拥塞处理方法及装置 |
-
2016
- 2016-12-19 CN CN201611177669.3A patent/CN106506392B/zh active Active
-
2017
- 2017-11-09 WO PCT/CN2017/110063 patent/WO2018113436A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN106506392A (zh) | 2017-03-15 |
WO2018113436A1 (zh) | 2018-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106506392B (zh) | 一种网络拥塞处理方法及装置 | |
WO2021164398A1 (zh) | 报文处理系统、方法、机器可读存储介质以及程序产品 | |
US8812725B2 (en) | System and method for latency reduction in a network environment | |
Jarschel et al. | SDN-based application-aware networking on the example of YouTube video streaming | |
US8565077B2 (en) | System and method for enhancing network quality of service | |
WO2020063339A1 (zh) | 一种实现数据传输的方法、装置和系统 | |
Mittal et al. | Recursively cautious congestion control | |
US20050213507A1 (en) | Dynamically provisioning computer system resources | |
WO2016003332A1 (en) | Methods and nodes for congestion control | |
WO2018112877A1 (zh) | 路径计算和访问请求分发方法、装置及系统 | |
WO2012065477A1 (zh) | 报文拥塞避免方法及系统 | |
WO2015172668A1 (zh) | 网络中拥塞窗口的确定方法和装置 | |
WO2019128989A1 (zh) | 一种智能路由器服务质量的实现方法、路由器及电子设备 | |
Li et al. | MPTCP incast in data center networks | |
WO2021238799A1 (zh) | 一种数据报文传输方法及装置 | |
Zhao et al. | ON/OFF traffic shaping in the Internet: Motivation, challenges, and solutions | |
US9331853B2 (en) | Method and apparatus for increasing the output of a cryptographic system | |
US7366097B2 (en) | Increasing the accuracy and efficiency of admission control for data streams | |
US20230337266A1 (en) | Method, and electronic device for allocating routing resources of wifi6 router | |
Eshete et al. | Fairness among high speed and traditional TCP under different queue management mechanisms | |
CN102801603B (zh) | 一种网络地址翻译加速的分流控制方法及装置 | |
Zapletal et al. | Slowdown as a Metric for Congestion Control Fairness | |
JP2008085536A (ja) | ルータ装置 | |
Kadhum et al. | Congestion-aware TCP-friendly system for multimedia transmission based on UDP | |
Kant | Towards a virtualized data center transport protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |