您的位置:首页 > 其它

因特网的路由选择协议

2015-06-23 09:30 337 查看
理想的路由算法算法必须是正确的和完整的。

算法在计算上应简单。

算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。

算法应具有稳定性。

算法应是公平的。

算法应是最佳的。

注:关于“最佳路由”:不存在一种绝对的最佳路由算法。所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。

实际的路由选择算法,应尽可能接近于理想的算法。路由选择是个非常复杂的问题它是网络中的所有结点共同协调工作的结果。路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。
关于路由算法的自适应性:
静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。

动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
路由选择协议
因特网采用分层次的路由选择协议。因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。而且许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。

自治系统AS(AutonomousSystem)
自治系统AS的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议用以确定分组在AS之间的路由。

注:现在对自治系统AS的定义是强调下面的事实:尽管一个AS使用了多种内部路由选择协议和度量,但重要的是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。

因特网有两大类路由选择协议
内部网关协议IGP(Interior
Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如RIP和OSPF协议。

外部网关协议EGP(External
Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议
EGP。在外部网关协议中目前使用最多的是BGP-4。
自治系统和内部网关协议、外部网关协议



注:这里要指出两点:
因特网的早期RFC文档中未使用“路由器”而是使用“网关”这一名词。但是在新的RFC文档中又使用了“路由器”这一名词。应当把这两个属于当作同义词。

IGP 和EGP是协议类别的名称。但RFC在使用EGP这个名词时出现了一点混乱,因为最早的一个外部网关协议的协议名字正好也是EGP。因此在遇到名词EGP时,应弄清它是指旧的协议EGP还是指外部网关协议EGP这个类别。

内部网关协议RIP(Routing
Information Protocol)

工作原理

路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议。RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”的定义:
从一路由器到直接连接的网络的距离定义为1。

从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1。

RIP协议中的“距离”也称为“跳数”(hopcount),因为每经过一个路由器,跳数就加1。

这里的“距离”实际上指的是“最短距离”,RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”。

RIP允许一条路径最多只能包含15个路由器。

“距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互联网。

RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
RIP协议的三个要点
仅和相邻路由器交换信息。

交换的信息是当前本路由器所知道的全部信息,即自己的路由表。

按固定的时间间隔交换路由信息,例如,每隔30秒。
路由表的建立
路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。RIP协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
距离向量算法
收到相邻路由器(其地址为X)的一个RIP报文:

(1)先修改此RIP报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1。

(2)对修改后的RIP报文中的每一个项目,重复以下步骤:

若项目中的目的网络不在路由表中,则把该项目加到路由表中。

否则

若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。

否则

若收到项目中的距离小于路由表中的距离,则进行更新,

否则,什么也不做。

(3)若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。

(4)返回。

RIP2协议的报文格式



RIP2的报文由首部和路由部分组成。RIP2报文中的路由部分由若干个路由信息组成。每个路由信息需要用20个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。路由标记填入自治系统的号码,这是考虑使RIP有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
RIP协议的优缺点:
RIP存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。

RIP协议最大的优点就是实现简单,开销较小。

RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。

路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

RIP的举例理解:







内部网关协议OSPF(OpenShortest
Path First)

OSPF
协议的基本特点

“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。

“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF

OSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。是分布式的链路状态协议。

注:三个要点
向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。

发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。

只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
链路状态数据库(link-statedatabase)
由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。

这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。

OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF的更新过程收敛得快是其重要优点。
OSPF的区域(area)
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫作区域。

每一个区域都有一个32位的区域标识符(用点分十进制表示)。

区域也不能太大,在一个区域内的路由器最好不超过200个。



划分区域:
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。

在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。

OSPF使用层次结构的区域划分。在上层的区域叫作主干区域(backbonearea)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
主干路由器



区域边界路由器



OSPF分组



OSPF的五种分组类型
类型1,问候(Hello)分组。

类型2,数据库描述(DatabaseDescription)分组。

类型3,链路状态请求(LinkState
Request)分组。

类型4,链路状态更新(LinkState
Update)分组,

用洪泛法对全网更新链路状态。

类型5,链路状态确认(LinkState
Acknowledgment)

分组。
OSPF的基本操作





OSPF的特点
OSPF直接用IP数据报传送:
OSPF不用UDP而是直接用IP数据报传送。

OSPF构成的数据报很短。这样做可减少路由信息的通信量。

数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价。因此,OSPF对于不同类型的业务可计算出不同的路由。

如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。

所有在OSPF路由器之间交换的分组都具有鉴别的功能。

支持可变长度的子网划分和无分类编址CIDR。

每一个链路状态都带上一个32位的序号,序号越大状态就越新。
OSPF还规定每隔一段时间,如30分钟,要刷新一次数据库中的链路状态。

由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。

OSPF没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于100ms。

注:指定的路由器(designatedrouter)
指定路由器(DesignatedRouter)是一个运行开放最短路径优先(OSPF)的路由器,其为一个多路接入网络产生LSAs,在运行OSPF时有其它特殊的功能。每个多路接入OSPF网络最少有两个附加路由器,有一个路由器是被OSPFHello协议推选的。这个指定路由器能够使多接入网络需要的邻接的数量减少,进而减少路由协议通信的数量和拓扑数据库的大小。
多点接入的局域网采用了指定的路由器的方法,使广播的信息量大大减少。

指定的路由器代表该局域网上所有的链路向连接到该网络上的各路由器发送状态信息。

外部网关协议BGP
BGP是不同自治系统的路由器之间交换路由信息的协议。

BGP较新版本是2006年1月发表的BGP-4(BGP第4个版本),即RFC4271
~ 4278。

可以将BGP-4简写为BGP。
BGP使用的环境
因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。

当一条路径通过几个不同AS时,要想对这样的路径计算出有意义的代价是不太可能的。

比较合理的做法是在AS之间交换“可达性”信息。

自治系统之间的路由选择必须考虑有关策略。

因此,边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
BGP发言人(BGPspeaker)
每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。

一般说来,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。
BGP交换路由信息
一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。

使用TCP连接能提供可靠的服务,也简化了路由选择协议。

使用TCP连接交换路由信息的两个BGP发言人,彼此成为对方的邻站或对等站。
BGP发言人和自治系统AS的关系



BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS。

当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。
BGP发言人交换路径向量





BGP报文具有通用的首部



BGP-4共使用四种报文
(1)打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。

(2)更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。

(3)保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。

(4)通知(NOTIFICATION)报文,用来发送检测到的差错。

在RFC2918
中增加了ROUTE-REFRESH报文,用来请求对等端重新通告。
BGP协议的特点
BGP协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。

每一个自治系统中BGP发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。

在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。

多播路由选择协议
连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
多播路由选择协议比单播路由选择协议复杂得多

多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。

多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。

多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。



多播路由选择

多播路由选择协议尚未标准化。

一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。

多播路由选择实际上就是要找出以源主机为根结点的多播转发树。

在多播转发树上的路由器不会收到重复的多播数据报。

对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。

转发多播数据报使用的方法

(1)洪泛与剪除

这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。

一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。为了避免兜圈子,采用了叫做反向路径广播RPB(Reverse Path Broadcasting)的策略。

RPB的要点

路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。

若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。

如果存在几条同样长度的最短路径),那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的IP地址最小。



(2)隧道技术(tunneling)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: