流处理方法、流处理装置、路由器及流处理系统的制作方法

文档序号:7866870阅读:314来源:国知局
专利名称:流处理方法、流处理装置、路由器及流处理系统的制作方法
技术领域
本发明涉及通信技术,尤其涉及一种流处理方法、流处理装置、路由器及流处理系统。
背景技术
因特网协议(Internet Protocol, IP)网络中,路由器之间通过动态协商或静态指定的方式,学习到整个网络的拓扑信息,从而将数据包从源网段逐跳转发到目的网段,将不同的网段互联起来。此外,路由器还要对数据包进行各种控制,比如进行安全检查,丢弃非法的数据包;再如区分数据包的优先级,在带宽、时延等方面提供有差别的服务等。 路由器对数据包进行转发和各种控制,需要在系统的内存中建立起路由表和各种控制策略表等数据表,对过往的数据包,路由器在这些数据表中进行相应查询。路由器的处理性能很大部分消耗在查询这些数据表上。路由器处理数据包的传统方式是逐包处理,对每个数据包独立进行转发和各种控制,因此,在控制策略复杂、数量众多的情况下,处理性能下降厉害。基于流的处理方式能够很好地解决逐包处理方式的弊端。其中,流是具有相同特性的一系列数据包。流处理方式的前提是,属于同一条流的所有数据包遵循相同的处理行为。这样路由器只需要对一条流的第一个数据包进行路由表和各种控制策略表的查找,并把结果记录下来,该条流后续的数据包(首先要通过五元组等特征信息识别后续接收到的数据包是否是该条流后续的数据包)直接用该结果进行处理,大大提升了性能。流处理的关键是流表,流表中记录了所有流的特征信息和路由表、各种控制策略表查找的结果信息。其中,流的特征信息是用来区分流的,为了使同一条流的所有数据包遵循相同的处理行为,流的特征定义必须足够的细,通常包括数据包的输入网络接口、源介质访问控制(Media Access Control, MAC)地址、目的MAC地址、源IP地址、目的IP地址、IP协议、IP服务类型、传输控制协议(Transmission Control Protocol, TCP) /用户数据报协议(User Datagram Protocol,UDP)源和目的端口号等。流表中的流是动态变化的,每条流在它的第一个数据包到来时创建,在每个后续数据包到来时更新,在超过一段时间没有数据包到来时撤销。流表存储在系统内存中,是一个巨大的数据表,其包含的流数量可达到几百万甚至上千万的规模。具备这种流处理机制的路由器称为流路由器(Flow Router),因此,流路由器需要是高性能的路由器。目前,高性能路由器多采用分布式架构,包括主控卡、交换矩阵以及一系列的线卡。交换矩阵负责将主控卡、各线卡互联起来,提供高速的内部数据通路。主控卡负责建立和维护路由表及各种控制策略表,并把它们同步到线卡的内存中。各线卡独立且并行地进行数据包的转发和各种控制处理。分布式路由器大大提高了处理能力和端口密度,并具有良好的可扩展性。分布式路由器中的主控卡和线卡都是一个个独立的子系统,具有独立的CPU、内存和总线,相互之间不能直接进行访问。当一条流从一线卡进入,从另一线卡发出时,就面临着一条流跨两张线卡(两个子系统)的问题,此时如何建立流表,如何进行流转发和各种控制,是分布式路由器面临的一个重要问题。类似地,对于一条流经过多个路由器时,每个路由器除对该条流的首数据包进行识别,还需要根据数据包的五元组等特征信息对该条流的后续数据包进行识别,使得流处理的速度得不到进一步提升。

发明内容
本发明提供一种流处理方法、流处理装置、路由器及流处理系统,用于提高通信网络中流的处理速度。本发明的第一个方面是提供一种流处理方法,包括接收流的首数据包; 为所述流分配第一标识,所述第一标识为所述流在本地转发设备中的本地标识;将所述首数据包及所述第一标识发到下游转发设备;接收所述下游转发设备返回的第二标识及所述第一标识,并绑定所述第一标识及第二标识,所述第二标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联;接收后续数据包;在所述后续数据包属于所述流的情况下,根据所述第一标识及第二标识的绑定关系,将所述后续数据包及所述第二标识发送给所述下游转发设备,以使所述下游转发设备根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。本发明的第二个方面是提供一种流处理方法,包括接收流的首数据包及第一标识,所述第一标识为所述流在上游转发设备中的本地标识;为所述流分配第二标识,所述第二标识为所述流在本地转发设备中的本地标识;将所述第二标识与所述流在本地转发设备中的流表项相关联;将所述第一标识及第二标识发送给所述上游转发设备;接收所述流的后续数据包及所述第二标识;根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。本发明的第三个方面是提供一种流处理装置,包括数据包接收单元,用于接收流的首数据包;标识分配单元,用于为所述流分配第一标识,所述第一标识为所述流在本地转发设备中的本地标识;数据包发送单元,用于将所述首数据包及所述第一标识发到下游转发设备;标识接收单元,用于接收所述下游转发设备返回的第二标识及所述第一标识,并绑定所述第一标识及第二标识,所述第二标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联;
所述数据包接收单元,还用于接收后续数据包;所述数据包发送单元,还用于在所述后续数据包属于所述流的情况下,根据所述第一标识及第二标识的绑定关系,将所述后续数据包及所述第二标识发送给所述下游转发设备,以使所述下游转发设备根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。本发明的第四个方面是提供一种流处理装置,包括数据包接收单元,用于接收流的首数据包及第一标识,所述第一标识为所述流在上游转发设备中的本地标识;标识分配单元,用于为所述流分配第二标识,所述第二标识为所述流在本地转发 设备中的本地标识;关联单元,用于将所述第二标识与所述流在本地转发设备中的流表项相关联;标识发送单元,用于将所述第一标识及第二标识发送给所述上游转发设备;所述数据包接收单元,还用于接收所述流的后续数据包及所述第二标识;数据包处理单元,用于根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。本发明的第五个方面是提供一种分布式路由器,包括上述两种流处理装置。本发明的第六个方面是提供一种流处理系统,包括上述两种流处理装置。本发明提供的流处理方法、流处理装置、路由器及流处理系统,通过在接收到流的首数据包后为流分配本地标识,并将该流经过的转发设备的本地标识之间进行绑定,在该流的后续数据包到达后只需在入口转发设备进行识别,并将后续数据包与所属流在下游转发设备中的本地标识发送给下游转发设备,使得下游转发设备根据本地标识直接索引到对应的流表项,而无需对该流的后续数据包再次进行识别,降低了转发设备处理流的复杂度,提高了流在转发设备中的处理效率。


图I为本发明实施例提供的一种流处理方法的流程图;图2为本发明实施例提供的另一种流处理方法的流程图;图3为本发明实施例提供的流处理方法中对流的首数据包的处理流程图;图4为本发明实施例提供的流处理方法中对流的后续数据包的处理流程图;图5为本发明实施例提供的流处理方法中解除绑定的流程图;图6为本发明实施例提供的流处理方法应用到路由器的示意图;图7为本发明实施例提供的一种流处理装置的结构示意图;图8为本发明实施例提供的另一种流处理装置的结构示意图;图9为本发明实施例提供的一种分布式路由器的结构示意图。
具体实施例方式图I为本发明实施例提供的一种流处理方法的流程图。本实施例所示的方法为流的入口转发设备的处理流程。假设一条流要经过网络转发,那么该入口转发设备可以是网络中第一个对该条流进行转发处理的路由器等转发设备。或者假设一条流要经过一个分布式路由器,那么分布式路由器中第一个对该条流进行转发处理的线卡便是入口转发设备。如图I所示,该流程包括步骤11、接收流的首数据包。例如,路由器、分布式路由器中的线卡等转发设备接收流的首数据包。当然转发设备接收到一个数据包后,并不知道该数据包是一条流的首数据包,需要识别才能知道接收的是某一条流的首数据包。步骤12、为上述流分配第一标识,该第一标识为该流在本地转发设备中的本地标识。例如,转发设备接收一个数据包后,通过五元组等特征信息识别到该数据包属于某一条流,且该数据包为该流的首数据包后,在本地建立该流的流表项,并为该流分配本地 标识。步骤13、将上述首数据包及上述第一标识发到下游转发设备。例如接收流的首数据包的转发设备,根据该首数据包中的目标地址将上述首数据包及上述第一标识发到下游转发设备。该下游转发设备在该流的数据包转发路径中与接收流的首数据包的转发设备相邻。步骤14、接收上述下游转发设备返回的第二标识及上述第一标识,并绑定该第一标识及第二标识,该第二标识为上述流在该下游转发设备中的本地标识,且与该流在该下游转发设备中的流表项相关联。例如接收首数据包的本地转发设备接收上述下游转发设备返回的第二标识及上述第一标识,并绑定该第一标识及第二标识。这样,本地转发设备接收到该流的后续数据包后,根据二者的绑定关系将该流的后续数据包及第二标识发送到下游转发设备后,下游转发设备便可以根据第二标识直接索引到该流的流表项,而无需对接收到的该流的后续数据包进行识别。步骤15、接收后续数据包。例如,上述本地转发设备接收后续数据包。当然本地转发设备需要对接收到的数据包进行识别,才能获知接收到的数据包是否属于上述流。步骤16、在上述后续数据包属于上述流的情况下,根据上述第一标识及第二标识的绑定关系,将该后续数据包及该第二标识发送给上述下游转发设备,以使该下游转发设备根据该第二标识直接索引到该流的流表项,并根据该流表项对该后续数据包进行处理。例如,当上述本地转发设备识别上述步骤15中接收到的后续数据包属于上述流时,由于该流在本地转发设备中的标识为第一标识,因此,根据第一标识及第二标识的绑定关系,便可获知该后续数据包所属的流在下游转发设备中的标识为第二标识,于是将第二标识及该后续数据包一起发送给下游转发设备,这样,下游转发设备便可根据与后续数据包一起发送过来的第二标识直接索引到该后续数据包的流表项,而无需再对该后续数据包进行识别。本实施例提供的技术方案通过在接收到流的首数据包后为流分配本地标识,并将该流经过的转发设备的本地标识之间进行绑定,在该流的后续数据包到达后只需在入口转发设备进行识别,并将后续数据包与所属流在下游转发设备中的本地标识发送给下游转发设备,使得下游转发设备根据本地标识直接索引到对应的流表项,而无需对该流的后续数据包再次进行识别,降低了转发设备处理流的复杂度,提高了流在转发设备中的处理效率。当上述本地转发设备在很长时间内未收到上述流或上述流已经结束,将上述后续数据包及上述第二标识发送给上述下游转发设备之后,还包括向上述下游转发设备发送第一解除消息,以使该下游转发设备删除上述流在该下游转发设备中的流表项;该第一解除消息中携带有上述第二标识。例如上述本地转发设备向上述下游转发设备发送上述第一解除消息,以使该下游转发设备删除上述流在该下游转发设备中的流表项,以及时更新下游转发设备中的流表,并删除该下游转发设备为该流分配的本地标识,以便于该下游转发设备为下一条流或别的流分配本地标识,减少因分配标识过多,不好再为别的流分配本地标识的问题。删除上述流在本地转发设备中的流表项也可由下游转发设备发起,例如上述本地转发设备将上述后续数据包及上述第二标识发送给上述下游转发设备之后,还包括 接收该下游转发设备发送的第二解除消息,该第二解除消息中携带有上述第一标识;根据该第一标识索引到上述流在该本地转发设备中的流表项;根据该第二解除消息删除该流在该本地转发设备中的流表项。图2为本发明实施例提供的另一种流处理方法的流程图。与图I所示实施例相对应,本实施例所示的方法为一条流的下游转发设备的处理流程。如图2所示,该流程包括步骤21、接收流的首数据包及第一标识,该第一标识为该流在上游转发设备中的本地标识。例如,本地转发设备接收入口转发设备发送的首数据包及第一标识。其中,本地转发设备可为图I所示实施例中入口转发设备的下游转发设备。步骤22、为上述流分配第二标识,该第二标识为该流在本地转发设备中的本地标识。例如,本地转发设备接收到首数据包后,当查询到第一标识在本地没有记载时,识别该首数据包所属的流,为该流创建流表项,并分配第二标识。步骤23、将上述第二标识与上述流在本地转发设备中的流表项相关联。例如,本地转发设备将上述第二标识与上述流在本地转发设备中的流表项相关联,这样,当本地转发设备接收到该流的后续数据包后,无需进行识别,只需根据第二标识,便可直接索引到所属流的流表项。步骤24、将上述第一标识及第二标识发送给上述上游转发设备。例如,本地转发设备将上述第一标识及第二标识发送给上述上游转发设备,以使上游转发设备获知上述流在下游转发设备中的本地标识,从而在上游转发设备接收到该流的后续数据包后,将该流的后续数据包及第二标识一并发给该本地转发设备,从而使得该本地转发设备根据与该后续数据包一并发来的第二标识,直接索引到对应流的流表项,而无需该本地转发设备对该流的后续数据包进行识别。步骤25、接收上述流的后续数据包及上述第二标识。例如,上述本地转发设备接收上游转发设备发送的后续数据包及上述第二标识,根据该第二标识,该本地转发设备便可直接获知该后续数据包所属的流,并根据将该第二标识与上述流在本地转发设备中的流表项的关联关系,直接索引到流表项。步骤26、根据上述第二标识直接索引到上述流的流表项,并根据该流表项对上述后续数据包进行处理。例如,本地转发设备根据上述第二标识直接索引到上述流的流表项,并根据该流表项对上述后续数据包进行处理。本实施例提供的技术方案通过在接收到流的首数据包后为流分配本地标识,并将该流经过的转发设备的本地标识发送给上游转发设备,使得在该流的后续数据包到达后只需在入口转发设备进行识别,并将后续数据包与所属流在下游转发设备中的本地标识发送给下游转发设备,这样,下游转发设备根据本地标识便可直接索引到对应的流表项,而无需对该流的后续数据包再次进行识别,降低了转发设备处理流的复杂度,提高了流在转发设备中的处理效率。
当一条流经过图2所示实施例中的本地转发设备(为便于描述,下面称之为第一下游转发设备)之后还要进入另一个转发设备(为便于描述,下面称之为第二下游转发设备)进行转发处理时,第一下游转发设备将所述第一标识及第二标识发送给上述上游转发设备(如图I所示实施例中的入口转发设备)之后,还包括将上述首数据包及上述第二标识发送给下游转发设备(即第二下游转发设备);接收该下游转发设备(即第二下游转发设备)发送的第三标识及上述第二标识,并绑定该第二标识与所述第三标识;该第三标识为上述流在该下游转发设备(即第二下游转发设备)中的本地标识,且与该流在该下游转发设备(即第二下游转发设备)中的流表项相关联。相应地,第一下游转发设备根据上述第二标识直接索引到上述流的流表项,并根据该流表项对上述后续数据包进行处理之后,还包括根据该第二标识与上述第三标识的绑定关系,将该后续数据包及该第三标识发送给上述下游转发设备(即第二下游转发设备),以使该下游转发设备(即第二下游转发设备)根据该第三标识直接索引到该流的流表项,并根据该流表项对该后续数据包进行处理。当上述流完成在网络中的转发,或者入口转发设备因长时间收不到上述流的数据包,而下发第一解除消息时,第一下游转发设备根据上述第二标识直接索引到上述流的流表项,并根据该流表项对上述后续数据包进行处理之后,还包括接收上述上游转发设备(如入口转发设备)发送的第一解除消息,该第一解除消息中携带有上述第二标识;根据该第二标识索引到上述流在本地转发设备(即第一下游转发设备)中的流表项;根据该第一解除消息删除该流在本地转发设备(即第一下游转发设备)中的流表项。当上述流还要经过第二下游转发设备的转发处理时,第一下游转发设备接收上述上游转发设备发送的第一解除消息之后,还包括向上述下游转发设备(即第二下游转发设备)发送第三解除消息,以使该下游转发设备(即第二下游转发设备)删除上述流在该下游转发设备(即第二下游转发设备)中的流表项;该第三解除消息中携带有上述第三标识。
或者,解除由下游转发设备发起,解除过程上述方法类似,只不过方向相反。例如,第一下游转发设备根据上述第二标识直接索引到上述流的流表项,并根据该流表项对上述后续数据包进行处理之后,还包括向上述上游转发设备发送第二解除消息,以使该上游转发设备删除上述流在该上游转发设备中的流表项;该第二解除消息中携带有上述第一标识。当上述流还要经过第二下游转发设备的转发处理时,第一下游转发设备向上述上游转发设备发送第二解除消息之前,还包括接收上述下游转发设备(即第二下游转发设备)发送的第四解除消息,该第四解除消息中携带有所述第二标识;根据该第二标识索引到上述流在上述本地转发设备(及第一下游转发设备)中的 流表项;根据该第四解除消息删除该流在该本地转发设备(及第一下游转发设备)中的流表项。下面以一条流经过一台分布式路由器中的线卡LCl和线卡LC2为例,对流处理方法做进一步详细说明。如图3所示,分布式路由器线卡之间流路径的建立的关键在于流ID的分配和交换。首先,每张线卡为每条流在其首数据包到来时,创建流并分配一个本地流ID(Local ID),用于索引本地的流表。然后,在线卡之间交换本地流ID,从而获得对端流ID(Remote ID)。具体处理逻辑如图3所示,流的方向是从上游线卡LCl发往下游线卡LC2,处理步骤包括步骤31、流的首数据包到达上游线卡LC1,上游线卡LCl经过流识别,发现是未知流,进行创建。在创建的同时为该条流分配本地标识(Local ID)为LCl. ID,并将该条流在对端线卡上的远端标识(Remote ID)记为O。因为此时上游线卡LCl还不知道该条流在下游线卡LC2上的本地标识(Local ID)。并将Local ID与Remote ID绑定,得到绑定消息〈0,LCl. ID〉。步骤32、上游线卡LCl将流的首数据包及绑定消息〈0,LCl. ID>—同传递给下游线卡 LC2。步骤33、流的首数据包到达下游线卡LC2,下游线卡LC2经过流识别,发现是未知流,进行创建。在创建的同时为该条流分配Local ID (LC2. ID),并从一同收到的绑定消息中获得Remote ID (即LCl. ID),于是下游线卡LC2将LCl. ID和LC2. ID绑定,得到绑定消息 <LC1. ID, LC2. ID>,完成了该条流的关联<Local ID=LC2. ID, Remote ID=LCl. ID〉。步骤34、下游线卡LC2将绑定消息〈LC1. ID, LC2. ID>发送给上游线卡LC1。步骤35、上游线卡LCl在收到此绑定消息〈LC1. ID, LC2. ID>后,根据本地标识LCl. ID从本地流表中索引到对应的流,记录下该条流的远端标识LC2. ID,从而也完成流的关联<Local ID=LCl. ID, Remote ID=LC2. ID〉。至此,上游线卡LCl和下游线卡LC2之间的流路径建立。流的后续数据包从上游线卡LCl发往下游线卡LC2时,上游线卡LCl将远端标识LC2. ID随数据包一同发给下游线卡LC2,下游线卡LC2根据接收到的远端标识LC2. ID直接从本地流表中索引到对应流,不再进行流识别操作。该条流的后续数据包到达上游线卡LCl后,处理过程如图4所示,包括步骤41、流的后续数据包到达上游线卡LC1,上游线卡LCl经过流识别,发现是已知流,在完成本线卡的处理后,将该后续数据包连同远端标识LC2. ID发送给下游线卡LC2。步骤42、流的后续数据包到达下游线卡LC2,下游线卡LC2不需要进行流识别,直接根据随数据包收到的LC2. ID,从本地流表中索引到对应的流表项,完成本线卡的相关处理。当上游线卡LCl或下游线卡LC2要撤销某条流时,发送绑定解除消息给对端(下游线卡LC2或上游线卡LC1),对端解除关联并撤销流,如图5所示
步骤51、当上游线卡LCl撤销流时,上游线卡LCl向下游线卡LC2发送绑定解除消息,用来解除与下游线卡LC2之间的绑定关系。该绑定解除消息中携带〈LC2. ID, LCl. ID〉。步骤52、下游线卡LC2收到绑定解除消息后,根据绑定解除消息中的标识LC2. ID从本地流表中索引到对应的流表项,解除关联,并删除索引到的流表项。步骤53、删除流表项并解除关联后,下游线卡LC2还可返回绑定解除消息,以告知上游线卡LC1。该绑定解除消息中可携带〈LC1. ID, LC2. ID〉。上述步骤5广步骤53中,流的撤销是由上游线卡LCl主动发起。反过来,流的撤销也可以是下游线卡LC2主动发起的,其过程与线卡LCl主动发起类似当下游线卡LC2撤销流时,下游线卡LC2向上游线卡LCl发送绑定解除消息,用来解除与上游线卡LCl之间的绑定关系。该绑定解除消息中携带〈LC1. ID, LC2. ID〉。上游线卡LCl收到绑定解除消息后,根据绑定解除消息中的标识LCl. ID从本地流表中索引到对应的流表项,解除关联,并删除索引到的流表项。删除流表项并解除关联后,上游线卡LCl还可返回绑定解除消息,以告知下游线卡LC2。该绑定解除消息中可携带〈LC2. ID, LCl. ID〉。当分布式路由器中,上述流在经过下游线卡LC2后还要经过下游线卡LC3时,则上述首数据包到达下游线卡LC2后,下游线卡LC2除了执行图4所示的操作,下游线卡LC2还要执行类似图3中上游线卡LCl的操作,即,下游线卡LC2还要向下游线卡LC3发送该首数据包及绑定消息〈0,LC2. ID>,然后,下游线卡LC3执行类似图3中下游线卡LC2的操作,为该条流分配本地标识LC3. ID,并与接收到的标识LC2. ID绑定,得到绑定消息〈LC2. ID, LC3.ID>,将绑定消息〈LC2. ID, LC3. ID>发送给下游线卡LC2,下游线卡LC2完成该条流的另一个关联〈Local ID=LC2. ID, Remote ID=LC3. ID〉。该条流的后续数据包到达下游线卡LC3时,LC3根据与后续数据包一起发来的流标识LC3. ID在本地流表中索引到对应的流表项,得到该后续数据包属于已知流,无需进行识别,完成本线卡的相关处理,具体可如图4中下游线卡LC2的操作。解除绑定时,下游线卡LC2解除与上游线卡LCl之间的关联后,下游线卡LC2还进一步发送解除绑定消息给下游线卡LC3,解除与下游线卡LC3之间的关联,方法与图5所示的上游线卡LCl与下游线卡LC2之间解除绑定的方法类似,将上游线卡LCl替换为下游线卡LC2,下游线卡LC2替换为下游线卡LC3即可。需要说明的是,上游线卡和下游线卡的上下游是相对的,如下游线卡LC2相对于上游线卡LCl为下游线卡,相对于下游线卡LC3则为上游线卡。
在分布式路由器中,上述流经过下游线卡LC3还要经过更多的线卡时,各线卡之间建立关联、处理该条流后续数据包及解除关联或绑定的方法与上述实施例所示的方法类似,依次往后关联、处理、解除等等,这里不再赘述。本发明实施例所描述的分布式路由器中两张线卡之间流路径建立的机制,可以推广到两台或多台路由器设备之间,在整个网络中建立起流路径,只需要在入口的路由器进行流识别,下游的路由器无需流识别,从而提升整个网络对数据包的处理性能。下面以图6所示路由器R1、路由器R2及路由器R3为例对流处理方法进行说明。如图6所示,当一条流的首数据包到达路由器Rl后,路由器Rl与路由器R2之间关联,建立流路径〈Local ID R1. ID,Remote ID R2. ID〉。关联方法类似上述实施例中上游线卡LCl与下游线卡LC2之间的关联,只需将上游线卡LCl替换为路由器R1,下游线卡LC2替换为路由器R2即可。
之后,路由器R2与路由器R3之间关联,与上述实施例中上游线卡LCl与下游线卡LC2之间的关联方法类似,只需将上游线卡LCl替换为路由器R2,下游线卡LC2替换为路由器R3即可。当该条流的后续数据包到达路由器Rl时,路由器Rl经过流识别,发现是已知流,在完成本路由器的处理后,将该后续数据包连同远端标识R2. ID发送给路由器R2。路由器R2不需要对该后续数据包进行流识别,直接根据随数据包收到的标识R2. ID,从本地流表中索引到对应的流,完成本路由器的相关处理。完成处理后,将该后续数据包连同下游的标识R3. ID发送给路由器R3。路由器R3收到数据包及标识后,也不需要对该后续数据包,直接根据标识索引到对应的流表项,完成本地处理。本领域普通技术人员可以理解实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图7为本发明实施例提供的一种流处理装置的结构示意图。本实施例提供的流处理装置用于实现图I所示的方法,如图7所示,该装置包括数据包接收单元71、标识分配单元72、数据包发送单元73及标识接收单元74。数据包接收单元71用于接收流的首数据包;标识分配单元72用于为所述流分配第一标识,所述第一标识为所述流在本地转发设备中的本地标识;数据包发送单元73用于将所述首数据包及所述第一标识发到下游转发设备;标识接收单元74用于接收所述下游转发设备返回的第二标识及所述第一标识,并绑定所述第一标识及第二标识,所述第二标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联。所述数据包接收单元71还用于接收后续数据包;所述数据包发送单元73还用于在所述后续数据包属于所述流的情况下,根据所述第一标识及第二标识的绑定关系,将所述后续数据包及所述第二标识发送给所述下游转发设备,以使所述下游转发设备根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。可选地,本发明实施例提供的流处理装置还包括解除单元75,用于在所述数据包发送单元将所述后续数据包及所述第二标识发送给所述下游转发设备之后,向所述下游转发设备发送第一解除消息,以使所述下游转发设备删除所述流在所述下游转发设备中的流表项;所述第一解除消息中携带有所述第二标识。可选地,本发明实施例提供的流处理装置还包括解除接收单元76、表项索引单元77及表项删除单元78。解除接收单元76用于在所述将数据包发送单元73发送所述后续数据包及所述第二标识发送给所述下游转发设备之后,接收所述下游转发设备发送的第二解除消息,所述第二解除消息中携带有所述第一标识;表项索引单元77用于根据所述第一标识索引到所述流在所述本地转发设备中的流表项;表项删除单元78用于根据所述第二解除消息删除所述流在所述本地转发设备中的流表项。 本实施例提供的流处理装置通过标识分配单元在数据包接收单元接收到流的首数据包后为流分配本地标识,并通过标识接收单元将该流经过的转发设备的本地标识之间进行绑定,在该流的后续数据包到达后只需在入口转发设备进行识别,并通过数据包发送单元将后续数据包与所属流在下游转发设备中的本地标识发送给下游转发设备,使得下游转发设备根据本地标识直接索引到对应的流表项,而无需对该流的后续数据包再次进行识另IJ,降低了转发设备处理流的复杂度,提高了流在转发设备中的处理效率。图8为本发明实施例提供的另一种流处理装置的结构示意图。本实施例提供的流处理装置用于实现图2所示的方法,如图8所示,该装置包括数据包接收单元81、标识分配单元82、关联单元83、标识发送单元84及数据包处理单元85。数据包接收单元81用于接收流的首数据包及第一标识,所述第一标识为所述流在上游转发设备中的本地标识;标识分配单元82用于为所述流分配第二标识,所述第二标识为所述流在本地转发设备中的本地标识;关联单元83用于将所述第二标识与所述流在本地转发设备中的流表项相关联;标识发送单元84用于将所述第一标识及第二标识发送给所述上游转发设备;所述数据包接收单元81还用于接收所述流的后续数据包及所述第二标识;数据包处理单元85用于根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。可选地,本发明实施例提供的流处理装置还包括数据包发送单元86及标识接收单元87。数据包发送单元86用于在所述标识发送单元84将所述第一标识及第二标识发送给所述上游转发设备之后,将所述首数据包及所述第二标识发送给下游转发设备;标识接收单元87用于接收所述下游转发设备发送的第三标识及所述第二标识,并绑定所述第二标识与所述第三标识;所述第三标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联。可选地,所述数据包发送单元86还用于在所述数据包处理单元85根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,根据所述第二标识与所述第三标识的绑定关系,将所述后续数据包及所述第三标识发送给所述下游转发设备,以使所述下游转发设备根据所述第三标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
可选地,本发明实施例提供的流处理装置还包括解除接收单元88、表项索引单元89及表项删除单元810。 解除接收单元88用于在所述数据包处理单元85根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,接收所述上游转发设备发送的第一解除消息,所述第一解除消息中携带有所述第二标识;表项索引单元89用于根据所述第二标识索引到所述流在所述本地转发设备中的流表项;表项删除单元810用于根据所述第一解除消息删除所述流在所述本地转发设备中的流表项。
如还存在上述第二下游转发设备对上述流进行转发处理,则本发明实施例提供的流处理装置还包括解除发送单元811,用于在所述解除接收单元88接收所述上游转发设备发送的第一解除消息之后,向所述下游转发设备发送第三解除消息,以使所述下游转发设备删除所述流在所述下游转发设备中的流表项;所述第三解除消息中携带有所述第三标识。或者解除接收单元88用于在所述数据包处理单元85根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,接收所述下游转发设备发送的第四解除消息,所述第四解除消息中携带有所述第二标识;表项索引单元89用于根据所述第二标识索引到所述流在所述本地转发设备中的流表项;表项删除单元810用于根据所述第四解除消息删除所述流在所述本地转发设备中的流表项。解除发送单元811用于在所述解除接收单元88接收所述上游转发设备发送的第四解除消息之后,向所述上游转发设备发送第二解除消息,以使所述上游转发设备删除所述流在所述上游转发设备中的流表项;所述第二解除消息中携带有所述第一标识。可选地,本发明实施例提供的流处理装置还包括解除单元812,用于在所述数据包处理单元85根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,向所述上游转发设备发送第二解除消息,以使所述上游转发设备删除所述流在所述上游转发设备中的流表项;所述第二解除消息中携带有所述第一标识。本实施例提供的流处理装置通过标识分配单元在数据包接收单元接收到流的首数据包后为流分配本地标识,并通过标识发送单元将该流经过的转发设备的本地标识发送给上游转发设备,使得在该流的后续数据包到达后只需在入口转发设备进行识别,并将后续数据包与所属流在下游转发设备中的本地标识发送给下游转发设备,这样,下游转发设备根据本地标识便可直接索引到对应的流表项,而无需对该流的后续数据包再次进行识另O,降低了转发设备处理流的复杂度,提高了流在转发设备中的处理效率。上述转发设备可为路由器,也可为分布式路由器中的线卡。本发明实施例提供的分布式路由器可包括上述图7所示任意一种流处理装置及图8所示的任意一种流处理装置。本领域技术人员应理解,除此之外,分布式路由器还应包括交换矩阵等基本的功能部件。如图9所示,分布式路由器包括线卡91、交换矩阵92和线卡93。其中,线卡91可为上述图7所示的任意一种流处理装置,线卡93为图8所示的任意一种流处理装置。当一条流的首数据包经过线卡91、线卡93时,线卡91与线卡93均为该流分配本地标识,且线卡93将该流的本地标识通过交换矩阵92发送到线卡91,作为该流在线卡91侧的远端标识。这样,当线卡91接收到该流的后续数据包并进行转发处理后,将该后续数据包与远端标识一并发给线卡93。线卡93接收到数据包及标识后,根据标识直接索引到流表项,然后根据该流表项进行处理,从而避免了线卡93对该流的后续数据包的识别,节约了处理时间,提高了流的转发处理效率。本发明实施例提供的流处理系统可包括上述图7所示任意一种流处理装置及图8所示的任意一种流处理装置。该流处理系统可参见图6,包括路由器R1、路由器R2及路由 器R3,其中,路由器Rl可为图7所示的任意一种流处理装置,路由器R2、路由器R3可为图8所示任意一种流处理装置。最后应说明的是以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
权利要求
1.一种流处理方法,其特征在于,包括 接收流的首数据包; 为所述流分配第一标识,所述第一标识为所述流在本地转发设备中的本地标识; 将所述首数据包及所述第一标识发到下游转发设备; 接收所述下游转发设备返回的第二标识及所述第一标识,并绑定所述第一标识及第二标识,所述第二标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联; 接收后续数据包; 在所述后续数据包属于所述流的情况下,根据所述第一标识及第二标识的绑定关系,将所述后续数据包及所述第二标识发送给所述下游转发设备,以使所述下游转发设备根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
2.根据权利要求I所述方法,其特征在于,将所述后续数据包及所述第二标识发送给所述下游转发设备之后,还包括 向所述下游转发设备发送第一解除消息,以使所述下游转发设备删除所述流在所述下游转发设备中的流表项;所述第一解除消息中携带有所述第二标识。
3.根据权利要求I所述方法,其特征在于,将所述后续数据包及所述第二标识发送给所述下游转发设备之后,还包括 接收所述下游转发设备发送的第二解除消息,所述第二解除消息中携带有所述第一标识; 根据所述第一标识索引到所述流在所述本地转发设备中的流表项; 根据所述第二解除消息删除所述流在所述本地转发设备中的流表项。
4.一种流处理方法,其特征在于,包括 接收流的首数据包及第一标识,所述第一标识为所述流在上游转发设备中的本地标识; 为所述流分配第二标识,所述第二标识为所述流在本地转发设备中的本地标识; 将所述第二标识与所述流在本地转发设备中的流表项相关联; 将所述第一标识及第二标识发送给所述上游转发设备; 接收所述流的后续数据包及所述第二标识; 根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
5.根据权利要求4所述方法,其特征在于,将所述第一标识及第二标识发送给所述上游转发设备之后,还包括 将所述首数据包及所述第二标识发送给下游转发设备; 接收所述下游转发设备发送的第三标识及所述第二标识,并绑定所述第二标识与所述第三标识;所述第三标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联。
6.根据权利要求5所述方法,其特征在于,根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,还包括根据所述第二标识与所述第三标识的绑定关系,将所述后续数据包及所述第三标识发送给所述下游转发设备,以使所述下游转发设备根据所述第三标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
7.根据权利要求4所述方法,其特征在于,根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,还包括 接收所述上游转发设备发送的第一解除消息,所述第一解除消息中携带有所述第二标识; 根据所述第二标识索引到所述流在所述本地转发设备中的流表项; 根据所述第一解除消息删除所述流在所述本地转发设备中的流表项。
8.根据权利要求4所述方法,其特征在于,根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,还包括 向所述上游转发设备发送第二解除消息,以使所述上游转发设备删除所述流在所述上游转发设备中的流表项;所述第二解除消息中携带有所述第一标识。
9.根据权利要求5或6所述方法,其特征在于,根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,还包括 接收所述上游转发设备发送的第一解除消息,所述第一解除消息中携带有所述第二标识; 根据所述第二标识索引到所述流在所述本地转发设备中的流表项; 根据所述第一解除消息删除所述流在所述本地转发设备中的流表项; 向所述下游转发设备发送第三解除消息,以使所述下游转发设备删除所述流在所述下游转发设备中的流表项;所述第三解除消息中携带有所述第三标识。
10.根据权利要求5或6所述方法,其特征在于,根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,还包括 接收所述下游转发设备发送的第四解除消息,所述第四解除消息中携带有所述第二标识; 根据所述第二标识索引到所述流在所述本地转发设备中的流表项; 根据所述第四解除消息删除所述流在所述本地转发设备中的流表项。
11.根据权利要求10所述方法,其特征在于,接收所述下游转发设备发送的第四解除消息之后,还包括 向所述上游转发设备发送第二解除消息,以使所述上游转发设备删除所述流在所述上游转发设备中的流表项;所述第二解除消息中携带有所述第一标识。
12.一种流处理装置,其特征在于,包括 数据包接收单元,用于接收流的首数据包; 标识分配单元,用于为所述流分配第一标识,所述第一标识为所述流在本地转发设备中的本地标识; 数据包发送单元,用于将所述首数据包及所述第一标识发到下游转发设备; 标识接收单元,用于接收所述下游转发设备返回的第二标识及所述第一标识,并绑定所述第一标识及第二标识,所述第二标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联;所述数据包接收单元,还用于接收后续数据包; 所述数据包发送单元,还用于在所述后续数据包属于所述流的情况下,根据所述第一标识及第二标识的绑定关系,将所述后续数据包及所述第二标识发送给所述下游转发设备,以使所述下游转发设备根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
13.根据权利要求12所述装置,其特征在于,还包括 解除单元,用于在所述数据包发送单元将所述后续数据包及所述第二标识发送给所述下游转发设备之后,向所述下游转发设备发送第一解除消息,以使所述下游转发设备删除所述流在所述下游转发设备中的流表项;所述第一解除消息中携带有所述第二标识。
14.根据权利要求12所述装置,其特征在于,还包括 解除接收单元,用于在所述将数据包发送单元所述后续数据包及所述第二标识发送给所述下游转发设备之后,接收所述下游转发设备发送的第二解除消息,所述第二解除消息中携带有所述第一标识; 表项索引单元,用于根据所述第一标识索引到所述流在所述本地转发设备中的流表项; 表项删除单元,用于根据所述第二解除消息删除所述流在所述本地转发设备中的流表项。
15.一种流处理装置,其特征在于,包括 数据包接收单元,用于接收流的首数据包及第一标识,所述第一标识为所述流在上游转发设备中的本地标识; 标识分配单元,用于为所述流分配第二标识,所述第二标识为所述流在本地转发设备中的本地标识; 关联单元,用于将所述第二标识与所述流在本地转发设备中的流表项相关联; 标识发送单元,用于将所述第一标识及第二标识发送给所述上游转发设备; 所述数据包接收单元,还用于接收所述流的后续数据包及所述第二标识; 数据包处理单元,用于根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
16.根据权利要求15所述装置,其特征在于,还包括 数据包发送单元,用于在所述标识发送单元将所述第一标识及第二标识发送给所述上游转发设备之后,将所述首数据包及所述第二标识发送给下游转发设备; 标识接收单元,用于接收所述下游转发设备发送的第三标识及所述第二标识,并绑定所述第二标识与所述第三标识;所述第三标识为所述流在所述下游转发设备中的本地标识,且与所述流在所述下游转发设备中的流表项相关联。
17.根据权利要求16所述装置,其特征在于,所述数据包发送单元还用于在所述数据包处理单元根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,根据所述第二标识与所述第三标识的绑定关系,将所述后续数据包及所述第三标识发送给所述下游转发设备,以使所述下游转发设备根据所述第三标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理。
18.根据权利要求16所述装置,其特征在于,还包括解除接收单元,用于在所述数据包处理单元根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,接收所述上游转发设备发送的第一解除消息,所述第一解除消息中携带有所述第二标识; 表项索引单元,用于根据所述第二标识索引到所述流在所述本地转发设备中的流表项; 表项删除单元,用于根据所述第一解除消息删除所述流在所述本地转发设备中的流表项。
19.根据权利要求16所述装置,其特征在于,还包括 解除单元,用于在所述数据包处理单元根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,向所述上游转发设备发送第二解除消息,以使所述上游转发设备删除所述流在所述上游转发设备中的流表项;所述第二解除消息中携带有所述第一标识。
20.根据权利要求17或18所述装置,其特征在于,还包括 解除接收单元,用于在所述数据包处理单元根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,接收所述上游转发设备发送的第一解除消息,所述第一解除消息中携带有所述第二标识; 表项索引单元,用于根据所述第二标识索引到所述流在所述本地转发设备中的流表项; 表项删除单元,用于根据所述第一解除消息删除所述流在所述本地转发设备中的流表项; 解除发送单元,用于在所述解除接收单元接收所述上游转发设备发送的第一解除消息之后,向所述下游转发设备发送第三解除消息,以使所述下游转发设备删除所述流在所述下游转发设备中的流表项;所述第三解除消息中携带有所述第三标识。
21.根据权利要求17或18所述装置,其特征在于,还包括 解除接收单元,用于在所述数据包处理单元根据所述第二标识直接索引到所述流的流表项,并根据所述流表项对所述后续数据包进行处理之后,接收所述下游转发设备发送的第四解除消息,所述第四解除消息中携带有所述第二标识; 表项索引单元,用于根据所述第二标识索引到所述流在所述本地转发设备中的流表项; 表项删除单元,用于根据所述第四解除消息删除所述流在所述本地转发设备中的流表项。
22.根据权利要求21所述装置,其特征在于,还包括 解除发送单元,用于在所述解除接收单元接收所述上游转发设备发送的第四解除消息之后,向所述上游转发设备发送第二解除消息,以使所述上游转发设备删除所述流在所述上游转发设备中的流表项;所述第二解除消息中携带有所述第一标识。
23.—种分布式路由器,其特征在于,包括上述权利要求12-14任一项所述的流处理装置及上述权利要求15-22任一项所述的流处理装置。
24.一种流处理系统,其特征在于,包括上述权利要求12-14任一项所述的流处理装置及上述权利要求15-22任一项所述的流处理装置。
全文摘要
本发明提供一种流处理方法、流处理装置、路由器及流处理系统,方法包括接收流的首数据包;为流分配第一标识,第一标识为流在本地转发设备中的本地标识;将首数据包及第一标识发到下游转发设备;接收下游转发设备返回的第二标识及第一标识,并绑定第一标识及第二标识,第二标识为流在下游转发设备中的本地标识,且与流在下游转发设备中的流表项相关联;接收后续数据包;在后续数据包属于流的情况下,根据第一标识及第二标识的绑定关系,将后续数据包及第二标识发送给下游转发设备,以使下游转发设备根据第二标识直接索引到流的流表项,并根据流表项对后续数据包进行处理。
文档编号H04L12/771GK102970239SQ201210493350
公开日2013年3月13日 申请日期2012年11月28日 优先权日2012年11月28日
发明者罗美军 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1