快速查找流的方法

文档序号:7947925阅读:361来源:国知局
专利名称:快速查找流的方法
技术领域
本发明涉及数据通讯领域,尤其是一路由器中对流进行快速查找的方法。
背景技术
现在的路由器和交换机都需要对特定的数据流做特定的策略动作,也叫转发动作,包括服务质量、地址转换、服务器负载均衡、策略路由等,这些转发动作都是以流分类或者叫流查找作为前提的。也就是说,路由器或交换机先对流进行流分类,再根据流分类结果到流动作表中去寻找对应的流动作表项,得到相应的转发动作。
流分类一般是根据流分类规则确定的特征或是传输层的5元组,即源IP地址、源端口号、协议号、目的端口号、目的IP地址,进行一系列的查找运算,分到某一类里,即得到一个流分类结果,然后按照流分类结果找到对应的流动作表项。
IP通信中的流一般是一个往返的流,如图1现有技术查找流的方法示意图所示。图1中的进入流和返回流是同一个流。图1的中间是一个路由器,在该路由器中完成流分类和转发动作。现有技术查找流的方法是(1)进入流进入路由器,路由器对进入流进行流分类,并按流分类结果找到进入流的流动作表项,做进入流的转发动作;(2)返回流返回路由器,路由器对返回流进行流分类,并按流分类结果找到返回流的流动作表项,做返回流的转发动作。
这种方法的缺点是,进入流和返回流是同一个流,返回流的转发动作在进入阶段是可知的,这种方法要经过两次流分类,因此,这种方法重复工作量大,查找速度慢,系统效率低。

发明内容
本发明的目的是提供一种快速查找流的方法,它能够避免重复的流分类工作,提高查找速度,从而提高查找效率。
为实现上述目的,本发明的解决方案是一种快速查找流的方法,它包括a、进入流的第一个包进入路由器,路由器对进入流进行流分类,并按流分类结果找到进入流的流动作表项,做进入流的转发动作;
b、路由器按流分类结果判断返回流将会进行的转发动作,填入一个空闲流动作表项,将进入流的数据包的某个字段用该流动作表项序号修改,即流标示,该字段原信息先暂存在某处;c、路由器修改进入流的流动作表项,在进入流的流动作表项前加一个将进入流的数据包的某个字段用该流动作表项序号修改,该字段原信息先暂存在某处的动作,以使得进入流的后续包进入路由器后先进行该操作;d、对返回流从该修改的字段直接读取流标示,找到流动作表项;e、恢复暂存的原字段信息。
在步骤b中,路由器按流分类结果判断返回流将会进行的转发动作的具体过程是按照流分类结果找到返回流的流动作表项,其中返回流的流动作表项可以与步骤a所述的进入流的流动作表项放置在一起,然后根据返回流的流动作表项判断返回流将会进行的转发动作。
本发明可以如下进行在步骤b中,将流动作表项分为两个域,一个域存放转发动作,另一个域存放原字段信息,将返回流将会进行的转发动作填入空闲流动作表项的存放转发动作的域,将进入流的数据包的某个字段用该流动作表项序号修改后,该字段原信息暂存在存放原信息字段的域;在步骤d中,从存放转发动作的域读取转发动作;在步骤e中,从存放原字段信息的域恢复暂存的原字段信息。
本发明可采用这样的方式在步骤b中,将进入流的数据包的源IP地址的后16位数字用该流动作表项序号修改,原源IP地址的后16位数字暂存在步骤b建好的流动作表项存放原信息字段的域中;在步骤d中,源IP地址和目的IP地址调换,从目的IP地址的后16位数字直接读取流标示;在步骤e中,将暂存的原源IP地址的后16位数字恢复到目的IP地址的后16位中。
本发明可以采用这样的方式在步骤b中,将进入流的数据包的源端口号用该流动作表项序号修改,原源端口号先暂存在步骤b建好的流动作表项存放原信息字段的域中;在步骤d中,源端口号和目的端口号调换,从目的端口号直接读取流标示;在步骤e中,将暂存的原源端口号恢复到目的端口号中。
由于本发明在进入流流分类时,就把相应流分类结果及对应的返回流转发动作记录下来,将进入流的数据包的某个字段用该流动作表项序号修改,即流标示,流返回时只要读取流标示就可以了,这样,在整个过程中就可以只对流进行一次流分类,提高了查找速度和查找效率。
由于本发明将进入流的数据包的某个字段用流标示修改,该字段原信息暂存在某处,对返回流读取流标示找到流动作表项后再将暂存的原字段信息恢复,这样就不影响流的正常传输。


图1是现有技术查找流的方法示意图。
图2是本发明方法流程图。
图3是本发明快速查找流的方法示意图。
具体实施例方式
下面结合附图对本发明的实施例作进一步具体的说明。
从图2本发明的方法流程图中,我们可以大体看出本发明的具体实现步骤。流程图的每一步骤大体对应我们后面的小标题。
(1)进入流的第一个包进入路由器,路由器对进入流进行流分类,并按流分类结果找到进入流的流动作表项,做进入流的转发动作。这一部分同现有技术中我们提到的第一部分大体一致。
举例来说,路由器按照TCP5元组,即源IP地址、源端口号、协议号、目的端口号、目的IP地址的信息进行运算(具体分类的运算过程与一般流分类一致,不是本发明所讨论的范围),得到流分类结果,即流动作表项序号为5,到流动作表中查找序号5对应的流动作表项,按流动作表项做进入流的转发动作。
(2)路由器按流分类结果判断返回流将会进行的转发动作,填入一个空闲流动作表项,将进入流的数据包的某个字段用该流动作表项序号修改,即流标示,该字段原信息先暂存在某处。
路由器按流分类结果判断返回流将会进行的转发动作的具体过程是按照流分类结果找到返回流的流动作表项,其中返回流的流动作表项可以与步骤(1)所述的进入流的流动作表项放置在一起,然后根据返回流的流动作表项判断返回流将会进行的转发动作。
在本发明中我们可以将流动作表项分为两个域,一个域存放转发动作,另一个域存放原字段信息,将返回流将会进行的转发动作填入空闲流动作表项的存放转发动作的域,将进入流的数据包的某个字段用该流动作表项序号修改后,该字段原信息暂存在存放原信息字段的域。
在本发明中,所述的某个字段可以是源IP地址的后16位数字,也可以是源端口号。如果该字段是源IP地址的后16位数字,将进入流的数据包的源IP地址的后16位数字用该流动作表项序号修改,原源IP地址的后16位数字暂存在步骤b建好的流动作表项存放原信息字段的域中。如果该字段是源端口号,将进入流的数据包的源端口号用该流动作表项序号修改,原源端口号先暂存在步骤b建好的流动作表项存放原信息字段的域中。
举例来说,路由器按照上述步骤(1)中的流分类结果5找到步骤(1)所述的进入流动作表项后,同时与进入流动作表项放在一起的还有返回流动作表项,然后根据返回流的流动作表项判断返回流将会进行的转发动作,例如是地址转换,然后将其填入一个空闲流动作表项的存放转发动作的域,该流动作表项序号为25,则将进入流的数据包的某个字段,此例中假设源IP地址的后16位数字,改为25,将原来的源IP地址的后16位数字,放到流动作表项存放原信息字段的域中,以备以后恢复时使用。
(3)路由器修改进入流的流动作表项,在进入流的流动作表项前加一个将进入流的数据包的某个字段用该流动作表项序号修改,该字段原信息先暂存的动作,以使得进入流的后续包进入路由器后先进行该操作。这样,后续包进入路由器后,都要先执行一个用流标示修改字段的操作。
(4)对返回流从该修改的字段直接读取流标示,从流动作表项的存放转发动作的域读取转发动作。
值得注意的是,由于在流返回时,源IP地址和目的IP地址调换,源端口号和目的端口号调换,这样,如果修改的字段是源IP地址的后16位数字,则在本步骤中,需要从目的IP地址的后16位数字读取流标示。如果修改的字段是源端口号,在本步骤中,需要从目的端口号读取流标示。
还举上面的例子,在流返回时,从目的IP地址后16位数字读取流标示25,按照25从流动作表项的存放转发动作的域读取转发动作“地址转换”。
(5)恢复暂存的原字段信息。
在这个过程中,从流动作表项的存放原字段信息的域取出暂存的原源IP地址的后16位数字,恢复到目的IP地址的后16位中;或者,从流动作表项的存放原字段信息的域取出暂存的原源端口号恢复到目的端口号中。在此例中,是前面的一种情况。
分析完上述本发明的5个步骤,我们再来看图3本发明快速查找流的方法示意图,将该图与图1现有技术查找流的方法示意图进行对比可知,本发明快速查找流的方法与现有技术的重要区别在于本发明对进入流流分类后进行一个流标示的过程,在流返回时提取流标示,进行转发动作,这样就避免了在流返回时重复进行流分类,提高了系统效率。
权利要求
1.一种快速查找流的方法,它包括a、进入流的第一个包进入路由器,路由器对进入流进行流分类,并按流分类结果找到进入流的流动作表项,做进入流的转发动作;b、路由器按流分类结果判断返回流将会进行的转发动作,填入一个空闲流动作表项,将进入流的数据包的某个字段用该流动作表项序号修改,即流标示,该字段原信息先暂存在某处;c、路由器修改进入流的流动作表项,在进入流的流动作表项前加一个将进入流的数据包的某个字段用该流动作表项序号修改,该字段原信息先暂存在某处的动作,以使得进入流的后续包进入路由器后先进行该操作;d、对返回流从该修改的字段直接读取流标示,找到流动作表项;e、恢复暂存的原字段信息。
2.根据权利要求1所述的快速查找流的方法,其特征在于在步骤b中,路由器按流分类结果判断返回流将会进行的转发动作的具体过程是按照流分类结果找到返回流的流动作表项,其中返回流的流动作表项可以与步骤a所述的进入流的流动作表项放置在一起,然后根据返回流的流动作表项判断返回流将会进行的转发动作。
3.根据权利要求1或2所述的快速查找流的方法,其特征在于在步骤b中,将流动作表项分为两个域,一个域存放转发动作,另一个域存放原字段信息,将返回流将会进行的转发动作填入空闲流动作表项的存放转发动作的域,将进入流的数据包的某个字段用该流动作表项序号修改后,该字段原信息暂存在存放原信息字段的域;在步骤d中,从存放转发动作的域读取转发动作;在步骤e中,从存放原字段信息的域恢复暂存的原字段信息。
4.根据权利要求3所述的快速查找流的方法,其特征在于在步骤b中将进入流的数据包的源IP地址的后16位数字用该流动作表项序号修改,原源IP地址的后16位数字暂存在步骤b建好的流动作表项存放原信息字段的域中;在步骤d中,源IP地址和目的IP地址调换,从目的IP地址的后16位数字直接读取流标示;在步骤e中,将暂存的原源IP地址的后16位数字恢复到目的IP地址的后16位中。
5.根据权利要求3所述的快速查找流的方法,其特征在于在步骤b中,将进入流的数据包的源端口号用该流动作表项序号修改,原源端口号先暂存在步骤b建好的流动作表项存放原信息字段的域中;在步骤d中,源端口号和目的端口号调换,从目的端口号直接读取流标示;在步骤e中,将暂存的原源端口号恢复到目的端口号中。
全文摘要
一种快速查找流的方法,它是在进入流阶段,路由器按流分类结果判断返回流将会进行的转发动作,填入一个空闲流动作表项,将进入流的数据包的某个字段用该流动作表项序号修改,即流标示,该字段原信息先暂存;路由器修改进入流的流动作表项,在进入流的流动作表项前加一个将进入流的数据包的某个字段用该流动作表项序号修改,该字段原信息先暂存在某处的动作;对返回流从该修改的字段直接读取流标示,找到流动作表项;恢复暂存的原字段信息。它能够避免重复的流分类工作,提高查找速度。
文档编号H04Q3/00GK1399475SQ0112441
公开日2003年2月26日 申请日期2001年7月25日 优先权日2001年7月25日
发明者张光明 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1