一种数据包转发控制装置和方法

文档序号:7683556阅读:169来源:国知局
专利名称:一种数据包转发控制装置和方法
技术领域
本发明涉及数据通信技术领域,特别是工作在第三层的IP交换机,路由器等设备中用于过滤错误数据包的转发控制装置和方法,适用于数据分组交换系统中。
现有技术的数据包转发控制装置结构如

图1所示,其中包括逻辑组合单元110对输入的控制信号进行相应的逻辑与或,组合成输出控制信号作为缓存器的写控制信号;包缓存器120缓存器与前一级装置输出端口相连,缓存器内可存放一个或多个数据包;状态寄存器130根据包缓存器及下一级设备输入的信息组成状态字,存放于状态寄存器,供调度机调用;调度机140用多个状态位来实现的有限状态机;状态机的输入来自状态寄存器,在一定的状态下,根据不同的输入信号,状态机跳变到不同的状态,并根据不同的状态,输出各种控制信号,去驱动相应的装置;总线接口150可以根据实际应用需要,将缓存器的数据总线类型进行相应的转换。
上述数据包调度转发装置的工作方式如下逻辑组合单元110通过对包缓存器120及前一级装置100输出的信号进行逻辑组合产生缓存器写控制信号。当写控制信号有效时,来自数据总线的数据将存入缓存器120。当缓存器120中存在数据时,会通过状态寄存器130反映出状态信息,由调度机140根据总线接口150的情况进行调度,如果满足转发条件,调度机将发出缓存器120读出数据命令,数据将通过总线接口150传送到一下目的单元。
在整个工作过程中,通过采用适当的缓存器类型,可以实现输入输出接口的数据总线宽度,总线频率的改变,完成所需的接口类型的变换。
从上述目前采用的数据转发控制过程中,可以看出它只完成了数据包的调度转发功能,缺少对数据包进行验证的机制。
在路由器或IP交换机中,当IP数据包从设备中的传输过程中,如高速交换背板等,由于电源电压频率波动以及各种内部外部因素的干扰,数据有可能产生改变的情况下,此时数据包将是一个错误数据包。对此种现象,有些设备加以忽视,将其转交到下一级设备,有些设备是在出口处采用CPU等软件方法进行处理。前者将造成下一级设备的压力,而后者将增加出口CPU以及存储器的负荷,会造成效率的降低,影响整个系统速率。
为了实现上述目的,本发明提供一种用于过滤错误数据包的转发控制装置,包括逻辑组合单元对前一级装置和一级缓存器输入的控制信号进行逻辑组合运算,组合成控制信号输出作为一级缓存器的写控制信号;一级缓存器可连续存放多个数据包,采用先入先出的存储方式,与前一级装置输出端口相连,接收前一级装置输出端口发送来的数据包;状态寄存器根据一级缓存器、二级缓存器、报头校验模块、包字节计数器、包头寄存器以及下一级设备输入的信息组成状态字,存放在状态寄存器中供调度机调用;二级缓存器采用先入先出缓存器,接收来自一级缓存器发来的单个数据包、进行缓存,当该数据包经过报头检验通过时,二级缓存器才将数据包转发到总线接口;如果数据包无法通过报头检验,调度机将发送命令要求二级缓存器清除该数据包;包头寄存器存放来自于一级缓存器输出的数据包包头,输出至包字节计数器和报头校验模块;报头校验模块用于对数据包的包头进行报头校验;调度机接收来自状态寄存器的输入状态字,根据不同的状态字,跳变到不同的状态,并根据不同的状态,输出各种控制信号,控制一级缓存器、二级缓存器、包头寄存器、包字节计数器和总线接口;包字节计数器将从一级缓存器中读出的数据字节数进行统计,其结果与包长进行比较,以确定本数据包传送是否完成,以便调度机的转发控制;总线接口根据下一级的需要,将二级缓存器的输出数据总线类型进行相应的转换。
本发明还提出了一种用于错误数据包过滤的调度控制方法,包括以下步骤1)调度机接收来自状态寄存器的状态信息;2)判断是否满足数据包由一级缓存器转发的条件,如满足,则转步骤3),否则,保持该状态不变;3)一级缓存器开始发送一个数据包;4)判断数据包的包头标识是否出现,若出现,则转步骤5),否则转步骤3);5)调度机向包头寄存器发送包头提取命令,并向二级缓存器发送写命令;6)对数据包的报头进行校验,判断是否为正确的报头;若正确,则转步骤8),否则,转步骤7);7)清除二级缓存器中的数据包,然后返回步骤2);8)一级缓存器继续向二级缓存器发送该数据包的数据,同时二级缓存器向总线接口转发数据包。
9)当一级缓存器发送完一个完整的数据包信息,根据包字节计数器的实际计数结果与包头的标识数据比较,判断数据包的长度是否一致;若一致,返回步骤2),否则,返回步骤7)。
当路由器或第三层交换机的传输通道中,特别是在交换结构输出端口,采用本转发控制装置和方法时,可以快速地将待转发的数据包进行过滤,通过过滤相当数量的错误包,避免这些错误包流入下一级设备或单元,造成存储资源、计算调度资源的浪费,能够较容易地提高有效数据转发效率。
由于本发明是在现有的转发控制系统上进行的改造,对于系统成本几乎没有什么影响。同时,由于可以完全采用硬件的工作方式,对于包传输速率不会有任何影响,反而可以为下一级工作单元(一般为CPU或微引擎)减轻判别错误包的负担,节省相当的时间,从而可以大大提高系统的有效传输效率。
一级缓存器220中可连续存放多个数据包,它采用先入先出(FIFO)存储方式,接收前一级装置200输出端口发送来的数据。
状态寄存器230根据一级缓存器220,二级缓存器240、包头寄存器250、报头校验模块260、包字节计数器270以及下一级设备输入的信息组成状态字,存放于状态寄存器230中,供调度机280调用。
二级缓存器240采用通常的先入先出(FIFO)缓存器,作为单个数据包的缓存;当数据包通过包头寄存器到加法器进行报头校验时未完成时,对本包进行包长报头校验,本包不向下一级(即总线接口290)传送,只有当包头分析正确后,才会转发。一当发现数据包不正确,将根据调度机280的命令对数据进行清除。以保证向下一级发送的数据包的正确性。
包头寄存器250存放来自于一级缓存器220输出的数据包包头,输出至计数器270和报头校验模块260;
报头校验模块260用于对数据包的包头进行报头校验。可以采用加法器来实现,即将报头中所有16位的二进制码求和,判断是否为FFFF,如果是表明包正确,否则表明包错误。此方法具有计算的简单性和误码监测的有效性的特点。
包字节计数器270将从一级缓存器220中读出的数据字节数进行统计,其结果与包长进行比较,以确定本数据包传送是否完成,以便调度机280的转发控制。
调度机280用多个状态位来实现的有限状态机。状态机的输入信号来自状态寄存器230,在一定的状态下,根据不同的输入信号,状态机跳变到不同的状态,并根据不同的状态,输出各种控制信号,去驱动相应的装置;总线接口290可以根据实际应用需要,将二级缓存器240的数据输出总线类型进行相应的转换。
一级缓存器220的存储方式如图3所示。图3-a为将一级缓存器220存放数据的缓存部分和存放标识缓存部分分开的存储方式,图3-b为将一级缓存器220中的包数据缓存部分和包标识缓存部分合二为一的存储方式。
在图3-a中,包数据缓存器300按照数据分组的头、中间、尾部的顺序存放数据分组的数据,对应的包标识缓存器310通过不同的数据位表示相应数据缓存器300中对应数据表示的含义,如可将包头标识用01表示,包中标识用10表示,包尾标识用11表示。
在图3-b中,由于包数据缓存部分300与包标识缓存部分310的读写控制是完全一致的,因此也可用一个形式的缓存器320来实现,只是对应于不同的数据线,含义有所不同。若缓存器320的位宽为34位,则其高32位用来存放数据分组的数据,相当于包数据缓存器300,最低两位用来存放对应数据分组的标识,相当于包标识缓存器310。
图4给出了本发明提出的用于错误数据包过滤的调度控制方法流程图。本发明所述的用于错误数据包过滤的调度控制方法主要是通过调度机240的工作过程来体现的,调度机240直接负责各种部件的各项操作。下面具体描述根据本发明的数据包的转发控制方法。
在步骤400接受来自状态寄存器的状态信息;在步骤410判断是否满足数据传送条件,如有,则前进到步骤420,否则,保持该状态不变;在步骤420第一级缓存器(即一级缓存器)开始发送数据;在步骤430判断包头标识是否出现,若有则前进到步骤440。否则返回到步骤420,继续发送数据;在步骤440发送包头提取命令,并发送第二缓存器写命令,;在步骤450对包的报头进行校验,以确定是否为正确的报头。若正确,则跳到步骤470,否则前进到步骤460;在步骤460由于所存数据包为错误的数据包,需要丢弃。故清除第二级缓存器内容,然后回到步骤410;在步骤470允许二级缓存器(单包缓存器)向总线接口传送数据。继续对本数据包的数据发送同时判断本数据包的发送是否结束。若未结束,保持本状态,否则,前进到步骤480;在步骤480根据包字节计数器的结果与标识数据的比较,判断两者反映的本数据包的长度是否一致。若是,回到步骤410,否则,回到步骤460。
下面结合图2和图4描述本发明的错误数据包过滤的调度控制的方法。
在路由器或第三层交换机中,当从前一级装置200中有有效数据而且一级缓存器220中有一定存储空间时,逻辑组合单元210将输出有效的控制信号使得一级缓存器220的写控制信号有效,数据写入一级缓存器220。在一级缓存器220中存在有效数据以及二级缓存器240中为空时,状态寄存器230将产生状态转移信号,进入步骤420,于是调度机280将产生一缓存级器220的读数据命令,通过监视总线上的包标识数据,进入步骤430,判断是否出现包头标识,一旦出现包头标识,即进入步骤440,将包头及其后面的包数据写入二级缓存器240。同时,将包头存入包头寄存器250。
加法器260将根据包头寄存器230数据进行相应的加法操作,即将报头中所有16位的二进制码求和,判断是否为FFFF,如果是,表明包正确,如果不是,表明包错误,这就是所谓的数据包报头校验,即步骤450。此方法具有操作简单和监测有效性的特点。能够查找出相当多数的错误包。此时本数据包已有部分存放在二级缓存器中,因此一旦发现包错,调度机280立刻发出清二级缓存器命令,以免错误包流入下一单元总线接口290。在二级缓存器240清空后,状态机又跳回到步骤410,此时由于一级缓存器中原有包数据并没传完而二级缓存器中为空,因此满足步骤410发送包数据条件,一级缓存器220残存包继续被读出,由于未出现包头标识(此包的包头标识已被读走)。将在读至下一个包的包头时,才会继续下一动作。
如果包头正确,数据将连续发送。此时,包字节计数器270工作,计量包发送的字节数,当计数器270所计得到的字节个数与从包头寄存器中得到包长的字节个数一致时,表明本次数据读取完毕,需要结束相应缓存器的读写动作。同时,判断最后读到的包标识数据是否为规定的包结尾标识,如是,表明包长一致,否则,表明包长不一致。或者在此过程中,如果先接收到来自标识缓存器中的包结尾标识,而包字节计数器还未计到包长数,同样表明包长不一致,此时也需终止本包的数据读写。转到步骤410。
对于包长不一致的数据包,可以采用两种不同的策略来转发。第一种策略是,只将包长不一致性结果通知下一级设备或单元,与正确数据包一样转发出去。由下一级设备或单元来作出相应丢弃处理。第二种策略是,在发现包长不一致后,立刻清除第二缓存器240(FIFO),发出包长不一致性信息,由下一级设备或单元将未收全的包丢弃,不作任何处理。第二种策略可以减少接口数据流量,更多地转发有效数据包。本说明书中流程图中反映了第二种策略。
同时,所述的二级缓存器240也可用上下两个缓存器,上下两个二级缓存器每个均用于存储一个完整的数据分组。一级缓存器220轮流向两个二级缓存器发送数据分组,在一个数据分组传送完成后,再向另一个二缓存器传送。只有当数据分组完全接受到后,在报头校验正确且包长一致的情况下,二级缓存器中的数据分组才会向下一级转发,否则清除该数据包。用两个二级缓存器的方法同用一个缓存器方法的差别在于,此方法可以避免将包长不一致的数据分组向下一级装置传输。
虽然本发明的方法是以IP数据包的传输为例来进行说明的,但是本领域的普通技术人员根据说明书的教导,通过适当改变对报头信息的判断,本发明的数据包的转发控制装置和方法同样可以适用于其它数据类型的转发系统。
权利要求
1.一种数据包转发控制装置,包括逻辑组合单元(210)、状态寄存器(230)、调度机(280)、总线接口(290),其特征在于,还包括一级缓存器(220)、二级缓存器(240)、包头寄存器(250)、报头校验模块(260);其中逻辑组合单元(210)对前一级装置(200)和一级缓存器(220)输入的控制信号进行逻辑组合运算,输出作为一级缓存器(220)的写控制信号;一级缓存器(220)接收并存储前一级装置(200)输出的数据包;状态寄存器(230)存储一级缓存器(220)、二级缓存器(240)、包头寄存器(250)、报头校验模块(260)以及下一级设备输入的信息组成的状态字;二级缓存器(240)缓存一级缓存器(220)发来的单个数据包并根据报头检验结果将数据包转发到总线接口(290)或清除该数据包;包头寄存器(250)存放一级缓存器(220)输出的数据包包头,并输出给报头校验模块(260);报头校验模块(260)对包头寄存器(250)转发来的数据包包头进行报头校验;调度机(280)接收状态寄存器(230)的输入状态字,并输出各种控制信号控制一级缓存器(220)、二级缓存器(240)、包头寄存器(250)和总线接口(290);总线接口(290)用于转换二级缓存器(240)的输出数据总线的类型。
2.根据权利要求1所述的数据包转发控制装置,其特征在于,所述的一级缓存器(220)分为包数据缓存器(300)、包标识缓存器(310)两部分,包数据缓存器(300)存储需转发的包数据,包标识缓存器存储包标识。
3.根据权利要求1所述的数据包转发控制装置,其特征在于所述的报头校验模块(260)是一个加法器,通过对报头信息进行求和计算完成报头校验。
4.根据权利要求1所述的数据包转发控制装置,其特征在于,所述的一级缓存器(220)和所述的二级缓存器(240)都是一个先入先出缓存器。
5.根据权利要求1或2或3所述的数据包转发控制装置,其特征在于,还包括一个包字节计数器(270),用于比较包头寄存器(250)的数据包包头的包长信息与从一级缓存器(220)中读出数据字节计数。
6.根据权利要求5所述的数据包转发控制装置,其特征在于,所述的二级缓存器(240)包括上下两个单数据包二级缓存器,两个二级缓存器交替存储一级缓存器(220)发送的数据包并根据报头校验的结果转发或清除该数据包。
7.一种数据包转发控制方法,其特征在于,包括下列处理流程1)调度机接收来自状态寄存器的状态信息;2)判断是否满足数据包由一级缓存器转发的条件,如满足,则前进到步骤3),否则,保持该状态不变;3)一级缓存器开始发送一个数据包;4)判断数据包的包头标识是否出现,若出现,则前进到步骤5),否则返回到步骤3);5)调度机向包头寄存器发送包头提取命令,并向二级缓存器发送写命令;6)对数据包的报头进行校验,判断是否为正确的报头;若正确,则跳到步骤8),否则,前进到步骤7);7)清除二级缓存器中的数据包,然后返回到步骤2);8)一级缓存器继续向二级缓存器发送该数据包的数据,同时二级缓存器向总线接口转发数据包。
8.根据权利要求7所述的数据包转发控制方法,其特征在于,在所述步骤8)后还包括当一级缓存器发送完一个完整的数据包信息,根据包字节计数器的实际计数结果与包头的标识数据比较,判断数据包的长度是否一致;若一致,返回到步骤2),否则,调度机(280)发送消息通知下一级设备或单元所发送的数据包为错误数据包,由下一级设备或单元来作出相应丢弃处理,然后回到步骤2)。
9.根据权利要求7所述的一种数据包转发控制方法,其特征在于,在所述步骤8)后还包括当一级缓存器发送完一个完整的数据包信息,根据包字节计数器的实际计数结果与包头的标识数据比较,判断数据包的长度是否一致;若一致,返回到步骤2),否则,立刻清除第二缓存器(240),发出包长不一致性信息到下一级设备或单元,由下一级设备或单元将未收全的包丢弃,然后回到步骤2)。
全文摘要
本发明公开了一种数据包转发控制装置,通过增加二级缓存器、包头寄存器、报头校验模块以及包字节计数器等模块,改变了现有技术简单地采用缓存数据包的处理,使得本发明的转发控制装置能够在转发控制过程中过滤错误的数据包。本发明还公开了一种数据包转发控制方法,通过对发往二级缓存器的数据包同时进行报头校验和包字节计数判断转发的数据包是否正确,将错误数据包在二级缓存器中过滤。本发明可广泛应用于IP交换机、路由器等转发系统中,能够在确保整个系统的高速率下,减轻下一级设备的负荷压力。
文档编号H04L12/56GK1450767SQ0211137
公开日2003年10月22日 申请日期2002年4月10日 优先权日2002年4月10日
发明者吴本寿 申请人:深圳市中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1