CN1184827C - 快速查找流的方法 - Google Patents
快速查找流的方法 Download PDFInfo
- Publication number
- CN1184827C CN1184827C CNB011244178A CN01124417A CN1184827C CN 1184827 C CN1184827 C CN 1184827C CN B011244178 A CNB011244178 A CN B011244178A CN 01124417 A CN01124417 A CN 01124417A CN 1184827 C CN1184827 C CN 1184827C
- Authority
- CN
- China
- Prior art keywords
- stream
- list item
- field
- flow
- territory
- 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.)
- Expired - Fee Related
Links
Images
Abstract
一种快速查找流的方法,它是在进入流阶段,路由器按流分类结果找到返回流的流动作表项,然后根据返回流的流动作表项判断返回流将会进行的转发动作,填入一个空闲流动作表项,将进入流的数据包的某个字段用该空闲流动作表项序号修改,该空闲流动作表项序号即为流标示,该字段原信息先暂存该空闲流动作表项的某处;路由器修改进入流的流动作表项,在进入流的流动作表项前加一个将进入流的数据包的某个字段用该流动作表项序号修改,该字段原信息先暂存在某处的动作;对返回流从该修改的字段直接读取流标示,找到流动作表项;恢复暂存的原字段信息。它能够避免重复的流分类工作,提高查找速度。
Description
技术领域
本发明涉及数据通讯领域,尤其是一种路由器中对流进行快速查找的方法。
背景技术
现在的路由器和交换机都需要对特定的数据流做特定的策略动作,也叫转发动作,包括服务质量、地址转换、服务器负载均衡、策略路由等,这些转发动作都是以流分类或者叫流查找作为前提的。也就是说,路由器或交换机先对流进行流分类,再根据流分类结果到流动作表中去寻找对应的流动作表项,得到相应的转发动作。
流分类一般是根据流分类规则确定的特征或是传输层的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现有技术查找流的方法示意图进行对比可知,本发明快速查找流的方法与现有技术的重要区别在于:本发明对进入流流分类后进行一个流标示的过程,在流返回时提取流标示,进行转发动作,这样就避免了在流返回时重复进行流分类,提高了系统效率。
Claims (5)
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中,将暂存的原源端口号恢复到目的端口号中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011244178A CN1184827C (zh) | 2001-07-25 | 2001-07-25 | 快速查找流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011244178A CN1184827C (zh) | 2001-07-25 | 2001-07-25 | 快速查找流的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1399475A CN1399475A (zh) | 2003-02-26 |
CN1184827C true CN1184827C (zh) | 2005-01-12 |
Family
ID=4665656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011244178A Expired - Fee Related CN1184827C (zh) | 2001-07-25 | 2001-07-25 | 快速查找流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1184827C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100337441C (zh) * | 2003-04-30 | 2007-09-12 | 华为技术有限公司 | 转发数据包的查表方法 |
CN1294728C (zh) * | 2004-08-05 | 2007-01-10 | 华为技术有限公司 | 边缘路由器提供服务质量保证的方法及系统 |
CN100466594C (zh) * | 2004-10-09 | 2009-03-04 | 华为技术有限公司 | 一种对报文进行分类处理的方法 |
WO2008037159A1 (fr) | 2006-09-25 | 2008-04-03 | Hangzhou H3C Technologies Co., Ltd. | Procédé et dispositif de réseau pour communiquer entre différents composants |
CN101276445B (zh) * | 2008-05-16 | 2012-11-21 | 金蝶软件(中国)有限公司 | 快速定位工厂日历的方法和系统 |
CN104660657B (zh) * | 2013-11-25 | 2018-05-18 | 华为技术有限公司 | 一种网络业务处理方法、适配器及网络业务处理系统 |
CN109327389B (zh) * | 2018-11-13 | 2021-06-08 | 南京中孚信息技术有限公司 | 流量分类标签转发方法、装置和系统 |
-
2001
- 2001-07-25 CN CNB011244178A patent/CN1184827C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1399475A (zh) | 2003-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1482548A (zh) | 对多重搜索实行的过滤器规则进行划分的方法和系统 | |
CN1240011C (zh) | 应用于操作系统的文件分类管理系统及方法 | |
CN1826591A (zh) | 反向路径转发保护 | |
US9269411B2 (en) | Organizing data in a hybrid memory for search operations | |
CN1282332C (zh) | 一种快速数据包过滤方法 | |
US7308446B1 (en) | Methods and apparatus for regular expression matching | |
US7860866B2 (en) | Heuristic event clustering of media using metadata | |
CN1881950A (zh) | 使用频谱分析的分组分类加速 | |
CN102255788B (zh) | 报文分类决策构建系统及方法、报文分类系统及方法 | |
CN101388030A (zh) | 数据库和数据库处理方法 | |
CN1784678A (zh) | 用于高效地搜索被分成具有界大小的、有界数量的子数据库的转发数据库的系统和方法 | |
CN1633111A (zh) | 高速网络业务流分类方法 | |
CN87100829A (zh) | 用于检索的方法和装置 | |
EP1623347A2 (en) | Comparison tree data structures and lookup operations | |
CN104618132B (zh) | 一种应用程序识别规则生成方法和装置 | |
CN1184827C (zh) | 快速查找流的方法 | |
CN100385880C (zh) | 分组分类装置和使用字段级特里结构的方法 | |
CN1864144A (zh) | 具有条目群组和跳过操作的关联存储器 | |
CN1897564A (zh) | 基于递归流分类算法的策略路由匹配方法 | |
US20080162448A1 (en) | Method for tracking syntactic properties of a url | |
CN1885820A (zh) | 一种路由转发表地址查找引擎装置 | |
CN106100997A (zh) | 一种网络流量信息处理方法及装置 | |
CN100440859C (zh) | 一种位图聚合的递推流分类方法及其系统 | |
CN107133321B (zh) | 页面的搜索特性的分析方法和分析装置 | |
CN109754021B (zh) | 基于范围元组搜索的在线包分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 | ||
DD01 | Delivery of document by public notice |
Addressee: Huawei Technologies Co., Ltd. Document name: Notification of Termination of Patent Right |
|
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050112 Termination date: 20110725 |