一种数据转发方法、装置及网络设备制造方法及图纸

技术编号:7976387 阅读:178 留言:0更新日期:2012-11-16 01:43
本发明专利技术公开了一种数据转发方法、装置及网络设备,用以解决现有技术中路由器转发数据的速率的稳定性较低的问题。该方法路由器生成描述符,判断将该描述符插入到相应数据队列中的最后一个链表块中后,最后一个链表块中包含的所有描述符对应的数据的长度的和值是否大于规定长度,若是,则新建一个链表块插入到该数据队列的末尾,并将生成的描述符插入到新建的链表块中,否则将生成的描述符插入到最后一个链表块中,在转发数据时,一次转发该数据队列中的一个链表块中包含的所有描述符对应的数据。通过上述方法,路由器在连续接收到短数据或者长数据时,仍然可以保证转发数据的速率的稳定性。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种数据转发方法、装置及网络设备
技术介绍
高速以太网是数据通信系统的核心部分,用于汇集来自众多边缘网络的数据,并通过相应的数据队列将数据转发出去。其中,高速以太网主要通过内部的路由器完成数据的转发。图I为现有技术中高速以太网内部的路由器转发数据的过程,具体包括以下步骤SlOl :路由器接收边缘网络发送的数据,并保存该数据。 S102 :生成该数据对应的描述符,并将生成的该描述符插入到转发该数据所要采用的数据队列中的末尾。其中,路由器预先建立了多个数据队列,可以根据接收到的数据的数据类型、发送该数据的发送方、接收该数据的接收方等信息建立不同的数据队列。S103:按照该数据队列中各描述符排列的先后顺序,依次调度该数据队列中的每个描述符对应的数据并转发。在实际应用中,通常要求路由器以稳定的速率转发数据。在判断一个路由器转发数据的速率是否稳定时,主要是根据路由器在两个相同的时间段内分别调度并转发数据的数据量的差值进行判断,如果差值较大,则说明路由器转发数据的速率的稳定性较差,如果差值较小,则说明路由器转发数据的速率的稳定性较好。然而,在图I所示的步骤S103中,路由器在调度数据队列中的描述符对应的数据并转发时,每次只调度一个描述符对应的数据进行转发,也即路由器一次只调度一个数据并转发。而由于需要转发的每个数据的长度并不是固定的,因此在现有技术中,不可避免的会出现这种情况在一个时间段内,路由器调度并转发的大多数数据是长度较短的短数据,而在另一个时间段内,路由器调度并转发的大多数数据是长度较长的长数据。甚至出现极端的情况路由器在一个时间段内调度并转发的所有数据都是短数据,在另一个时间段内调度并转发的所有数据都是长数据。这就会导致路由器在两个相同的时间段内调度并转发数据的数据量差异很大,从而降低路由器转发数据的速率的稳定性。
技术实现思路
本专利技术实施例提供一种数据转发方法、装置及网络设备,用以解决现有技术中路由器转发数据的速率的稳定性较低的问题。本专利技术实施例提供的一种数据转发方法,包括接收并保存数据,确定所述数据所属的数据队列,并生成所述数据对应的描述符;确定当前所述数据队列中的最后一个链表块中包含的所有描述符对应的数据的长度的第一和值,将生成的描述符对应的数据的长度与所述第一和值相加得到第二和值;判断所述第二和值是否大于规定长度;若是,则新建一个链表块并插入到所述数据队列的末尾,并将所述生成的描述符插入到新建的链表块中,否则,将所述生成的描述符插入到所述最后一个链表块中;在转发所述数据队列中的描述符对应的数据时,按照所述数据队列中各链表块排序的先后顺序,依次调度每个链表块中包含的所有描述符对应的数据并转发。本专利技术实施例提供的一种数据转发装置,包括缓存管理单元,用于接收并保存数据,确定所述数据所属的数据队列,并生成所述 数据对应的描述符;链表输入单元,用于确定当前所述数据队列中的最后一个链表块中包含的所有描述符对应的数据长度的第一和值,将生成的描述符对应的数据的长度与所述第一和值相加得到第二和值;判断所述第二和值是否大于规定长度;若是,则新建一个链表块并插入到所述数据队列的末尾,将所述生成的描述符插入到新建的链表块中,否则,将所述生成的描述符插入到所述最后一个链表块中;链表输出单元,用于在转发所述数据队列中的描述符对应的数据时,按照所述数据队列中各链表块排序的先后顺序,依次调度每个链表块中包含的所有描述符对应的数据并转发。本专利技术实施例提供的一种网络设备,包括如上所述的数据转发装置。本专利技术实施例提供一种数据转发方法、装置及网络设备,该方法路由器生成接收到的数据对应的描述符,判断将该描述符插入到相应数据队列中的最后一个链表块中后,最后一个链表块中包含的所有描述符对应的数据的长度的和值是否大于规定长度,若是,则新建一个链表块插入到该数据队列的末尾,并将生成的描述符插入到新建的链表块中,否则将生成的描述符插入到最后一个链表块中,并在转发该数据队列中的描述符对应的数据时,一次调度该数据队列中的一个链表块中包含的所有描述符对应的数据并转发。通过上述方法,路由器在连续接收到短数据或者长数据时,均可以保证一个链表块中包含的所有描述符对应的数据的长度的和值接近于规定长度,但不超过规定长度,因此每次调度一个链表块中包含的所有描述符对应的数据进行转发,则可以在一定程度上提高路由器转发数据的速率的稳定性。附图说明图I为现有技术中高速以太网内部的路由器转发数据的过程;图2为本专利技术实施例提供的数据转发过程;图3为本专利技术实施例提供的将接收到的数据对应的描述符插入到相应数据队列中的详细过程;图4为本专利技术实施例提供的数据转发装置结构示意图。具体实施例方式由于现有技术中路由器调度一个数据队列中的描述符对应的数据进行转发时,一次只调度一个描述对应的数据进行转发,也即一次转发一个数据,当路由器在一个时间段内连续收到长度较短的短数据,在下一个时间段内连续收到长度较长的长数据时,就会导致路由器在这两个时间段转发数据的数据量差异很大,从而降低路由器转发数据的速率的稳定性。本专利技术实施例为了提高路由器转发数据的速率的稳定性,在数据队列中建立链表块,每个链表块中包含若干个描述符,并且使每个链表块中包含的所有描述符对应的数据的长度的和值接近于规定长度,但不超过规定长度,在调度并转发该数据队列中包含的描述符对应的数据时,一次调度该数据队列中的一个链表块包含的所有描述符对应的数据进行转发。采用本专利技术实施例提供的数据转发方法时,即使路由器在一个时间段内连续收到短数据,在下一个时间段内连续收到长数据,则数据队列中的每个链表块中包含的描述符对应的数据的长度的和值仍然接近于固定长度,因此每次调度一个链表块中包含的所有描述符对应的数据进行转发,则可以在一定程度上提高路由器转发数据的速率的稳定性。下面结合说明书附图,对本专利技术实施例进行详细描述。 图2为本专利技术实施例提供的数据转发过程,具体包括以下步骤S201 :接收并保存数据,确定该数据所属的数据队列,并生成该数据对应的描述符。在本专利技术实施例中,路由器确定接收到的数据所属的数据队列,也即确定转发该数据所要采用的数据队列。另外,路由器在生成该数据对应的描述符时,可以根据保存该数据的存储地址、该数据的长度、确定的该数据所属的数据队列的队列标识,生成该数据对应的描述符。生成的该数据对应的描述符的格式如表I所示。AddressLength Queue ID表I在表I中,Address即为保存该数据的存储地址,Length即为该数据的长度,QueueID即为该数据所属的数据队列的队列标识。由表I可见,生成的该数据对应的描述符中包含了该数据的存储地址、该数据的长度、确定的该数据所属的数据队列的队列标识。S202:确定当前该数据队列中的最后一个链表块中包含的所有描述符对应的数据长度的第一和值,将生成的描述符对应的数据的长度与该第一和值相加得到第二和值。在本专利技术实施例中,一个数据队列由顺序排列的若干个链表块(Link Block, LB)构成,每个LB中包含若干个描述符,如表2所不。LBl LB2 ~LbF表2在表2中,该数据队列共包含3个LB,按各LB排序的先后顺序依次为LBl、LB2、LB3。每个L本文档来自技高网
...

【技术保护点】
一种数据转发方法,其特征在于,包括:接收并保存数据,确定所述数据所属的数据队列,并生成所述数据对应的描述符;确定当前所述数据队列中的最后一个链表块中包含的所有描述符对应的数据的长度的第一和值,将生成的描述符对应的数据的长度与所述第一和值相加得到第二和值;判断所述第二和值是否大于规定长度;若是,则新建一个链表块并插入到所述数据队列的末尾,并将所述生成的描述符插入到新建的链表块中,否则,将所述生成的描述符插入到所述最后一个链表块中;在转发所述数据队列中的描述符对应的数据时,按照所述数据队列中各链表块排序的先后顺序,依次调度每个链表块中包含的所有描述符对应的数据并转发。

【技术特征摘要】
1.一种数据转发方法,其特征在于,包括 接收并保存数据,确定所述数据所属的数据队列,并生成所述数据对应的描述符;确定当前所述数据队列中的最后一个链表块中包含的所有描述符对应的数据的长度的第一和值,将生成的描述符对应的数据的长度与所述第一和值相加得到第二和值; 判断所述第二和值是否大于规定长度; 若是,则新建一个链表块并插入到所述数据队列的末尾,并将所述生成的描述符插入到新建的链表块中,否则,将所述生成的描述符插入到所述最后一个链表块中; 在转发所述数据队列中的描述符对应的数据时,按照所述数据队列中各链表块排序的先后顺序,依次调度每个链表块中包含的所有描述符对应的数据并转发。2.如权利要求I所述的方法,其特征在于,生成所述数据对应的描述符,具体包括 根据保存所述数据的存储地址、所述数据的长度、确定的所述数据所属的数据队列的队列标识,生成所述数据对应的描述符; 按照所述数据队列中各链表块排序的先后顺序,依次调度每个链表块中包含的所有描述符对应的数据并转发,具体包括 按照所述数据队列中各链表块排序的先后顺序,依次针对每个链表块,读取该链表块中包含的所有描述符; 针对读取的每个描述符,根据该描述符中包含的存储地址,读取该描述符对应的数据并转发。3.如权利要求I所述的方法,其特征在于,判断所述第二和值是否大于规定长度,具体包括 在所述数据队列中确定所述最后一个链表块的前一个链表块,确定所述前一个链表块中包含的所有描述符对应的数据的长度的第三和值; 根据预先设定的固定长度,确定所述固定长度减所述第三和值的差值,将所述固定长度与所述差值相加得到第四和值; 判断所述第二和值是否大于第四和值,若是,则确定所述第二和值大于规定长度,否则确定所述第二和值不大于规定长度。4.如权利要求3所述的方法,其特征在于,新建一个链表块并插入到所述数据队列的末尾,具体包括 根据预先设定的最短数据长度,确定所述固定长度与所述最短数据长度的比值; 新建一个长度大于所述比值的链表块,并插入到所述数据队列的末尾,将新建的链表块重新作为所述数据队列的最后一个链表块。5.如权利要求I所述的方法,其特征在于,依次调度每个链表块中包含的所有描述符对应的数据并转发之后,所述方法还包括 在所述数据队列中删除已转发的数据对应的描述符所在的链...

【专利技术属性】
技术研发人员:彭鼎祥
申请(专利权)人:福建星网锐捷网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1