CN1946061A - 一种快速处理报文的方法及装置 - Google Patents
一种快速处理报文的方法及装置 Download PDFInfo
- Publication number
- CN1946061A CN1946061A CNA2006101401936A CN200610140193A CN1946061A CN 1946061 A CN1946061 A CN 1946061A CN A2006101401936 A CNA2006101401936 A CN A2006101401936A CN 200610140193 A CN200610140193 A CN 200610140193A CN 1946061 A CN1946061 A CN 1946061A
- Authority
- CN
- China
- Prior art keywords
- message
- session
- index
- acceleration information
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种快速处理报文的方法,报文处理流程包括以下步骤:A.获得报文的会话信息,根据获得的会话信息获得对应的会话索引;B.根据获得的会话索引直接获得对应的加速信息,根据所述加速信息处理当前报文。同时,本发明还提供了一种快速处理报文的装置。应用该发明的方法以及装置,能够使报文处理的性能得到很大的提升,加速了报文的处理速度。另外,本发明所提供的技术方案能够实现分别对各支持快速处理的子处理流程进行加速处理,使得报文不会由于某个子处理流程不支持对自身的加速处理,而使该报文丧失了进行其他加速处理的机会,从而提高了报文的处理速度。
Description
技术领域
本发明涉及数据通信技术,尤指一种快速处理报文的方法及装置。
背景技术
路由设备是处理数据报文并根据报文头中携带的信息,对报文进行转发处理的网络设备。目前,多数路由设备采用逐包处理的方式转发报文。在报文的转发处理比较简单的情况下,由于数据的组织方式和索引信息均比较简单,逐包处理的方式能够达到较高的处理效率。但随着路由设备功能的日渐复杂,报文在设备中的处理流程也越来越多,逐包处理的方式已经不能再满足路由设备对处理速度的要求。
现有技术中,为了解决上述问题,路由设备组织了一全局快速转发表,通过匹配快速转发表,实现报文的快速转发。快速转发表是以二维数组的形式组织,具体组织结构如图1所示。快速转发表中的每行对应于一个行号,每行中的每个小矩形框对应一个buffer,该buffer用于存储一条快速转发项,该快速转发项记录着五元组以及对应的用于快速转发报文的信息。在图1中,被阴影覆盖的buffer表示已经存储了快速转发项的buffer,没有被阴影覆盖的buffer表示状态仍为空闲。
在路由设备转发报文时,首先根据报文中的五元组,利用特定的HASH算法计算得到快速转发表的行号,然后遍历该行中所有的快速转发项,查找包含当前报文中五元组的快速转发项。如果找到对应的快速转发项,则利用其记录的信息进行报文的快速转发;如果没有找到对应的快速转发项,则报文走普通的逐包转发。在报文执行完的逐包转发之后,判断该报文所属的会话是否支持快速转发处理,如果支持,则在快速转发表中添加对应的快速转发项。当快速转发项添加成功时,后续属于该会话的报文都可以走快速转发处理。
现有技术中的快速转发方法,需要根据报文的五元组计算行号,根据行号遍历该行中所有的快速转发项,因而导致查找效率低下,特别是在要查找的快速转发项位于该行的尾部时,查找效率会更低。这样的处理方法严重的影响了报文的转发速度,使快速转发报文的效果不明显。
发明内容
有鉴于此,本发明的主要目的在于提供一种快速处理报文的方法及装置,应用该方法及装置能够快速处理报文,提高报文的处理效率。
为达到上述目的,本发明的技术方案是这样实现的:
一种快速处理报文的方法,包括以下步骤:
A、获得报文的会话信息,根据获得的会话信息获得对应的会话索引;
B、根据获得的会话索引直接获得对应的加速信息,根据所述加速信息处理当前报文。
较佳的,设置报文加速表,步骤B中,所述根据获得的会话索引获得对应的加速信息为:
判断报文加速表中是否存在与获得的会话索引对应的加速信息,当存在与获得的会话索引对应的加速信息时,则获得所述加速信息;
进一步包括,当不存在与获得的会话索引对应的加速信息时,则按照正常处理流程处理完报文之后,根据报文处理流程获得、并在报文加速表记录与当前报文会话索引对应的加速信息。
较佳的,报文处理流程包括多个子处理流程;在执行每个支持快速处理的子处理流程之前,执行所述步骤B;所述步骤B为:
根据获得的会话索引获得与当前子处理流程对应的加速信息,根据当前子处理流程的加速信息处理报文。
较佳的,针对每个子处理流程设置报文加速表,步骤B中,所述根据获得的会话索引获得与当前子处理流程对应的加速信息为:
判断报文加速表中是否存在当前子处理流程与获得的会话索引对应的加速信息,在当前子处理流程存在与获得的会话索引对应的加速信息时,则获得所述加速信息;
进一步包括,在当前子处理流程不存在与获得的会话索引对应的加速信息时,按照正常子处理流程处理完报文之后,根据报文的子处理流程获得、并在报文加速表中记录当前子处理流程与当前报文会话索引对应的加速信息。
较佳的,设置会话识别表,步骤A中,所述根据获得的会话信息获得对应的会话索引为:
判断会话识别表内是否存在与获得的会话信息对应的会话索引,当存在与获得的会话信息对应的会话索引时,则获得所述会话索引;
进一步包括,当不存在与获得的会话信息对应的会话索引时,根据当前报文的会话信息分配会话索引,并将当前报文会话信息与会话索引之间的对应关系记录在会话识别表内。
较佳的,所述会话索引包括序列号和下标;所述分配会话索引为:在系统支持的最大会话数量的范围内分配下标,并顺序分配序列号;
所述报文加速表包括:会话索引表和业务信息表;所述会话索引表为:记录了会话索引以及指向自身对应的加速信息的指针的一维数组;所述业务信息表用于记录加速信息;所述记录会话索引与加速信息之间的对应关系为:根据会话索引的下标将会话索引和指向自身加速信息的指针,记录在会话索引表中具有相同下标的数组单元内,根据会话索引对应的指针将加速信息记录在业务信息表内;
步骤B中,所述判断是否存在与获得的会话索引对应的加速信息为:
B1、在会话索引表内,根据当前会话索引的下标查找到具有相同下标的数组单元,判断当前数组单元是否为空,如果是,执行步骤B3;否则,执行步骤B2;
B2、判断当前数组单元内的会话索引的序列号是否与当前获得的会话索引的序列号相同,如果是,则获得当前数组单元内指向加速信息的指针,根据指针获得对应的加速信息,并利用所述加速信息处理当前报文;否则,执行步骤B3;
B3、按照当前正常处理流程处理完报文之后,根据当前报文处理流程获得、并在报文加速表记录与当前报文会话索引对应的加速信息。
另外,本发明还提供了一种快速处理报文的装置,该装置至少包括,会话识别单元和快速处理单元;其中,
会话识别单元,用于根据报文的会话信息获取所述报文的会话索引;
快速处理单元,用于根据会话识别单元获取的会话索引,获得对应的加速信息,根据加速信息处理当前报文。
较佳的,进一步包括报文处理单元;
所述快速处理单元,用于在没有获得与所述会话索引对应的加速信息时,指示报文处理单元按照正常处理流程处理报文;并接收报文处理单元在正常处理报文之后发送的加速信息,建立报文会话索引与加速信息之间的对应关系;
所述报文处理单元,用于根据快速处理单元的指示按照正常处理流程处理报文,获得报文的加速信息并发送给快速处理单元。
较佳的,进一步包括报文处理单元;所述报文处理单元包括多个子处理单元;所述快速处理单元,包括分别与各支持快速处理的子处理单元对应的子快速处理单元;其中,
子快速处理单元,用于根据会话识别单元获取的会话索引,获得与自身对应的子处理单元对应的加速信息,根据所述加速信息处理报文。
较佳的,所述子快速处理单元,用于在没有获得与自身对应的子处理单元对应的加速信息时,指示自身对应的子处理单元按照正常子处理流程处理报文;并接收自身对应的子处理单元在正常处理报文之后发送的加速信息,建立报文会话索引与加速信息之间的对应关系;
所述支持快速处理的子处理单元,用于根据自身对应的子快速处理单元的指示,按照正常子处理流程处理报文;并在处理完之后,获得报文与自身流程对应的加速信息,发送给对应的子处理单元。
本发明所提供的一种快速处理报文的方法,根据报文的会话信息获得报文对应的会话索引,根据报文的会话索引获得处理报文的加速信息,并利用获得的加速信息对报文进行加速处理,提高报文的处理速度。同时,本发明还提供了一种快速处理报文的装置。由于报文加速表的查找避免了普通表项查找过程所需要的关键值计算和遍历比较等操作,因此使得报文处理的性能得到很大的提升,加速了报文的处理速度。
附图说明
图1为现有技术中快速转发表的结构图;
图2为本发明装置的结构图;
图3为本发明实施例一装置的结构图;
图4为本发明实施例一方法的流程图;
图5为本发明一报文加速表的结构图;
图6为本发明实施例二装置的结构图;
图7为本发明又一报文加速表的结构图;
图8为本发明再一报文加速表的结构图。
具体实施方式
本发明的核心思想是:根据报文的会话信息获得报文对应的会话索引,根据报文的会话索引获得处理报文的加速信息,并利用获得的加速信息对报文进行加速处理,提高了报文的处理速度。
本发明提供的装置如图2所示,包括,会话识别单元21和快速处理单元22。
所述会话识别单元21,用于根据报文的会话信息获取所述报文的会话索引。
所述快速处理单元22,用于根据会话识别单元21获取的会话索引,获得对应的加速信息,根据加速信息处理当前报文。
在本发明中,可以通过设置会话识别表和报文加速表,其中,会话识别表用于记录会话信息与会话索引之间的对应关系,报文加速表用于记录会话索引与对应的加速信息之间的对应关系。
会话识别表和报文加速表中的内容,可以由网络设备预先配置,在处理过程中,只对预先配置好的信息进行处理。当然,也可以不采用预先配置的方式,而是在报文处理的过程中根据处理的报文,动态的在会话识别表以及报文加速表中添加表项。也可以是,由转发设备预先配置相关表项,在处理报文的阶段再进行动态添加。
动态添加的具体方式可以是:当根据报文的会话信息在会话识别表内没有找到相应的会话索引时,则为当前报文的会话信息分配会话索引,并将报文的会话信息与会话索引之间的对应关系记录在会话识别表内;以及当没有获得加速信息的报文,按照正常流程处理完之后,则获得与该报文对应的加速信息,并建立该报文会话索引与报文加速信息之间的对应关系,并记录至报文加速表内。
为了实现动态添加的方式,需要在本发明的装置结构中进一步包括报文处理单元,用于在快速处理单元没有获得与所述会话索引对应的加速信息时,根据快速处理单元的指示按照正常处理流程处理报文。并在处理完报文之后,获得报文的加速信息并发送给快速处理单元。
所述快速处理单元,根据报文处理单元发送的加速信息建立报文会话索引与加速信息之间的对应关系,用于后续具有相同会话索引的报文的快速处理过程中。
由于报文处理流程通常包括多个子处理流程,因此在本发明的介绍中,主要分两个方面对本发明的技术方案进行介绍,首先是:对整个报文处理流程进行加速处理的情况;其次是:对报文处理流程中的各支持加速处理的子处理流程进行加速处理的情况。
其中,支持加速处理的子处理流程是根据子处理流程自身的配置以及系统对该子处理流程的设置,确定该子处理流程是否支持加速处理。当然,在一个报文处理流程中的所有子处理流程均可以支持加速处理。
本发明提供的方法及装置能够适用于报文的任何处理流程,在以下实施例的介绍中,主要以报文的转发处理为例,对本发明的技术方案进行详细说明。但本发明所提供的方法并不仅适用于报文的转发处理中。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明做进一步的详细说明。
实施例一介绍的是,对整个报文转发流程进行加速处理的情况;实施例二介绍的是,对报文转发流程中的各支持加速处理的子处理流程进行加速处理的情况。
实施例一
图3为本实施例装置的结构图,包括会话识别单元31,快速处理单元32和报文转发单元33。在图3中,实线表示报文的流向,虚线表示报文转发单元33向快速处理单元32反馈的自身的加速信息。
其中,会话识别单元31,用于获得待转发报文的会话信息,判断会话识别表内是否存在与当前获得的会话信息对应的会话索引,当存在所述会话索引时,则获取所述待转发报文的会话索引;当不存在所述会话索引时,则根据当前会话信息分配会话索引;并将携带会话索引的报文发送至快速处理单元32。
快速处理单元32,用于根据会话识别单元31获取的、报文中携带的会话索引,判断报文加速表内是否存在与所述会话索引对应的加速信息,当存在所述加速信息时,则根据加速信息转发当前报文。当不存在所述加速信息时,则通过将当前待转发报文发送给报文转发单元33,指示报文转发单元33按照正常转发流程处理报文。当报文转发单元33处理完当前报文之后,记录报文转发单元33返回的当前报文的加速信息。
报文转发单元33,用于根据快速处理单元32的指示,按照正常转发流程处理当前待转发报文;当处理完当前报文之后,获得当前报文的加速信息,并发送给快速处理单元32。
图3所示的装置是以报文转发的处理流程为例对本发明的技术方案进行描述。其中,报文的传输路径为,由会话识别单元31收到报文,再将报文发送至快速处理单元32,此时根据实际处理情况或由快速处理单元32转发报文,或由报文转发单元33转发报文。但在其他一些报文处理流程中,根据不同的报文处理流程,报文可能不需要在各单元之间进行传输,而只需要在各单元之间发送一些指令即可。
在本实施例中,设置会话识别表和报文加速表,用于记录会话信息与会话索引之间的对应关系,以及会话索引与对应的加速信息之间的对应关系。
图4为实施本发明方法的流程图。图4所示的具体步骤如下:
步骤401:收到待转发报文,获得待转发报文的会话信息。
这里,不同类型的报文具有不同的会话信息。会话信息可以唯一标识一类报文。
步骤402:根据获得的会话信息查找会话识别表,判断会话识别表内是否存在获得的会话信息,如果是,执行步骤404;否则,执行步骤403。
步骤403:根据当前待转发报文的会话信息分配会话索引,并将当前会话信息与分配的会话索引之间的对应关系记录在会话识别表内。
步骤404:获得与当前会话信息对应的会话索引,并根据当前获得的会话索引查找报文加速表,判断报文加速表内是否存在当前待转发报文的会话索引,如果是,则执行步骤405;否则,执行步骤406。
步骤405:根据会话索引获得对应的加速信息,利用获得的加速信息对报文进行快速转发。结束当前处理流程。
步骤406:按照正常流程转发当前待转发报文。
步骤407:当前待转发报文转发完毕后,获得该报文的加速信息,并建立该报文的会话索引与加速信息之间的对应关系,记录在报文加速表内。结束当前处理流程。
不同的业务处理方式对应着不同的加速信息,因此获得加速信息的方式也不尽相同。例如,以包过滤处理为例进行介绍。包过滤防火墙在普通处理流程中需要查找访问控制列表(ACL),以确定对当前报文的处理,是允许通过、还是丢弃报文。ACL的线性查找较慢,影响了处理效率。因此,在该会话索引对应的第一个报文处理完成后,就可获知对于这类报文应该是允许通过还是丢弃,这样只需获得并记录该会话索引对应的第一个报文的处理结果,在处理后续报文时,直接查找到相应的表项就可以直接知道如果处理这个报文了,不需要再消耗ACL的查找时间。这里,对于包过滤处理来说,对应的加速就是允许通过,或是被丢弃。
当然,其他的业务可能不是根据报文的处理结果获得加速信息,而是根据处理报文过程中所需用到的一些参数确定。在这种情况下,获得加速信息的方法是:获得处理报文过程中所需的参数,并将这些参数作为加速信息。
在步骤403中,分配会话索引的方法可以是按照自然数递增的规则,依次为各新增加的会话信息分配会话索引。也可以是按照如下的方法,具体为:
会话索引由序列号和下标两部分组成,下标的范围为1~maxnum,其中maxnum为系统支持的最大会话数目,通常为2的n次幂。序列号的初始值为0,每次下标分配出去的时候序列号的值都会加1。此时,对应的报文加速表的组织形式可以采用如图5所示的结构,即报文加速表由两部分组成,会话索引表和业务信息表。会话索引表为一个一维数组,数组中表项的内容为会话索引以及指向对应加速信息的指针,其中数组单元的数目与系统支持的最大会话数目相同。业务信息表存储着各加速信息的具体信息内容,加速信息的信息内容依靠指针索引获得。
在将会话索引与加速信息之间的对应关系保存至会话索引表时,将所述对应关系保存至与会话索引的下标相同的数组单元。在这种情况下,根据报文的会话索引查询会话索引表时,只需要利用会话索引中的下标作为会话索引表的数组下标,便可以直接索引到会话索引对应的会话索引表项,在很大程度上提高了查找速度。
为了防止已经分配出去的下标重复分配给其他会话信息,而导致会话信息与会话索引之间的对应关系出错的问题,可以采用资源池的方式进行下标的分配。资源池的方式具体为:所有的下标都维护一个当前状态,一旦该下标被分配出去后,则自身的状态就会被置位,当下标被释放后对应的状态也会被复位,只有当前状态为未分配的下标才可以被分配使用。对没有可分配下标的会话索引,不在会话索引表中建立相应的表项。
在会话索引中设置序列号的目的在于:在只老化会话识别表、不老化报文加速表的情况下,由于会话索引表的老化会导致部分下标的释放,因此这些被释放的下标又会被重新分配至新的会话索引,对应于新的会话信息,但是由于报文加速表不进行老化操作,因此同一个下标会对应至少两个会话,使报文加速表发生错误,因此通过在每次分配下标时分配一个序列号,就可以达到既能快速索引到相应的表项,又能使会话索引能唯一标识会话信息的目的。当然在会话索引表和报文加速表均支持老化处理的情况下,在会话索引中也可以不分配相应的序列号。会话识别表和报文加速表是否支持老化处理,可以由系统的性能、系统管理员的配置确定。
在会话索引包括下标和序列号的情况下,根据报文会话信息对应的会话索引查询会话索引表时,只需要利用会话索引中的下标作为会话索引表的数组下标,便可以直接索引到会话索引对应的会话索引表项。在得到会话索引表项之后,在数组单元中的内容不为空时,再判断会话索引表项中记录的序列号是否与当前会话索引中的序列号相同,如果相同,则证明当前索引到的会话加速表项有效,进而根据表项中的指针获得对应的加速信息;否则,表明该会话加速表项的内容已经失效,则报文转发单元按照正常流程转发当前报文。这里,所述的数组中的内容不为空的情况是指,当前数组存储了会话索引对应指向加速信息的指针。
在上一段的描述,出现查找得到的会话索引表项为空的原因是:当前会话索引为刚被分配的会话索引,在报文加速表中还没有为其建立相应的表项,所以查找得到的会话索引表项为空。另外,出现具有相同下标而序列号不同的两个会话索引的原因是:在会话索引表支持老化,而报文加速表不支持老化的情况下,某一会话索引在被会话索引表老化删除,其具有的下标被重新分配,而在报文加速表还保留着相应的表项,因此出现了具有相同下标的两个不同会话索引。在新分配会话索引对应的报文执行完普通转发流程之后,如果该报文能够加速处理,由于新会话索引与会话索引表中已失效的会话索引具有相同的下标,因此该新会话索引与其加速信息的对应关系,就会就覆盖原已失效的会话索引表项。
在本实施例中,由于报文加速表的查找避免了普通表项查找过程所需要的关键值计算和遍历比较等操作,因此使得报文处理的性能得到很大的提升,加速了报文的处理速度。
实施例二
在实施例一的介绍中,主要描述的是整个报文转发流程的加速处理。在实施例一中的加速信息是针对整个转发处理流程的加速信息,其中包括了包过滤处理、入方向处理、出方向处理以及发送QoS处理。
但是,报文的处理流程通常包括多个子处理流程,例如报文的转发流程包括:包过滤处理流程、入方向处理流程、出方向处理流程和发送QoS处理流程。在对报文进行转发处理时,当转发流程中的某个子处理流程针对当前报文不支持快速处理,例如入方向处理,则按照实施例一描述的技术方案,该报文则会由于不能获得针对入方向处理的加速信息,而不能实现转发过程的加速处理。
因此为了解决这一问题,在本实施例中采用的技术方案是,针对转发处理中的各子处理流程,对报文进行加速处理。即报文在进入每个子处理流程之前,判断该子处理流程是否存在该报文的加速信息,如果存在,则加速处理;否则,正常执行该子处理流程。这样的处理方式不会由于某一个子处理流程不支持报文的加速处理,而使报文丧失了进行其他加速处理的机会,从而提高了报文的处理速度。同时,这样的处理方式也可以使各子处理流程灵活的对自身进行加速处理的报文进行控制。
具体的装置结构如下所述:在报文处理单元分为多个子处理单元的情况下;快速处理单元,则包括分别与各支持快速处理的子处理单元对应的子快速处理单元。
其中,子快速处理单元,用于根据会话识别单元获取的会话索引,获得与自身对应的子处理单元对应的加速信息,根据所述加速信息处理报文。
为了实现子处理单元对应的加速信息动态添加的方式,可以在子快速处理单元没有获得与自身对应的子处理单元对应的加速信息时,由子快速处理单元指示自身对应的子处理单元按照正常子处理流程处理报文。在子处理单元处理完报文之后,获得自身对应于该报文的加速信息,并将加速信息发送给对应的子快速处理单元。
子快速处理单元,根据子处理单元发送的加速信息建立报文会话索引与加速信息之间的对应关系,用于后续具有相同会话索引的报文的快速处理过程中。
在此,不需要针对所有的子处理单元设置对应的子快速处理单元,可以只为支持加速处理的子处理单元设置对应的子快速处理单元。
当上述装置应用于报文转发处理过程时,具体结构可以如图6所示,包括会话识别单元21、快速处理单元62和报文转发单元63。图6所述的结构,是假设报文转发流程中的每个子处理流程均支持加速处理的情况。
其中,报文转发单元63包括4个子处理单元,分别为:包过滤处理单元631、入方向处理单元632、出方向处理单元633和发送QoS处理单元634。快速处理单元62,包括分别与各子处理单元对应的子快速处理单元,分别为:与包过滤处理单元631对应的子快速处理单元621、与入方向处理单元632对应的子快速处理单元622、与出方向处理单元633对应的子快速处理单元623、以及与发送QoS处理单元634对应的子快速处理单元624。在图5中,实线表示报文的流向,虚线表示子处理单元向自身对应的子快速处理单元反馈的自身的加速信息。
会话识别单元21,用于获得待转发报文的会话信息,判断会话识别表内是否存在与当前获得的会话信息对应的会话索引,当存在所述会话索引时,则获取所述待转发报文的会话索引;当不存在所述会话索引,则根据当前会话信息分配会话索引;并将携带会话索引的报文发送至子快速处理单元621。
子快速处理单元621根据报文中携带的会话索引,判断自身对应的包过滤处理单元631是否存在与所述会话索引对应的加速信息,如果存在,则利用该加速信息处理当前报文;否则,将当前报文发送至包过滤处理单元631。这里,所指的加速信息是用来对报文进行包过滤加速处理的信息。
与子快速处理单元621对应的包过滤处理单元631,收到子快速处理单元621发送的报文后,对报文进行包过滤处理,并将处理后的报文发送至与入方向处理单元632对应的子快速处理单元622。
入方向处理单元632对应的子快速处理单元622,接收子快速处理单元621或者包过滤处理单元631发送的携带会话索引的报文,并按照子快速处理单元621处理报文的方法处理收到的报文。子快速处理单元623和子快速处理单元624,均按照与相同的流程处理收到的报文。不同的是,子快速处理单元621、子快速处理单元622、子快速处理单元623和子快速处理单元624,根据各自对应的子处理流程的加速信息对报文进行快速处理。
另外,用于记录会话索引与子处理流程加速信息之间对应关系的报文加速表,可以存储在与子处理单元对应的子快速处理单元中,也可以与其他子处理单元的报文加速表一起,存储在一个公共的存储单元中。
各子处理单元所对应的报文加速表中的内容,可以由转发设备预先配置,在处理过程中,只对预先配置好的会话索引对应的报文进行加速处理。也可以不采用预先配置的方式,而是在转发报文的处理过程进行动态添加的方式。也可以采用,由转发设备预先配置部分报文加速表项,在转发报文的处理再进行动态添加。
在本实施例中,也可以按照实施例一中介绍的根据会话索引获取加速信息的方法获取与子处理单元对应的加速信息。此时,则可以针对每个子处理单元设置一个与报文加速表,该报文加速表的具体结构与实施例一中的相同,具体方法可参照实施例一中的描述,在此不再详述。
本实施例仅以包过滤处理单元631、入方向处理单元632、出方向处理单元633和发送QoS处理单元634顺序处理报文为例,对本发明的技术方案进行介绍。但本发明的应用场景并不仅限于顺序处理的情况。在实际应用中,根据划分的角度不同,报文处理单元会划分出不同结构的子处理单元。本实施例的核心在,在支持加速处理的子处理单元之前,判断报文是否存在加速信息,对于存在加速信息的报文,进行加速处理。本实施例所述技术方案并不限定各子处理单元之间的结构。
在本发明中,会话信息的具体内容是根据区分加速信息所需的内容而确定的。通常情况下,当报文类型为IPv4时,则对应的会话信息可以由报文的五元组组成,即源IP地址,目的IP地址,协议类型,源端口号,目的端口号。在某些情况下,也在目的端口号属性上还可以加上表示虚拟专用网(VPN)属性的VPN索引(vrfIndex)。即报文的加速信息是根据报文的五元组信息确定,具有相同五元组的报文对应着相同的加速信息。当报文类型为IPv6时,则对应的会话信息由报文的源IP地址和20bit的流标记组成。当报文类型为MPLS报文时,则对应的会话信息由报文最外层的标签组成。当报文类型为二层以太网交换报文:则对应的会话信息由源MAC地址和目的MAC地址组成。
在已经建立好会话识别表以及报文加速表的情况下,由于转发方式的变化,可能会导致用于区分加速信息的内容发生了变化,增加了原会话信息中所没有的属性。例如,在IPV4报文的情况下,根据原五元组确定的会话信息的情况下,现在需要增加该报文的QoS信息,才能唯一确定该报文对应的会话信息。
为了能够使业务正常运行,处理的方法有两个,其一为:根据新的用于区分加速信息的会话信息,重建会话信息与会话索引之间、会话索引与加速信息之间的对应关系;其二为:增加一个二级索引表,原会话索引表为一级索引表,具体如图7所示。
在二级索引表中记录着表征新增属性的关键值与对应的指针。在处理时,根据原会话信息确定会话索引,然后根据一级索引表索引得到对应的二级索引表;在匹配二级索引表时,匹配新增的关键值,再根据匹配关键值所对应的指针索引到对应的业务信息表项,获得加速信息。当然,在有需要时也可以类型配置二级索引表或是三级索引表。
在新增的属性存在多个取值的情况下,就会导致二级索引表的查找过程比较耗时,同时也会耗费更多的内存。因此在本发明中,可以将新增的属性的某一关键值与原会话信息所确定的会话索引关联起来,具体结构如图8所示。当索引到对应的会话索引时,进一步判断报文的是否存在与会话索引关联的关键值,如果存在,则索引到对应的加速信息;否则,报文按照正常处理流程处理。
在本发明中,会话识别表的组织结构可以按照与报文加速表的相同的组织结构配置。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1、一种快速处理报文的方法,其特征在于,包括以下步骤:
A、获得报文的会话信息,根据获得的会话信息获得对应的会话索引;
B、根据获得的会话索引直接获得对应的加速信息,根据所述加速信息处理当前报文。
2、根据权利要求1所述的方法,其特征在于,设置报文加速表,步骤B中,所述根据获得的会话索引获得对应的加速信息为:
判断报文加速表中是否存在与获得的会话索引对应的加速信息,当存在与获得的会话索引对应的加速信息时,则获得所述加速信息;
进一步包括,当不存在与获得的会话索引对应的加速信息时,则按照正常处理流程处理完报文之后,根据报文处理流程获得、并在报文加速表记录与当前报文会话索引对应的加速信息。
3、根据权利要求1所述的方法,其特征在于,报文处理流程包括多个子处理流程;在执行每个支持快速处理的子处理流程之前,执行所述步骤B;所述步骤B为:
根据获得的会话索引获得与当前子处理流程对应的加速信息,根据当前子处理流程的加速信息处理报文。
4、根据权利要求3所述的方法,其特征在于,针对每个子处理流程设置报文加速表,步骤B中,所述根据获得的会话索引获得与当前子处理流程对应的加速信息为:
判断报文加速表中是否存在当前子处理流程与获得的会话索引对应的加速信息,在当前子处理流程存在与获得的会话索引对应的加速信息时,则获得所述加速信息;
进一步包括,在当前子处理流程不存在与获得的会话索引对应的加速信息时,按照正常子处理流程处理完报文之后,根据报文的子处理流程获得、并在报文加速表中记录当前子处理流程与当前报文会话索引对应的加速信息。
5、根据权利要求2或4所述的方法,其特征在于,设置会话识别表,步骤A中,所述根据获得的会话信息获得对应的会话索引为:
判断会话识别表内是否存在与获得的会话信息对应的会话索引,当存在与获得的会话信息对应的会话索引时,则获得所述会话索引;
进一步包括,当不存在与获得的会话信息对应的会话索引时,根据当前报文的会话信息分配会话索引,并将当前报文会话信息与会话索引之间的对应关系记录在会话识别表内。
6、根据权利要求2或4所述的方法,其特征在于,所述会话索引包括序列号和下标;所述分配会话索引为:在系统支持的最大会话数量的范围内分配下标,并顺序分配序列号;
所述报文加速表包括:会话索引表和业务信息表;所述会话索引表为:记录了会话索引以及指向自身对应的加速信息的指针的一维数组;所述业务信息表用于记录加速信息;所述记录会话索引与加速信息之间的对应关系为:根据会话索引的下标将会话索引和指向自身加速信息的指针,记录在会话索引表中具有相同下标的数组单元内,根据会话索引对应的指针将加速信息记录在业务信息表内;
步骤B中,所述判断是否存在与获得的会话索引对应的加速信息为:
B1、在会话索引表内,根据当前会话索引的下标查找到具有相同下标的数组单元,判断当前数组单元是否为空,如果是,执行步骤B3;否则,执行步骤B2;
B2、判断当前数组单元内的会话索引的序列号是否与当前获得的会话索引的序列号相同,如果是,则获得当前数组单元内指向加速信息的指针,根据指针获得对应的加速信息,并利用所述加速信息处理当前报文;否则,执行步骤B3;
B3、按照当前正常处理流程处理完报文之后,根据当前报文处理流程获得、并在报文加速表记录与当前报文会话索引对应的加速信息。
7、一种快速处理报文的装置,其特征在于,该装置至少包括,会话识别单元和快速处理单元;其中,
会话识别单元,用于根据报文的会话信息获取所述报文的会话索引;
快速处理单元,用于根据会话识别单元获取的会话索引,获得对应的加速信息,根据加速信息处理当前报文。
8、根据权利要求7所述的装置,其特征在于,进一步包括报文处理单元;
所述快速处理单元,用于在没有获得与所述会话索引对应的加速信息时,指示报文处理单元按照正常处理流程处理报文;并接收报文处理单元在正常处理报文之后发送的加速信息,建立报文会话索引与加速信息之间的对应关系;
所述报文处理单元,用于根据快速处理单元的指示按照正常处理流程处理报文,获得报文的加速信息并发送给快速处理单元。
9、根据权利要求7所述的装置,其特征在于,进一步包括报文处理单元;所述报文处理单元包括多个子处理单元;所述快速处理单元,包括分别与各支持快速处理的子处理单元对应的子快速处理单元;其中,
子快速处理单元,用于根据会话识别单元获取的会话索引,获得与自身对应的子处理单元对应的加速信息,根据所述加速信息处理报文。
10、根据权利要求9所述的装置,其特征在于,
所述子快速处理单元,用于在没有获得与自身对应的子处理单元对应的加速信息时,指示自身对应的子处理单元按照正常子处理流程处理报文;并接收自身对应的子处理单元在正常处理报文之后发送的加速信息,建立报文会话索引与加速信息之间的对应关系;
所述支持快速处理的子处理单元,用于根据自身对应的子快速处理单元的指示,按照正常子处理流程处理报文;并在处理完之后,获得报文与自身流程对应的加速信息,发送给对应的子处理单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101401936A CN1946061B (zh) | 2006-10-12 | 2006-10-12 | 一种快速处理报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101401936A CN1946061B (zh) | 2006-10-12 | 2006-10-12 | 一种快速处理报文的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1946061A true CN1946061A (zh) | 2007-04-11 |
CN1946061B CN1946061B (zh) | 2010-07-28 |
Family
ID=38045279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101401936A Active CN1946061B (zh) | 2006-10-12 | 2006-10-12 | 一种快速处理报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1946061B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664816A (zh) * | 2012-05-30 | 2012-09-12 | 迈普通信技术股份有限公司 | 一种快速查找mpls转发表的装置及方法 |
CN103095665A (zh) * | 2011-11-07 | 2013-05-08 | 中兴通讯股份有限公司 | 一种提升防火墙处理性能的方法和装置 |
CN105681194A (zh) * | 2016-03-14 | 2016-06-15 | 上海市共进通信技术有限公司 | 实现网关设备二层数据包快速转发的方法 |
CN112202675A (zh) * | 2020-10-10 | 2021-01-08 | 四川天邑康和通信股份有限公司 | 一种基于linux内核解析DNS实现使用域名访问路由器的方法 |
CN112565091A (zh) * | 2020-11-18 | 2021-03-26 | 普联国际有限公司 | 一种报文转发方法、装置、存储介质及终端设备 |
CN112671563A (zh) * | 2020-12-15 | 2021-04-16 | 盛科网络(苏州)有限公司 | 一种提高匀速发包周期精度的方法、装置和系统 |
CN112737914A (zh) * | 2020-12-28 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、网络设备及可读存储介质 |
CN112822309A (zh) * | 2021-04-19 | 2021-05-18 | 北京视界云天科技有限公司 | 域名解析方法及装置 |
CN114024887A (zh) * | 2021-11-10 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 转发表项的处理方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1233133C (zh) * | 2002-06-19 | 2005-12-21 | 华为技术有限公司 | 一种提高ip报文转发速度的方法 |
-
2006
- 2006-10-12 CN CN2006101401936A patent/CN1946061B/zh active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095665A (zh) * | 2011-11-07 | 2013-05-08 | 中兴通讯股份有限公司 | 一种提升防火墙处理性能的方法和装置 |
CN102664816A (zh) * | 2012-05-30 | 2012-09-12 | 迈普通信技术股份有限公司 | 一种快速查找mpls转发表的装置及方法 |
CN102664816B (zh) * | 2012-05-30 | 2015-08-19 | 迈普通信技术股份有限公司 | 一种快速查找mpls转发表的装置及方法 |
CN105681194A (zh) * | 2016-03-14 | 2016-06-15 | 上海市共进通信技术有限公司 | 实现网关设备二层数据包快速转发的方法 |
CN112202675A (zh) * | 2020-10-10 | 2021-01-08 | 四川天邑康和通信股份有限公司 | 一种基于linux内核解析DNS实现使用域名访问路由器的方法 |
CN112565091A (zh) * | 2020-11-18 | 2021-03-26 | 普联国际有限公司 | 一种报文转发方法、装置、存储介质及终端设备 |
CN112671563A (zh) * | 2020-12-15 | 2021-04-16 | 盛科网络(苏州)有限公司 | 一种提高匀速发包周期精度的方法、装置和系统 |
CN112737914A (zh) * | 2020-12-28 | 2021-04-30 | 北京天融信网络安全技术有限公司 | 报文处理方法、装置、网络设备及可读存储介质 |
CN112822309A (zh) * | 2021-04-19 | 2021-05-18 | 北京视界云天科技有限公司 | 域名解析方法及装置 |
CN112822309B (zh) * | 2021-04-19 | 2021-07-16 | 北京视界云天科技有限公司 | 域名解析方法及装置 |
CN114024887A (zh) * | 2021-11-10 | 2022-02-08 | 北京天融信网络安全技术有限公司 | 转发表项的处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN1946061B (zh) | 2010-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1946061A (zh) | 一种快速处理报文的方法及装置 | |
CN1921457A (zh) | 一种网络设备和基于多核处理器的报文转发方法 | |
CN1929472A (zh) | 数据网络中管理数据传输的方法、系统、信号及介质 | |
CN1838636A (zh) | 用于使数据包穿越网络地址转换装置的方法和装置 | |
CN101069170A (zh) | 数据包队列、调度和排序 | |
EP3404533B1 (en) | Method and apparatus for data processing based on multicore | |
CN1620010A (zh) | Vlan服务器 | |
CN1302643C (zh) | 测试网络设备传输性能的装置及其方法 | |
CN1849587A (zh) | 共享处理器和网络接口的多个操作系统 | |
CN1501659A (zh) | 通信装置、边界路由器装置、服务器装置、通信系统和通信方法 | |
CN1855926A (zh) | 实现dhcp地址安全分配的方法及系统 | |
CN1722729A (zh) | 用于在异构网络之间通信的系统和方法 | |
CN1946041A (zh) | 基于arp侦听的vlan聚合方法、汇聚交换机及系统 | |
CN1856163A (zh) | 一种具有会话边界控制器的通信系统及其传输信令的方法 | |
CN1725761A (zh) | 网络设备实现链路聚合的方法 | |
CN1925452A (zh) | 数据转发系统、方法以及网络转发设备 | |
CN1503474A (zh) | 无线接入网络系统、无线接入方法、及控制设备 | |
CN1870568A (zh) | 实现网络地址转换/防火墙穿越的方法 | |
CN1545275A (zh) | 基于Netfilter架构的流媒体集群服务内容调度方法 | |
CN1547722A (zh) | 协调网络事件的装置和方法 | |
CN1595935A (zh) | 支持故障切换事件的网络状态对象的多个卸载 | |
CN1863154A (zh) | 对点对点应用进行限流的方法 | |
CN1567187A (zh) | 数据处理系统及方法 | |
CN1863202A (zh) | 提高负载均衡设备和服务器处理性能的方法 | |
CN1510960A (zh) | 无线接入网络系统、无线通信方法、控制服务器及数据服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |