一种数据调度方法、网络设备及转发单元与流程

文档序号:17536074发布日期:2019-04-29 14:00阅读:176来源:国知局
一种数据调度方法、网络设备及转发单元与流程

本发明实施例涉及通信技术领域,尤其涉及一种数据调度方法、网络设备及转发单元。



背景技术:

当前的路由器等网络设备通常配置有155m(兆)的cpos卡,用于路由器转发数据。其中,cpos卡为通道化pos(packetoversdh)接口。

其中,路由器的cpos卡中可以具有多个通道(如路由器sdhoc3155m接口的cpos卡中有63个2048khz的e1物理信道),该cpos卡中的现场可编程门阵列(fieldprogrammablegatearray,fpga)针对该多个通道中的每个通道分配的随机存取存储器(randomaccessmemory,ram)中的存储区域的容量通常较小。从而,在路由器通过cpos卡中的任一通道接收报文数据之后、转发该报文数据之前,由于针对该通道分配的ram中的存储区域的容量较小,因此使得该存储区域中缓存报文数据的过程中可能会发生溢出错误(即overrun错误)。

如此,在路由器的cpos卡具有多个通道的场景中,如何避免网络设备中的fpga的ram在缓存数据的过程中发生溢出错误成为亟需解决的问题。



技术实现要素:

本发明实施例提供一种数据调度方法、网络设备及转发单元,以解决网络设备中的fpga的ram在缓存数据的过程中发生溢出错误的问题。

为了解决上述技术问题,本发明实施例是这样实现的:

第一方面,本发明实施例提供一种数据调度方法,应用于网络设备,网络设备包括转发单元和与转发单元连接的外部存储单元,转发单元包括内部存储单元;该方法包括:从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定内部存储单元中目标通道对应的缓存区域中的报文数据满足预设条件;根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。

第二方面,本发明实施例还提供了一种网络设备,该网络设备包括转发单元和与转发单元连接的外部存储单元,转发单元包括内部存储单元;转发单元中还包括:获取子单元、确定子单元和调度子单元;获取子单元,用于从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定子单元,用于确定内部存储单元中目标通道对应的缓存区域中的报文数据是否满足预设条件;调度子单元,用于在确定子单元确定目标通道对应的缓存区域中的报文数据满足预设条件时,根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。

第三方面,本发明实施例还提供了一种转发单元,该转发单元与外部存储单元连接,转发单元包括内部存储单元、获取子单元、确定子单元和调度子单元;获取子单元,用于从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定子单元,用于确定内部存储单元中目标通道对应的缓存区域中的报文数据是否满足预设条件;调度子单元,用于在确定子单元确定目标通道对应的缓存区域中的报文数据满足预设条件时,根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。

第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现如第一方面所述的数据调度方法的步骤。

在本发明实施例中,网络设备包括转发单元和与转发单元连接的外部存储单元,转发单元包括内部存储单元;该方法包括:从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定内部存储单元中目标通道对应的缓存区域中的报文数据满足预设条件;根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。基于本方案,由于网络设备可以通过目标队列存储目标通道的标识,而目标通道对应的缓存区域中的报文数据满足预设条件,如该缓存区域中的报文数据需要调度,因此网络设备可以根据目标队列中的目标通道的标识,快速、准确地将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。从而,有利于网络设备快速、准确地调度转发单元中缓存的报文数据,以避免缓存报文数据发生溢出错误。

附图说明

图1为本发明实施例提供的网络设备的一种可能的结构示意图;

图2为本发明实施例提供的网络设备的另一种可能的结构示意图;

图3为本发明实施例提供的一种数据调度方法的流程示意图;

图4为本发明实施例提供的另一种数据调度方法的流程示意图;

图5为本发明实施例提供的网络设备的另一种可能的结构示意图;

图6为本发明实施例提供的转发单元的一种可能的结构示意图;

图7为本发明实施例提供的网络设备的另一种可能的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本文中的“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。“多个”是指两个或多于两个。

需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

本发明的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一条件和第二条件等是用于区别不同的条件,而不是用于描述条件的特定顺序。

需要说明的是,本发明实施例提供的网络设备可以用于缓存以及转发报文(即报文数据)。具体的,网络设备可以通过多个通道转发报文数据。其中,报文通常是以数据包的形式传输的。

参照图1,为本发明实施例提供的一种网络设备的结构示意图。图1示出的网络设备包括cpos卡,该cpos卡采用fpga进行报文数据缓存和转发,fpga中包括内部的ram。网络设备中还包括外部的双倍速率同步动态随机存储器(doubledataratesdram,ddrsdram)。其中,cpos卡可以与ddrsdram连接,如有线连接或无线连接。

具体的,本发明实施例中提供的网络设备可以为路由器,该路由器中可配置有155m的cpos卡,用于转发报文数据。具体的,cpos卡上使用fpga作为的转发芯片(即转发单元),由于fpga内部的ram资源有限,需要使用fpga外部的存储器进行报文数据缓存和转发。其中,在路由器sdhoc3155m接口的cpos卡中,有63个2048khz的e1物理信道。若将e1物理信道配置成ce1,则每个ce1最多可以配置31个64khz(千赫兹)的子信道,整个oc3接口最大可配置31×63=1953个通道。由于路由器中的通道较多,在路由器通过cpos卡接收报文数据时,在cpos卡使用的fpga内部只能为每个通道分配一个固定长度的较小的缓存区域;该缓存区域接收的报文数据必须在该缓存区域水位满(即缓存的报文数据的数据量过大)之前存储至外部的ddrsdram中,以确保针对每个通道缓存报文数据不发生溢出错误。

其中,每个缓存区域可以由一个通道的标识指示,一个缓存区域对应的通道的标识可以为该缓存区域对应通道的通道号,该缓存区域中缓存的报文数据是通过该通道接收的。

进一步的,在网络设备通过cpos卡中的各个通道接收到报文数据之后,fpga可以分别接收并缓存该各个通道传输的报文数据。其中,fpga接收到一个通道中传输的报文数据之后,可以将该通道中传输的报文数据经过解封装、再缓存至fpga中相应的缓存区域中。

例如,cpos的155moc3sdh信号(即报文数据)通过解映射后输出63路e1信号,fpga可以将cpos中的每个通道的报文数据从其对应的e1时隙取出并进行pos解封装之后,再将处理后的报文数据存储至fpga中的ram中。

示例性的,如图2所示,为本发明实施例提供的另一种网络设备的结构示意图。图2示出的网络设备20中包括转发单元21和与转发单元21连接的外部存储单元22,该转单元21中包括内部存储单元23。其中,内部存储单元23中可以包括多个缓存区域,每个缓存区域可以由一个通道的标识指示,该通道的标识可以为该存储区域对应通道的通道号。

可以理解的是,上述转发单元21中可以包括多个内部存储单元,一个内部存储单元对应网络设备中的一个通道,即该内部存储单元用于缓存该通道接收的报文数据。

其中,图2示出的网络设备20中的转发单元21可以由图1示出的cpos卡中的fpga实现,内部存储单元23以通过图1示出的fpga中的ram实现,外部存储单元21可以通过图1示出的ddrsdram实现。内部存储单元23中的一个缓存区域,可以为图1示出的fpga中的ram中的一个缓存区域。

需要说明的是,本发明实施例提供的数据调度方法及网络设备,可以应用于网络设备缓存并转发报文数据的过程中,具体应用于网络设备调度已经缓存的报文数据的过程。具体的,网络设备的目标队列中包括至少一个通道的标识,该至少一个通道的标识中的每个通道的标识分别对应内部存储单元中的一个缓存区域,每个通道的标识对应的缓存区域中缓存的报文数据满足预设条件;网络设备可以获取目标队列中的至少一个通道的标识中的目标通道的标识;根据目标通道的标识,将目标通道的标识指对应的缓存区域中的报文数据存储至外部存储单元中。基于本方案,由于网络设备可以通过目标队列存储目标通道的标识,而目标通道对应的缓存区域中的报文数据满足预设条件,如该缓存区域中的报文数据需要调度,因此网络设备可以根据目标队列中的目标通道的标识,快速、准确地将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。从而,有利于网络设备快速、准确地调度转发单元中缓存的报文数据,以避免缓存报文数据发生溢出错误。

需要说明的是,本发明实施例提供的数据调度方法的执行主体可以为网络设备,或网络设备中的转发单元,或转发单元中的各个子单元。本发明实施例以下,以执行主体为网络设备为例说明本发明实施例提供的数据调度方法。具体的,执行主体为网络设备中的转发单元。示例性的,本发明实施例提供的执行主体可以为图2示出的网络设备20中的转发单元21,或者图1示出的网络设备20中的fpga。

下面结合图3所示的数据调度方法的流程图对本发明实施例提供的数据调度方法进行详细描述。其中,虽然在方法流程图中示出了本发明实施例提供的数据调度方法的逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,图3中示出的数据调度方法可以包括s301-s303:

s301、网络设备从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识。

其中,目标通道的标识为至少一个通道的标识中的一个通道的标识,至少一个通道中的每个通道分别对应内部存储单元中的一个缓存区域。

具体的,网络设备包括转发单元和与转发单元连接的外部存储单元,该转发单元包括内部存储单元。其中,内部存储单元中包括多个缓存区域,每个缓存区域均对应一个通道的标识,该缓存区域用于缓存该通道接收的报文数据。

可选的,网络设备中的转发单元可以依照先进先出的原则,从目标队列中获取目标通道的标识。也即在目标通道的标识为当前目标队列中最早存储的通道的标识时,网络设备获取该目标通道的标识。

具体的,本发明实施例提供的目标队列为先进先出(firstinputfirstoutput,fifo)队列。

s302、网络设备确定内部存储单元中目标通道对应的缓存区域中的报文数据满足预设条件。

需要强调的是,本发明实施例中,一个缓存区域中缓存的报文数据满足预设条件,说明该缓存区域中的报文数据需要调度,即该缓存区域中的报文数据需要调度至外部存储单元中。

示例性的,本发明实施例中,一个缓存区域中缓存的报文数据满足预设条件,具体可以为该缓存区域中缓存的报文数据的数据量较多,或者该缓存区域中缓存的报文数据包括完整的报文数据包的最后部分。

s303、网络设备根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。

可以理解的是,网络设备中的转发单元根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中之后,可以删除该缓存区域中缓存的报文数据。即网络设备将目标通道对应的缓存区域中的报文数据调度至外部存储单元中。

可选的,本发明实施例中,网络设备中的转发单元可以针对内部存储单元中的每个缓存区域分配固定容量,网络设备中的转发单元可以转发该缓存区域中的报文数据。

需要说明的是,本发明实施例提供的数据调度方法,应用于网络设备,网络设备包括转发单元和与转发单元连接的外部存储单元,转发单元包括内部存储单元;该方法包括:从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定内部存储单元中目标通道对应的缓存区域中的报文数据满足预设条件;根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。基于本方案,由于网络设备可以通过目标队列存储目标通道的标识,而目标通道对应的缓存区域中的报文数据满足预设条件,如该缓存区域中的报文数据需要调度,因此网络设备可以根据目标队列中的目标通道的标识,快速、准确地将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。从而,有利于网络设备快速、准确地调度转发单元中缓存的报文数据,以避免缓存报文数据发生溢出错误。

在一种可能的实现方式中,本发明实施例提供的数据调度方法,目标队列包括高优先级队列和低优先级队列。具体的,如图4所示,本发明实施例提供的数据调度方法,在上述实施例中的s301之前,还包括s304-s306:

s304、网络设备轮询内部存储单元中每个通道对应的缓存区域中的报文数据。

可选的,网络设备中的转发单元可以按照内部存储单元中每个通道的标识的顺序,轮询每个通道对应的缓存区域。例如,按照通道的标识指示的通道号由小到大的顺序,轮询相应通道对应的缓存区域中的报文数据。

可以理解的是,在网络设备轮询目标通道对应的缓存区域中缓存的报文数据时,网络设备中的转发单元可以判断该缓存区域中的报文数据的数据量,并将该目标通道的标识存储至相应的队列中,如高优先级队列或者低优先级队列。

其中,由于网络设备中的转发单元可以轮询内部存储单元中每个缓存区域中的报文数据的数据量,因此使得网络设备可以及时确定出每个缓存区域的通道的标识是否需要存储至相应的队列中,以及时根据该通道的标识调度该缓存区域中的缓存的报文数据。

s305、网络设备确定每个通道对应的缓存区域中的报文数据满足第一条件时,将该通道的通道标识加入到高优先级队列。

其中,第一条件包括以下至少一项:通道的报文数据的数据量达到内部存储单元的高水线值、通道的报文数据对应的完整报文被成功接收。

示例性的,第一条件为以下条件1~条件3中的任意一项:

条件1、通道的报文数据的数据量达到内部存储单元的高水线值。

条件2、通道的报文数据对应的完整报文被成功接收。

条件3、通道的报文数据的数据量达到内部存储单元的高水线值,且该通道的报文数据对应的完整报文被成功接收。

其中,一个缓存区域中缓存的报文数据的数据量达到内部存储单元的高水线值,则说明该缓存区域中缓存的报文数据的数据量较大,该报文数据需要转存至外部存储单元,以避免在该缓存区域中缓存报文数据发生溢出错误。具体的,该缓存区域对应的通道的标识可以存储至高优先级队列中。

示例性的,上述内部存储单元的高水线值可以为一个缓存区域的容量的一半的数值。例如,一个缓存区域的容量为64字节,高水线值指示的数据量为32字节。其中,网络设备的转发单元中内部存储单元中的多个缓存区域的容量通常相同且较小。

可选的,本发明实施例中,“通道的报文数据对应的完整报文被成功接收”可以通过该通道的报文数据中是否包括包尾来判断(pos报文解析后可以看到包尾标识)。具体的,报文数据中包括一个报文数据包的包尾,指的是网络设备已经成功接收了该报文数据所在的完整报文数据包,即网络设备中的转发单元接收并缓存了一个完整的报文数据包的最后部分(前面的已经转发到外部存储器了)。其中,若报文数据包括包尾,则该报文数据具有完整性,需要优先转发;反之,若报文数据不包括包尾,则该报文数据不具有完整性,不需要优先转发。

s306、网络设备确定每个通道对应的缓存区域中的报文数据满足第二条件时,将该通道的通道标识加入到低优先级队列。

其中,第二条件包括:通道的报文数据的数据量达到内部存储单元的低水线值。

示例性的,上述内部存储单元的高水线值可以为一个缓存区域的容量的四分之一的数值。例如,一个缓存区域的容量为64字节,低水线值指示的数据量为16字节。具体的,该缓存区域对应的通道的标识可以存储至低优先级队列中。

可以理解的是,上述高水线值大于低水线值,并且高水线值小于或等于一个缓存区域的容量的数值。不同水线值对应的队列的优先级不同,显然,高优先级队列的优先级高于低优先级队列的优先级。

可选的,在一个缓存区域中的报文数据满足不同条件,如报文数据的数据量所达到的水线值不同时,网络设备可以发起不同的请求信号,以向不同的队列写入(即存储)该缓存区域对应的通道的标识。其中,一个请求信号中可以包括一个缓存区域对应的通道的标识。

需要说明的是,本发明实施例提供的数据调度方法,由于网络设备可以在目标通道对应的缓存区域中缓存的报文数据满足第一条件的情况下,将目标通道的标识存储至高优先级队列;该报文数据满足第二条件的情况下,将目标通道的标识存储至低优先级队列。如此,使得网络设备后续可以从高优先级队列或低优先级队列中获取目标通道的标识,以将目标通道对应的缓存区域中缓存的报文数据调度至外部存储单元中。

在一种可能的实现方式中,本发明实施例提供的数据调度方法中,上述s302可以包括s302a和s302b:

s302a、在目标通道的标识位于高优先级队列时,网络设备判断目标通道对应的缓存区域中的报文数据是否满足第一条件;如是,则执行“根据目标通道的标识,将目标通道的报文数据存储至外部存储单元中”的步骤,否则丢弃目标通道的标识。

具体的,在目标通道的标识位于高优先级队列时,若网络设备中的转发单元判断目标通道对应的缓存区域中的报文数据满足第一条件,则说明该报文数据是需要调度的报文数据。若网络设备判断目标通道对应的缓存区域中的报文数据不满足第一条件,则说明该报文数据已经被调度过了,则不需要重复调度。

进一步的,为了避免网络设备对目标通道对应的缓存区域中的报文数据重复进行调度操作,网络设备中的转发单元在执行“根据目标通道的标识,将目标通道的报文数据存储至外部存储单元中”的操作之前对比前一个刚调度过报文数据的通道的标识(不管此标识是从高优先级队列来的还是低优先级队列来的),可以预先判断目标通道的标识是否与该标识相同。如不同,则执行“根据目标通道的标识,将目标通道的报文数据存储至外部存储单元中”的步骤,否则丢弃目标通道的标识。

进一步,在网络设备从高优先级队列中获取目标通道的标识的情况下,网络设备中的转发单元可以确定高优先级队列当前为非空队列,即当前高优先级队列中包括一个或多个通道的标识。随后,终端设备可以按照先进先出的顺序从高优先级队列中获取得到目标通道的标识。

s302b、在目标通道的标识位于低优先级队列时,判断目标通道对应的缓存区域中的报文数据是否满足第二条件。如是,则执行“根据目标通道的标识,将目标通道的报文数据存储至外部存储单元中”的步骤,否则丢弃目标通道的标识。

具体的,在目标通道的标识位于低优先级队列时,若网络设备中的转发单元判断目标通道对应的缓存区域中的报文数据满足第二条件,则说明该报文数据是需要调度的报文数据。若网络设备判断目标通道对应的缓存区域中的报文数据不满足第二条件,则说明该报文数据已经被调度过了,则不需要重复调度。

进一步的,为了避免网络设备中的转发单元对目标通道对应的缓存区域中的报文数据重复进行调度操作,网络设备中的转发单元在执行“根据目标通道的标识,将目标通道的报文数据存储至外部存储单元中”的操作之前对比前一个刚调度过报文数据的通道的标识,可以预先判断目标通道的标识是否与该标识相同。如不同,则执行“根据目标通道的标识,将目标通道的报文数据存储至外部存储单元中”的步骤,否则丢弃目标通道的标识。其中,本发明实施例提供的高优先级队列和低优先级队列均为fifo队列。

如此,在网络设备中的转发单元不需要调度一个缓存区域中的报文数据时,该网络设备不会重复调度该缓存区域中的报文数据,可以避免调度该报文数据造成时间浪费,有利于提高网络设备中的转发单元调度报文数据的效率。

进一步的,在网络设备中包括多个队列,如上述高优先级队列和低优先级队列的情况下,多个队列中的不同队列的优先级不同,优先级越高的队列中通道的标识指示的缓存区域中的报文数据被调度至外部存储单元的优先级越高。例如,高优先级队列中的通道的标识指示的缓存区域中的报文数据被调度至外部存储单元的优先级较高。

类似的,在网络设备中的转发单元将当前优先级最高的队列(如上述高优先级队列)中的一个标识指示的通道(如目标通道)对应的缓存区域中的报文数据均调度至外部存储单元之后,就将该通道的标识从该队列中丢弃(即删除)。随后,网络设备按照先进先出的原则依次将该队列中的标识指示的通道对应的缓存区域中的报文数据均调度至外部存储单元之后,再对优先级次低的队列(如低优先级队列)中的标识指示的通道对应的缓存区域按照先进先出的原则进行类似的处理。

可以理解的是,内部存储单元中的一个缓存区域对应的通道的标识存储至一个队列之后,网络设备未根据该通道的标识将该缓存区域中的报文数据调度至外部存储单元之前,网络设备中的转发单元还可以通过该缓存区域相应的通道继续接收新的报文数据,并在该缓存区域中继续缓存新的报文数据。

示例性的,目标通道的标识存储至低优先级之后,网络设备中的转发单元未根据目标通道的标识将对应的缓存区域中的报文数据调度至外部存储单元之前,网络设备中的转发单元还可以通过目标通道继续接收新的报文数据,并在该缓存区域中继续缓存新的报文数据。

可选的,在一个队列中的一个通道的标识指示的存储区域中报文数据被调度之前,若该存储区域中报文数据持续增长或该报文数据中包括包尾,则当该存储区域中的报文数据的数据量达到优先级次高的队列对应的水线值时,网络设备中的转发单元将该通道的标识再存储至该优先级更高的队列中。如此,随着一个存储区域中的报文数据的数据量的增长或该报文数据的完整性的变化,网络设备将提高调度该存储区域中的报文数据的优先级。

示例性的,在目标通道的标识位于低优先级队列中、且目标通道对应的缓存单元中的报文数据满足上述第一条件时,网络设备可以将目标通道的标识直接存入优先级较高的高优先级队列。从而,使得网络设备调度目标通道对应的缓存区域中的报文数据的优先级升高。

如此,由于网络设备中的转发单元可以实时获取目标通道对应的缓存区域中报文数据的数据量的变化以及报文数据的完整性的变化,因此可以实时地将目标通道的标识存储至相应的队列中。从而,使得网络设备中的转发单元可以调整目标通道对应的缓存区域中的报文数据的优先级,如使得优先级升高以较快地调度该缓存区域中的报文数据。从而,有利于进一步提高网络设备调度缓存的报文数据的快速性。

可以理解的是,在网络设备将目标通道的标识直接存入优先级较高的高优先级队列之后,高优先级队列和低优先级队列中可能均存储有目标通道的标识。此时,在网络设备中的转发单元根据高优先级队列中的目标通道的标识调度目标通道对应的缓存区域中的报文数据之后,调度低优先级队列中的目标通道的标识指示的目标通道对应的缓存区域中的报文数据时,还可以预先获取下一个目标通道的标识(该标识可能来自高优先级队列也可能来自低优先级队列,由高优先级队列的是否空来决定)。随后,在网络设备中的转发单元确定下一个目标通道的标识与当前标识相同、或目标通道对应的缓存区域中的报文数据不满足第二条件的情况下,网络设备可以丢弃该队列中存储的目标通道的标识。

需要说明的是,本发明实施例提供的数据调度方法,由于网络设备可以分别按照优先级依次获取高优先级队列和低优先级队列中的通道的标识,因此,网络设备可以按照优先级依次调度高优先级队列和低优先级队列中的标识指示的通道对应的缓存区域中的报文数据。从而,可以先调度报文数据的数据量较大的缓存区域中的报文数据,而不会先调度其他缓存报文数据的数据量较小的缓存区域中的报文数据。从而,有利于进一步避免网络设备调度缓存的数据报文的准确性,避免网络设备缓存数据报文发生溢出错误。

如图5所示,为本发明实施例提供的一种网络设备的结构示意图。图5示出的网络设备50包括转发单元51和与转发单元51连接的外部存储单元52,转发单元51包括内部存储单元53;51转发单元中还包括:获取子单元511、确定子单元512和调度子单元513;获取子单元511,用于从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定子单元512,用于确定内部存储单元中目标通道对应的缓存区域中的报文数据是否满足预设条件;调度子单元513,用于在确定子单元512确定目标通道对应的缓存区域中的报文数据满足预设条件时,根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。

可选的,目标队列包括高优先级队列和低优先级队列,转发单元还包括轮询子单元;轮询子单元,用于轮询内部存储单元中每个通道对应的缓存区域中的报文数据;确定每个通道对应的缓存区域中的报文数据满足第一条件时,将该通道的通道标识加入到高优先级队列;确定每个通道对应的缓存区域中的报文数据满足第二条件时,将该通道的通道标识加入到低优先级队列;其中,第一条件包括以下至少一项:该通道的报文数据的数据量达到内部存储单元对应的高水线值、该通道的报文数据对应的完整报文被成功接收;第二条件包括:该通道的报文数据的数据量达到内部存储单元对应的低水线值。

可选的,确定子单元512具体用于,在目标通道的标识位于高优先级队列时,判断目标通道对应的缓存区域中的报文数据是否满足第一条件;如是,则通知调度子单元513,否则丢弃目标通道的标识;在目标通道的标识位于低优先级队列时,判断目标通道对应的缓存区域中的报文数据是否满足第二条件;如是,则通知调度子单元513,否则丢弃目标通道的标识。

具体的,获取子单元511,用于支持网络设备50执行上述实施例中的s301,和/或用于本文所描述的技术的其它过程。确定子单元512,用于支持网络设备50执行上述实施例中的s302、s302a、s302b,和/或用于本文所描述的技术的其它过程。调度子单元513,用于支持网络设备50执行上述实施例中的s303,和/或用于本文所描述的技术的其它过程。轮询单元,用于支持网络设备50执行上述实施例中的s304、s305、s306,和/或用于本文所描述的技术的其它过程。

另外,本发明实施例提供的网络设备50的转发单元51中还可以包括接收子单元,该接收子单元用于接收网络设备50中的通道传输的报文数据。

需要说明的是,本发明实施例提供的网络设备,该网络设备包括转发单元和与转发单元连接的外部存储单元,转发单元包括内部存储单元;该方法包括:从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定内部存储单元中目标通道对应的缓存区域中的报文数据满足预设条件;根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。基于本方案,由于网络设备可以通过目标队列存储目标通道的标识,而目标通道对应的缓存区域中的报文数据满足预设条件,如该缓存区域中的报文数据需要调度,因此网络设备可以根据目标队列中的目标通道的标识,快速、准确地将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。从而,有利于网络设备快速、准确地调度转发单元中缓存的报文数据,以避免缓存报文数据发生溢出错误。

如图6所示,本发明实施例提供的一种转发单元的结构示意图。图6示出的转发单元60与外部存储单元62连接,转发单元60包括内部存储单元61、获取子单元601、确定子单元602和调度子单元603;获取子单元601,用于从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定子单元602,用于确定内部存储单元61中目标通道对应的缓存区域中的报文数据是否满足预设条件;调度子单元603,用于在确定子单元602确定目标通道对应的缓存区域中的报文数据满足预设条件时,根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元62中。

可选的,目标队列包括高优先级队列和低优先级队列,转发单元60还包括轮询子单元;轮询子单元,用于轮询内部存储单元61中每个通道对应的缓存区域中的报文数据;确定每个通道对应的缓存区域中的报文数据满足第一条件时,将该通道的通道标识加入到高优先级队列;确定每个通道对应的缓存区域中的报文数据满足第二条件时,将该通道的通道标识加入到低优先级队列;其中,第一条件包括以下至少一项:该通道的报文数据的数据量达到内部存储单元61对应的高水线值、该通道的报文数据对应的完整报文被成功接收;第二条件包括:该通道的报文数据的数据量达到内部存储单元61对应的低水线值。

可选的,确定子单元602具体用于,在目标通道的标识位于高优先级队列时,判断目标通道对应的缓存区域中的报文数据是否满足第一条件;如是,则通知调度子单元,否则丢弃目标通道的标识;在目标通道的标识位于低优先级队列时,判断目标通道对应的缓存区域中的报文数据是否满足第二条件;如是,则通知调度子单元,否则丢弃目标通道的标识。

具体的,获取子单元601,用于支持转发单元60执行上述实施例中的s301,和/或用于本文所描述的技术的其它过程。确定子单元602,用于支持转发单元60执行上述实施例中的s302、s302a、s302b,和/或用于本文所描述的技术的其它过程。调度子单元603,用于支持转发单元60执行上述实施例中的s303,和/或用于本文所描述的技术的其它过程。轮询子单元,用于支持转发单元60执行上述实施例中的s304、s306、s306,和/或用于本文所描述的技术的其它过程。

另外,本发明实施例提供的转发单元60中还可以包括接收子单元,用于接收转发单元60中需要缓存的报文数据。

需要说明的是,本发明实施例提供的转发单元,该转发单元连接外部存储单元,该转发单元包括内部存储单元。具体的,本方案中转发单元可以从目标队列中获取目标通道的标识,目标队列中包括至少一个通道的标识;确定内部存储单元中目标通道对应的缓存区域中的报文数据满足预设条件;根据目标通道的标识,将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。基于本方案,由于转发单元可以通过目标队列存储目标通道的标识,而目标通道对应的缓存区域中的报文数据满足预设条件,如该缓存区域中的报文数据需要调度,因此转发单元可以根据目标队列中的目标通道的标识,快速、准确地将目标通道对应的缓存区域中的报文数据存储至外部存储单元中。从而,有利于快速、准确地调度转发单元中缓存的报文数据,以避免缓存报文数据发生溢出错误。

在采用集成的单元的情况下,上述网络设备50中的获取子单元511、确定子单元512、调度子单元513和轮询子单元可以由一个处理模块实现。上述处理模块可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种举例说明逻辑方框,模块和电路。上述处理模块也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。

类似的,上述转发单元60中的获取子单元601、确定子单元602、调度子单元603和轮询子单元可以由一个处理模块实现,如fpga。

需要说明的是,本发明实施例提供的网络设备还可以包括其他集成单元。例如,上述接收子单元可以通过一个通信接口实现。

另外,上述内部存储单元62和至少两个队列可以由有一个存储器实现,如fpga中的ram实现。

示例性的,如图7所示,为本发明实施例提供的另一种网络设备的结构示意图。具体的,图7示出的网络设备70包括处理器701、存储器702、通信接口703、通信总线704和处理器705。

具体的,上述处理模块可以为图7所示的处理器701以及处理器705等一个或多个处理器。上述存储模块可以为图7所示的存储器702。

其中,处理器701是网络设备70的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器701可以是一个cpu,也可以是特定asic,或者可以是被配置成实施本发明实施例的一个或多个集成电路,如:一个或多个dsp,或,一个或者多个fpga。

其中,处理器701可以通过运行或执行存储在存储器702内的软件程序,以及调用存储在存储器702内的数据,执行设备的各种功能。

在具体实现中,作为一种实施例,报文转发设备可以包括多个处理器,例如图7中所示的处理器701和处理器705。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

存储器702可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器702可以是独立存在,通过通信总线704与处理器701相连接。存储器702也可以和处理器701集成在一起。其中,上述存储器702用于存储执行本发明实施例提供方案的软件程序,并由处理器701来控制执行。

通信接口703,可以包括两个通信接口,一个用于向外部设备发送数据的发送接口和一个用于接收来自外部设备的数据的接收接口,即网络设备可以通过两个不同的通信接口分别实现数据的接收和数据的发送。当然,该通信接口703可以将数据接收功能和数据发送功能集成在一个通信接口上,该通信接口具备数据接收功能和数据发送功能。

上述通信总线704具体可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。上述通信总线704可以分为地址总线、数据总线、控制总线等,本发明实施例对此不作限定。

图7中示出的网络设备70的结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

其中,本发明实施例提供的网络设备70中各个模块的详细描述以及各个模块执行上述实施例中的相关方法步骤后所带来的技术效果可以参考本发明方法实施例中的相关描述,此处不再赘述。

可选的,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如现场可编程门阵列(fieldprogrammablegatearray,fpga)、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1