CN1330190C - 一种基于用户ip地址路由的路由选择方法 - Google Patents

一种基于用户ip地址路由的路由选择方法 Download PDF

Info

Publication number
CN1330190C
CN1330190C CNB01126456XA CN01126456A CN1330190C CN 1330190 C CN1330190 C CN 1330190C CN B01126456X A CNB01126456X A CN B01126456XA CN 01126456 A CN01126456 A CN 01126456A CN 1330190 C CN1330190 C CN 1330190C
Authority
CN
China
Prior art keywords
space
user
address
pointer
route
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
Application number
CNB01126456XA
Other languages
English (en)
Other versions
CN1406073A (zh
Inventor
严超
蔡惊哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haimen science and Technology Development General Corporation
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB01126456XA priority Critical patent/CN1330190C/zh
Publication of CN1406073A publication Critical patent/CN1406073A/zh
Application granted granted Critical
Publication of CN1330190C publication Critical patent/CN1330190C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出一种基于用户IP地址路由的路由选择方法,包括:1.根据设备允许接入的用户数初始化路由信息表;2.建立对应关系;3.判断是否添加用户关系,如否转步骤5;4.添加用户关系;5.判断是否查找用户关系,如否转步骤7;6.查找用户关系;7.判断是否删除用户关系,如否转步骤9;8.删除用户关系;9.结束。本发明通过设定三层空间存储用户IP路由地址,并采用静态索引表的方式,最多只需读三次就可以找到对应的路由表项,使得表项查找快速,同时降低了硬件复杂度和成本,具有和硬件搜索引擎完全相同的搜索效率,提高了整个系统的性能。

Description

一种基于用户IP地址路由的路由选择方法
技术领域:
本发明涉及数据通讯领域,尤其涉及该领域中的一种路由选择方法。
背景技术:
随着宽带网络的迅速发展,用户的急剧增多,电信运营商越来越感觉到需要一个相对集中的用户管理中心来对用户进行集中管理和计费,这样,宽带网络接入服务器应运而生。宽带网络接入服务器最主要的特点之一就是采用了与传统路由器完全不同的路由方式——基于用户源IP地址路由。在网络发展的初期,这种接入服务器的放置比较集中,一般都是通过快速的硬件搜索引擎来对用户的路由进行查找。随着用户的增多,这种集中放置的方法逐渐暴露出硬件成本过高的缺点,为了降低成本,电信运营商逐渐接受了一种接入服务器分散放置的方式,但是这种方式要求每个接入服务器管理的用户数不能太多,而且性能又不能降低,目前经常采用的是IP地址最长匹配方法,即根据目的IP地址的前缀与路由表项内的IP地址的匹配程度来决定数据包的转发路径,这种方法实现起来复杂度较高,占用大量的CPU资源,导致性能明显降低。所以出现了一个成本和性能上的矛盾:采用硬件搜索引擎成本太高,而采用传统的IP地址最长匹配方法又会使得性能大大降低。
发明内容:
本发明提出的一种基于用户IP地址路由方式的路由选择方法,既节省硬件搜索引擎又具有完全相同的搜索效率,实现节省传统接入层及汇接层设备里所需的硬件搜索引擎,大大降低整个系统的硬件成本,并实现对IP地址的快速精确匹配。
本发明所提方法包括以下步骤:
第一步:根据设备允许接入的用户数初始化路由信息表,将用户IP地址的四个字段从高到低依次标记为a1,a2,a3,a4;
第二步:建立对应关系:建立第一层空间,以用户IP地址的a3、 a4字段唯一确定第一层空间中的一块存储空间,使用户IP地址的a3、a4字段和该第一层空间建立一一对应关系;
第三步:判断是否有新活动用户加入,如果不是则转第五步;
第四步:添加用户关系:
1.设置指针PTR(x)指向该新活动用户的路由表项信息;然后根据该新活动用户的IP地址的a3(x),a4(x)字段确定与其一一对应的存储空间N,如果该存储空间N没有另一个原活动用户的记录,则将指针PTR(x)存入该存储空间N;
2.如果该存储空间N已存有另一个原活动用户的记录,则建立第二层空间;同时在存储空间N里填入一个指向该第二层空间的信息;将新活动用户的IP地址a2字段与第二层空间建立一一对应关系;如果指针PTR(x)指向的位置没有一个或多个活动用户的信息,则把指向新活动用户路由表项信息的指针PTR(x)填入第二层空间中相应的位置;
3.如果指针PTR(x)指向的位置已经有一个或多个活动用户的信息,则建立第三层空间,将新活动用户的IP地址a1字段与第三层空间建立一一对应关系,填入指向新活动用户路由表项的信息;
第五步:判断是否有活动用户的数据包进来,如果不是则转第七步;
第六步:查找用户关系,根据数据包的用户IP地址来决定数据包的转发路径;
1.首先用该地址的a3、a4字段在第一层空间里找到对应的位置,如果该位置为空,说明该用户不存在,丢弃该数据包;
2.如果该位置已存有一个指向路由表项的指针,用该指针指向的路由表项里的用户IP地址进行精确匹配,如果符合,即可认为该指针指向的路由信息是该用户的,根据该信息来进行数据包的转发;
3.如果该位置存的是指向一个第二层空间的指针,则用该指针和该用户的a2字段定位的位置中取出另一指针,如果该另一指针是指向某用户路由表项信息,即可进行步骤2中的操作;
4.如果3中再次定位的指针是指向第三层空间的指针,则用该指针和a1字段继续定位,取出该位置存放的内容即为指向x用户的路由信息的指针;
第七步:判断是否需要删除用户关系,如果不是,则转第九步;
第八步:删除用户关系,当需要删除一个活动用户的记录时,首先用该用户的IP地址进行用户关系查找,找到该用户的路由表信息,标记为空;
1.如果该指针是在第一层空间找到的,删除过程即可结束;
2.如果该指针是在第二层空间或第三层空间,还需要判断这个空间里还存有多少个活动用户记录,在空间建立时用一个临时变量记录,在用户记录填加时加一,在记录删除时减一;
3.如果该临时变量为1,说明该空间已不需要,将记录取出,返回到上一层空间,将该记录存放在上一层空间的相应位置;
第九步:结束。
所述的第一层空间、第二层空间和第三层空间都是指内存中一块连续的存储空间。
在所述的步骤二中,用户IP地址的a3、a4字段和第一层空间通过指针建立一一对应关系。
本发明所述的方法通过设定三层空间存储用户IP路由地址,并采用静态索引表的方式,最多只需读三次就可以找到对应的路由表项,使得任何表项的查找非常快速。尤其是在目前用户的IP地址的分配方案中,对于容量不大的用户接入,IP地址中低16bit重复的概率非常小,甚至可以说没有,所以需要建立的二级表和三级表会非常少,不需要占用额外的存储空间,可认为在64K量级。从而极大的节省了采用源地址路由的小容量汇接设备里需要的硬件搜索引擎,降低了整个系统的硬件复杂度和成本,同时具有和硬件搜索引擎完全相同的搜索效率,提高了整个系统的性能。
附图说明:
图1是本发明所述方法的流程图。
下面结合附图和实施例对本发明进行进一步描述。
根据全球IP地址的管理方法,一般某一ISP或某一区域分配得到的IP地址都是属于同一个B类地址或比较有限的几个B类地址。所以基于用户IP地址路由的接入层及汇接层设备,可以利用这种特殊性,采用本发明所述的方法来实现对IP地址的快速查找。在图1中,首先根据设备允许接入的用户数初始化路由信息表。由于IP地址是由四个字节组成,把这四个字节从高到低依次标记为a1,a2,a3,a4,目的是根据收到的数据包里的用户的IP地址找到对应的路由信息。在初始化完路由信息表之后,就开始建立用户IP地址与存储空间之间的对应关系,建立64K个连续的存储空间(每个存储空间的大小视具体需要而定,一般为几个字节),这个空间称为第一层空间,用用户IP地址的a3、a4字段和这64K个存储空间建立一一对应关系。然后判断是否添加用户关系,当有一个新的活动用户x加入时,就进行用户关系的添加,先得到一个指针PTR(x)指向该用户的路由表项信息,再根据该用户的IP地址的a3(x),a4(x)字段找到与其一一对应的存储空间N,把PTR(x)存入该存储空间N;如果该存储空间N已存有一个活动用户y的记录,说明x用户和y用户的a3、a4字段相同,这时候就要用a2字段来区分这两个用户,再建立第二层空间,在存储空间N里填入一个指向这个空间的信息。用a2字段和这个二层空间建立一一对应关系;把指向x用户和y用户路由表项的指针分别填入相应的位置;如果该位置没有其他活动用户的信息,则在二层空间中相应位置上填入指向x用户路由表项的指针;如果在二层空间中所指向的位置已经有一个或活动用户的信息,则同理用a1建立三层空间,找到相应的三层空间,填入指向x用户路由表项的信息。
对于用户关系的查找,本方法按下述方式处理:当一个活动用户的数据包进来时,根据数据包的用户IP地址来决定数据包的转发路径,并且采用和前面添加用户关系同样的定位方法进行查找;如果不是查找用户关系,则判断是否进行用户关系的删除,当需要删除一个活动用户的记录时,首先用该用户的IP地址按查找用户关系的步骤找到该用户的路由表信息,将之标记为空;如果该指针是在第一层空间找到的,删除过程即可结束;如果该指针是在第二层或第三层的空间,还需要判断这个空间里还存有多少个活动用户记录,这可以在空间建立时用一个临时变量记录,在用户记录填加时加一,在记录删除时减一;如果该临时变量为1,说明该空间已不需要,将记录取出,返回到上一层空间,将该记录存放在上一层空间的相应位置,从而完成删除过程。
具体实施方式:
下面是本发明所述方法的一个具体实施例,在内存中预先设定好64K空间及8K空间的个数,由一个管理进程来进行维护。每当有新用户加入,需要申请新的存储空间时,就由该进程进行分配;而存储空间的归还也由该进程来进行释放;在每次进行增加、删除、查找操作时,都要进行同样的查找过程;在删除时要特别注意存储空间的归还,即当当前的存储空间的记录只有一个,就要进行归还。整个过程如下:
第一步:假设一个基于宽带用户源IP地址路由的小容量汇接设备允许同时接入的用户数为2000,将用户IP地址的四个字节从高到低依次标记为a1,a2,a3,a4;另外还有2000个活动用户的路由信息,存在存储器里表现为2000个表项,分别用2000个地址·指针来定位。这样做的目的是根据收到的用户IP数据包里的源IP地址尽快查找到对应的指针,从而找到相应的路由信息。
第二步:对应关系建立
建立一个64K 32bit的存储空间M,即64K个32bit大小的空间。用源IP地址的a3、a4字段和存储空间M的64K个位置建立一一对应关系(a3、a4字段的大小为65535,刚好是64K,能够实现这种对应关系)。
第三步:判断是否进行用户关系的添加,如果不是,则转第五步;
第四步:用户关系添加:
1.当有一个新的活动用户x加入时,首先得到一个指针PTRx指向该用户的路由表项信息。然后根据该用户的IP地址的a3x,a4x字段找到对应的32bit空间,如果该位置为空,说明目前的活动用户的IP地址没有和a3x及a4x相同的。这样,就直接把PTRx存入该位置;
2.如果该位置已存有一个活动用户y的记录,说明x用户和y用户的a3、a4字段相同,这时候就要用a2字段来区分这两个用户;
3.建立一个256个32bit大小的空间,这个空间称为第二层空间,把这个空间的起始地址填入存储空间M中的记录里。然后用a2字段和这256个位置建立一一对应关系;把指向x用户和y用户路由表项的指针分别填入相应的位置;
4.如果该位置存的是指向一个256 32bit存储空间的指针,说明此时有两个以上的活动用户和x用户具有相同的a3、a4字段,根据该指针和x用户的a1字段合起来指向的位置则用于存放指向x用户路由表项的指针;
5.如果4中所指向的位置已经有一个活动用户的指针或者是指向另一个25632bit存储空间的指针,说明此时有多个活动用户和x用户的a2、a3、a4字段都相同,同3或4进行相同的定位,填入指向x用户路由表项的指针;
第五步:判断是否要查找用户关系,如果不是,则转第七步;
第六步:用户关系查找:当一个活动用户x的数据包进来时,根据数据包的源IP地址来决定数据包的转发路径;
1.首先用该地址的a3、a4字段在存储空间M里找到对应的位置,如果该位置为空,说明x用户不存在,丢弃该数据包;
2.如果该位置已存有一个指向路由表项的指针,用该指针指向的路由表项里的用户IP地址进行精确匹配,如果符合,即可认为该指针指向的路由信息是x用户的,可以根据该信息来进行数据包的转发;
3.如果该位置存的是指向一个256 32bit存储空间的指针,用该指针和x用户的a2字段定位的位置中取出另一个指针,如果该指针是指向某用户的路由表项信息,即可进行3中的操作;
4.如果3中再次定位的指针仍是指向一个256 32bit存储空间的指针,用该指针和a1字段继续定位,取出该位置存放的内容即为指向x用户的路由信息的指针;
第七步:用户关系删除
1.当需要删除一个活动用户的记录时,首先用该用户的IP地址按第四步的步骤找到指向该用户路由信息的指针,将该路由表项标记为空;
2.如果该指针是在M里找到的,删除过程即可结束
3.如果该指针是在第二层或第三层的空间,还需要判断这个空间里还存有多少个活动用户记录,这可以在空间建立时用一个临时变量记录,在用户记录填加时加一,在记录删除时减一;
4.如果该临时变量为1,说明该空间已不需要,将记录取出,返回到上一层空间,将该记录存放在上一层空间的相应位置。

Claims (3)

1、一种基于用户IP地址路由的路由选择方法,包括以下步骤:
第一步:根据设备允许接入的用户数初始化路由信息表,将用户IP地址的四个字段从高到低依次标记为a1,a2,a3,a4;
第二步:建立对应关系:建立第一层空间,以用户IP地址的a3、a4字段唯一确定第一层空间中的一块存储空间,使用户IP地址的a3、a4字段和该第一层空间建立一一对应关系;
第三步:判断是否有新活动用户加入,如果不是则转第五步;
第四步:添加用户关系:
(4.1)设置指针PTR(x)指向该新活动用户的路由表项信息;然后根据该新活动用户的IP地址的a3(x),a4(x)字段确定与其一一对应的存储空间N,如果该存储空间N没有另一个原活动用户的记录,则将指针PTR(x)存入该存储空间N;
(4.2)如果该存储空间N已存有另一个原活动用户的记录,则建立第二层空间;同时在存储空间N里填入一个指向该第二层空间的信息;将新活动用户的IP地址a2字段与第二层空间建立一一对应关系;如果指针PTR(x)指向的位置没有一个或多个活动用户的信息,则把指向新活动用户路由表项信息的指针PTR(x)填入第二层空间中相应的位置;
(4.3)如果指针PTR(x)指向的位置已经有一个或多个活动用户的信息,则建立第三层空间,将新活动用户的IP地址a1字段与第三层空间建立一一对应关系,填入指向新活动用户路由表项的信息;
第五步:判断是否有活动用户的数据包进来,如果不是则转第七步;
第六步:查找用户关系,根据数据包的用户IP地址来决定数据包的转发路径;
(6.1)首先用该地址的a3、a4字段在第一层空间里找到对应的位置,如果该位置为空,说明该用户不存在,丢弃该数据包;
(6.2)如果该位置已存有一个指向路由表项的指针,用该指针指向的路由表项里的用户IP地址进行精确匹配,如果符合,认为该指针指向的路由信息是该用户的,根据该信息来进行数据包的转发;
(6.3)如果该位置存的是指向一个第二层空间的指针,则用该指针和该用户的a2字段定位的位置中取出另一指针,如果该另一指针是指向某用户路由表项信息,进行步骤6.2中的操作;
(6.4)如果6.3中再次定位的指针是指向第三层空间的指针,则用该指针和a1字段继续定位,取出该位置存放的内容即为指向x用户的路由信息的指针;
第七步:判断是否需要删除用户关系,如果不是,则转第九步;
第八步:删除用户关系,当需要删除一个活动用户的记录时,首先用该用户的IP地址进行用户关系查找,找到该用户的路由表信息,标记为空;
(8.1)如果该指针是在第一层空间找到的,删除过程结束;
(8.2)如果该指针是在第二层空间或第三层空间,还需要判断这个空间里还存有多少个活动用户记录,在空间建立时用一个临时变量记录,在用户记录填加时加一,在记录删除时减一;
(8.3)如果该临时变量为1,说明该空间已不需要,将记录取出,返回到上一层空间,将该记录存放在上一层空间的相应位置;
第九步:结束。
2、根据权利要求1所述的基于用户IP地址路由的路由选择方法,其特征在于,所述的第一层空间、第二层空间和第三层空间都是指一块连续的存储空间。
3、根据权利要求1所述的基于用户IP地址路由的路由选择方法,其特征在于,在所述的第三步中,用户IP地址的a3、a4字段和第一层空间通过指针建立一一对应关系。
CNB01126456XA 2001-08-14 2001-08-14 一种基于用户ip地址路由的路由选择方法 Expired - Fee Related CN1330190C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB01126456XA CN1330190C (zh) 2001-08-14 2001-08-14 一种基于用户ip地址路由的路由选择方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB01126456XA CN1330190C (zh) 2001-08-14 2001-08-14 一种基于用户ip地址路由的路由选择方法

Publications (2)

Publication Number Publication Date
CN1406073A CN1406073A (zh) 2003-03-26
CN1330190C true CN1330190C (zh) 2007-08-01

Family

ID=4666472

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01126456XA Expired - Fee Related CN1330190C (zh) 2001-08-14 2001-08-14 一种基于用户ip地址路由的路由选择方法

Country Status (1)

Country Link
CN (1) CN1330190C (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456840C (zh) * 2003-11-25 2009-01-28 华为技术有限公司 将lpm算法拆分到两个cpu的方法
CN1314249C (zh) * 2004-02-20 2007-05-02 华为技术有限公司 三层转发信息下发硬件lpm表的方法
CN101247337B (zh) * 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备
CN101340386B (zh) * 2008-08-12 2011-08-10 华为技术有限公司 建立和查找路由表项的方法及路由器
CN101404620B (zh) * 2008-11-17 2011-01-05 杭州华三通信技术有限公司 一种创建路由表项的方法和交换设备
CN107493233A (zh) * 2016-06-12 2017-12-19 上海斯远计算机网络信息科技有限公司 一种基于用户端的路由方法及系统
CN106223425A (zh) * 2016-07-25 2016-12-14 柳州合科技有限公司 一种新型高效厨房垃圾处理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1270728A (zh) * 1997-09-15 2000-10-18 埃弗内特集团股份有限公司 快速路由查找的方法和系统
CN1286576A (zh) * 2000-09-28 2001-03-07 国家数字交换系统工程技术研究中心 一种分段式ip路由线速率查表方法
WO2001022667A1 (en) * 1999-09-22 2001-03-29 Effnet Group Ab Method and system for efficient routing table compression and fast routing lookups
EP1111877A2 (en) * 1999-12-23 2001-06-27 Nortel Networks Limited IP address resolution methods and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1270728A (zh) * 1997-09-15 2000-10-18 埃弗内特集团股份有限公司 快速路由查找的方法和系统
WO2001022667A1 (en) * 1999-09-22 2001-03-29 Effnet Group Ab Method and system for efficient routing table compression and fast routing lookups
EP1111877A2 (en) * 1999-12-23 2001-06-27 Nortel Networks Limited IP address resolution methods and apparatus
CN1286576A (zh) * 2000-09-28 2001-03-07 国家数字交换系统工程技术研究中心 一种分段式ip路由线速率查表方法

Also Published As

Publication number Publication date
CN1406073A (zh) 2003-03-26

Similar Documents

Publication Publication Date Title
US6745177B2 (en) Method and system for retrieving data from multiple data sources using a search routing database
US6173384B1 (en) Method of searching for a data element in a data structure
US7080101B1 (en) Method and apparatus for partitioning data for storage in a database
CN101515298B (zh) 基于树形数据结构节点的插入的方法和存储装置
US6789141B2 (en) Information processing apparatus and communication path selection method
KR102072203B1 (ko) 컨텐츠 중심 네트워크에 계층적 이름의 변화에 강인한 단축 이름을 생성하는 방법 및 노드
US6775281B1 (en) Method and apparatus for a four-way hash table
US6751627B2 (en) Method and apparatus to facilitate accessing data in network management protocol tables
US20010028651A1 (en) Cache table management device for router and program recording medium thereof
CN102971732A (zh) 键/值存储器的集成分级查询处理的系统结构
CN108848032B (zh) 一种支持多兴趣类型处理的命名对象网络实现方法
US20080133494A1 (en) Method and apparatus for searching forwarding table
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
CN1330190C (zh) 一种基于用户ip地址路由的路由选择方法
US6556996B1 (en) Service package application and a service activation manager for use with a service control point in an advanced intelligent network
CN101883111A (zh) 一种处理在线业务日志的计费服务器及方法
CN100486212C (zh) 一种提高路由表容量的方法
CN100397816C (zh) 在网络设备中对接收数据包进行分类的方法
CN113810287B (zh) 一种基于ndn和sdn的数据检索与推送方法
CN1192835A (zh) 有关信息管理系统的结构与方法
CN100487697C (zh) 一种应用改进的哈希方法进行查找的方法
Peleg Distance-dependent distributed directories
US6678675B1 (en) Techniques for searching for best matches in tables of information
CN104539537B (zh) 一种路由查找方法和装置
Luo et al. A capacity-elastic cuckoo filter design for dynamic set representation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: SHENZHENG CITY ZTE CO., LTD.

Free format text: FORMER OWNER: SHENZHENG CITY ZTE CO., LTD. SHANGHAI SECOND INSTITUTE

Effective date: 20030722

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20030722

Applicant after: Zhongxing Communication Co., Ltd., Shenzhen City

Applicant before: Shanghai Inst. of No.2, Zhongxing Communication Co., Ltd., Shenzhen City

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HAIMEN TECHNOLOGY DEVELOPMENT CORP.

Free format text: FORMER OWNER: ZTE CORPORATION

Effective date: 20130507

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518057 SHENZHEN, GUANGDONG PROVINCE TO: 226144 NANTONG, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130507

Address after: 226144, No. 600, Beijing Road, Haimen, Jiangsu, Nantong province (room 0212 of administrative center)

Patentee after: Haimen science and Technology Development General Corporation

Address before: 518057 Nanshan District high tech Industrial Park, Guangdong, South Road, science and technology, ZTE building, legal department

Patentee before: ZTE Corporation

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070801

Termination date: 20160814

CF01 Termination of patent right due to non-payment of annual fee