基于多处理机结构的IP路由搜索技术

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:hello0306
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:随着因特网的飞速发展以及128位地址的IPV6的出现,路由表变得日益庞大,这给IP目标地址的查找速度提出了更高的要求。 IP地址查询使用的不是精确匹配,而是最长前缀匹配,因查询极其复杂。论文针对现有的IP查询技术的缺点和不足,提出了一种基于多处理器结构的搜索技术,这种技术减少了查找的比较次数和存储空间。
  关键词: IP地址搜索;高效路由;多处理器结构
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10709-03
  
  1 引言
  
  网络的普遍使用,使得网络流量剧增。同时多媒体网络应用程序和设备的使用又对网络流速提出了更高的要求。高速链路和高速路由器则是因特网速度提高的关键。
  作为网络的灵魂,路由器将数据包从输入接口传递到输出接口,数据包的目的地址称为IP地址。一个选路表包含许多(N,R)序偶,其中N是目的網络的IP地址,R是到网络N的路径上的“下一跳”路由器的IP地址[1]。路由查找是对每个到达的IP报文根据其目的IP地址确定其应转发的输出端口号和下一跳地址。变长地址前缀的采用提高了IP地址的利用率,但在路由查找时就有可能找到多个匹配的表项,因此需要进行最长前缀匹配。
  路由器一收到数据包,就将选路表中的下一跳地址与数据包中的目标地址相比较,取前缀匹配最长的那个,然后将数据包转发给前缀最长匹配输出端它的输出端口。在数据包转发过程中,IPV6地址的增加使得最长匹配前缀问题日益成为转发的瓶颈。可以想象,当选路表包含几百万IP地址时,不可能存储所有已存在的IP地址,因此IP地址搜索问题是一个复杂的选路表查询问题。提高数据包转发速度的方法之一是同时对目标地址提供多重搜索,这可通过使用多个处理器并行搜索得到。本文描述提出一个新的对128位IPV6地址使用SROW(Simultaneous Read and Only Write)的多处理器搜索技术。每一个处理器存储n/N个前缀,提出了一并使用(N+1-ary)搜索技术的高效算法。
  
  2 已存在的一些IP查找算法
  
  搜索操作需要找到一个逐字匹配的前缀。使用基于hash表或二叉树搜索的传统算法只可进行精确匹配的搜索。在无类域间路由(Classless Inter-Domain Routing,CIDR)[2]技术中,地址前缀长度可为不超过IPV4地址宽度的任意长度。变长地址前缀的使用使得IP地址的层次性分配成为可能。
  2.1基于Trie的层次方法
  这种方法最先在BSD内核中实现,最坏的情况下,该算法需要O(W)次查找,其中W为地址长度,所以,对于IPV4来说完成一次查询最多访问存储器32次,对于IPV6最多需要是128次查询存储访问。效率不够高。
  2.2分布式存储结构
  在选路表中,这种方式依赖前缀中的特定位以平均几组的形式进行存储[2]。例如,选路表中的位63,64,65,66(称ID位)用来将前缀分成16种类。不同类以不同的存储模式存储,因此,可最多让16类IPV6地址同时进行查询。通过4位ID组将IP地址进行分类,对每类IP地址进行的最长匹配前缀的搜索是从包含同类地址的存储模式中开始的。
  
  3 对(N+1-ary)算法的改进
  
  3.1多处理器结构
  本文提出一个基于多处理器的路由器结构。将所有前缀集划分成平均长度的子序列,每个子序列对应一个处理器。这样,将目的IP地址广播至N个处理器,同一子序列中的每一个处理器同时搜索前缀。由于它是并行进行的,所以它减少了查询时间。
  图1 基于多处理器的路由器的结构
  3.2前缀的排序
  在下列算法中,以并行的方式对处理器前缀进行排序。设S=,表示未排序的输入序列,其中Si为元素的位置,由比它小的数决定ri。当算法中止时,ri将包括输入序列中比Si小的元素的数目,把Si放在第(ri+1)的位置上,这样就生成了一个以升序排序的序列。
  排序算法的伪代码为:
  for i=1 to n do //可同时进行
  for j=1 to n do
  if (Sij )
  then ri=ri+1
  end if
  end for
  把Si放在第(ri+1)的位置上
  end for
  该算法的时间复杂度为O(n)。
  3.3前缀的发送
  已排好序的前缀以n/N的大小分成子序列,每个子序列发送给一个处理器。这样,每个处理器在子序列中比较其输入地址。(Pi代表第i个处理器)
  发送前缀的伪代码为:
  for 每一个处理器 do
  send ( 子序列i, Pi )
  end for
  for 每一个处理器 do
  send (目的地址, Pi)
  end for
  例如,假定有30(n=30)个前缀和6(N=6)个处理器,这30个前缀被分列成长度为5(n/N)的子序列,即每个处理器包含一个有5个前缀的子序列。
  发送数据包的IP地址给所有的处理器,使用有共享存储器的PRAM模式, 那么,所有的处理器就会在一固定的时间内同时读取目标地址。因此地址可被N个处理器同时读取而仅写一次(SROW)。广播的过程仅需O(1)的时间。
  3.4前缀的查询
  借助于(N+1-ary)搜索的思想,每一步序列以相同的长度分成(N+1)个子序列。N个处理器在序列的两端同时搜索,Si表示在子序列两端的元素。处理器Pi将x与Si相比(x为要查询的IP地址)。
  (1)如果Si>x,那么,若x在序列中,它必须在Si的前面,因此Si和所有它右边的元素不予考虑。
  (2)如果Si  每一个子序列的长度以(N+1)的因素在减少,所以需要logN+1(n+1)个子序列。因此,最坏情况下算法的复杂度为O(logN+1(n+1))。当N=1时,算法运行的时间是固定的。
  由上可得到匹配算法的伪代码:
  
  4 最优使用前缀扩展
  
  控制前缀扩展将前缀集转换成前缀长度较少的相等的前缀集。在[3]中0或1填充前缀以增加前缀的长度,如果要增加的字符串已经在数据库中,就不增加,字符串仍在原来的位置。例如,如果扩前缀到足够长,那整个前缀搜索问题可转换为一般的队列搜索。对临界点的搜索将更容易,但这种解决方法是不理想的,对IPV6,队列将需要2128的空间。要使所需的总的存储空间最小,且减少查询时间,就需限制IP地址前缀长度,而这可用控制前缀扩展来将前缀集由任意长度减至预定的长度。
  
  5多处理器结构的实现
  
  假设有N个处理器,每个处理器的主频为700MHz。每一处理器存在一个通用的L1缓存,所有的处理器都同时共享它,客户端同时收到服务器创建的共用的套接字,套接字将所有的处理器都连接起来;客户机使用它的端口号和主机名绑定到服务器上,服务器将收到的数据包转发给客户机,服务器和客户机使用TCP套接字相互通信。随着处理器数目的增加,前缀比较的时间明显减少。
  
  6 性能分析
  
  6.1队列系统分析
  由于有N个处理器,因此,需使用M/M/N队列去模仿多处理器机构。
  设IP地址到达的速率为λ,处理速率为μ,对有N个处理器的多处理器结构来说,则到达的速率就为λ/N,每一台处理器的处理时间为1/μ,这样可对前缀的排序时间(Ts)和输入的IP地址的广播时间(Tb)进行测试。设前缀的数目为 n,IP地址数为m,处理器数为N。
  处理速率:
  6.2仿真结果
  随着处理器数目的增加,系统时间和实际消耗的时间都在减少。(如图2所示)由此可知:对IPV6地址的搜索,该方案比现存的算法效率要高。
  图2 并行程度对实际消耗时间和系统时间的影响
  分析并行算法性能的又一个常用指标是加速度。加速度指最好顺序算法和并行算法在最坏情况下的运行时间比。
  Accelerated speed=最好顺序算法的运行时间/并行算法的运行时间
  表1 并行程度和加速度之间的关系
  表1表明:随着并行程度的增加,加速度也在增加。
  评价算法的另一指标是代价。代价(cost)是并行算法的运行时间和使用的处理器的数目的乘积,即代价=运行时间*处理器的数目。虽然多处理器结构的代价较高,但与其在搜索时间上显示出的巨大的优越性相比,还是值得的。
  
  7 结论
  
  基于多处理器结构的IP搜索算法的SROW,为下一代IPV6的地址搜索提供了一种最长前缀匹配的搜索技术。由于使用了前缀最优化存储的(N+1-ary)搜索方法,则要比较的前缀的数目显著减少,所以这种方法十分有效。
  将每个处理器的前缀分类,可为每一个数据包的IP地址提供N个同时搜索到的最长匹配。在IPV6地址格式方面,这从根本上提高了路由器转发数据包的速率,也优化了存储在每一处理器中的前缀,并且存储前缀的容量进一步减少。另外,与现存的基于hash表的二叉树的搜索算法相比,在搜索与IPV6地址最长匹配的前缀方面,基于多处理器结构的(N+1-ary)搜索算法性能更好。
  下一步还可改进算法的适应性以及扩展性,在不同的网络流量下提供不同的相适应的搜索提示函数以进一步提高算法性能。
  参考文献:
  [1]Douglas E.Coner.Interworking with TCP/IP VOL I:Principles,Protocols,and Architectures Fourth Editor[M].北京:电子工业出版社,2000.
  [2]王振兴.等.基于二分搜索Trie的IPV4/IPV6路由快速查找算法[M].计算机工程,2005年1月.
  [3]Bulter Lampson, Venkatachary Srinivasan,GeorgeVarghese IP Lookups Using Multiway and Multicolumn Search IEEE/ACM Transactions on Networking, Vol.7,No.3, June 1999.
  本文中所涉及到的圖表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:CDP协议是一种基于UDP协议之上的TCP协议实现,该协议同时具有TCP协议的通用、高效,和UDP协议的高NAT穿透成功率,可用于很多P2P网络应用的构建。  关键词:P2P;CDP;NAT 穿透;基于UDP的TCP  中图分类号:TP317文献标识码:A 文章编号:1009-3044(2007)03-10736-02    1 引言    随着互联网应用广泛推广,基于各种P2P网络技术的产
期刊
摘要:对校园网中存在安全隐患的网络边界实施“端点准入”认证机制的方法进行了研究,详细分析了基于802.1x的认证机制的工作原理及其体系结构,提供了在linux上实现此种认证机制的方法。  关键词:802.1x;端点准入;Linux;RADIUS  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10684-03    1 引言    “端点准入”是指对接入网络的用
期刊
摘要:能让网站上的天气预报自动更新,不仅可减轻网站维护的工作量,还可使用户享受到准确、及时的天气服务。该文论述了如何通过开放的、支持多种协议的Windows下的网络编程接口WinSock,用VB编制一套程序,定时自动从中央气象台网站上下载气象信息,用于自己的网站。使访客能及时得到所需的天气信息。  关键词:WinSock;网站;VB  中图分类号:TP311文献标识码:A 文章编号:1009-30
期刊
摘要:本文详细介绍为通过拨号上网的用户分配私有IP地址,再通过路由器NAT技术进行转换,结合AAA技术对拨号上网用户进行身份认证的综合解决方案,在互联网中具有广泛应用空间。  关键词:拨号;NAT;AAA;路由器  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10718-02    1 引言    随着互联网技术的高速发展,互联网用户的数量急剧增加,加快了信息
期刊
摘要:自从八十年代末期简单网络管理协议面世以来,网络管理技术在短短的十几年里得到了突飞猛进的发展,网络管理技术正逐步成为网络构建和维护中必不可少的重要因素。本文主要介绍了Socket通讯原理及其通讯方式[3],并对SNMP协议通信原理进行了论述,最后实现了一种基于Java的SNMP协议的接收和发送报文的Socket通讯。  关键词:SNMP;Socket;同步;异步  中图分类号:TP393.03
期刊
摘要:面向方面编程(AOP)是面向对象编程(OOP)的一种扩展技术,能够很好的解决横切关注点问题,使得大型软件的设计和实现都能保持功能分离,解除代码耦合。采用AOP技术设计的软件,功能划分清晰,代码保持独立,系统维护简单。Spring AOP是AOP技术的一种实现技术。  关键词:Spring;AOP;Java;框架  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)0
期刊
摘要:Koch分形曲线是分形图形中一种较为典型的平面曲线。本文对Koch分形曲线算法进行深入研究,并把其推广至树形分形曲线、矩形分形曲线等分形图形,实践证明这种算法的执行效率较高。  关键词:分形图形;Koch分形曲线;算法  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10751-02    1 引言    分形图形是计算机图形学中研究的对象之一。因为日常生
期刊
摘要:在相关理论分析和研究的基础上,设计并实现了一个基于纯P2P平台的包含文件共享、远程计算调用以及共享白板的应用。该应用使用数据对等传输,避免了传统传输方式下服务器引发的瓶颈问题,具有良好的共享和协作计算能力。  关键词:P2P;文件共享;远程计算调用;白板  中图分类号:TP317文献标识码:A 文章编号:1009-3044(2007)03-10726-03    1 引言    早期的互联网
期刊
摘要:本文对在Visual C++6.0的MFC程序设计过程中,通过实例形式,给出了三种全局变量和全局函数的三种基本方法。  关键词:MFC;全局变量;全局函数  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10766-02    1 引言    在教授学生使用Visual C++6.0中的MFC基本应用时,由于MFC制作的工程由很多文件构成,它不能象一般C+
期刊
摘要:XPS(XML Paper Specification)格式将是Microsoft Windows Vista中用于电子文档发布的首选格式,是继PDF文件格式之后的一种新的输出文件类型。在微软和各大印刷硬件厂商的支持下,XPS将有望超越PDF成为全球电子文档发布的开放式标准。本文针对XPS文档的几种快速页面处理方法给出了设计方案与实现。  关键词:XPS;页面处理;缩放;旋转;反转  中图分
期刊