CN103023806B - 共享缓存式以太网交换机的缓存资源控制方法及装置 - Google Patents
共享缓存式以太网交换机的缓存资源控制方法及装置 Download PDFInfo
- Publication number
- CN103023806B CN103023806B CN201210551390.2A CN201210551390A CN103023806B CN 103023806 B CN103023806 B CN 103023806B CN 201210551390 A CN201210551390 A CN 201210551390A CN 103023806 B CN103023806 B CN 103023806B
- Authority
- CN
- China
- Prior art keywords
- stream
- buffer memory
- queue
- credit
- packet
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种共享缓存式以太网交换机的缓存资源控制方法及装置,涉及通信领域,该方法包括以下步骤:收到数据包时,进行哈希计算,得到数据包的流索引,根据流索引检索数据流数组,得到流信息;根据队列索引检索队列数组,得到当前队列长度和队列中的流数量;根据数据包的长度更新流信息中的已使用缓存变量值;根据流信息中的已占用缓存、当前信用值和***均缓存、攻击流信用阈值、攻击流缓存阈值的比较结果,作出不同的流行为判断处理;转发数据包后,更新流信息中的已使用缓存、当前信用值、队列的活跃流计数、队列长度。本发明能根据当前缓存的使用情况及时响应,快速发现攻击行为,防止攻击行为消耗缓存资源,有效控制网络拥塞。
Description
技术领域
本发明涉及通信领域,特别是涉及一种共享缓存式以太网交换机的缓存资源控制方法及装置。
背景技术
随着40G、100G以太网标准的发布,以太网交换机的应用越来越广泛,交换机的缓存管理就显得越发重要。随着网络传输速率的提高,交换机的缓存可能被恶意攻击流快速的消耗。当前以太网交换机的缓存资源有限,因此交换机缓存的保护策略研究成为一个重要的研究课题。在当今的网络设备中,缓存管理是一个最急迫的,并且具有挑战性的问题。没有合适的缓存管理时,当网络甚至是网络的一小部分达到饱和状态时,网络吞吐量会急剧下降,而包时延由于大量的乱序报文会急剧上升。
减少或者阻止缓存耗尽被认为是很自然的,甚至认为是解决缓存分配问题的唯一方法,但是有的方法完全没有考虑到对数据流的影响。网络攻击数据流和热点流的存在,同样导致网络性能下降。如果不加区别的减少或消除攻击流或者热点流引起的阻塞,并不能提高网络的性能。但是,通过阻止或减少攻击流对其它数据流的负面影响,可以保证正常的通信业务带宽。
参见图1所示,在共享缓存式以太网交换机的交换模型中,所有端口共享该共享缓存式以太网交换机内的缓存,当数据报文从输入端口经过端口队列进入该共享缓存式以太网交换机的共享缓存,再经调度器进入输出端口缓存,调度器按照先进先出的的策略,对输出端口缓存中的数据进行调度。共享缓存管理单元负责从共享缓存中分配空闲空间用来存储进入的报文,并将存储空间的地址作为索引来标记该报文。此后,该共享缓存式以太网交换机所有对数据报文的处理,包括查找、修改、排队,都只是针对数据报文索引进行处理。最后,由调度器通过索引找到数据报文在共享缓存中的实际存储地址,取出数据报文,由出端口发送。然后,共享缓存管理单元将该数据报文所对应的存储空间回收,还给共享缓存。
为避免拥塞,在输出端口缓存中数据包达到一定的阈值时,开始进行丢包,使得输入的数据包减少,其反馈控制模型参见图2所示。假设数据流的到达速率为w(t),交换设备可以进行转发的数据发送速率为q(t),q(t)依据缓冲区占有量x(t)进行反馈调节,那么上图所示的模型,其动态行为可描述为如下方程:
其中:
***的输入函数(缓冲区占有量)将产生一个延迟,去掉非线性约束,经过简化后,可通过以下线性方程表示缓冲区的调节过程:
x(n+1)=x(n)+λ(n-τ)+d(n)-μ (3)
其中λ(n)表示当前缓冲区中数据包的数量,d(n)表示第n个周期丢弃的数据包,μ表示一个周期内出端口发送的数据包。
流分类对线头阻塞问题来说,是一个重要的问题,唯一消除线头阻塞的方法是在共享队列中对拥塞流和非拥塞流进行分离。网络中的传输分布并不是均匀分布,存在着爆发传输,属于相同消息的数据包经过网络中相同节点,占据网络传输中的大部分。网络中的传输存在时间本地性和空间本地性两个特性。时间本地性表明数据包之间的关系,最近到达的数据包,其目的地址与前一段时间内到达的包的目的地址相同。空间本地性表明数据包之间的关系为大部分的数据包,其目的地址集中在少量的端口上。由于时间和空间本地性依赖于传输分类的特性,由于转发数据包具有时间和空间本地性的特征,对每一个输入端口分配一个队列,是完全没有必要的。在IP传输网络中,始终仅仅一部分队列保持使用。空间本地性意味着大量的数据包,其目的地址只是有限的几个端口。空间本地性导致大量的数据包在一段时间内使用相同的队列。由于时间和空间的本地性导致缓存管理的利用率低,有必要开发更高效率的机制。
为了适应TCP(Transmission Control Protocol,传输控制协议)的动态拥塞算法,一个路由器需要的缓存等于数据流的平均RTT(Round-Trip Time,往返时延)乘以路由器的网络接口速率。在理想的网络环境中,一般假设RTT≤1ms,因此在1Gbps(每秒1024兆位)的链路速率下,1ms可以缓存125000字节,约等于1488个64字节长的以太网包。在现网中使用的以太网交换机的缓存,每个GE(Gigabit Ethernet,千兆以太网)端口平均分配了200KB-2MB的缓存资源。例如Cisco 6500交换机的每个GE口根据不同的硬件模块配置有439KB和1.2MB两种缓存配置。
在高带宽的网络中,缓存的消耗是既高又快的,256KB的缓存在100Mbps链路中的耗尽时间为20ms,而在1Gbps的链路中只需要2ms。当核心交换机所有端口的缓存耗尽时,数据包将会无条件丢弃;如果交换机使用了队列调度算法实现拥塞控制,那么一旦某个队列的缓存耗尽,则目的地为该队列的数据包都将被丢弃。面对缓存资源耗尽这种情况,有些交换机会预留部分缓存资源给关键的数据报文,例如生成树协议包和BGP(Border Gateway Protocol,边界网关协议,用来连接Internet上独立***的路由选择协议)等路由协议控制报文,但是对于正常的待转发的数据报文就无法得到保护,交换机容易受攻击,正常的数据报文无法得到有效调度。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种共享缓存式以太网交换机的缓存资源控制方法及装置,能够根据当前缓存的使用情况及时响应,快速发现攻击行为,防止攻击行为消耗缓存资源,有效控制网络拥塞,为其它关键业务预留足够带宽,保证合法数据流的有效调度,确保共享缓存式以太网交换机免受攻击,对缓存和队列进行保护。
本发明提供的共享缓存式以太网交换机的缓存资源控制方法,包括以下步骤:
S1、共享缓存式以太网交换机的物理端口共享缓存管理单元收到数据包时,根据数据包的具体内容进行哈希计算,得到该数据包的流索引;每个流初始化时,当前信用值获得最大信用值,最大信用值为数据流的已使用缓存大于***平均缓存时最大允许转发的数据包个数;
S2、共享缓存管理单元根据流索引检索数据流数组,得到流信息,流信息包括该条流的已使用缓存、当前信用值和该条流的队列索引;根据数据包的信息和调度规则,为数据流分配队列,得到该数据包的队列索引;
S3、共享缓存管理单元根据队列索引检索队列数组,得到当前队列长度和队列中的流数量,将队列长度除以队列中的流数量,得到当前队列中每个流占有的平均缓存;
S4、共享缓存管理单元根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存加上发送数据包的长度,作为新的已使用缓存;
S5、共享缓存管理单元设置攻击流信用阈值和攻击流缓存阈值,攻击流信用阈值为判断数据流是否为攻击流的信用门限值,攻击流缓存阈值为攻击流所能占用的最大缓存值,根据流信息中的已占用缓存、当前信用值和***平均缓存、攻击流信用阈值、攻击流缓存阈值的比较结果,作出以下7种不同的流行为判断和处理:
(1)如果流的已使用缓存未超过***平均缓存,则判定为非攻击包,共享缓存管理单元正常转发数据包;
(2)如果流的已使用缓存超过***平均缓存、但当前信用值等于***最大信用值,按照概率随机丢弃数据包;
(3)如果流的当前信用值<攻击流信用阈值,判定该流为攻击流,将攻击流使用缓存限定在攻击流缓存阈值以内,丢弃攻击流所在数据包的后续包,并将该流的信用值递减到0;
(4)如果流的已使用缓存>攻击流缓存阈值、且流的当前信用值≤攻击流信用阈值,则判定该数据流为攻击流,根据概率随机丢弃一个数据包,该流的信用值随机递减;
(5)如果流的发送源端没有响应丢弃事件、继续高速率发包,且该流使用缓存仍然超过***平均缓存,则根据概率随机丢弃一个数据包,该流的信用值随机递减;
(6)如果流的已使用缓存≤***平均缓存、且当前信用值≤攻击流信用阈值,说明该数据流为攻击流,但缓存使用较小,正常转发数据包,但该流的当前信用值递增;
(7)如果流的已使用缓存≤***平均缓存、且当前信用值>攻击流信用阈值,说明该流曾经是攻击流,但已经变为正常流,将该流的性用值重新置为***的最大信用值,并按正常流进行数据包转发;
S6、共享缓存管理单元转发数据包后,更新流信息中的已使用缓存、当前信用值、队列的活跃流计数、队列长度;
S7、对端口队列中的数据流进行出方向调度处理,更新队列数据信息。
在上述技术方案中,步骤S1中所述流索引用于检索数据流数组使用,所述数据流数组用于记录每个流的缓存占用情况、信用值、该流是否为活跃流以及该流被调用的队列号。
在上述技术方案中,步骤S2中还包括以下步骤:如果该条流的队列索引为无效值,为该流分配队列索引;队列索引用于检索共享缓存式以太网交换机物理端口的队列数组,记录该端口下每个队列的当前长度和活动的流数量。
在上述技术方案中,步骤S6包括以下步骤:共享缓存管理单元转发数据包后,根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;根据队列索引更新队列的长度,以及更新流信息中的当前信用值、队列的活跃流计数。
在上述技术方案中,步骤S6之前还包括以下步骤:如果是首次进入队列,还需要根据队列索引将数据流计数器加一,然后进入数据包发送流程。
在上述技术方案中,步骤S6还包括以下步骤:丢弃数据包后,判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一。
在上述技术方案中,步骤S7包括以下步骤:先根据数据流索引和数据包进行发送数据处理,根据发送数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判定该流的已使用缓存变量值是否为零,如果为零,则根据队列索引将数据流计数器减一,然后发送数据包。
本发明还提供一种共享缓存式以太网交换机的缓存资源控制装置,该缓存资源控制装置位于共享缓存管理单元中,该缓存资源控制装置包括接收模块、流索引计算模块、队列索引获取模块、平均缓存计算模块、更新模块、流初始化模块、判断模块、数据包丢弃模块、攻击流判定模块、流信用值处理模块,其中:
接收模块,用于:接收数据包,产生流索引计算触发信号和队列索引获取触发信号,并将数据包和流索引计算触发信号一起发送到流索引计算模块,将数据包和队列索引获取触发信号一起发送到队列索引获取模块;
流索引计算模块,用于:收到接收模块发来的数据包和流索引计算触发信号时,根据数据包的具体内容进行哈希计算,得到流索引;
队列索引获取模块,用于:收到接收模块发来的数据包和队列索引获取触发信号时,根据数据包的信息和调度规则,为数据流分配队列,得到队列索引,产生平均缓存计算触发信号,并将队列索引和平均缓存计算触发信号一起发送到平均缓存计算模块;
平均缓存计算模块,用于:收到队列索引获取模块发来的队列索引和平均缓存计算触发信号时,根据队列索引计算当前队列中每个流占有的平均缓存,产生更新触发信号,将更新触发信号发送到更新模块;
更新模块,用于:收到平均缓存计算模块发来的更新触发信号时,更新流信息中的已使用缓存变量值、队列信息中的活跃流计数、队列长度;以及对端口队列中的数据流进行出方向调度处理,更新队列数据信息;
流初始化模块,用于:对流进行初始化,产生最大信用值设置触发信号,将该流和最大信用值设置触发信号发送到流信用值处理模块,将该流发送到判断模块;
判断模块,用于:收到流后,如果判定流的使用缓存超过***平均缓存,则产生首次随机丢弃触发信号,将首次随机丢弃触发信号发送到数据包丢弃模块;如果判定流的发送源端没有响应丢弃事件、继续高速率发包,且该流使用的缓存仍然超过***平均缓存,则产生随机丢弃触发信号,将该流和随机丢弃触发信号发送到数据包丢弃模块;如果判定流的信用值小于攻击流信用阈值,则产生攻击流判定触发信号,并将该流和攻击流判定触发信号发送到攻击流判定模块;
数据包丢弃模块,用于:收到判断模块发来的首次随机丢弃触发信号时,开始随机丢弃一个数据包;收到判断模块发来的流和随机丢弃触发信号时,根据概率随机丢弃一个数据包,并产生流信用值随机递减触发信号,将该流和流信用值随机递减触发信号发送到流信用值处理模块;收到攻击流判定模块发来的攻击流和无条件丢弃触发信号时,将攻击流所在数据包后续的数据包全部丢弃;
攻击流判定模块,用于:收到判断模块发来的流和攻击流判定触发信号时,将该流判定为攻击流,将该攻击流使用的缓存限定在攻击流缓存阈值以内,并产生无条件丢弃触发信号和信用值递减到零触发信号,将该攻击流和无条件丢弃触发信号发送到数据包丢弃模块,将该攻击流和流信用值递减到零触发信号发送到流信用值处理模块;如果判定攻击流降低发送速率,并且***缓存资源充足、没有拥塞,则产生恢复最大信用值触发信号,将该攻击流和恢复最大信用值触发信号发送到流信用值处理模块;
流信用值处理模块,用于:收到流初始化模块发来的流和最大信用值设置触发信号时,将该流的信用值设置为最大信用值;收到数据包丢弃模块发来的流和流信用值随机递减触发信号时,随机递减该流的信用值;收到攻击流判定模块发来的攻击流和流信用值递减到零触发信号时,将该攻击流的信用值递减到0;收到攻击流判定模块发来的攻击流和恢复最大信用值触发信号时,将该攻击流的信用值恢复到最大信用值,该攻击流变为正常流,再将该正常流发送到判断模块。
在上述技术方案中,所述更新模块根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;根据队列索引更新队列的长度,以及更新流信息中的当前信用值、队列的活跃流计数。
在上述技术方案中,所述数据包丢弃模块丢弃数据包后,判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一。
与现有技术相比,本发明的优点如下:
本发明能够根据当前缓存的使用情况及时响应,快速发现攻击行为,限制攻击行为使用***资源,防止攻击行为消耗缓存资源,有效控制网络拥塞,为其它关键业务预留足够带宽,保证合法数据流的有效调度,确保共享缓存式以太网交换机免受攻击,对缓存和队列进行保护。
附图说明
图1为现有技术中共享缓存式以太网交换机的交换模型示意图。
图2为现有技术中共享缓存反馈控制模型的示意图。
图3为本发明实施例中FBMP算法的流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图3所示,本发明实施例提供一种共享缓存式以太网交换机的缓存资源控制方法,又叫FBMP(Flow Based Memory Protectionmechanism,基于流的缓存保护策略)算法,包括以下步骤:
S1、共享缓存管理单元(共享缓存式以太网交换机的物理端口)收到数据包时,根据数据包的具体内容进行哈希计算,得到该数据包的流索引,流索引用于检索数据流数组使用,数据流数组用于记录每个流的缓存占用情况、信用值、该流是否为活跃流以及该流被调用的队列号;每个流初始化时,当前信用值获得最大信用值,最大信用值为数据流的已使用缓存大于***平均缓存时最大允许转发的数据包个数;
S2、共享缓存管理单元根据流索引检索数据流数组,得到流信息,流信息包括该条流的已使用缓存、当前信用值和该条流的队列索引;根据数据包的信息和调度规则,为数据流分配队列,得到该数据包的队列索引;如果该条流的队列索引为无效值,说明是一条新的数据流到达,需要为该流分配队列索引;队列索引用于检索共享缓存式以太网交换机物理端口的队列数组,记录该端口下每个队列的当前长度和活动的流数量;
S3、共享缓存管理单元根据队列索引检索队列数组,得到当前队列长度和队列中的流数量,将队列长度除以队列中的流数量,得到当前队列中每个流占有的平均缓存;
S4、共享缓存管理单元根据接收数据包的长度更新流信息中的已使用缓存变量值,即将已使用缓存加上发送数据包的长度,作为新的已使用缓存;
S5、共享缓存管理单元设置攻击流信用阈值和攻击流缓存阈值,攻击流信用阈值为判断数据流是否为攻击流的信用门限值,攻击流缓存阈值为攻击流所能占用的最大缓存值,根据流信息中的已占用缓存、当前信用值和***平均缓存、攻击流信用阈值、攻击流缓存阈值的比较结果,作出以下7种不同的流行为判断和处理:
(1)如果流的已使用缓存未超过***平均缓存,则判定为非攻击包,共享缓存管理单元可正常转发数据包;
(2)如果流的已使用缓存超过***平均缓存、但当前信用值等于***最大信用值,表示该流疑似攻击流,将按照概率随机丢弃数据包;
(3)如果流的当前信用值<攻击流信用阈值,判定该流为攻击流,将攻击流使用缓存限定在攻击流缓存阈值以内,丢弃攻击流所在数据包的后续包,并将该流的信用值递减到0,保证交换机的缓存资源最小程度的受到攻击流的影响;
(4)如果流的已使用缓存>攻击流缓存阈值、且流的当前信用值≤攻击流信用阈值,则判定该数据流为攻击流,根据概率随机丢弃一个数据包,该流的信用值也将随机递减;
(5)如果流的发送源端没有响应丢弃事件、继续高速率发包,且该流使用缓存仍然超过***平均缓存,则根据概率随机丢弃一个数据包,该流的信用值也将随机递减;
(6)如果流的已使用缓存≤***平均缓存、且当前信用值≤攻击流信用阈值,说明该数据流为攻击流,但缓存使用较小,仍然可以正常转发数据包,但该流的当前信用值递增;
(7)如果流的已使用缓存≤***平均缓存、且当前信用值>攻击流信用阈值,说明该流曾经是攻击流,但目前已降低发送速率,并且***缓存资源充足,没有拥塞,已经变为正常流,将该流的性用值重新置为***的最大信用值,并按正常流进行数据包转发;
S6、共享缓存管理单元转发数据包后,根据接收数据包的长度更新流信息中的已使用缓存变量值,即将已使用缓存减去发送数据包的长度;再判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;根据队列索引更新队列的长度,以及更新流信息中的当前信用值、队列的活跃流计数;如果是首次进入队列,还需要根据队列索引将数据流计数器加一,然后进入数据包发送流程;丢弃数据包后,判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;
S7、对端口队列中的数据流进行出方向调度处理,更新队列数据信息:先根据数据流索引和数据包进行发送数据处理,根据发送数据包的长度更新流信息中的已使用缓存变量值,即将已使用缓存减去发送数据包的长度;再判定该流的已使用缓存变量值是否为零,如果为零,则根据队列索引将数据流计数器减一,然后发送数据包。
本发明实施例还提供一种共享缓存式以太网交换机的缓存资源控制装置,该缓存资源控制装置位于共享缓存管理单元中,该缓存资源控制装置包括接收模块、流索引计算模块、队列索引获取模块、平均缓存计算模块、更新模块、流初始化模块、判断模块、数据包丢弃模块、攻击流判定模块、流信用值处理模块,其中:
接收模块,用于:接收数据包,产生流索引计算触发信号和队列索引获取触发信号,并将数据包和流索引计算触发信号一起发送到流索引计算模块,将数据包和队列索引获取触发信号一起发送到队列索引获取模块;
流索引计算模块,用于:收到接收模块发来的数据包和流索引计算触发信号时,根据数据包的具体内容进行哈希计算,得到流索引;
队列索引获取模块,用于:收到接收模块发来的数据包和队列索引获取触发信号时,根据数据包的信息和调度规则,为数据流分配队列,得到队列索引,产生平均缓存计算触发信号,并将队列索引和平均缓存计算触发信号一起发送到平均缓存计算模块;
平均缓存计算模块,用于:收到队列索引获取模块发来的队列索引和平均缓存计算触发信号时,根据队列索引计算当前队列中每个流占有的平均缓存,产生更新触发信号,将更新触发信号发送到更新模块;
更新模块,用于:收到平均缓存计算模块发来的更新触发信号时,更新流信息中的已使用缓存变量值、队列信息中的活跃流计数、队列长度,具体的,根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;根据队列索引更新队列的长度,以及更新流信息中的当前信用值、队列的活跃流计数;以及对端口队列中的数据流进行出方向调度处理,更新队列数据信息;
流初始化模块,用于:对流进行初始化,产生最大信用值设置触发信号,将该流和最大信用值设置触发信号发送到流信用值处理模块,将该流发送到判断模块;
判断模块,用于:收到流后,如果判定流的使用缓存超过***平均缓存,则产生首次随机丢弃触发信号,将首次随机丢弃触发信号发送到数据包丢弃模块;如果判定流的发送源端没有响应丢弃事件、继续高速率发包,且该流使用的缓存仍然超过***平均缓存,则产生随机丢弃触发信号,将该流和随机丢弃触发信号发送到数据包丢弃模块;如果判定流的信用值小于攻击流信用阈值,则产生攻击流判定触发信号,并将该流和攻击流判定触发信号发送到攻击流判定模块;
数据包丢弃模块,用于:收到判断模块发来的首次随机丢弃触发信号时,开始随机丢弃一个数据包;收到判断模块发来的流和随机丢弃触发信号时,根据概率随机丢弃一个数据包,并产生流信用值随机递减触发信号,将该流和流信用值随机递减触发信号发送到流信用值处理模块;收到攻击流判定模块发来的攻击流和无条件丢弃触发信号时,将攻击流所在数据包后续的数据包全部无条件丢弃;丢弃数据包后,判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;
攻击流判定模块,用于:收到判断模块发来的流和攻击流判定触发信号时,将该流判定为攻击流,将该攻击流使用的缓存限定在攻击流缓存阈值这个恒定值以内,并产生无条件丢弃触发信号和信用值递减到零触发信号,将该攻击流和无条件丢弃触发信号发送到数据包丢弃模块,将该攻击流和流信用值递减到零触发信号发送到流信用值处理模块;如果判定攻击流降低发送速率,并且***缓存资源充足、没有拥塞,则产生恢复最大信用值触发信号,将该攻击流和恢复最大信用值触发信号发送到流信用值处理模块;
流信用值处理模块,用于:收到流初始化模块发来的流和最大信用值设置触发信号时,将该流的信用值设置为最大信用值;收到数据包丢弃模块发来的流和流信用值随机递减触发信号时,随机递减该流的信用值;收到攻击流判定模块发来的攻击流和流信用值递减到零触发信号时,将该攻击流的信用值递减到0,保证交换机的缓存资源最小程度的受到攻击流的影响;收到攻击流判定模块发来的攻击流和恢复最大信用值触发信号时,将该攻击流的信用值恢复到最大信用值,该攻击流变为正常流,再将该正常流发送到判断模块。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明包含这些改动和变型在内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种共享缓存式以太网交换机的缓存资源控制方法,其特征在于,包括以下步骤:
S1、共享缓存式以太网交换机的物理端口共享缓存管理单元收到数据包时,根据数据包的具体内容进行哈希计算,得到该数据包的流索引;每个流初始化时,当前信用值获得最大信用值,最大信用值为数据流的已使用缓存大于***平均缓存时最大允许转发的数据包个数;
S2、共享缓存管理单元根据流索引检索数据流数组,得到流信息,流信息包括该条流的已使用缓存、当前信用值和该条流的队列索引;根据数据包的信息和调度规则,为数据流分配队列,得到该数据包的队列索引;
S3、共享缓存管理单元根据队列索引检索队列数组,得到当前队列长度和队列中的流数量,将队列长度除以队列中的流数量,得到当前队列中每个流占有的平均缓存;
S4、共享缓存管理单元根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存加上发送数据包的长度,作为新的已使用缓存;
S5、共享缓存管理单元设置攻击流信用阈值和攻击流缓存阈值,攻击流信用阈值为判断数据流是否为攻击流的信用门限值,攻击流缓存阈值为攻击流所能占用的最大缓存值,根据流信息中的已占用缓存、当前信用值和***平均缓存、攻击流信用阈值、攻击流缓存阈值的比较结果,作出以下7种不同的流行为判断和处理:
(1)如果流的已使用缓存未超过***平均缓存,则判定为非攻击包,共享缓存管理单元正常转发数据包;
(2)如果流的已使用缓存超过***平均使用缓存、但当前信用值等于***最大信用值,按照概率随机丢弃数据包;
(3)如果流的当前信用值<攻击流信用阈值,判定该流为攻击流,将攻击流使用缓存限定在攻击流缓存阈值以内,丢弃攻击流所在数据包的后续包,并将该流的信用值递减到0;
(4)如果流的已使用缓存>攻击流缓存阈值、且流的当前信用值≤攻击流信用阈值,则判定该数据流为攻击流,根据概率随机丢弃一个数据包,该流的信用值随机递减;
(5)如果流的发送源端没有响应丢弃事件、继续高速率发包,且该流使用缓存仍然超过***平均缓存,则根据概率随机丢弃一个数据包,该流的信用值随机递减;
(6)如果流的已使用缓存≤***平均缓存、且当前信用值≤攻击流信用阈值,说明该数据流为攻击流,但缓存使用较小,正常转发数据包,但该流的当前信用值递增;
(7)如果流的已使用缓存≤***平均缓存、且当前信用值>攻击流信用阈值,说明该流曾经是攻击流,但已经变为正常流,将该流的性用值重新置为***的最大信用值,并按正常流进行数据包转发;
S6、共享缓存管理单元转发数据包后,更新流信息中的已使用缓存、当前信用值、队列的活跃流计数、队列长度;
S7、对端口队列中的数据流进行出方向调度处理,更新队列数据信息。
2.如权利要求1所述的共享缓存式以太网交换机的缓存资源控制方法,其特征在于:步骤S1中所述流索引用于检索数据流数组使用,所述数据流数组用于记录每个流的缓存占用情况、信用值、该流是否为活跃流以及该流被调用的队列号。
3.如权利要求1所述的共享缓存式以太网交换机的缓存资源控制方法,其特征在于:步骤S2中还包括以下步骤:如果该条流的队列索引为无效值,为该流分配队列索引;队列索引用于检索共享缓存式以太网交换机物理端口的队列数组,记录该端口下每个队列的当前长度和活动的流数量。
4.如权利要求1所述的共享缓存式以太网交换机的缓存资源控制方法,其特征在于:步骤S6包括以下步骤:共享缓存管理单元转发数据包后,根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;根据队列索引更新队列的长度,以及更新流信息中的当前信用值、队列的活跃流计数。
5.如权利要求4所述的共享缓存式以太网交换机的缓存资源控制方法,其特征在于:步骤S6之前还包括以下步骤:如果是首次进入队列,还需要根据队列索引将数据流计数器加一,然后进入数据包发送流程。
6.如权利要求5所述的共享缓存式以太网交换机的缓存资源控制方法,其特征在于:步骤S6还包括以下步骤:丢弃数据包后,判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一。
7.如权利要求1至6中任一项所述的共享缓存式以太网交换机的缓存资源控制方法,其特征在于:步骤S7包括以下步骤:先根据数据流索引和数据包进行发送数据处理,根据发送数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判定该流的已使用缓存变量值是否为零,如果为零,则根据队列索引将数据流计数器减一,然后发送数据包。
8.一种共享缓存式以太网交换机的缓存资源控制装置,其特征在于:该缓存资源控制装置位于共享缓存管理单元中,该缓存资源控制装置包括接收模块、流索引计算模块、队列索引获取模块、平均缓存计算模块、更新模块、流初始化模块、判断模块、数据包丢弃模块、攻击流判定模块、流信用值处理模块,其中:
接收模块,用于:接收数据包,产生流索引计算触发信号和队列索引获取触发信号,并将数据包和流索引计算触发信号一起发送到流索引计算模块,将数据包和队列索引获取触发信号一起发送到队列索引获取模块;
流索引计算模块,用于:收到接收模块发来的数据包和流索引计算触发信号时,根据数据包的具体内容进行哈希计算,得到流索引;
队列索引获取模块,用于:收到接收模块发来的数据包和队列索引获取触发信号时,根据数据包的信息和调度规则,为数据流分配队列,得到队列索引,产生平均缓存计算触发信号,并将队列索引和平均缓存计算触发信号一起发送到平均缓存计算模块;
平均缓存计算模块,用于:收到队列索引获取模块发来的队列索引和平均缓存计算触发信号时,根据队列索引计算当前队列中每个流占有的平均缓存,产生更新触发信号,将更新触发信号发送到更新模块;
更新模块,用于:收到平均缓存计算模块发来的更新触发信号时,更新流信息中的已使用缓存变量值、队列信息中的活跃流计数、队列长度;以及对端口队列中的数据流进行出方向调度处理,更新队列数据信息;
流初始化模块,用于:对流进行初始化,产生最大信用值设置触发信号,将该流和最大信用值设置触发信号发送到流信用值处理模块,将该流发送到判断模块;
判断模块,用于:收到流后,如果判定流的使用缓存超过***平均缓存,则产生首次随机丢弃触发信号,将首次随机丢弃触发信号发送到数据包丢弃模块;如果判定流的发送源端没有响应丢弃事件、继续高速率发包,且该流使用的缓存仍然超过***平均缓存,则产生随机丢弃触发信号,将该流和随机丢弃触发信号发送到数据包丢弃模块;如果判定流的信用值小于攻击流信用阈值,则产生攻击流判定触发信号,并将该流和攻击流判定触发信号发送到攻击流判定模块;
数据包丢弃模块,用于:收到判断模块发来的首次随机丢弃触发信号时,开始随机丢弃一个数据包;收到判断模块发来的流和随机丢弃触发信号时,根据概率随机丢弃一个数据包,并产生流信用值随机递减触发信号,将该流和流信用值随机递减触发信号发送到流信用值处理模块;收到攻击流判定模块发来的攻击流和无条件丢弃触发信号时,将攻击流所在数据包后续的数据包全部丢弃;
攻击流判定模块,用于:收到判断模块发来的流和攻击流判定触发信号时,将该流判定为攻击流,将该攻击流使用的缓存限定在攻击流缓存阈值以内,并产生无条件丢弃触发信号和信用值递减到零触发信号,将该攻击流和无条件丢弃触发信号发送到数据包丢弃模块,将该攻击流和流信用值递减到零触发信号发送到流信用值处理模块;如果判定攻击流降低发送速率,并且***缓存资源充足、没有拥塞,则产生恢复最大信用值触发信号,将该攻击流和恢复最大信用值触发信号发送到流信用值处理模块;
流信用值处理模块,用于:收到流初始化模块发来的流和最大信用值设置触发信号时,将该流的信用值设置为最大信用值;收到数据包丢弃模块发来的流和流信用值随机递减触发信号时,随机递减该流的信用值;收到攻击流判定模块发来的攻击流和流信用值递减到零触发信号时,将该攻击流的信用值递减到0;收到攻击流判定模块发来的攻击流和恢复最大信用值触发信号时,将该攻击流的信用值恢复到最大信用值,该攻击流变为正常流,再将该正常流发送到判断模块。
9.如权利要求8所述的共享缓存式以太网交换机的缓存资源控制装置,其特征在于:所述更新模块根据接收数据包的长度更新流信息中的已使用缓存变量值:将已使用缓存减去发送数据包的长度;再判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一;根据队列索引更新队列的长度,以及更新流信息中的当前信用值、队列的活跃流计数。
10.如权利要求8或9所述的共享缓存式以太网交换机的缓存资源控制装置,其特征在于:所述数据包丢弃模块丢弃数据包后,判断该流的缓存占用是否为零,如果为零,则根据队列索引将数据流数量减一。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551390.2A CN103023806B (zh) | 2012-12-18 | 2012-12-18 | 共享缓存式以太网交换机的缓存资源控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210551390.2A CN103023806B (zh) | 2012-12-18 | 2012-12-18 | 共享缓存式以太网交换机的缓存资源控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103023806A CN103023806A (zh) | 2013-04-03 |
CN103023806B true CN103023806B (zh) | 2015-09-16 |
Family
ID=47971949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210551390.2A Active CN103023806B (zh) | 2012-12-18 | 2012-12-18 | 共享缓存式以太网交换机的缓存资源控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103023806B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200131B (zh) * | 2013-04-03 | 2015-08-19 | 清华大学深圳研究生院 | 一种数据收发装置 |
CN103618675B (zh) * | 2013-11-11 | 2017-01-18 | 西安交通大学 | 一种面向内容网络中基于内容影响力的缓存方法 |
CN104394100B (zh) * | 2014-11-07 | 2017-12-08 | 深圳市国微电子有限公司 | 信用分配方法和交换机 |
CN104539553B (zh) * | 2014-12-18 | 2017-12-01 | 盛科网络(苏州)有限公司 | 以太网芯片中实现流量控制的方法及装置 |
CN106254274B (zh) * | 2016-09-27 | 2019-04-23 | 国家电网公司 | 变电站交换机goose报文传输减少线头阻塞的方法 |
CN109391559B (zh) | 2017-08-10 | 2022-10-18 | 华为技术有限公司 | 网络设备 |
CN110221911B (zh) * | 2018-03-02 | 2021-09-28 | 大唐移动通信设备有限公司 | 一种以太网数据保护方法和装置 |
CN110708253B (zh) * | 2018-07-09 | 2023-05-12 | 华为技术有限公司 | 一种报文控制方法、流表更新方法和节点设备 |
CN109388609B (zh) * | 2018-09-30 | 2020-02-21 | 中科驭数(北京)科技有限公司 | 基于加速核的数据处理方法和装置 |
CN112416820B (zh) * | 2020-11-04 | 2022-05-27 | 国网山东省电力公司信息通信公司 | 一种数据包分类存储方法及*** |
CN114244738B (zh) * | 2021-12-16 | 2024-07-19 | 杭州奥博瑞光通信有限公司 | 一种交换机缓存调度方法以及*** |
CN115344405A (zh) * | 2022-08-10 | 2022-11-15 | 北京有竹居网络技术有限公司 | 一种数据处理方法、网络接口卡、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1434391A2 (en) * | 2002-12-23 | 2004-06-30 | Synad Technologies Limited | Method and device for prefetching frames |
CN1972239A (zh) * | 2005-11-24 | 2007-05-30 | 武汉烽火网络有限责任公司 | 以太网交换缓存及调度的方法和装置 |
EP1876779A2 (en) * | 2001-05-31 | 2008-01-09 | Telefonaktiebolaget LM Ericsson (publ) | Congestion and delay handling in a packet data network |
CN102025631A (zh) * | 2010-12-15 | 2011-04-20 | 中兴通讯股份有限公司 | 一种动态调整出端口缓存的方法及交换机 |
-
2012
- 2012-12-18 CN CN201210551390.2A patent/CN103023806B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1876779A2 (en) * | 2001-05-31 | 2008-01-09 | Telefonaktiebolaget LM Ericsson (publ) | Congestion and delay handling in a packet data network |
EP1434391A2 (en) * | 2002-12-23 | 2004-06-30 | Synad Technologies Limited | Method and device for prefetching frames |
CN1972239A (zh) * | 2005-11-24 | 2007-05-30 | 武汉烽火网络有限责任公司 | 以太网交换缓存及调度的方法和装置 |
CN102025631A (zh) * | 2010-12-15 | 2011-04-20 | 中兴通讯股份有限公司 | 一种动态调整出端口缓存的方法及交换机 |
Also Published As
Publication number | Publication date |
---|---|
CN103023806A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103023806B (zh) | 共享缓存式以太网交换机的缓存资源控制方法及装置 | |
Suter et al. | Design considerations for supporting TCP with per-flow queueing | |
US7359321B1 (en) | Systems and methods for selectively performing explicit congestion notification | |
Feng et al. | BLUE: A new class of active queue management algorithms | |
US8576863B2 (en) | Coordinated queuing between upstream and downstream queues in a network device | |
Ahammed et al. | Anakyzing the performance of active queue management algorithms | |
CN101834790B (zh) | 一种基于多核处理器的流量控制方法和多核处理器 | |
KR102177574B1 (ko) | 컴퓨팅 디바이스에서 패킷 수명을 예측하기 위한 큐잉 시스템 | |
JPH10233802A (ja) | Tcp接続の性能改善方法 | |
US10728156B2 (en) | Scalable, low latency, deep buffered switch architecture | |
US20050068798A1 (en) | Committed access rate (CAR) system architecture | |
CN105700940B (zh) | 一种调度器及调度器的动态复用方法 | |
CN111224888A (zh) | 发送报文的方法及报文转发设备 | |
Rashid et al. | Dynamic Prediction based Multi Queue (DPMQ) drop policy for probabilistic routing protocols of delay tolerant network | |
US7391785B2 (en) | Method for active queue management with asymmetric congestion control | |
Hamadneh et al. | Dynamic weight parameter for the random early detection (RED) in TCP networks | |
An et al. | MACRE: A novel distributed congestion control algorithm in DTN | |
EP1414213B1 (en) | Packet classifier and processor in a telecommunication router | |
Omidvar et al. | A Congestion-Aware Routing Algorithms Based on Traffic Priority in Wireless Sensor Networks. | |
Olmedilla et al. | Optimizing packet dropping by efficient congesting-flow isolation in lossy data-center networks | |
Hu et al. | BCN: A Fast Notified Backpressure Congestion Management | |
HEMALATHA et al. | NOVEL CONGESTION CONTROL MECHANISM TO IMPROVE PERFORMANCE OF MOBILE ADHOC NETWORK WITH QUEUE MODEL | |
Danasekar et al. | Quality of Service based Active Queue Management for Reliable Packet Transmission in Wireless Network | |
Bidgoli et al. | Differentiated Services Fuzzy Assured Forward Queuing for Congestion Control in Intermediate Routers | |
JP5350433B2 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170412 Address after: 430000 East Lake high tech Development Zone, Hubei Province, No. 6, No., high and new technology development zone, No. four Patentee after: Fenghuo Communication Science &. Technology Co., Ltd. Address before: East Lake high tech city of Wuhan province Hubei Dongxin road 430074 No. 5 East optical communication industry building Patentee before: Wuhan Fenghuo Network Co., Ltd. |