① 路由协议分类、比较
分类::对于路由器协议这个名词,可能很多人都已经耳熟能详,特别目前网络发展的很快,Internet路由器协议也在不断的完善,同时也出现了很多新功能。信息技术在各个领域的广泛应用促使信息交换网络的迅猛发展,其中Internet是最大的受益者。
Internet网络的主要节点设备是路由器,路由器技术通过路由决定数据的转发。转发策略称为路由选择(routing),这也是路由器名称的由来(router,转发者)。决定转发的办法可以是人为指定,但人为指定工作量大,而且不能采取灵活的策略,于是动态路由器协议应运而生,通过传播、分析、计算、挑选路由,来实现路由发现、路由选择、路由切换和负载分担等功能。
RIP、OSPF和BGP协议
Internet上现在大量运行的路由器协议有RIP、OSPF和BGP。RIP、OSPF是内部网关协议,适用于单个ISP的统一路由器协议的运行,由一个ISP运营的网络称为一个自治系统(AS)。BGP是自治系统间的路由器协议,是一种外部网关协议。
RIP是推出时间最长的路由器协议,也是最简单的路由器协议。它是“路由信息协议”的缩写,主要传递路由信息(路由表)来广播路由:每隔30秒,广播一次路由表,维护相邻路由器的关系,同时根据收到的路由表计算自己的路由表。RIP运行简单,适用于小型网络,Internet上还在部分使用着RIP。
OSPF协议是“开放式最短路优先”的缩写。“开放”是针对当时某些厂家的“私有”路由器协议而言,而正是因为协议开放性,才造成OSPF今天强大的生命力和广泛的用途。它通过传递链路状态(连接信息)来得到网络信息,维护一张网络有向拓扑图,利用最小生成树算法(SPF算法)得到路由表。OSPF是一种相对复杂的路由器协议。
总的来说,OSPF、RIP都是自治系统内部的路由器协议,适合于单一的ISP(自治系统)使用。一般说来,整个Internet并不适合跑单一的路由器协议,因为各ISP有自己的利益,不愿意提供自身网络详细的路由信息。为了保证各ISP利益,标准化组织制定了ISP间的路由器协议BGP。
BGP是“边界网关协议”的缩写,处理各ISP之间的路由传递。其特点是有丰富的路由策略,这是RIP、OSPF等协议无法做到的,因为它们需要全局的信息计算路由表。BGP通过ISP边界的路由器加上一定的策略,选择过滤路由,把RIP、OSPF、BGP等的路由发送到对方。全局范围的、广泛的Internet是BGP处理多个ISP间的路由的实例。BGP的出现,引起了Internet的重大变革,它把多个ISP有机的连接起来,真正成为全球范围内的网络。带来的副作用是Internet的路由爆炸,现在Internet网的路由大概是60000条,这还是经过“聚合”后的数字。配置BGP需要对用户需求、网络现状和BGP协议非常了解,还有——需要非常小心,BGP运行在相对核心的地位,一旦出错,其造成的损失可能会很大!
为适应Internet网络一对多的多点传送应用如天气预报、网络会议等,出现了一种新的传输模式——多播(multicast)。多播适合于一到多的传输环境,同时也可适用多到多、多到一的情况。多播转发主要由路由器决定,路由器通过两种方式决定所谓的下游:决定是否有主机(用户)的下游,通过Multicastclient(IGMP)协议;决定是否有间接用户,即通过“下游”路由器带的组员,由下游路由器通过多播路由器协议的报文通告,路由器决定是否往该下游转发数据。 可以看到,第二种方式中多播路由器协议的应用是大规模网络多播转发的关键。多播路由器协议应该至少能正确通告组员信息,并能形成全局统一的路由拓扑。
密集模式适用于小型网络,其假设是全网有非常“密集”的组员存在,采用广播+剪枝的工作策略。其默认假设是向所有的下游转发数据,当收到某下游发来的明确的剪枝信息后,才把该接口从下游列表中除去。一般说来,转发路径应该是以“源”为根、组员为枝叶的一棵树。密集模式的路由器协议包括DVMRP、MOSPF和PIMDM。
稀疏模式是Internet上应用广泛的一种情形。毕竟,针对Internet网,现在任何一次多播应用都不会有1%以上的机器需要接收。稀疏模式默认所有机器都不需要收多播包,只有明确指定需要的才予以转发,这确实能适用于“稀疏”的考虑。现在所有稀疏模式协议的主要转发思路是所有同类报文按相同的路径转发,即先发送到一个汇聚点(或称为核),再沿以汇聚点为根的组员为枝叶的共享树转发。稀疏方式的路由器协议包括PIMSM和CBT。
可以毫不夸张的说,路由器协议支持着IP,支持着Internet。没有路由器协议,Internet将是一个混乱的世界,不可能有今天这样的方便快捷。而多播则开创了一个新的发展前景,将成为引导Internet未来的主力。
比较::路由分为静态路由和动态路由,其相应的路由表称为静态路由表和动态路由表。静态路由表由网络管理员在系统安装时根据网络的配置情况预先设定,网络结构发生变化后由网络管理员手工修改路由表。动态路由随网络运行情况的变化而变化,路由器根据路由协议提供的功能自动计算数据传输的最佳路径,由此得到动态路由表。 根据路由算法,动态路由协议可分为距离向量路由协议(Distance Vector Routing Protocol)和链路状态路由协议(Link State Routing Protocol)。距离向量路由协议基于Bellman-Ford算法,主要有RIP、IGRP(IGRP为Cisco公司的私有协议);链路状态路由协议基于图论中非常着名的Dijkstra算法,即最短优先路径(Shortest Path First,SPF)算法,如OSPF。在距离向量路由协议中,路由器将部分或全部的路由表传递给与其相邻的路由器;而在链路状态路由协议中,路由器将链路状态信息传递给在同一区域内的所有路由器。 根据路由器在自治系统(AS)中的位置,可将路由协议分为内部网关协议(Interior Gateway Protocol,IGP)和外部网关协议(External Gateway Protocol,EGP,也叫域间路由协议)。域间路由协议有两种:外部网关协议(EGP)和边界网关协议(BGP)。EGP是为一个简单的树型拓扑结构而设计的,在处理选路循环和设置选路策略时,具有明显的缺点,目前已被BGP代替。 EIGRP是Cisco公司的私有协议,是一种混合协议,它既有距离向量路由协议的特点,同时又继承了链路状态路由协议的优点。各种路由协议各有特点,适合不同类型的网络。下面分别加以阐述。2 静态路由 静态路由表在开始选择路由之前就被网络管理员建立,并且只能由网络管理员更改,所以只适于网络传输状态比较简单的环境。静态路由具有以下特点: · 静态路由无需进行路由交换,因此节省网络的带宽、CPU的利用率和路由器的内存。 · 静态路由具有更高的安全性。在使用静态路由的网络中,所有要连到网络上的路由器都需在邻接路由器上设置其相应的路由。因此,在某种程度上提高了网络的安全性。 · 有的情况下必须使用静态路由,如DDR、使用NAT技术的网络环境。 静态路由具有以下缺点: · 管理者必须真正理解网络的拓扑并正确配置路由。 · 网络的扩展性能差。如果要在网络上增加一个网络,管理者必须在所有路由器上加一条路由。 · 配置烦琐,特别是当需要跨越几台路由器通信时,其路由配置更为复杂。3 动态路由 动态路由协议分为距离向量路由协议和链路状态路由协议,两种协议各有特点,分述如下。 1. 距离向量(DV)协议 距离向量指协议使用跳数或向量来确定从一个设备到另一个设备的距离。不考虑每跳链路的速率。 距离向量路由协议不使用正常的邻居关系,用两种方法获知拓扑的改变和路由的超时: · 当路由器不能直接从连接的路由器收到路由更新时; · 当路由器从邻居收到一个更新,通知它网络的某个地方拓扑发生了变化。 在小型网络中(少于100个路由器,或需要更少的路由更新和计算环境),距离向量路由协议运行得相当好。当小型网络扩展到大型网络时,该算法计算新路由的收敛速度极慢,而且在它计算的过程中,网络处于一种过渡状态,极可能发生循环并造成暂时的拥塞。再者,当网络底层链路技术多种多样,带宽各不相同时,距离向量算法对此视而不见。 距离向量路由协议的这种特性不仅造成了网络收敛的延时,而且消耗了带宽。随着路由表的增大,需要消耗更多的CPU资源,并消耗了内存。 2. 链路状态(LS)路由协议 链路状态路由协议没有跳数的限制,使用“图形理论”算法或最短路径优先算法。 链路状态路由协议有更短的收敛时间、支持VLSM(可变长子网掩码)和CIDR。 链路状态路由协议在直接相连的路由之间维护正常的邻居关系。这允许路由更快收敛。链路状态路由协议在会话期间通过交换Hello包(也叫链路状态信息)创建对等关系,这种关系加速了路由的收敛。 不像距离向量路由协议那样,更新时发送整个路由表。链路状态路由协议只广播更新的或改变的网络拓扑,这使得更新信息更小,节省了带宽和CPU利用率。另外,如果网络不发生变化,更新包只在特定的时间内发出(通常为30min到2h)。 3. 链路状态路由协议和距离向量路由协议的比较4 常用动态路由协议的分析4.1 RIP RIP(路由信息协议)是路由器生产商之间使用的第一个开放标准,是最广泛的路由协议,在所有IP路由平台上都可以得到。当使用RIP时,一台Cisco路由器可以与其他厂商的路由器连接。RIP有两个版本:RIPv1和RIPv2,它们均基于经典的距离向量路由算法,最大跳数为15跳。 RIPv1是族类路由(Classful Routing)协议,因路由上不包括掩码信息,所以网络上的所有设备必须使用相同的子网掩码,不支持VLSM。RIPv2可发送子网掩码信息,是非族类路由(Classless Routing)协议,支持VLSM。 RIP使用UDP数据包更新路由信息。路由器每隔30s更新一次路由信息,如果在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。如果在240s后仍未收到该路由器的应答,则把有关该路由器的路由信息从路由表中删除。 RIP具有以下特点:· 不同厂商的路由器可以通过RIP互联;· 配置简单; · 适用于小型网络(小于15跳);· RIPv1不支持VLSM;· 需消耗广域网带宽;· 需消耗CPU、内存资源。 RIP的算法简单,但在路径较多时收敛速度慢,广播路由信息时占用的带宽资源较多,它适用于网络拓扑结构相对简单且数据链路故障率极低的小型网络中,在大型网络中,一般不使用RIP。4.2 IGRP 内部网关路由协议(Interior Gateway Routing Protocol,IGRP)是Cisco公司20世纪80年代开发的,是一种动态的、长跨度(最大可支持255跳)的路由协议,使用度量(向量)来确定到达一个网络的最佳路由,由延时、带宽、可靠性和负载等来计算最优路由,它在同个自治系统内具有高跨度,适合复杂的网络。Cisco IOS允许路由器管理员对IGRP的网络带宽、延时、可靠性和负载进行权重设置,以影响度量的计算。 像RIP一样,IGRP使用UDP发送路由表项。每个路由器每隔90s更新一次路由信息,如果270s内没有收到某路由器的回应,则认为该路由器不可到达;如果630s内仍未收到应答,则IGRP进程将从路由表中删除该路由。 与RIP相比,IGRP的收敛时间更长,但传输路由信息所需的带宽减少,此外,IGRP的分组格式中无空白字节,从而提高了IGRP的报文效率。但IGRP为Cisco公司专有,仅限于Cisco产品。4.3 EIGRP 随着网络规模的扩大和用户需求的增长,原来的IGRP已显得力不从心,于是,Cisco公司又开发了增强的IGRP,即EIGRP。EIGRP使用与IGRP相同的路由算法,但它集成了链路状态路由协议和距离向量路由协议的长处,同时加入散播更新算法(DUAL)。 EIGRP具有如下特点: · 快速收敛。快速收敛是因为使用了散播更新算法,通过在路由表中备份路由而实现,也就是到达目的网络的最小开销和次最小开销(也叫适宜后继,feasible successor)路由都被保存在路由表中,当最小开销的路由不可用时,快速切换到次最小开销路由上,从而达到快速收敛的目的。 · 减少了带宽的消耗。EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它仅当某个目的网络的路由状态改变或路由的度量发生变化时,才向邻接的EIGRP路由器发送路由更新,因此,其更新路由所需的带宽比RIP和EIGRP小得多——这种方式叫触发式(triggered)。 · 增大网络规模。对于RIP,其网络最大只能是15跳(hop),而EIGRP最大可支持255跳(hop)。 · 减少路由器CPU的利用。路由更新仅被发送到需要知道状态改变的邻接路由器,由于使用了增量更新,EIGRP比IGRP使用更少的CPU。 · 支持可变长子网掩码。 · IGRP和EIGRP可自动移植。IGRP路由可自动重新分发到EIGRP中,EIGRP也可将路由自动重新分发到IGRP中。如果愿意,也可以关掉路由的重分发。 · EIGRP支持三种可路由的协议(IP、IPX、AppleTalk)。 · 支持非等值路径的负载均衡。 · 因EIGIP是Cisco公司开发的专用协议,因此,当Cisco设备和其他厂商的设备互联时,不能使用EIGRP4.4 OSPF 开放式最短路径优先(Open Shortest Path First,OSPF)协议是一种为IP网络开发的内部网关路由选择协议,由IETF开发并推荐使用。OSPF协议由三个子协议组成:Hello协议、交换协议和扩散协议。其中Hello协议负责检查链路是否可用,并完成指定路由器及备份指定路由器;交换协议完成“主”、“从”路由器的指定并交换各自的路由数据库信息;扩散协议完成各路由器中路由数据库的同步维护。 OSPF协议具有以下优点: · OSPF能够在自己的链路状态数据库内表示整个网络,这极大地减少了收敛时间,并且支持大型异构网络的互联,提供了一个异构网络间通过同一种协议交换网络信息的途径,并且不容易出现错误的路由信息。 · OSPF支持通往相同目的的多重路径。 · OSPF使用路由标签区分不同的外部路由。 · OSPF支持路由验证,只有互相通过路由验证的路由器之间才能交换路由信息;并且可以对不同的区域定义不同的验证方式,从而提高了网络的安全性。 · OSPF支持费用相同的多条链路上的负载均衡。 · OSPF是一个非族类路由协议,路由信息不受跳数的限制,减少了因分级路由带来的子网分离问题。 · OSPF支持VLSM和非族类路由查表,有利于网络地址的有效管理。 · OSPF使用AREA对网络进行分层,减少了协议对CPU处理时间和内存的需求。4.5 BGP BGP用于连接Internet。BGPv4是一种外部的路由协议。可认为是一种高级的距离向量路由协议。 在BGP网络中,可以将一个网络分成多个自治系统。自治系统间使用eBGP广播路由,自治系统内使用iBGP在自己的网络内广播路由。 Internet由多个互相连接的商业网络组成。每个企业网络或ISP必须定义一个自治系统号(ASN)。这些自治系统号由IANA(Internet Assigned Numbers Authority)分配。共有65535个可用的自治系统号,其中65512~65535为私用保留。当共享路由信息时,这个号码也允许以层的方式进行维护。 BGP使用可靠的会话管理,TCP中的179端口用于触发Update和Keepalive信息到它的邻居,以传播和更新BGP路由表。 在BGP网络中,自治系统有: 1. Stub AS只有一个入口和一个出口的网络。2. 转接AS(Transit AS)当数据从一个AS到另一个AS时,必须经过Transit AS。 如果企业网络有多个AS,则在企业网络中可设置Transit AS。 IGP和BGP最大的不同之处在于运行协议的设备之间通过的附加信息的总数不同。IGP使用的路由更新包比BGP使用的路由更新包更小(因此BGP承载更多的路由属性)。BGP可在给定的路由上附上很多属性。 当运行BGP的两个路由器开始通信以交换动态路由信息时,使用TCP端口179,他们依赖于面向连接的通信(会话)。 BGP必须依靠面向连接的TCP会话以提供连接状态。因为BGP不能使用Keepalive信息(但在普通头上存放有Keepalive信息,以允许路由器校验会话是否Active)。标准的Keepalive是在电路上从一个路由器送往另一个路由器的信息,而不使用TCP会话。路由器使用电路上的这些信号来校验电路没有错误或没有发现电路。 某些情况下,需要使用BGP:· 当你需要从一个AS发送流量到另一个AS时;· 当流出网络的数据流必须手工维护时;· 当你连接两个或多个ISP、NAP(网络访问点)和交换点时。以下三种情况不能使用BGP· 如果你的路由器不支持BGP所需的大型路由表时;· 当Internet只有一个连接时,使用默认路由;· 当你的网络没有足够的带宽来传送所需的数据时(包括BGP路由表)。
② 路由算法的要求是什么。
距离向量路由算法(Bellman-Ford Routing Algorithm),也叫做最大流量算法(Ford-Fulkerson Algorithm),其被距离向量协议作为一个算法,如RIP, BGP, ISO IDRP, NOVELL IPX。使用这个算法的路由器必须掌握这个距离表(它是一个一维排列-“一个向量”),它告诉在网络中每个节点的最远和最近距离。在距离表中的这个信息是根据临近接点信息的改变而时时更新的。表中数据的量和在网络中的所有的接点(除了它自己本身)是等同的。这个表中的列代表直接和它相连的邻居,行代表在网络中的所有目的地。每个数据包括传送数据包到每个在网上的目的地的路径和距离/或时间在那个路径上来传输(我们叫这个为“成本”)。这个在那个算法中的度量公式是跳跃的次数, 等待时间,流出数据包的数量,等等。
在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。
③ 路由工作原理是什么
路由器原理及路由协议
来源:中国电信网站
本文通过阐述TCP/IP网络中路由器的基本工作原理,介绍了IP路由器的几大功能,给出了静态路由协议和动态路由协议,以及内部网关协议和外部网关协议的概念,同时简要介绍了目前最常见的RIP、OSPF、BGP和BGP-4这几种路由协议,然后描述了路由算法的设计目标和种类,着重介绍了链路状态法和距离向量法。在文章的最后,扼要讲述了新一代路由器的特征。
——近十年来,随着计算机网络规模的不断扩大,大型互联网络(如Internet)的迅猛发展,路由技术在网络技术中已逐渐成为关键部分,路由器也随之成为最重要的网络设备。用户的需求推动着路由技术的发展和路由器的普及,人们已经不满足于仅在本地网络上共享信息,而希望最大限度地利用全球各个地区、各种类型的网络资源。而在目前的情况下,任何一个有一定规模的计算机网络(如企业网、校园网、智能大厦等),无论采用的是快速以大网技术、FDDI技术,还是ATM技术,都离不开路由器,否则就无法正常运作和管理。
1 网络互连
——把自己的网络同其它的网络互连起来,从网络中获取更多的信息和向网络发布自己的消息,是网络互连的最主要的动力。网络的互连有多种方式,其中使用最多的是网桥互连和路由器互连。
1.1 网桥互连的网络
——网桥工作在OSI模型中的第二层,即链路层。完成数据帧(frame)的转发,主要目的是在连接的网络间提供透明的通信。网桥的转发是依据数据帧中的源地址和目的地址来判断一个帧是否应转发和转发到哪个端口。帧中的地址称为“MAC”地址或“硬件”地址,一般就是网卡所带的地址。
——网桥的作用是把两个或多个网络互连起来,提供透明的通信。网络上的设备看不到网桥的存在,设备之间的通信就如同在一个网上一样方便。由于网桥是在数据帧上进行转发的,因此只能连接相同或相似的网络(相同或相似结构的数据帧),如以太网之间、以太网与令牌环(token ring)之间的互连,对于不同类型的网络(数据帧结构不同),如以太网与X.25之间,网桥就无能为力了。
——网桥扩大了网络的规模,提高了网络的性能,给网络应用带来了方便,在以前的网络中,网桥的应用较为广泛。但网桥互连也带来了不少问题:一个是广播风暴,网桥不阻挡网络中广播消息,当网络的规模较大时(几个网桥,多个以太网段),有可能引起广播风暴(broadcasting storm),导致整个网络全被广播信息充满,直至完全瘫痪。第二个问题是,当与外部网络互连时,网桥会把内部和外部网络合二为一,成为一个网,双方都自动向对方完全开放自己的网络资源。这种互连方式在与外部网络互连时显然是难以接受的。问题的主要根源是网桥只是最大限度地把网络沟通,而不管传送的信息是什么。
1.2 路由器互连网络
——路由器互连与网络的协议有关,我们讨论限于TCP/IP网络的情况。
——路由器工作在OSI模型中的第三层,即网络层。路由器利用网络层定义的“逻辑”上的网络地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各个网络的独立性。路由器不转发广播消息,而把广播消息限制在各自的网络内部。发送到其他网络的数据茵先被送到路由器,再由路由器转发出去。
——IP路由器只转发IP分组,把其余的部分挡在网内(包括广播),从而保持各个网络具有相对的独立性,这样可以组成具有许多网络(子网)互连的大型的网络。由于是在网络层的互连,路由器可方便地连接不同类型的网络,只要网络层运行的是IP协议,通过路由器就可互连起来。
——网络中的设备用它们的网络地址(TCP/IP网络中为IP地址)互相通信。IP地址是与硬件地址无关的“逻辑”地址。路由器只根据IP地址来转发数据。IP地址的结构有两部分,一部分定义网络号,另一部分定义网络内的主机号。目前,在Internet网络中采用子网掩码来确定IP地址中网络地址和主机地址。子网掩码与IP地址一样也是32bit,并且两者是一一对应的,并规定,子网掩码中数字为“1”所对应的IP地址中的部分为网络号,为“0”所对应的则为主机号。网络号和主机号合起来,才构成一个完整的IP地址。同一个网络中的主机IP地址,其网络号必须是相同的,这个网络称为IP子网。
——通信只能在具有相同网络号的IP地址之间进行,要与其它IP子网的主机进行通信,则必须经过同一网络上的某个路由器或网关(gateway)出去。不同网络号的IP地址不能直接通信,即使它们接在一起,也不能通信。
——路由器有多个端口,用于连接多个IP子网。每个端口的IP地址的网络号要求与所连接的IP子网的网络号相同。不同的端口为不同的网络号,对应不同的IP子网,这样才能使各子网中的主机通过自己子网的IP地址把要求出去的IP分组送到路由器上。
2 路由原理
——当IP子网中的一台主机发送IP分组给同一IP子网的另一台主机时,它将直接把IP分组送到网络上,对方就能收到。而要送给不同IP于网上的主机时,它要选择一个能到达目的子网上的路由器,把IP分组送给该路由器,由路由器负责把IP分组送到目的地。如果没有找到这样的路由器,主机就把IP分组送给一个称为“缺省网关(default gateway)”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的IP地址。
——路由器转发IP分组时,只根据IP分组目的IP地址的网络号部分,选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器,这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网络丢弃了。
——目前TCP/IP网络,全部是通过路由器互连起来的,Internet就是成千上万个IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络(router based network),形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对IP分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。
——路由动作包括两项基本内容:寻径和转发。寻径即判定到达目的地的最佳路径,由路由选择算法来实现。由于涉及到不同的路由选择协议和路由选择算法,要相对复杂一些。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。路由选择算法将收集到的不同信息填入路由表中,根据路由表可将目的网络与下一站(nexthop)的关系告诉路由器。路由器间互通信息进行路由更新,更新维护路由表使之正确反映网络的拓扑变化,并由路由器根据量度来决定最佳路径。这就是路由选择协议(routing protocol),例如路由信息协议(RIP)、开放式最短路径优先协议(OSPF)和边界网关协议(BGP)等。
——转发即沿寻径好的最佳路径传送信息分组。路由器首先在路由表中查找,判明是否知道如何将分组发送到下一个站点(路由器或主机),如果路由器不知道如何发送分组,通常将该分组丢弃;否则就根据路由表的相应表项将分组发送到下一个站点,如果目的网络直接与路由器相连,路由器就把分组直接送到相应的端口上。这就是路由转发协议(routed protocol)。
——路由转发协议和路由选择协议是相互配合又相互独立的概念,前者使用后者维护的路由表,同时后者要利用前者提供的功能来发布路由协议数据分组。下文中提到的路由协议,除非特别说明,都是指路由选择协议,这也是普遍的习惯。
3 路由协议
——典型的路由选择方式有两种:静态路由和动态路由。
——静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。
——动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。
——静态路由和动态路由有各自的特点和适用范围,因此在网络中动态路由通常作为静态路由的补充。当一个分组在路由器中进行寻径时,路由器首先查找静态路由,如果查到则根据相应的静态路由转发分组;否则再查找动态路由。
——根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIP、OSPF;外部网关协议主要用于多个自治域之间的路由选择,常用的是BGP和BGP-4。下面分别进行简要介绍。
3.1 RIP路由协议
——RIP协议最初是为Xerox网络系统的Xerox parc通用协议而设计的,是Internet中常用的路由协议。RIP采用距离向量算法,即路由器根据距离选择路由,所以也称为距离向量协议。路由器收集所有可到达目的地的不同路径,并且保存有关到达每个目的地的最少站点数的路径信息,除到达目的地的最佳路径外,任何其它信息均予以丢弃。同时路由器也把所收集的路由信息用RIP协议通知相邻的其它路由器。这样,正确的路由信息逐渐扩散到了全网。
——RIP使用非常广泛,它简单、可靠,便于配置。但是RIP只适用于小型的同构网络,因为它允许的最大站点数为15,任何超过15个站点的目的地均被标记为不可达。而且RIP每隔30s一次的路由信息广播也是造成网络的广播风暴的重要原因之一。
3.2 OSPF路由协议
——80年代中期,RIP已不能适应大规模异构网络的互连,0SPF随之产生。它是网间工程任务组织(1ETF)的内部网关协议工作组为IP网络而开发的一种路由协议。
——0SPF是一种基于链路状态的路由协议,需要每个路由器向其同一管理域的所有其它路由器发送链路状态广播信息。在OSPF的链路状态广播中包括所有接口信息、所有的量度和其它一些变量。利用0SPF的路由器首先必须收集有关的链路状态信息,并根据一定的算法计算出到每个节点的最短路径。而基于距离向量的路由协议仅向其邻接路由器发送有关路由更新信息。
——与RIP不同,OSPF将一个自治域再划分为区,相应地即有两种类型的路由选择方式:当源和目的地在同一区时,采用区内路由选择;当源和目的地在不同区时,则采用区间路由选择。这就大大减少了网络开销,并增加了网络的稳定性。当一个区内的路由器出了故障时并不影响自治域内其它区路由器的正常工作,这也给网络的管理、维护带来方便。
3.3 BGP和BGP-4路由协议
——BGP是为TCP/IP互联网设计的外部网关协议,用于多个自治域之间。它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。它的主要功能是与其它自治域的BGP交换网络可达信息。各个自治域可以运行不同的内部网关协议。BGP更新信息包括网络号/自治域路径的成对信息。自治域路径包括到达某个特定网络须经过的自治域串,这些更新信息通过TCP传送出去,以保证传输的可靠性。
——为了满足Internet日益扩大的需要,BGP还在不断地发展。在最新的BGp4中,还可以将相似路由合并为一条路由。
3.4 路由表项的优先问题
——在一个路由器中,可同时配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。
4 路由算法
——路由算法在路由协议中起着至关重要的作用,采用何种算法往往决定了最终的寻径结果,因此选择路由算法一定要仔细。通常需要综合考虑以下几个设计目标:
——(1)最优化:指路由算法选择最佳路径的能力。
——(2)简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。
——(3)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。由于路由器分布在网络联接点上,所以在它们出故障时会产生严重后果。最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。
——(4)快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。
——(5)灵活性:路由算法可以快速、准确地适应各种网络环境。例如,某个网段发生故障,路由算法要能很快发现故障,并为使用该网段的所有路由选择另一条最佳路径。
——路由算法按照种类可分为以下几种:静态和动态、单路和多路、平等和分级、源路由和透明路由、域内和域间、链路状态和距离向量。前面几种的特点与字面意思基本一致,下面着重介绍链路状态和距离向量算法。
——链路状态算法(也称最短路径算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的那一部分。距离向量算法(也称为Bellman-Ford算法)则要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近结点上。从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。
——由于链路状态算法收敛更快,因此它在一定程度上比距离向量算法更不易产生路由循环。但另一方面,链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此链路状态算法将会在实现时显得更昂贵一些。除了这些区别,两种算法在大多数环境下都能很好地运行。
——最后需要指出的是,路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法可能采用多种度量来选择路由,通过一定的加权运算,将它们合并为单个的复合度量、再填入路由表中,作为寻径的标准。通常所使用的度量有:路径长度、可靠性、时延、带宽、负载、通信成本等。
5 新一代路由器
——由于多媒体等应用在网络中的发展,以及ATM、快速以太网等新技术的不断采用,网络的带宽与速率飞速提高,传统的路由器已不能满足人们对路由器的性能要求。因为传统路由器的分组转发的设计与实现均基于软件,在转发过程中对分组的处理要经过许多环节,转发过程复杂,使得分组转发的速率较慢。另外,由于路由器是网络互连的关键设备,是网络与其它网络进行通信的一个“关口”,对其安全性有很高的要求,因此路由器中各种附加的安全措施增加了CPU的负担,这样就使得路由器成为整个互联网上的“瓶颈”。
——传统的路由器在转发每一个分组时,都要进行一系列的复杂操作,包括路由查找、访问控制表匹配、地址解析、优先级管理以及其它的附加操作。这一系列的操作大大影响了路由器的性能与效率,降低了分组转发速率和转发的吞吐量,增加了CPU的负担。而经过路由器的前后分组间的相关性很大,具有相同目的地址和源地址的分组往往连续到达,这为分组的快速转发提供了实现的可能与依据。新一代路由器,如IP Switch、Tag Switch等,就是采用这一设计思想用硬件来实现快速转发,大大提高了路由器的性能与效率。
——新一代路由器使用转发缓存来简化分组的转发操作。在快速转发过程中,只需对一组具有相同目的地址和源地址的分组的前几个分组进行传统的路由转发处理,并把成功转发的分组的目的地址、源地址和下一网关地址(下一路由器地址)放人转发缓存中。当其后的分组要进行转发时,茵先查看转发缓存,如果该分组的目的地址和源地址与转发缓存中的匹配,则直接根据转发缓存中的下一网关地址进行转发,而无须经过传统的复杂操作,大大减轻了路由器的负担,达到了提高路由器吞吐量的目标。
④ 路由算法的类型有
路由算法有很多种,如果从路由表对网络拓扑和通信量变化的自适应能力的角度划分,可以分为静态路由算法和动态路由算法两大类,这两大类又可细分为几种小类型,比较典型常见的有以下几种:
一、静态路由算法
1.Dijkstra算法(最短路径算法)
Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权回路。
Dijkstra算法执行步骤如下:
步骤一:路由器建立一张网络图,并且确定源节点和目的节点,在这个例子里我们设为V1和V2。然后路由器建立一个矩阵,称为“邻接矩阵”。在这个矩阵中,各矩阵元素表示权值。例如,[i,j]是节点Vi与Vj之间的链路权值。如果节点Vi与Vj之间没有链路直接相连,它们的权值设为“无穷大”。
步骤二:路由器为网路中的每一个节点建立一组状态记录。此记录包括三个字段:
前序字段———表示当前节点之前的节点。
长度字段———表示从源节点到当前节点的权值之和。
标号字段———表示节点的状态。每个节点都处于一个状态模式:“永久”或“暂时”。
步骤三:路由器初始化(所有节点的)状态记录集参数,将它们的长度设为“无穷大”,标号设为“暂时”。
步骤四:路由器设置一个T节点。例如,如果设V1是源T节点,路由器将V1的标号更改为“永久”。当一个标号更改为“永久”后,它将不再改变。一个T节点仅仅是一个代理而已。
步骤五:路由器更新与源T节点直接相连的所有暂时性节点的状态记录集。
步骤六:路由器在所有的暂时性节点中选择距离V1的权值最低的节点。这个节点将是新的T节点。
步骤七:如果这个节点不是V2(目的节点),路由器则返回到步骤5。
步骤八:如果节点是V2,路由器则向前回溯,将它的前序节点从状态记录集中提取出来,如此循环,直到提取到V1为止。这个节点列表便是从V1到V2的最佳路由。
2.扩散法
事先不需要任何网络信息;路由器把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。将来会有多个分组的副本到达目的地端,最先到达的,可能是走了“最优”的路径常见的扩散法是选择性扩散算法。
3.LS算法
采用LS算法时,每个路由器必须遵循以下步骤:
步骤一:确认在物理上与之相连的路由器并获得它们的IP地址。当一个路由器开始工作后,它首先向整个网络发送一个“HELLO”分组数据包。每个接收到数据包的路由器都将返回一条消息,其中包含它自身的IP地址。
步骤二:测量相邻路由器的延时(或者其他重要的网络参数,比如平均流量)。为做到这一点,路由器向整个网络发送响应分组数据包。每个接收到数据包的路由器返回一个应答分组数据包。将路程往返时间除以2,路由器便可以计算出延时。(路程往返时间是网络当前延迟的量度,通过一个分组数据包从远程主机返回的时间来测量。)该时间包括了传输和处理两部分的时间——也就是将分组数据包发送到目的地的时间以及接收方处理分组数据包和应答的时间。
步骤三:向网络中的其他路由器广播自己的信息,同时也接收其他路由器的信息。
在这一步中,所有的路由器共享它们的知识并且将自身的信息广播给其他每一个路由器。这样,每一个路由器都能够知道网络的结构以及状态。
步骤四:使用一个合适的算法,确定网络中两个节点之间的最佳路由。
路由算法有哪些类型?路由算法与路由协议的区别
在这一步中,路由器选择通往每一个节点的最佳路由。它们使用一个算法来实现这一点,如Dijkstra最短路径算法。在这个算法中,一个路由器通过收集到的其他路由器的信息,建立一个网络图。这个图描述网络中的路由器的位置以及它们之间的链接关系。每个链接都有一个数字标注,称为权值或成本。这个数字是延时和平均流量的函数,有时它仅仅表示节点间的跃点数。例如,如果一个节点与目的地之间有两条链路,路由器将选择权值最低的链路。
二、动态路由算法
1.距离向量路由算法
距离向量路由算法,也叫做最大流量算法,其被距离向量协议作为一个算法,如RIP、BGP、ISO IDRP、NOVELL IPX。使用这个算法的路由器必须掌握这个距离表(它是一个一维排列-“一个向量”),它告诉在网络中每个节点的最远和最近距离。在距离表中的这个信息是根据临近接点信息的改变而时时更新的。表中数据的量和在网络中的所有的接点(除了它自己本身)是等同的。这个表中的列代表直接和它相连的邻居,行代表在网络中的所有目的地。每个数据包括传送数据包到每个在网上的目的地的路径和距离/或时间在那个路径上来传输(我们叫这个为“成本”)。这个在那个算法中的度量公式是跳跃的次数,等待时间,流出数据包的数量,等等。在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。其优点是算法简单容易实现。缺点是慢收敛问题,路由器的路径变化需要像波浪一样从相邻路由器传播出去,过程缓慢。
每一个相邻路由器发送过来的路由表都要经过以下步骤:
步骤一:对地址为X的路由器发过来的路由表,先修改此路由表中的所有项目:把”下一跳”字段中的地址改为X,并把所有”距离”字段都加1。
步骤二:对修改后的路由表中的每一个项目,进行以下步骤:
(1)将X的路由表(修改过的),与S的路由表的目的网络进行对比。若在X中出现,在S中没出现,则将X路由表中的这一条项目添加到S的路由表中。
(2)对于目的网络在S和X路由表中都有的项目进行下面步骤:
1)在S的路由表中,若下一跳地址是x,则直接用X路由表中这条项目替换S路由表中的项目。
2)在S的路由表中,若下一跳地址不是x,若X路由表项目中的距离d小于S路由表中的距离,则进行更新。
步骤三:若3分钟还没有收到相邻路由器的更新表,则把此相邻路由器记为不可到达路由器,即把距离设置为16。
2.链路状态最短路由优先算法SPF
1)发现邻居结点,并学习它们的网络地址;
2)测量到各邻居节点的延迟或者开销;
3)创建链路状态分组;
4)使用扩散法发布链路状态分组;
5)计算到每个其它路由器的最短路径。
⑤ 距离向量路由算法
距离向量路由算法(Bellman-Ford Routing Algorithm),也叫做最大流量算法(Ford-Fulkerson Algorithm), 相应的图片
其被距离向量协议作为一个算法,如RIP, BGP, ISO IDRP, NOVELL IPX。使用这个算法的路由器必须掌握这个距离表(它是一个一维排列-“一个向量”),它告诉在网络中每个节点的最远和最近距离。在距离表中的这个信息是根据临近接点信息的改变而时时更新的。表中数据的量和在网络中的所有的接点(除了它自己本身)是等同的。这个表中的列代表直接和它相连的邻居,行代表在网络中的所有目的地。每个数据包括传送数据包到每个在网上的目的地的路径和距离/或时间在那个路径上来传输(我们叫这个为“成本”)。这个在那个算法中的度量公式是跳跃的次数, 等待时间,流出数据包的数量,等等。 在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。
路由表的建立和更新
如上图,有三个路由器,A,B和C。路由器A的两个网络接口E0和S0 分别连接在 10.1.0.0和10.2.0.0网段上;路由器B的两个网络接口S0和S1 分别连接在 10.2.0.0和10.3.0.0网段上;路由器C的两个网络接口S0和E0 分别连接在 10.3.0.0和10.4.0.0网段上; 如上图中各路由表的前两行所示,通过路由表的网络接口到与之直接相连的网 络的网络连接,其向量距离设置为0。这即是最初的路由表。 当路由器B和A以及B和C之间相互交换路由信息后,它们会更新各自的路由表。 例如,路由器B通过网络端口S1收到路由器C的路由信息(10.3.0.0,S0,0)和(10.4.0.0,E0,0) 静态路由的具体配置
后,在自己的路由表中增加一条(10.4.0.0,S1,1)路由信息。该信息表示:通过路由器B的网络接 口S1可以访问到10.4.0.0网段,其向量距离为1,该向量距离是在路由器C的基础上加1获得的。 同样道理,路由器B还会产生一条(10.1.0.0,S0,1)路由,这条路由是通过网络端口S0从路由器A 获得的。如此反复,直到最终收敛,形成图中所示的路由表。 概括地说,距离向量算法要求每一个路由器把它的整个路由表发送给与它直接连接的其它路由 器。路由表中的每一条记录都包括目标逻辑地址、相应的网络接口和该条路由的向量距离。当一个路 由器从它的相邻处收到更新信息时,它会将更新信息与本身的路由表相比较。如果该路由器比较出一条 新路由或是找到一条比当前路由更好的路由时,它会对路由表进行更新:将从该路由器到邻居之间的 向量距离与更新信息中的向量距离相加作为新路由的向量距离。
参与运算信息
目的地址:在算法的IP实现中,这指的是主机或的IP 地址。 下一跳地址:到信宿的路由中的第一个路由器。 接口:用于到下一跳物理。 metric值:一个数,指明本路由器到信宿的开销。 定时器:路由项最后一次被修改的时间。 路由标记:区分路由为内部路由协议的路由还是外部路由协议的路由的标记。
运算
路由器间交换的最重要的信息是修改报文,参加路由维护计划的路由器发送当前存在于实体的描述路由库的路由修改报文。仅通过相邻路由器间交换路由信息是可以维护整个系统的最佳路由的,这在接下来的讨论中会逐步得到证明。 距离向量算法总是基于一个这样的事实:路由库中的路由已是目前通过报文交换而得到的最佳路由。同时,报文交换仅限于相邻的实体间,也就是说,实体共享同一个。当然,要定义路由是最佳的,就必须有衡量的办法,这就用到前面所说的“metric”。RIP简单的中,通常用可行路由所经的路由器数简单地计算metric值。在复杂的中,metric一般代表该路由传输报的延迟或其它发送开销。 令D代表从实体i到实体j的最佳路由的metric值,d(i,j)代表从i直接到j的开销,因为开销是可加的,算法中最佳路由如此获取表示: D(i,i)=0, 对所有的i D(i,j)=MIN[d(i,j)+D(k,j), 当i不等于k时 实体i从相邻路由器k收到k到j的开销的估计D,i将D(i,j)加上i到k的开销估计d(i,j),i比较从所有相邻路由器得到的数值,取得最小数,就得到了它到j的最佳路由。
⑥ 路由协议的常用分析
路由分为静态路由和动态路由,其相应的路由表称为静态路由表和动态路由表。静态路由表由网络管理员在系统安装时根据网络的配置情况预先设定,网络结构 发生变化后由网络管理员手工修改路由表。动态路由随网络运行情况的变化而变化,路由器根据路由协议提供的功能自动计算数据传输的最佳路径,由此得到动态路由表。
根据路由算法,动态路由协议可分为距离向量路由协议(Distance Vector Routing Protocol)和链路状态路由协议(Link State Routing Protocol)。距离向量路由协议基于Bellman-Ford算法,主要有RIP、IGRP(IGRP为 Cisco公司的私有协议);链路状态路由协议基于图论中非常着名的Dijkstra算法,即最短优先路径(Shortest Path First, SPF)算法,如OSPF。在距离向量路由协议中,路由器将部分或全部的路由表传递给与其相邻的路由器;而在链路状态路由协议中,路由器将链路状态信息传 递给在同一区域内的所有路由器。 根据路由器在自治系统(AS)中的位置,可将路由协议分为内部网关协议 (Interior Gateway Protocol,IGP)和外部网关协议(External Gateway Protocol,EGP,也叫域 间路由协议)。域间路由协议有两种:外部网关协议(EGP)和边界网关协议(BGP)。EGP是为一个简单的树型拓扑结构而设计的,在处理选路循环和设置 选路策略时,具有明显的缺点,已被BGP代替。
EIGRP是Cisco公司的私有协议,是一种混合协议,它既有距离向量路由协议的特点,同时又继承了链路状态路由协议的优点。各种路由协议各有特点,适合不同类型的网络。下面分别加以阐述。 静态路由表在开始选择路由之前就被网络管理员建立,并且只能由网络管理员更改,所以只适于网络传输状态比较简单的环境。静态路由具有以下特点:
· 静态路由无需进行路由交换,因此节省网络的带宽、CPU的利用率和路由器的内存。
· 静态路由具有更高的安全性。在使用静态路由的网络中,所有要连到网络上的路由器都需在邻接路由器上设置其相应的路由。因此,在某种程度上提高了网络的安全性。
· 有的情况下必须使用静态路由,如DDR、使用NAT技术的网络环境。
静态路由具有以下缺点:
· 管理者必须真正理解网络的拓扑并正确配置路由。
· 网络的扩展性能差。如果要在网络上增加一个网络,管理者必须在所有路由器上加一条路由。
· 配置烦琐,特别是当需要跨越几台路由器通信时,其路由配置更为复杂。 动态路由协议内部网关协议IGP和外部网关协议EGP。而内部网关协议IGP可以分为距离矢量路由协议和链路状态路由协议,两种协议各有特点,分述如下:
1. 距离矢量(DV)协议
距离向量指协议使用跳数或向量来确定从一个设备到另一个设备的距离。不考虑每跳链路的速率。
距离向量路由协议不使用正常的邻居关系,用两种方法获知拓扑的改变和路由的超时:
· 当路由器不能直接从连接的路由器收到路由更新时;
· 当路由器从邻居收到一个更新,通知它网络的某个地方拓扑发生了变化。
在小型网络中(少于100个路由器,或需要更少的路由更新和计算环境),距离向量路由协议运行得相当好。当小型网络扩展到大型网络时,该算法计算新路 由的收敛速度极慢,而且在它计算的过程中,网络处于一种过渡状态,极可能发生循环并造成暂时的拥塞。再者,当网络底层链路技术多种多样,带宽各不相同时, 距离向量算法对此视而不见。
距离向量路由协议的这种特性不仅造成了网络收敛的延时,而且消耗了带宽。随着路由表的增大,需要消耗更多的CPU资源,并消耗了内存。
2. 链路状态(LS)路由协议
链路状态路由协议没有跳数的限制,使用“图形理论”算法或最短路径优先算法。
链路状态路由协议有更短的收敛时间、支持VLSM(可变长子网掩码)和CIDR。
链路状态路由协议在直接相连的路由之间维护正常的邻居关系。这允许路由更快收敛。链路状态路由协议在会话期间通过交换Hello包(也叫链路状态信息)创建对等关系,这种关系加速了路由的收敛。
3.链路状态路由协议和距离向量路由协议的比较
不像距离向量路由协议那样,更新时发送整个路由表。链路状态路由协议只广播更新的或改变的网络拓扑,这使得更新信息更小,节省了带宽和CPU利用率。另外,如果网络不发生变化,更新包只在特定的时间内发出(通常为30min到2h)。
4 常用动态路由协议的分析
4.1 RIP(国际公有,最古老的路由协议,不过有很多缺陷)
RIP(路由信息协议)是路由器生产商之间使用的第一个开放标准,是最广泛的路由协议,在所有IP路由平台上都可以得到。当使用RIP时,一台 Cisco路由器可以与其他厂商的路由器连接。RIP有两个版本:RIPv1和RIPv2,它们均基于经典的距离向量路由算法,最大跳数为15跳。
RIPv1是有类路由(Classful Routing)协议,因路由上不包括掩码信息,所以网络上的所有设备必须使用相同的子网掩码,不支持VLSM。RIPv2可发送子网掩码信息,是无类路由(Classless Routing)协议,支持VLSM。
RIP使用UDP数据包更新路由信息。路由器每隔30s更新一次路由信息,如果在180s内没有收到相邻路由器的回应,则认为去往该路由器的路由不可用,该路由器不可到达。如果在240s后仍未收到该路由器的应答,则把有关该路由器的路由信息从路由表中删除。
RIP具有以下特点:
· 不同厂商的路由器可以通过RIP互联;
· 配置简单; · 适用于小型网络(小于15跳);
· RIPv1不支持VLSM;
· 需消耗广域网带宽;
· 需消耗CPU、内存资源。
RIP的算法简单,但在路径较多时收敛速度慢,广播路由信息时占用的带宽资源较多,它适用于网络拓扑结构相对简单且数据链路故障率极低的小型网络中,在大型网络中,一般不使用RIP。
4.2 IGRP(已经退出历史的舞台)
内部网关路由协议(Interior Gateway Routing Protocol,IGRP)是Cisco公司20世纪80年代开发的,是一 种动态的、长跨度(最大可支持255跳)的路由协议,使用度量(向量)来确定到达一个网络的最佳路由,由延时、带宽、可靠性和负载等来计算最优路由,它在 同个自治系统内具有高跨度,适合复杂的网络。Cisco IOS允许路由器管理员对IGRP的网络带宽、延时、可靠性和负载进行权重设置,以影响度量的计 算。
像RIP一样,IGRP使用UDP发送路由表项。每个路由器每隔90s更新一次路由信息,如果270s内没有收到某路由器的回应,则认为该路由器不可到达;如果630s内仍未收到应答,则IGRP进程将从路由表中删除该路由。
与RIP相比,IGRP的收敛时间更长,但传输路由信息所需的带宽减少,此外,IGRP的分组格式中无空白字节,从而提高了IGRP的报文效率。但IGRP为Cisco公司专有,仅限于Cisco产品。
4.3 EIGRP(思科私有)
随着网络规模的扩大和用户需求的增长,原来的IGRP已显得力不从心,于是,Cisco公司又开发了增强的IGRP,即EIGRP。EIGRP使用与IGRP相同的路由算法,但它集成了链路状态路由协议和距离向量路由协议的长处,同时加入散播更新算法(DUAL)。
EIGRP具有如下特点:
· 快速收敛。快速收敛是因为使用了散播更新算法,通过在路由表中备份路由而实现,也就是到达目的网络的最小开销和次最小开销(也叫适宜后继, feasible successor)路由都被保存在路由表中,当最小开销的路由不可用时,快速切换到次最小开销路由上,从而达到快速收敛的目的。
· 减少了带宽的消耗。EIGRP不像RIP和IGRP那样,每隔一段时间就交换一次路由信息,它仅当某个目的网络的路由状态改变或路由的度量发生变 化时,才向邻接的EIGRP路由器发送路由更新,因此,其更新路由所需的带宽比RIP和EIGRP小得多——这种方式叫触发式(triggered)。
· 增大网络规模。对于RIP,其网络最大只能是15跳(hop),而EIGRP最大可支持255跳(hop)。
· 减少路由器CPU的利用。路由更新仅被发送到需要知道状态改变的邻接路由器,由于使用了增量更新,EIGRP比IGRP使用更少的CPU。
· 支持可变长子网掩码。
· IGRP和EIGRP可自动移植。IGRP路由可自动重新分发到EIGRP中,EIGRP也可将路由自动重新分发到IGRP中。如果愿意,也可以关掉路由的重分发。
· EIGRP为模块化设计,支持三种可路由的协议(IP、IPX、AppleTalk),更新版本支持IPv6。
· 支持非等值路径的负载均衡。
· 因EIGIP是Cisco公司开发的专用协议,因此,当Cisco设备和其他厂商的设备互联时,不能使用EIGRP
4.4 OSPF(国际公有)
开放式最短路径优先(Open Shortest Path First,OSPF)协议是一种为IP网络开发的内部网关路由选择协议,由IETF开 发并推荐使用。OSPF协议由三个子协议组成:Hello协议、交换协议和扩散协议。其中Hello协议负责检查链路是否可用,并完成指定路由器及备份指 定路由器;交换协议完成“主”、“从”路由器的指定并交换各自的路由数据库信息;扩散协议完成各路由器中路由数据库的同步维护。
OSPF协议具有以下优点:
· OSPF能够在自己的链路状态数据库内表示整个网络,这极大地减少了收敛时间,并且支持大型异构网络的互联,提供了一个异构网络间通过同一种协议交换网络信息的途径,并且不容易出现错误的路由信息。 · OSPF支持通往相同目的的多重路径。
· OSPF使用路由标签区分不同的外部路由。
· OSPF支持路由验证,只有互相通过路由验证的路由器之间才能交换路由信息;并且可以对不同的区域定义不同的验证方式,从而提高了网络的安全性。
· OSPF支持费用相同的多条链路上的负载均衡。
· OSPF是一个无类路由协议,路由信息不受跳数的限制,减少了因分级路由带来的子网分离问题。
· OSPF支持VLSM和无类路由查表,有利于网络地址的有效管理。
· OSPF使用AREA对网络进行分层,减少了协议对CPU处理时间和内存的需求。
4.5 BGP
BGP用于连接Internet。BGPv4是一种外部的路由协议。可认为是一种高级的距离向量路由协议。
在BGP网络中,可以将一个网络分成多个自治系统。自治系统间使用eBGP广播路由,自治系统内使用iBGP在自己的网络内广播路由。
Internet由多个互相连接的商业网络组成。每个企业网络或ISP必须定义一个自治系统号(ASN)。这些自治系统号由IANA (Internet Assigned Numbers Authority)分配。共有65535个可用的自治系统号,其中65512~65535为私 用保留。当共享路由信息时,这个号码也允许以层的方式进行维护。
BGP使用可靠的会话管理,TCP中的179端口用于触发Update和Keepalive信息到它的邻居,以传播和更新BGP路由表。
在BGP网络中,自治系统有: 1. Stub AS
只有一个入口和一个出口的网络。
2. 转接AS(Transit AS)
当数据从一个AS到另一个AS时,必须经过Transit AS。
如果企业网络有多个AS,则在企业网络中可设置Transit AS。
IGP和BGP最大的不同之处在于运行协议的设备之间通过的附加信息的总数不同。IGP使用的路由更新包比BGP使用的路由更新包更小(因此BGP承载更多的路由属性)。BGP可在给定的路由上附上很多属性。
当运行BGP的两个路由器开始通信以交换动态路由信息时,使用TCP端口179,他们依赖于面向连接的通信(会话)。
BGP必须依靠面向连接的TCP会话以提供连接状态。因为BGP不能使用Keepalive信息(但在普通头上存放有Keepalive信息,以允许 路由器校验会话是否Active)。标准的Keepalive是在电路上从一个路由器送往另一个路由器的信息,而不使用TCP会话。路由器使用电路上的这 些信号来校验电路没有错误或没有发现电路。 某些情况下,需要使用BGP:
· 当你需要从一个AS发送流量到另一个AS时;
· 当流出网络的数据流必须手工维护时;
· 当你连接两个或多个ISP、NAP(网络访问点)和交换点时。
以下三种情况不能使用BGP:
· 如果你的路由器不支持BGP所需的大型路由表时;
· 当Internet只有一个连接时,使用默认路由;
· 当你的网络没有足够的带宽来传送所需的数据时(包括BGP路由表)。
⑦ SPF 和 DUAL 两种算法有什么区别
SPF算法是OSPF路由协议的基础;DUAL(扩散更新)算法被EIGRP路由协议采用。
介绍下:
四种最常见路由协议是RIP、IGRP、OSPF和EIGRP。
1.RIP(Routing Information Protocol,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在20世纪70年代开发的。最大的特点是,其实现原理和配置方法都非常简单。RIP基于跳数计算路由,并且定期向邻居路由器发送更新消息。
2.IGRP是Cisco专有的协议,只在Cisco路由器中实现。它也属于距离向量类协议,所以在很多地方与RIP有共同点,比如广播更新等。它和RIP最大的区别表现在度量方法、负载均衡等几方面。IGRP支持多路径上的加权负载均衡,这样,网络的带宽可以得到更加合理的利用。另外,与RIP仅使用跳数作为度量依据不同,IGRP使用了多种参数,构成复合的度量值,这其中可以包含的因素有:带宽、延迟、负载、可靠性和MTU(最大传输单元)等。
3.OSPF协议是20世纪80年代后期开发的,20世纪90年代初成为工业标准,是一种典型的链路状态协议。OSPF的主要特性包括:支持VLSM(变长的子网掩码)、收敛迅速、带宽占用率低等。等。OSPF协议在邻居之间交换链路状态信息,以便路由器建立链路状态数据库(LSD)之后,路由器根据数据库中的信息利用SPF(Shortest Path First,最短路径优先)算法计算路由表,选择路径的主要依据是带宽。
4.EIGRP是IGRP的增强版,它也是Cisco专有的路由协议。EIGRP采用了扩散更新(DUAL)算法,在某种程度上,它和距离向量算法相似,但具有更短的收敛时间和更好的可操作性。作为对IGRP的扩展,EIGRP支持多种可路由的协议,如IP、IPX和AppleTalk等。运行在IP环境时,EIGRP还可以与IGRP进行平滑的连接,因为它们的度量方法是一致的。
以上4种路由协议都是域内路由协议,它们通常使用在自治系统的内部。当进行自治系统间的连接时,往往采用诸如BGP(Border Gateway Protocols,边界网关协议)和EGP(External Gateway Protocols,外部网关协议)这样的域间路由协议。目前在Internet上使用的域间路由协议是BGP第四版。
⑧ 叙述路由器的工作原理及工作过程
传统地,路由器工作于OSI七层协议中的第三层,其主要任务是接收来自一个网络接口的数据包,根据其中所含的目的地址,决定转发到下一个目的地址。因此,路由器首先得在转发路由表中查找它的目的地址,若找到了目的地址,就在数据包的帧格前添加下一个MAC地址,同时IP数据包头的TTL(Time To Live)域也开始减数,并重新计算校验和。当数据包被送到输出端口时,它需要按顺序等待,以便被传送到输出链路上。
路由器在工作时能够按照某种路由通信协议查找设备中的路由表。如果到某一特定节点有一条以上的路径,则基本预先确定的路由准则是选择最优(或最经济)的传输路径。由于各种网络段和其相互连接情况可能会因环境变化而变化,因此路由情况的信息一般也按所使用的路由信息协议的规定而定时更新。
网络中,每个路由器的基本功能都是按照一定的规则来动态地更新它所保持的路由表,以便保持路由信息的有效性。为了便于在网络间传送报文,路由器总是先按照预定的规则把较大的数据分解成适当大小的数据包,再将这些数据包分别通过相同或不同路径发送出去。当这些数据包按先后秩序到达目的地后,再把分解的数据包按照一定顺序包装成原有的报文形式。路由器的分层寻址功能是路由器的重要功能之一,该功能可以帮助具有很多节点站的网络来存储寻址信息,同时还能在网络间截获发送到远地网段的报文,起转发作用;选择最合理的路由,引导通信也是路由器基本功能;多协议路由器还可以连接使用不同通信协议的网络段,成为不同通信协议网络段之间的通信平台。
一般来说,路由器的主要工作是对数据包进行存储转发,具体过程如下:
第一步:当数据包到达路由器,根据网络物理接口的类型,路由器调用相应的链路层功能模块,以解释处理此数据包的链路层协议报头。这一步处理比较简单,主要是对数据的完整性进行验证,如CRC校验、帧长度检查等。
第二步:在链路层完成对数据帧的完整性验证后,路由器开始处理此数据帧的IP层。这一过程是路由器功能的核心。根据数据帧中IP包头的目的IP地址,路由器在路由表中查找下一跳的IP地址;同时,IP数据包头的TTL(Time To Live)域开始减数,并重新计算校验和(Checksum)。
第三步:根据路由表中所查到的下一跳IP地址,将IP数据包送往相应的输出链路层,被封装上相应的链路层包头,最后经输出网络物理接口发送出去。
简单地说,路由器的主要工作就是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包有效地传送到目的站点。由此可见,选择最佳路径策略或叫选择最佳路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据——路由表(Routing Table),供路由选择时使用。上述过程描述了路由器的主要而且关键的工作过程,但没有说明其它附加性能,例如访问控制、网络地址转换、排队优先级等。
⑨ rip路由表更新算法题
RIP是距离矢量,按照管理距离最短来寻路。
N1: 从A->D->N1 = 5, 从C->N1 = 3, A->C=2, 因此 N1的nexthop=C,或者D都可以,距离都是5
如果开启备份路由,则加入FIB,作为备份
N2: 从A->C->N2 = 2, 从A->C = 2, 因此不变
N3:直连最优
N4:不变
N5:加入FIB,A->N5, 分为A-C->N5,因此距离=5,下一跳C
⑩ 什么是路由啊 路由的组成 以及路由的算法
路由:路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
路由器的组成:
RAM(随机存储器)
功能:存放路由表;存放ARP告诉缓存;存放快速交换缓存;存放分组交换缓冲;存放解压后的IOS;路由器加电后,存放running配置文件;
特点:重启或者断电后,RAM中的内容丢失。
NVRAM(非易失性RAM)
功能:存储路由器的startup配置文件;存储路由器的备份。
特点:重启或者断电后内容不丢失。
FLASH(快速闪存)
功能:存放IOS和微代码。
特点:重启或者断电后内容不丢失;可存放多个IOS版本(在容量许可的前提下);允许软件升级不需替换CPU中的芯片。
ROM(只读存储器)
功能:存放POST诊断所需的指令;存放mini-ios;存放ROM监控模式的代码。
特点:ROM中的软件升级需要更换CPU的芯片(还好这种情况比较少遇到)
CPU(中央处理器)
衡量路由器性能的重要指标,负责路由计算,路由选择等。
背板:
背板能力是一个重要参数,尤其在交换机中。
路由算法:又名选路算法,可以根据多个特性来加以区分。算法的目的是找到一条从源路由器到目的路由器的“好”路径(即具有最低费用的路径[1])。算法设计者的特定目标影响了该路由协议的操作;具体来说存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;由于路由算法使用多种度量标准(metric),从而影响到最佳路径的计算。
算法分类:主要有RIP、IGRP(IGRP为 Cisco公司的私有协议);链路状态路由协议基于图论中非常着名的Dijkstra算法,即最短优先路径(Shortest Path First, SPF)算法,如OSPF。在距离向量路由协议中,路由器将部分或全部的路由表传递给与其相邻的路由器;而在链路状态路由协议中,路由器将链路状态信息传 递给在同一区域内的所有路由器。 根据路由器在自治系统(AS)中的位置,可将路由协议分为内部网关协议 (Interior Gateway Protocol,IGP)和外部网关协议(External Gateway Protocol,EGP,也叫域 间路由协议)。域间路由协议有两种:外部网关协议(EGP)和边界网关协议(BGP)。EGP是为一个简单的树型拓扑结构而设计的,在处理选路循环和设置 选路策略时,具有明显的缺点,已被BGP代替。