标题：路由技术
路由选择算法的分类
路由选择算法就是路由选择的方法或策略。
按照路由选择算法能否随网络的拓扑结构或者通信量自适应地进行调整变化进行分类，路由选择算法可以分为静态路由选择算法和动态路由选择算法。
1、静态路由选择算法静态路由选择算法就是非自适应路由选择算法，这是一种不测量、不利用网络状态信息，仅仅按照某种固定规律进行决策得简单得路由选择算法。静态路由选择算法得特点是简单和开销小，但是不能适应网络状态的变化。静态路由选择算法主要包括扩散法和固定路由表法。静态路由是依靠手工输入的信息来配置路由表的方法。
静态路由具有以下几个优点：减小了路由器的日常开销。在小型互联网上很容易配置。可以控制路由选择的更新。但是，静态路由在网络变化频繁出现的环境中并不会很好的工作。在大型的和经常变动的互联网，配置静态路由是不现实。
2、动态路由选择算法动态路由选择算法就是自适应路由选择算法，是依靠当前网络的状态信息进行决策，从而使路由选择结果在一定程度上适应网络拓扑结构和通信量的变化。
动态路由选择算法的特点是能较好的适应网络状态的变化，但是实现起来较为复杂，开销也比较大。动态路由选择算法一般采用路由表法，主要包括分布式路由选择算法和集中式路由选择算法。分布式路由选择算法是每一个节点通过定期得与相邻节点交换路由选择得状态信息来修改各自的路由表，这样使整个网络的路由选择经常处于一种动态变化的状况。集中式路由选择算法是网络中设置一个节点，专门收集各个节点定期发送得状态信息，然后由该节点根据网络状态信息，动态的计算出每一个节点的路由表，再将新的路由表发送给各个节点。
路由选择协议的分类
动态路由是指路由协议可以自动根据实际情况生成的路由表的方法。动态路由的主要优点是，如果存在到目的站点的多条路径，运行了路由选择协议（如RIP或IGRP）之后，而正在进行数据传输的一条路径发生了中断的情况下，路由器可以自动的选择另外一条路径传输数据。这对于建立一个大型的网络是一个优点。大多数路由选择协议可分成两种基本路由选择协议：
1、距离矢量路由选择协议计算网络中链路的距离矢量，然后根据计算结果进行路由选择。典型的距离向量路由选择协议有IGRP、RIP等。路由器定期向邻居路由器发送消息，消息的内容就是自己的整个路由表，如：1、到达目的网络所经过的距离、2、到达目的网络的下一跳地址运行距离矢量的路由器会根据相邻路由器发送过来的信息，更改自己的路由表。
2、链路状态路由选择协议典型的链路状态路由选择协议有OSPF等。链路状态路由选择协议的目的是得到整个网络的拓扑结构。运行链路状态路由协议的每个路由器都要提供链路状态的拓扑结构信息，信息的内容包括：1、路由器所连接的网段链路。2、以及该链路的物理状态。根据返回的信息，路由器根据网络拓扑结构的变化及时修改路由配置，以适应新的路由选择。
因特网的路由选择协议
1、自治系统（AS）由于因特网规模庞大，为了路由选择的方便和简化，一般将整个因特网划分为许多较小的区域，称为自治系统。每个自治系统内部采用得路由选择协议可以不同，自治系统根据自身得情况有权决定采用哪种路由选择协议。
2、因特网的路由选择协议的特点因特网的路由选择协议的特点是：
属于自适应的选择协议（即动态的）；是分布式路由选择协议；因特网采用分层次的路由选择协议，即分自治系统内部和自治系统外部路由选择协议。
3、因特网的路由选择协议分类内部网关协议（IGP）：在一个自治系统内部使用得路由选择协议。具体的协议有RIP和OSPF等。外部网关协议（EGP）：两个自治系统之间使用得路由选择协议。目前使用最多的是BGP（即BGP-4）此处的网关指的是路由器。
路由协议
1、内部网关协议IGPIGP（内部网关协议）是在一个自治网络内网关（主机和路由器）间交换路由信息的协议。路由信息能用于网间协议（IP）或者其它网络协议来说明路由传送是如何进行的。
Internet网被分成多个域或多个自治系统。一个域（domain）是一组主机和使用相同路由选择协议的路由器集合，并由单一机构管理。换言之，一个域可能是由一所大学或其它机构管理的互联网。内部网关协议（IGP）在一个域中选择路由。外部网关协议（EGP）为两个相邻的位于各自域边界上的路由器提供一种交换消息和信息的方法。
OSPF(OpenShortestPathFirst）是一个内部网关协议(InteriorGatewayProtocol，简称IGP），用于在单一自治系统（autonomous system,AS）内决策路由。与RIP相对，OSPF是链路状态路由协议，而RIP是距离向量路由协议。链路是路由器接口的另一种说法，因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库，生成最短路径树，每个OSPF路由器使用这些最短路径构造路由内部网关协议用在一个域中交换路由选择信息，如路由选择信息协议（RIP）和优先开放最短路径协议（OSPF）。OSPF是与OSI的IS-IS协议十分相似的内部路由选择协议。在区域的边界，周边路由器将一个域与其它域相连。这些路由器使用外部路由选择协议（ExteriorRoutingProto-cols）交换路由选择。外部网关协议（[[ExteriorGatewayProtocol，EGP）为位于自治域边界的两个相邻的周边路由器提供一种交换消息和信息的方法。对于EGP的替代是周边网关协议（BorderGatewayProtocol，BGP），它被用于提供改进性能，如指定路由选择策略的能力。　
内部网关协议用于域内交换路由选择信息。常用的路由选择协议：地址解析协议（ARP）：ARP用于Internet和TCP/IP网，是一种邻居发现协议，它与OSI端系统对中间系统（ES-IS）协议相似。路由器和主机（用户计算机、服务器等）都使用ARP来相互通告。路由器把包含一个IP地址的分组广播出去。网络上有这个IP地址的计算机或设备回送自己的LAN地址。这些地址被存入路由选择表中，以备将来使用。另一个与ARR相似的协议，称为逆ARP(RARP），执行相反的任务，它根据已知的网络地址获得IP地址。
2、路由选择信息协议（RIP)RIP使用距离向量算法（DVA）计算路由选择路径。在DVA中，路由选择的确是基于到一个目的站中最少路由中继（hop）数或到一个相邻路由器路径的费用计算出来的一个总的费用。RIP路由选择表与其它路由器大约每30秒钟交换一次，路由器就是基于新的消息来重新生成它们的路由选择信息表。如果一个路由器连到低吞吐量的WAN链路，那么它在重新生成路由选择表时就会落后。另外，交换路由选择信息表要增加网络额外开销，它会引起许多拥塞，进一步推迟路由选择表的更新。如果一条路由失败了，重新建立路由选择表所需的延迟将会推迟一条新的路由尽快地建立。　
优先开放最短路径（OSPF）：OSPF是一个链路状态路由选择算法，它是由开放系统互连（OSI）中间系统对中间系统（IS-IS）域内路由选择协议所做的工作派生出来的。链路状态路由选择与距离向量路由选择相比，需要更强的处理能力，但提供更多路由选择处理控制和更快的变化响应，Dijkstra算法用于计算路由是基于分组必须跳跃（hop）过的路由器数、传输线路的速度、交通拥塞延迟和根据某种度量的路由器费用。OSPF路由选择表只在必要时更新和仅更新有效（变化）的信息。
3、外部网关协议（EGP)外部网关协议（EGP）提供一种方法，为两个位于它们各自域边界的相邻路由器交换信息和消息。外部网关协议还提供一种方法，为路由器相互交换路由选择信息。每一个域有一个或多个路由器被选作EGP协议路由器。每一个EGP使用内部网关协议和同一域内部的网关交换路由选择信息，以便它知道局域内端系统（主机）的地址。EGP与其它域内的EGP相连和交换有关各自域内端系统的路由选择信息。有了这些信息，网关就知道发送信息到域外其它系统的最佳路径。
EGP的主要功能如下：执行相邻网关连接过程使两个外部网关相连和决定交换信息。通过发送一条消息周期性地核实相邻的路由器和等待一个响应，这将确保一个外部网关仍可采用。周期性地交换路由选择信息。路由器的EGP例行程序能够轮询相邻的路由器以获得更新的信息。通常要维持两张表，用内部协议如RIP和OSPF获得一张内部路由表，用EGP获得一张外部路由表。然而，EGP有下述周边网关协议（BGP）试图解决的缺点。EGP是在Internet组成单个主干网时设计的，它对于今天的多主干网不是有效的。路由器是用显式定义那些路由器能够连接的静态路由选择表设置的，这避免环路和提供安全性，但不支持一个可扩展的网络。
4、域间策略路由选择协议几个新的域间路由选择协议被推荐在Internet网上使用。随着Internet网规模的扩大，现行的外部协议不能提供足够的扩展能力。实现基于策略路由选择的新协议比EGP更具有可扩展性（Internet的要求）。基于策略路由选择给管理员更多的网络控制、允许优化交通流量和实现安全特性以及服务收费。
5、周边网关协议（BGP)周边网关协议（BorderGatewayProtocol，BGP）作为一种中间解决方法提供了一些有限的策略特性，但它没有解决可扩展的需求。路由器属性如一条路径的费用和安全性也被加入BGP。由于BGP的路由选择信息交换只传送增加的部分而不是整个数据库，所以它所需的带宽降低了。
6、域间路由选择协议（IDRP)域间路由选择协议（Inter Domain Routing Protocol，IDRP）是一个类似于In-ternet周边网关协议（BGP）的基于策略路由选择协议。策略路由选择提供了以预定方式路由传输的方法，它是一种距离向量路由选择协议，其中的每一种路由器为一个分组通过网络定义了一条路径。注意，IDRP是一个基于OSI的协议。　
域间策略路由选择（IDPR）：域间策略路由选择（Inter domain Policy Routing，IDPR）是一个在域间实现源路由选择和基于策略的路由选择的链路状态路由选择协议。源路由选择由于分组本身保持路径信息而提供一些有用的增强特性。这对于初始发现路径是很必要的，但后继的分组只是简单地把路径放入自己的头部。
OSPF协议与传统路由协议RIP协议的比较
RIP协议是一种传统的路由协议，适合比较小型的网络，但是当前Internet网络的迅速发展和急剧膨胀使RIP协议无法适应今天的网络。OSPF协议则是在Internet网络急剧膨胀的时候制定出来的，它克服了RIP协议的许多缺陷。
1、15跳限制RIP协议一条路由有15跳（网关或路由器）的限制，如果一个RIP网络路由跨越超过15跳（路由器），则它认为网络不可到达，而OSPF对跨越路由器的个数没有限制。
2、可变长度子网掩码OSPF协议支持可变长度子网掩码（VLSM），RIP则不支持，这使得RIP协议对当前IP地址的缺乏和可变长度子网掩码的灵活性缺少支持。
3、广播更新的区别RIP协议不是针对网络的实际情况而是定期地广播路由表，这对网络的带宽资源是个极大的浪费，特别对大型的广域网。OSPF协议的路由广播更新只发生在路由状态变化的时候，采用IP多路广播来发送链路状态更新信息，这样对带宽是个节约。
4、层次的区别RIP网络是一个平面网络，对网络没有分层。OSPF在网络中建立起层次概念，在自治域中可以划分网络域，使路由的广播限制在一定的范围内，避免链路中继资源的浪费。5、OSPF在路由广播时采用了授权机制，保证了网络安全。上述两者的差异显示了OSPF协议后来居上的特点，其先进性和复杂性使它适应了今天日趋庞大的Internet网，并成为主要的互联网路由协议。
RIP路由表
使用RIP报文中列出的项，RIP主机可以彼此之间交流路由信息。这些信息存储在路由表中，路由表为每一个知道的、可达的目的地保留一项。每个目的地表项是到达那个目的地的最低开销路由。注意每个目的地的表项数可以随路由生产商的不同而变化。生产商可能选择遵守规范，也可以对标准进行他们认为合适的“强化”。所以，用户很可能会发现某个特殊商标的路由器为每一个网络中的目的地存储至多4条相同费用的路由。注意虽然RFC1058是一个开放式标准，能支持大量互连网络地址结构，然而它是由IETF设计用于INTERENT中自治系统内的协议。如此，使用这种形式RIP的自然是网络互联协议。每个路由表项包括以下各域：目的IP地址域、距离-向量度量域、下一跳IP地址域、路由变化标志域、路由计时器域。
1、目的IP地址域任何路由表中所包含的最重要信息是到所知目的地的IP地址。一旦一台RIP路由器收到一个数据报文，就会查找路由表中的目的IP地址以决定从哪里转发那个报文。
2、度量标准域路由表中的度量域指出报文从起始点到特定目的地的总耗费。路由表中的度量是从路由器到特定目的地之间网络链路的耗费总和。
3、下一跳IP地址域下一跳IP地址域包括至目的地的网络路径上下一个路由器接口的IP地址。如果目的IP地址所在的网络与路由器不直接相连时，路由器表中才出现此项。
4、路由变化标志域路由变化标志域用于指出至目的IP地址的路由是否在最近发生了变化。这个域是重要的，因为RIP为每一个目的IP地址只记录一条路由。
5、路由计时器域有两个计时器与每条路由相联系，一个是超时计时器，一个是路由刷新计时器。这些计时器一同工作来维护路由表中存储的每条路由的有效性。
RIP协议的实现
RIP根据V-D算法的特点，将协议的参加者分为主动机和被动机两种。主动机主动向外广播路由刷新报文，被动机被动地接收路由刷新报文。一般情况下，主机作为被动机，路由器则既是主动机又是被动机，即在向外广播路由刷新报文的同时，接受来自其它主动机的V-D报文，并进行路由刷新。RIP规定，路由器每30秒向外广播一个V-D报文，报文信息来自本地路由表。RIP的V-D报文中，其距离以驿站计：与信宿网络直接相连的路由器规定为一个驿站，相隔一个路由器则为两个驿站……以此类推。一条路由的距离为该路由（从信源机到信宿机）上的路由器数。为防止寻径环长期存在，RIP规定，长度为16的路由为无限长路由，即不存在的路由。所以一条有效的路由长度不得超过15。正是这一规定限制了RIP的使用范围，使RIP局限于中小型的网络网点中。为了保证路由的及时有效性，RIP采用触发刷新技术和水平分割法。当本地路由表发生修改时，触发广播路由刷新报文，以迅速达到最新路由的广播和全局路由的有效。水平分割法是指当路由器从某个网络接口发送RIP路由刷新报文时，其中不包含从该接口获取的路由信息。这是由于从某网络接口获取的路由信息对于该接口来说是无用信息，同时也解决了两路由器间的慢收敛问题。
对于局域网的路由，RIP规定了路由的超时处理。主要是考虑到这样一个情况，如果完全根据V-D算法，一条路由被刷新是因为出现一条路由开销更小的路由，否则路由会在路由表中一直保存下去，即使该路由崩溃。这势必造成一定的错误路由信息。为此，RIP规定，所有机器对其寻径表中的每一条路由都设置一个时钟，每增加一条新路由，相应设置一个新时钟。在收到的V-D报文中假如有关于此路由的表目，则将时钟清零，重新计时。假如在120秒内一直未收到该路由的刷新信息，则认为该路由崩溃，将其距离设为16，广播该路由信息。如果再过60后仍未收到该路由的刷新信息，则将它从路由表中删除。如果某路由在距离被设为16后，在被删除前路由被刷新，亦将时钟清零，重新计时，同时广播被刷新的路由信息。至于路由被删除后是否有新的路由来代替被删除路由，取决于去往原路由所指信宿有无其它路由。假如有，相应路由器会广播之。机器一旦收到其它路由的信息，自然会利用V-D算法建立一条新路由。否则，去往原信宿的路由不再存在。
RIP的启动和运行
整个过程如下所描述：某路由器刚启动RIP时，以广播的形式向相邻路由器发送请求报文，相邻路由器的RIP收到请求报文后，响应请求，回发包含本地路由表信息的响应报文。RIP收到响应报文后，修改本地路由表的信息，同时以触发修改的形式向相邻路由器广播本地路由修改信息。相邻路由器收到触发修改报文后，又向其各自的相邻路由器发送触发修改报文。在一连串的触发修改广播后，各路由器的路由都得到修改并保持最新信息。同时，RIP每30秒向相邻路由器广播本地路由表，各相邻路由器的RIP在收到路由报文后，对本地路由进行的维护，在众多路由中选择一条最佳路由，并向各自的相邻网广播路由修改信息，使路由达到全局的有效。同时RIP采取一种超时机制对过时的路由进行超时处理，以保证路由的实时性和有效性。RIP作为内部路由器协议，正是通过这种报文交换的方式，提供路由器了解本自治系统内部个网络路由信息的机制。
RIP-2支持版本1和版本2两种版本的报文格式。在版本2中，RIP还提供了对子网的支持和提供认证报文形式。版本2的报文提供子网掩码域，来提供对子网的支持；另外，当报文中的路由项地址域值为0xFFFF时，默认该路由项的剩余部分为认证。RIP2对拨号网的支持则是参考需求RIP和触发RIP的形式经修改而加入的新功能。这时，我们只是要求在拨号网拨通之后对路由进行30秒一次的广播，而在没拨通时并不作如是要求，这是根据具体情况变通的结果。
RIP的限制
虽然RIP有很长的历史，但它还是有自身的限制。它非常适合于为早期的网络互联计算路由；然而，技术进步已极大地改变了互联网络。建造和使用的方式。因此，RIP会很快被今天的互联网络所淘汰。RIP的一些最大限制是：
·不能支持长于15跳的路径。
·依赖于固定的度量来计算路由。
·对路由更新反应强烈。
·相对慢的收敛。
·缺乏动态负均衡支持。
OSPF协议
OSPF协议的特点RouterID：一个32bit的无符号整数，是一台路由器的唯一标识，在整个自治系统内唯一。协议号：OSPF的协议号是89.OSPF协议报文不转发：通常OSPF的协议报文是不被转发的，只能传递一跳，即在IP报文头中TTL值被设为1。（虚连接除外）OSPF协议OpenShortestPathFirst，目前IGP中应用最广、性能能最优的一个协议具有如下特点：
1、可适应大规模网络
2、路由变化收敛速度快
3、无路由自环
4、支持变长子网掩码VLSM
5、支持等值路由
6、支持区域划分
7、提供路由分级管理
8、支持验证
9、支持以组播地址发送协议报文。
OSPF计算路由OSPF虽然很复杂，却使用下面两种相当简单的方法之一计算路由耗费：
1、非带宽敏感的缺省值可以用于每一个OSPF接口。
2、OSPF能自动计算使用每个路由接口的耗费。不管使用哪种方法，任何一条路由的耗费可以通过把路由上遇到的每个路由器接口耗费加起来得到。在OSPF的最短路径树中记录了每一个已知目的地的和耗费。
OSPF是功能最强大、特点最丰富的开放式路由协议之一。它的复杂性也是其弱点来源，因为设计、建造和操作一个OSPF互联网络需要比使用几乎每一种其他路由协议更多的专业知识和精力。采用路由耗费的缺省值可以极大地简化OSPF网络设计。随着关于OSPF及网络操作特点知识的增加，用户能够慢慢地通过控制OSPF变量来优化网络性能。必须小心地设计区和网络拓扑。做得好，OSPF会使网络用户得到优异的性能和快速的收敛速度。BGP用于特大型网络如INTERNET的核心。
EGP协议
两个交换选路信息的路由器若分属两个自治系统，则被称为外部邻站（exteriorneighbors），但它们若同属一个自治系统，则称为内部邻站（interiorneighbors）。外部邻站使用的向其他自治系统通告可达信息的协议被称为外部网关协议EGP（ExteriorGatewayProtocol），使用该协议的路由器被称为外部路由器（exteriorrouter）。在Internet网中，EGP显得尤为重要，因为与之相连的自治系统使用它向核心系统通告可达信息。EGP有三大功能。第一个是它支持邻居获取（neighboracquisition）机制，即允许一个路由器请求另一个路由器同意交换可达信息。我们可以说，一个路由器获得了（acquire）一个EGP对等路由器（EGPpeer）或一个EGP邻站（EGPneighbor）。EGP对等路由器仅在交换选路信息的意义上来说是邻站，而不论其地理位置是否邻近。第二，路由器持续地测试其EGP邻站是否能够响应。第三，EGP邻站周期性地传送选路更新报文（routingupdatemessage）来交换网络可达信息。
外部网关协议用于在非核心的相邻网关之间传输信息。非核心网关包含互联网络上所有与其直接相邻的网关的路由信息及其所连机器信息，但是它们不包含Internet上其他网关的信息。对绝大多数EGP而言，只限制维护其服务的局域网或广域网信息。这样可以防止过多的路由信息在局域网或广域网之间传输。EGP强制在非核心网关之间交流路由信息。
由于核心网关使用GGP，非核心网关使用EGP，而二者都应用在Internet上，所以必须有某些方法使二者彼此之间能够通信。Internet使任何自治（非核心）网关给其他系统发送“可达”信息，这些信息至少要送到一个核心网关。假如有一个更大的自治网络，经常认为有一个网关来处理这些可达信息。和GGP一样，EGP使用一个查询过程来让网关清楚它的相邻网关并不断地与其相邻者交换路由和状态信息。EGP是状态驱动的协议，意思是说它依靠于一个反映网关情况的状态表和一组当状态表项变化时必须执行的一组操作。
EGP报文首部：为了实现上述三个基本功能，EGP定义了下表所列的九种报文类型：
EGP报文类型 描述
AcquisitionRequest（获取请求）请求路由器成为邻站（对等路由器）
AcquisitionConfirm（获取证实）对获取请求的肯定响应
AcquisitionRefuse（获取拒绝）对获取请求的否定响应
CeaseRequest（中止请求）请求中止邻站关系
CeaseConfirm（中止证实）对中止请求的证实响应
Hello（你好）请求邻站回答是否活跃
IHeardYou（我听见你）对Hello报文的回答
PollRequest（轮询请求）请求更新网络的选路
RoutingUpdate（选路更新）网络可达信息
Error（差错）对不正确报文的响应
所有的EGP报文都有固定的首都用于说明报文类型。
首部中的版本（VERSION）字段取整数值，指出该报文使用的EGP的版本号。接收方检测版本号以确认双方使用相同版本的协议。类型（TYPE）字段指出报文的类型，而代码（CODE）字段给出了子类型。状态（STATUS）字段包含了与本报文有关的状态信息。EGP使用校验和字段来确认报文的正确到达。其算法与IP的校验和算法相同。它把整个EGP报文当做16比特整数的序列，使用各个整数的二进制反码和的二进制反码作为校验和。计算校验和之前把校验和（CHECKSUM）字段初始化为零，通过填充0来把报文长度变为16比特的整数倍。自治系统号（AUTONOMOUSSYSTEMNUM）字段给出了表示发送该报文的路由器所在的自治系统的编号，而序号（SEQUENCENUMBER）用于收发双方进行联系。路由器请求邻站时赋一个初始序号，以后每次发送报文时将序号增加。邻站回送最近收到的序号值，发送方便用这个回送值与发送时的值作一比较来确保报文的正确性。