一种网络转发设备及其进行报文转发的方法

文档序号:7751556阅读:161来源:国知局
专利名称:一种网络转发设备及其进行报文转发的方法
技术领域
本发明涉及通信技术领域,尤其涉及一种网络转发设备及其进行报文转发的方法。
背景技术
网络转发设备可以实现网络中数据的转发。网络转发设备一般包括中央处理 单元(Central Processing Unit,CPU)、驱动模块、通道化同步光纤网络/同步数字系 列(Channelized Packet Over Synchronous Optical Network/Synchronous Digital Hierarchy, CP0S)模块。在网络转发设备的CPOS模块中包括63个独立的物理数据通道(El通道),每个 El通道为2兆的带宽。CPOS模块可以将63个El通道的信号复用到一个较高阶的传输速 率帧内,并通过同步数字系列(Synchronous DigitalHierarchy, SDH)与下端设备建立点对 点的连接通道。CPOS模块中每个El通道的带宽只有2兆,多个El通道加起来的带宽,相对CPU接 口的速率也非常的低。因此当CPOS模块接收到的CPU发送过来的报文总量,大于CPOS接 口的发送速率要求,或某一物理数据通道待发送的报文量大于该物理数据通道可以承载的 数据量时,则CPOS模块为了不影响其他物理数据通道的报文发送,会将部分报文丢弃。图IA为网络转发设备内部的逻辑结构示意图,图IB为结合图IA对现有技术中当 网络转发设备的CPOS模块接收到外部设备发送过来的报文时,网络转发设备进行报文转 发的过程的说明,该过程包括以下步骤SlOl 网络转发设备的驱动模块依次扫描该系统层的每个逻辑数据通道,从 每个逻辑数据通道中获取报文并挂载到CPU中的描述驱动缓冲区的结构体(Buffer Descriptor, BD)环上。其中,系统层的每个逻辑数据通道都有归属于自身的通道号。S102 =CPOS模块获取BD环上挂载的报文,并将获取的报文发送到对应的物理数据 通道上。S103 物理数据通道将发送过来的报文通过CPOS接口转发。其中物理数据通道有归属于自身的通道号,并且对应通道号的物理数据通道和逻 辑数据通道存在对应关系。CPOS接口将报文转发出去后,BD环上释放的空间可供驱动模块继续挂载新的报 文。由于CPU接口接收报文的速率远大于CPOS接口向外发送报文的速率,并且为了接收外 部设备发送过来的对应每个逻辑数据通道的报文,驱动模块在每次挂载报文的过程中,可 以只挂载每个逻辑数据通道设定数量的报文,例如N个报文。当BD环被报文挂满时,如果 某些逻辑数据通道还存在外部设备发送过来的剩余报文,则驱动模块将该剩余报文丢弃。但是由于外部设备发送过来的对应每个逻辑数据通道的报文数量不确定,外部设 备发送报文的频率也是不可知的。当外部设备在某一时刻都是发送属于同一物理数据通道的报文时,例如都是发送属于物理数据通道0的报文,由于物理数据通道与逻辑数据通道 具有对应关系,因此只有一个逻辑数据通道发送过来报文。网络转发设备的驱动模块在每 次对系统层的逻辑数据通道进行扫描的过程中,往BD环上挂载该逻辑数据通道的设定数 量的报文,直到BD环被报文挂满。如果系统层的其他逻辑数据通道在此刻又有报文发送过 来,由于BD环已挂满报文,驱动模块会将其他逻辑数据通道发送过来的报文丢弃。网络转发设备接收到外部设备通过某一逻辑数据通道发送过来的报文,在网络转 发设备内部通过对应的物理数据通道发送出去,因此当上述过程中BD环上挂满了对应物 理数据通道0的报文,此时如果再有对应其他物理数据通道的报文过来时,由于BD环已经 被挂满,该对应其他物理数据通道的报文将被丢弃,因此此时只有物理数据通道0进行报 文的转发,其他物理数据通道都因为BD环被物理数据通道0的报文占满而处于空闲状态。 而最后把BD环占满的那些报文被发送到最终用户端时,也会因为超时而被丢弃,这样相当 于物理数据通道0在发送无效的报文。因此网络转发设备的上述报文转发方法,会造成了 自身内部资源的浪费。

发明内容
有鉴于此,本发明实施例提供一种网络转发设备及其进行报文转发的方法,用以 解决现有技术网络转发设备转发报文的过程中造成自身内部资源浪费的问题。本发明实施例提供的一种网络转发设备进行报文转发的方法,包括网络转发设备获取当前每个物理数据通道发送队列的剩余长度信息;根据当前每个物理数据通道的所述剩余长度信息,获取系统层对应每个逻辑数据 通道相应数量的报文;挂载获取的每个逻辑数据通道相应数量的报文,并通过对应的物理数据通道发 送。本发明实施例提供的一种网络转发设备,包括驱动模块,用于获取当前每个物理数据通道发送队列的剩余长度信息,根据当前 每个物理数据通道的所述剩余长度信息,获取系统层对应每个逻辑数据通道相应数量的报 文,挂载获取的每个逻辑数据通道相应数量的报文,并通过对应的物理数据通道发送;
物理数据通道,用于发送报文。本发明实施例提供了一种网络转发设备及其进行报文转发的方法,该方法中网络 转发设备获取每个物理数据通道发送队列的剩余长度信息,根据该剩余长度信息,获取系 统层对应每个逻辑数据通道相应数量的报文,并将获取的报文通过对应的物理数据通道发 送出去。本发明实施例通过获取每个物理数据通道发送队列的剩余长度信息,获取对应每 个逻辑数据通道对应数量的报文,不会因为某一逻辑数据通道的报文数量较多而去占用其 他逻辑数据通道对应的BD环挂载空间,从而可以让每一个物理数据通道在同一时间内都 可以进行报文的发送,从而提高了网络转发设备内资源的利用率。


图IA为现有技术中网络转发设备内部的逻辑结构示意图;图IB为现有技术中当网络转发设备接收到外部设备发送过来的报文时,网络转发设备进行报文转发的过程;图2为本发明实施例提供的网络转发设备进行报文转发的过程;图3为本发明实施例提供的网络转发设备进行报文转发详细的过程;图4为本发明实施例提供的网络转发设备的结构示意图。
具体实施例方式本发明实施例中为了提高网络转发设备自身资源的利用率,提供了一种网络转发 设备进行报文转发的方法,该方法中网络转发设备根据每个物理数据通道发送队列的剩余 长度信息,获取系统层对应每个逻辑数据通道相应数量的报文并发送,由于根据自身每个 物理数据通道发送队列的剩余长度信息,获取相应数量的报文,因此自身每个物理数据通 道都存在进行发送的报文,从而提高了网络转发设备自身资源的利用率。下面结合说明书附图,对本发明实施例进行详细说明。图2为本发明实施例提供的网络转发设备进行报文转发的过程,该过程包括以下 步骤S201 网络转发设备获取当前每个物理数据通道发送队列的剩余长度信息。在本发明实施例中网络转发设备的每个物理数据通道发送报文的队列长度是预 先设置的定值,并且物理数据通道的队列长度可以相等,也可以不等。网络转发设备中的驱 动模块根据自身本地保存的每个物理数据通道发送队列的第一剩余长度信息,以及读取的 CPOS模块保存的每个物理数据通道发送队列的第二剩余长度信息,确定当前每个物理数据 通道发送队列的剩余长度信息。S202 根据当前每个物理数据通道的所述剩余长度信息,获取系统层对应每个逻 辑数据通道相应数量的报文。其中,获取系统层对应每个逻辑数据通道相应数量的报文具体包括所述网络转 发设备的驱动模块根据获取的所述剩余长度信息,确定从系统层每个逻辑数据通道需要获 取的报文数量信息,根据确定的所述报文数量信息,在系统层对应每个逻辑数据通道获取 相应数量的报文。S203 挂载获取的每个逻辑数据通道相应数量的报文,并通过对应的物理数据通 道发送。网络转发设备采用物理数据通道转发报文时,当报文是系统层第一逻辑数据通道 接收时,则网络转发设备采用的第一物理数据通道转发该报文,报文如果是从系统层的第 二逻辑数据通道接收的,则采用第二物理数据通道转发该报文。网络转发设备的驱动模块将获取系统层每个逻辑数据通道的报文挂载在BD环 上,CPU根据BD环上每个报文的属性信息,将报文发送到对应的物理数据通道上,每个物理 数据通道将接收的报文发送。在本发明实施例中为了有效提高网络转发设备自身资源的利用率,将网络转发设 备中每个物理数据通道发送报文的队列长度固定,即每个物理数据通道待发送的最大报文 数量固定。由于每个物理数据通道在每次进行报文发送时,发送报文的队列长度固定,因此 网络转发设备可以根据每个物理数据通道发送报文的队列长度信息,以及该物理数据通道 当前发送的报文队列长度信息,确定该物理数据通道发送队列的剩余长度信息。
网络转发设备中每个数据通道发送报文的队列长度固定,因此当外部设备发送过 来的对应每个逻辑数据通道的报文数量都较大时,网络转发设备的驱动模块根据每个物理 数据通道发送队列的剩余长度信息,获取系统层对应每个逻辑数据通道相应数量的报文, 将获取的报文挂载在BD环上,并通过对应的物理数据通道发送。此时即使外部设备发送过来的对应某些逻辑数据通道的报文仍然存在,并且BD 环也没有被报文挂满,但是由于网络转发设备的驱动模块在进行报文挂载时,根据每个物 理数据通道发送队列的剩余长度信息进行,而根据该逻辑数据通道对应的物理数据通道的 剩余长度信息,已经挂载了相应数量的报文。因此网络转发设备的驱动模块也只能将该外 部设备发送过来的对应某些逻辑数据通道的报文丢弃,而只将BD环上挂载的报文通过对 应的物理数据通道发送。即在本发明实施例中网络转发设备BD环上挂载的对应每个物理 数据通道的报文,不能超过该物理数据通道发送队列的剩余长度信息对应的报文数量。在本发明提供的实施例中网络转发设备的驱动模块在获取系统层每个逻辑数据 通道的报文时,不会因为某一逻辑数据通道的报文数量较多而去占用BD环上其他逻辑数 据通道的挂载空间,而是根据自身每个物理数据通道对每次发送报文数量的承载能力,确 定BD环上挂载的每个逻辑数据通道的报文数量。网络转发设备中每个物理数据通道发送队列的长度可以根据研发人员的经验,或 通过拥塞环境测试确定。当网络转发设备每个物理数据通道的发送队列长度确定后,BD环 上挂载报文的最大数量根据所有物理数据通道的发送队列长度确定,即BD环的大小等于 所有物理数据通道发送队列长度之和。网络转发设备包括CPU、CPOS模块、驱动模块。CPOS模块一般采用现场可编程门 阵列(Field Programmable Gate Array, FPGA)实现,因此驱动模块与CPOS模块进行信息 交互的方式,是驱动模块通过读写FPGA上指定的寄存器来实现。CPOS模块可以用于保存每个物理数据通道发送队列的第二剩余长度信息。具体 的CPOS模块由于可以通过FPGA实现,因此在CPOS模块内部可以采用一个寄存器,该寄存 器可以用于保存每个物理数据通道的发送队列的第二剩余长度信息。当外部设备发送过来对应每个逻辑数据通道的报文时,驱动模块通过与CPOS模 块的信息交互,获取CPOS模块中保存的每个物理数据通道发送队列的第二剩余长度信息。 当驱动模块获取了 CPOS模块中保存的每个物理数据通道发送队列的第二剩余长度信息 后,CPOS模块对保存该每个物理数据通道发送队列的第二剩余长度信息的寄存器进行清 零,以便后续CPOS模块可以实时的对每个物理数据通道发送队列的第二剩余长度信息进 行记录。并且在网络转发设备启动时,CPOS模块中保存的每个物理数据通道发送队列的第 二剩余长度信息,为每个物理数据通道发送队列的长度信息,即为每个物理数据通道发送 队列的总长度信息。在网络转发设备启动时,驱动模块本地保存的每个物理数据通道发送队列的第一 剩余长度信息为0。在网络转发设备启动后,当外部设备有对应逻辑数据通道的报文发送 过来时,驱动模块读取CPOS模块保存的每个物理数据通道发送队列的第二剩余长度信息, 并根据本地保存的每个物理数据通道发送队列的第一剩余长度信息,确定每个物理数据通 道发送队列的剩余长度信息。此时,由于网络转发设备刚启动,因此CPOS模块中保存的每 个物理数据通道发送队列的第二剩余长度信息,为每个物理数据通道发送队列的总长度信息,而驱动模块本地保存的每个物理数据通道发送队列的第一剩余长度信息为0,因此,驱 动模块确定的每个物理数据通道发送队列的剩余长度信息为每个物理数据通道发送队列 的总长度信息。驱动模块获取到每个物理数据通道的剩余长度信息后,将该剩余长度信息保存在 本地。在驱动模块中可以针对每个物理数据通道,保存对应每个物理数据通道的发送队列 的剩余长度信息。例如由于在网络转发设备内部一般采用63个物理数据通道进行报文的 发送,因此在驱动模块内部可以针对每个物理数据通道分别保存一个剩余长度信息,例如 可以保存一个长度为63的整形数组,采用该整形数组标识每个物理数据通道发送队列的 剩余长度信息。驱动模块在挂载系统层的某一逻辑数据通道的报文时,驱动模块根据该逻辑数据 通道的通道号,将该报文进行封装,封装为如表1所示的报文帧对应的帧结构。
权利要求
一种网络转发设备进行报文转发的方法,其特征在于,包括网络转发设备获取当前自身每个物理数据通道发送队列的剩余长度信息;根据当前每个物理数据通道的所述剩余长度信息,获取系统层对应每个逻辑数据通道相应数量的报文;挂载获取的每个逻辑数据通道相应数量的报文,并通过对应的物理数据通道发送。
2.如权利要求1所述的方法,其特征在于,所述网络转发设备获取当前自身每个物理 数据通道发送队列的剩余长度信息包括网络转发设备的驱动模块根据本地保存的每个物理数据通道发送队列的第一剩余长 度信息,及读取的通道化同步光纤网络/同步数字系列CPOS模块保存的每个物理数据通道 的第二剩余长度信息,确定当前每个物理数据通道发送队列的剩余长度信息。
3.如权利要求2所述的方法,其特征在于,所述驱动模块保存每个物理数据通道发送 队列的第一剩余长度信息包括所述驱动模块根据描述驱动缓冲区的结构体BD环上挂载的系统层每个逻辑数据通道 的报文数量,对上一次获取的对应每个物理数据通道发送队列的剩余长度信息进行更新;当更新后的剩余长度信息标识物理数据通道的发送队列长度仍存在剩余,但该物理数 据通道对应的逻辑数据通道的报文已发送完毕时,所述驱动模块将该更新后的剩余长度信 息作为该物理数据通道的第一剩余长度信息保存。
4.如权利要求2或3所述的方法,其特征在于,所述CPOS模块保存每个物理数据通道 的第二剩余长度信息包括所述CPOS模块根据每个物理数据通道发送的报文数量,及每个物理数据通道的发 送队列长度信息,记录并保存每个物理数据通道发送队列的第二剩余长度信息,并且所述 CPOS模块在所述驱动模块读取到自身保存的第二剩余长度信息后,将自身保存的所述信息 清零。
5.如权利要求1、2或3任一所述的方法,其特征在于,所述方法还包括网络转发设备的驱动模块获取系统层对应逻辑数据通道相应数量的报文后,当所述逻 辑数据通道存在剩余报文时,所述网络转发设备的驱动模块将所述剩余报文丢弃。
6.一种网络转发设备,其特征在于,所述网络转发设备包括驱动模块,用于获取当前每个物理数据通道发送队列的剩余长度信息,根据当前每个 物理数据通道的所述剩余长度信息,获取系统层对应每个逻辑数据通道相应数量的报文, 挂载获取的每个逻辑数据通道相应数量的报文,并通过对应的物理数据通道发送;物理数据通道,用于发送报文。
7.如权利要求6所述的网络转发设备,其特征在于,所述网络转发设备还包括通道化同步光纤网络/同步数字系列CPOS模块,用于保存每个物理数据通道的第二剩余长度信息;所述驱动模块具体用于,根据本地保存的每个物理数据通道发送队列的第一剩余长度信息,及读取的通道化同 步光纤网络/同步数字系列CPOS模块保存的每个物理数据通道的第二剩余长度信息,确定 当前每个物理数据通道发送队列的剩余长度信息。
8.如权利要求7所述的网络转发设备,其特征在于,所述驱动模块包括更新单元,用于根据描述驱动缓冲区的结构体BD环上挂载的系统层每个逻辑数据通 道的报文数量,对上一次获取的对应每个物理数据通道发送队列的剩余长度信息进行更 新,当更新后的剩余长度信息标识物理数据通道的发送队列长度仍存在剩余,但该物理数 据通道对应的逻辑数据通道的报文已发送完毕时,所述驱动模块将该更新后的剩余长度信 息作为该物理数据通道的第一剩余长度信息保存。
9.如权利要求6、7或8任一所述的网络转发设备,其特征在于,所述CPOS模块包括 记录单元,用于根据每个物理数据通道发送的报文数量,及每个物理数据通道的发送队列长度信息,记录并保存每个物理数据通道发送队列的第二剩余长度信息;清零单元,用于在所述驱动模块读取到自身保存的第二剩余长度信息后,将自身保存 的所述信息清零。
10.如权利要求6、7或8任一所述的网络转发设备,其特征在于,所述驱动模块还包括丢弃单元,用于获取系统层对应逻辑数据通道相应数量的报文后,当所述逻辑数据通 道存在剩余报文时,将所述剩余报文丢弃。
全文摘要
本发明公开了一种网络转发设备进行报文转发的方法,用以解决现有技术网络转发设备转发报文的过程中造成自身内部资源浪费的问题。该方法网络转发设备获取每个物理数据通道发送队列的剩余长度信息,根据该剩余长度信息,获取系统层对应每个逻辑数据通道相应数量的报文,并将获取的报文通过对应的物理数据通道发送出去。本发明还提供了一种网络转发设备。如本发明提出的方案,通过每个物理数据通道发送队列的剩余长度信息,获取对应数量的报文,不会因为某一逻辑数据通道的报文数量较多而去占用其他逻辑数据通道对应的BD环挂载空间,从而可以让每一个物理数据通道在同一时间内都可以进行报文的发送,从而提高了网络转发设备内资源的利用率。
文档编号H04L12/56GK101964745SQ20101020068
公开日2011年2月2日 申请日期2010年6月12日 优先权日2010年6月12日
发明者杨振华 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1