一种报文处理方法及装置的制造方法

文档序号:10626742阅读:433来源:国知局
一种报文处理方法及装置的制造方法
【专利摘要】本发明提供一种报文处理方法及装置。报文处理方法用于交换设备的数据平面上的第一处理器,包括:当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项;当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。本发明能够保证交换设备正常工作。
【专利说明】
一种报文处理方法及装置
技术领域
[0001]本发明涉及通信领域,尤其涉及一种报文处理方法及装置。
【背景技术】
[0002]交换设备的数据平面上的处理器接收到组播业务的数据报文后,如果在芯片中查找到相应的组播路由表项,就会将接收到的数据报文根据查找到的组播路由表项转发出去;否则,就会将接收到的数据报文分配给交换设备的控制平面上的处理器进行处理。
[0003]对于分配给控制平面上的处理器处理的组播业务数据报文,如果交换设备具备三层组播功能且三层组播功能处于运行状态,该处理器会根据某组播业务最先分配的少量数据报文来对该组播业务进行路由表项学习,该组播业务的其它数据报文均作丢弃处理。
[0004]当交换设备接收到的某组播业务的数据报文非常多时,分配给该处理器进行处理的该组播业务的数据报文就会非常多,但其中多数数据报文该处理器是直接丢弃的,并不会对学习组播路由表项有帮助,导致该处理器处理速度不必要地降低,组播路由表项的学习速度不必要地降低,影响交换设备的正常工作。

【发明内容】

[0005]有鉴于此,本发明提供一种报文处理方法及装置,以保证交换设备正常工作。
[0006]具体地,本发明是通过如下技术方案实现的:
[0007]具体地,本发明是通过如下技术方案实现的:
[0008]根据本发明实施例的第一方面,提供一种报文处理方法,用于交换设备的数据平面上的第一处理器,包括:
[0009]当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项;
[0010]当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。
[0011]根据本发明实施例的第二方面,提供另一种报文处理装置,用于交换设备的数据平面上的第一处理器,包括:
[0012]第一判断单元,用于当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项;
[0013]第一丢弃单元,用于当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。
[0014]本发明实施例中,在交换设备数据平面上的处理器待将某组播业务的数据报文分配给控制平面上的处理器进行处理时,如果判定控制平面上的处理器不根据该数据报文学习组播路由表项,则丢弃该数据报文,从而避免了控制平面上的处理器因为丢弃大量不需要用来学习组播路由表项的数据报文而不必要地降低了处理速度,避免影响控制平面上的处理器对其它组播业务的组播路由表项的学习,保证了交换设备的正常工作。
【附图说明】
[0015]图1是本发明报文处理方法的一个实施例流程图;
[0016]图2是本发明报文处理方法的另一个实施例流程示意图;
[0017]图3是本发明报文处理装置所在设备的一种硬件结构图;
[0018]图4是本发明报文处理装置的一个实施例框图。
【具体实施方式】
[0019]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
[0020]在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0021]应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0022]本发明可以应用于交换设备。交换设备可以具有数据平面和控制平面。数据平面可以用于根据组播路由表项来转发组播业务的数据报文;控制平面可以用于学习组播路由表项。交换设备可以具备三层组播功能。三层组播功能可以处于运行状态,也可以未处于运行状态。当三层组播功能处于运行状态时,交换设备数据平面上的处理器就能够通过控制平面上的处理器学习到组播业务的组播路由表项,从而根据学习到的组播路由表项对该组播业务的数据报文进行三层路由转发。
[0023]当组播业务的数据报文到达时,交换设备查看芯片中是否保存了该组播业务的组播路由表项,如果保存了,则可以根据该组播路由表项将该数据报文转发出去;否则,可以将该数据报文分配给控制平面上的处理器进行处理。
[0024]如果三层组播功能处于运行状态,控制平面上的处理器可以根据分配的数据报文,对该组播业务进行组播路由表项的学习,并在学习到组播路由表项后,将学习到的组播路由表项发送到芯片中保存起来。现有技术中,该处理器根据该组播业务的最先分配的少量数据报文就可以进行组播路由表项的学习,对于该组播业务的其它数据报文,该处理器直接丢弃即可。如果三层组播功能未处于运行状态,该处理器直接丢弃分配的数据报文即可。对于分配给该处理器的没有用来进行组播路由表项学习的数据报文,则不必要地占用了该处理器的处理资源,使得该处理器的处理速度不必要地降低,影响了该处理器对其它组播业务的组播路由表项的学习,从而影响了交换设备的正常工作。
[0025]本发明实施例中,通过将该处理器不会用来进行组播路由表项学习的数据报文在分配给该处理器之前丢弃掉,从而在保证该处理器进行组播路由表项学习的情况下,不需要该处理器检查哪些数据报文需要丢弃以及进行相应的丢弃处理,从而避免了该处理器处理速度不必要地降低,保证了交换设备的正常工作。下面结合具体实施例对本发明的实现过程进行详细描述。
[0026]图1是本发明报文处理方法的一个实施例流程图,参照图1,本实施例中的报文处理方法用于交换设备的数据平面上的第一处理器,包括如下步骤:
[0027]步骤S101,当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项。
[0028]本实施例中,第一处理器以及第二处理器例如中央处理器(Central ProcessingUnit,CPU)。同一组播业务的数据报文可以携带相同的因特网协议(Internet Protocol,IP)地址组,该IP地址组可以由数据报文的源IP地址和目的IP地址组成。第一处理器以及第二处理器可以通过IP地址组唯一地标识组播业务。第二处理器可以基于数据报文携带的IP地址组,对该数据报文所属的组播业务进行组播路由表项的学习。芯片可以将该IP地址组作为索引,对该组播业务的组播路由表项进行保存。该组播业务的数据报文到达时,第一处理器可以基于该数据报文携带的IP地址组来查看芯片中是否保存了该组播业务的组播路由表项。
[0029]当组播业务Fl的数据报文Pl到达时,第一处理器可以查看芯片中是否保存了该组播业务Fl的组播路由表项,如果没有保存,则可以准备将该数据报文Pl分配给第二处理器来处理,这种情况下,可以根据之前数据报文到第二处理器的分配情况来决定是将该数据报文Pl分配给第二处理器还是丢弃该数据报文。具体地,第一处理器可以获取最近的一段时间Tl内分配给第二处理器的该组播业务Fl的数据报文(也就是携带该组播业务的源IP地址和目的IP地址的数据报文)的数目X。
[0030]步骤S102,当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。
[0031]如果该数目X已经达到M (例如I),则判定第二处理器根据之前分配的数据报文就能针对该组播业务Fl进行组播路由表项的学习,于是将该数据报文Pl丢弃,从而该数据报文Pl不会被分配给第二处理器。其中,Tl的时长可以为设定值,例如I秒。
[0032]如果该数目X没有达到M,则第一处理器可以获取最近的一段时间T2内分配给第二处理器进行处理的数据报文所属的组播业务的数目(也就是数据报文携带的不同IP地址组的数目)Y,如果该数目Y已经达到N,则将该数据报文Pl丢弃,从而该数据报文Pl不会被分配给第二处理器,这样,第二处理器待学习的组播路由表项数目不超过N,从而进一步减轻了第二处理器的处理负荷。其中,T2的时长可以为设定值,例如I秒。N可以默认设置为256,或者,在第一处理器执行步骤SlOl之前,用户可以根据交换机型号配置的N值,并通过第一处理器的用户配置界面输入N值。低端交换机可以设置比256小一些的N值,中高端交换机可以设置比256大一些的N值。
[0033]如果该数目Y没有达到N,则表明第二处理器尚有余力针对该组播业务Fl进行组播路由表项的学习,因此不丢弃该数据报文P1,该数据报文Pl就可以按照现有技术中的处理流程被分配给第二处理器。
[0034]用户还可以将N值配置为预设的特定值(例如O),则交换机读入该特定值后,不会执行步骤SlOl。
[0035]应用上述实施例,在交换设备数据平面上的处理器待将某组播业务的数据报文分配给控制平面上的处理器进行处理时,如果判定控制平面上的处理器不根据该数据报文学习组播路由表项,则丢弃该数据报文,从而避免了控制平面上的处理器因为丢弃大量不需要用来学习组播路由表项的数据报文而不必要地降低了处理速度,避免影响控制平面上的处理器对其它组播业务的组播路由表项的学习,保证了交换设备的正常工作。
[0036]图2是本发明报文处理方法的另一个实施例流程示意图。参照图2,本实施例中的报文处理方法包括如下步骤:
[0037]步骤S201,接收某组播业务的数据报文。
[0038]本实施例中,交换设备例如交换机。交换机的限速功能启动后,数据平面上的CPU获取用户通过交换机的用户配置界面输入的配置规格N。可以根据不同的交换机型号来设定N值,从而满足不同型号交换机进行组播数据报文限速的不同需求。默认I秒最多分配256个组播业务的数据报文给交换机控制平面上的CPU。低端交换机可以设置小点的值,中高端交换机可以设置大点的值。M可以设定为I。
[0039]步骤S202,在芯片中查找用于转发该数据报文的组播路由表项,如果查找到,则执行步骤S203 ;否则,执行步骤S204。
[0040]当读入的配置规格N为O时,表明不进行组播业务数据报文的限速,此时数据平面上的CPU不执行下面的步骤,而是将该数据报文分配给控制平面上的CPU进行处理。
[0041]步骤S203,按查找到的组播路由表项转发该数据报文。
[0042]步骤S204,判断是否需要将该数据报文分配给控制平面上的CPU进行处理,如果是,则执行步骤S208 ;否则,执行步骤S205。
[0043]其中,交换机数据平面上的CPU可以创建N个存储单元,用于存储分配给控制平面上的CPU进行处理的组播业务的数据报文携带的IP地址组(包括源IP地址和目的IP地址)。其中,同一 IP地址组只能存储在同一存储单元中,不同存储单元中存储的IP地址组不同。
[0044]组播业务的数据报文到达交换机时,数据平面上的CPU从到达的数据报文中解析出IP地址组,并查看是否存在存储有该IP地址组的存储单元,如果不存在存储有该IP地址组的存储单元,则查找是否存在空闲存储单元,如果不存在空闲的存储单元(也就是最近的I秒内分配给控制平面上的CPU处理的数据报文所属的组播业务的数目达到N),则需要将该数据报文分配给控制平面上的CPU进行处理(例如进行组播路由表项的学习);如果存在空闲存储单元,则不需要将该数据报文分配给控制平面上的CPU进行处理。
[0045]如果存在存储有该IP地址组的存储单元(也就是最近的I秒内分配给控制平面上的CPU处理的与该组播业务的数据报文的数目达到I),则需要将该数据报文分配给控制平面上的CPU进行处理。
[0046]步骤S205,将该数据报文分配给控制平面上的CPU。
[0047]数据平面上的CPU可以将该数据报文分配给控制平面上的CPU,同时,将该IP地址组存储到某空闲的存储单元中,并可以启动一个定时器。其中,定时器的超时时长可以设定为I秒,当定时器超时时,数据平面上的CPU可以将该存储单元清空,使之重新成为空闲存储单元,以便后续可以存储其它组播业务的数据报文中携带的IP地址组。
[0048]步骤S206,控制平面上的CPU根据该数据报文的源IP地址和目的IP地址,进行组播路由表项的学习。
[0049]控制平面上的CPU可以从该数据报文中解析出该IP地址组,并基于该IP地址组进行组播路由表项的学习。
[0050]步骤S207,控制平面上的CPU将学习到的组播路由表项发送给芯片。
[0051]控制平面上的CPU学习到组播路由表项之后,可以将该组播路由表项发送给芯片。芯片可以按照该IP地址组,将该组播路由表项保存起来,以便用于数据平面上的CPU转发后续到达的携带该IP地址组的数据报文。
[0052]步骤S208,丢弃该数据报文。
[0053]通过本实施例,交换设备数据平面上的CPU能够针对组播业务进行数据报文的限速处理,当交换设备运行三层组播功能时,控制平面上的CPU能够快速学习到组播路由表项,从而使后续数据报文正常转发出去,使得交换设备进入一个良性的工作;当交换设备没有运行三层组播功能时,不会有大量数据报文积压到控制平面上的CPU中处理,从而可以减轻控制平面上的CPU的处理负担,减少为了存储数据报文而占用的内存资源,保证了交换机的正常工作。
[0054]与前述方法的实施例相对应,本发明还提供了装置的实施例。
[0055]本发明提供的报文处理装置的实施例可以应用在具有硬件结构的设备上,该设备可以为网络设备或管理服务器。该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本发明报文处理装置所在设备的一种硬件结构图,除了图3所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中报文处理装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等,对此图3中不再详细示出。
[0056]图4是本发明报文处理装置的一个实施例框图,参照图4,本实施例中的报文处理装置用于交换设备的数据平面上的第一处理器,包括第一判断单元401和第一丢弃单元402 ;
[0057]其中,第一判断单元401,用于当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项;
[0058]第一丢弃单元402,用于当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。
[0059]在一个可选的实现方式中,所述第一判断单元401可以包括:
[0060]判断子单元,用于判断数据报文数目是否达到第一数目,如果达到所述第一数目,则所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项,否则,所述第二处理器将根据所述第一数据报文学习所述第一组播路由表项,其中,所述数据报文数目为所述交换设备在最近的第一时间内分配给所述第二处理器的所述第一组播业务的数据报文的数目。
[0061]在另一个可选的实现方式中,所述装置还可以包括:
[0062]第一获取单元,用于当所述第二处理器将根据所述第一数据报文学习所述第一组播路由表项时,获取组播业务数目,其中,所述组播业务数目为所述交换设备在最近的第二时间内分配给所述第二处理器进行处理的数据报文所属的组播业务的数目;
[0063]第二判断单元,用于判断所述组播业务数目是否达到第二数目;
[0064]第二丢弃单元,用于当达到所述第二数目时,丢弃所述第一数据报文。
[0065]进一步地,所述装置还可以包括:
[0066]第二获取单元,用于所述第一获取单元获取所述组播业务数目之前,获取用户通过所述交换设备的用户配置界面输入的所述第二数目。
[0067]进一步地,所述装置还可以包括:
[0068]第三判断单元,用于所述第一判断单元401判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项之前,判断所述第二数目是否为预设数目;
[0069]所述第一判断单元401具体用于当所述第二数目为所述预设数目时,不执行所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项;当所述第二数目不为所述预设数目时,执行所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项。
[0070]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0071]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0072]由上述实施例可见,在交换设备数据平面上的处理器待将某组播业务的数据报文分配给控制平面上的处理器进行处理时,如果判定控制平面上的处理器不根据该数据报文学习组播路由表项,则丢弃该数据报文,从而避免了控制平面上的处理器因为丢弃大量不需要用来学习组播路由表项的数据报文而不必要地降低了处理速度,避免影响控制平面上的处理器对其它组播业务的组播路由表项的学习,保证了交换设备的正常工作。
[0073]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种报文处理方法,其特征在于,用于交换设备的数据平面上的第一处理器,包括: 当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项; 当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。2.根据权利要求1所述的方法,其特征在于,所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项包括: 判断数据报文数目是否达到第一数目,如果达到所述第一数目,则所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项,否则,所述第二处理器将根据所述第一数据报文学习所述第一组播路由表项,其中,所述数据报文数目为所述交换设备在最近的第一时间内分配给所述第二处理器的所述第一组播业务的数据报文的数目。3.根据权利要求1或2所述的方法,其特征在于,还包括: 当所述第二处理器将根据所述第一数据报文学习所述第一组播路由表项时,获取组播业务数目,其中,所述组播业务数目为所述交换设备在最近的第二时间内分配给所述第二处理器进行处理的数据报文所属的组播业务的数目; 判断所述组播业务数目是否达到第二数目; 当达到所述第二数目时,丢弃所述第一数据报文。4.根据权利要求3所述的方法,其特征在于,还包括: 所述获取组播业务数目之前,获取用户通过所述交换设备的用户配置界面输入的所述第二数目。5.根据权利要求3所述的方法,其特征在于,还包括: 所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项之前,判断所述第二数目是否为预设数目; 当为所述预设数目时,不执行所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项; 当不为所述预设数目时,执行所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项。6.一种报文处理装置,其特征在于,用于交换设备的数据平面上的第一处理器,包括: 第一判断单元,用于当所述第一处理器待将接收到的第一组播业务的第一数据报文分配给所述交换设备的控制平面上的第二处理器时,判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项; 第一丢弃单元,用于当所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项时,丢弃所述第一数据报文。7.根据权利要求6所述的装置,其特征在于,所述第一判断单元包括: 判断子单元,用于判断数据报文数目是否达到第一数目,如果达到所述第一数目,则所述第二处理器不根据所述第一数据报文学习所述第一组播路由表项,否则,所述第二处理器将根据所述第一数据报文学习所述第一组播路由表项,其中,所述数据报文数目为所述交换设备在最近的第一时间内分配给所述第二处理器的所述第一组播业务的数据报文的数目。8.根据权利要求6或7所述的装置,其特征在于,还包括: 第一获取单元,用于当所述第二处理器将根据所述第一数据报文学习所述第一组播路由表项时,获取组播业务数目,其中,所述组播业务数目为所述交换设备在最近的第二时间内分配给所述第二处理器进行处理的数据报文所属的组播业务的数目; 第二判断单元,用于判断所述组播业务数目是否达到第二数目; 第二丢弃单元,用于当达到所述第二数目时,丢弃所述第一数据报文。9.根据权利要求8所述的装置,其特征在于,还包括: 第二获取单元,用于所述第一获取单元获取所述组播业务数目之前,获取用户通过所述交换设备的用户配置界面输入的所述第二数目。10.根据权利要求9所述的装置,其特征在于,还包括: 第三判断单元,用于所述第一判断单元判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项之前,判断所述第二数目是否为预设数目; 所述第一判断单元具体用于当所述第二数目为所述预设数目时,不执行所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项;当所述第二数目不为所述预设数目时,执行所述判断所述第二处理器是否将根据所述第一数据报文学习第一组播路由表项。
【文档编号】H04L12/741GK105991443SQ201510284349
【公开日】2016年10月5日
【申请日】2015年5月28日
【发明人】刘晓贺
【申请人】杭州迪普科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1