一,路由选择协议概述。
路由选择协议,也就是用来讨论路由表中的路由是怎样得出的。路由选择算法是路由选择协议的核心,需要遵守一下几个要求:
1,算法必须是正确的和完整的
2,算法在计算上应简单
路由选择的计算不应该使网络通信量增加太多的额外开销。
3,算法应能适应通信量和网络拓扑的变化
这就是说,要有自适应性。当网络中的通信量产生变化时,算法能自适应地改变路由以达到均衡各链路负载的作用。当某个或某些结点发生故障不能使用或者修理好了再投入运行时,算法能够及时的改变路由,有时称这种适应性为“稳健性”
4,算法应具有稳定性
当网络通信量和网络拓扑相对稳定的情况下,路由算法应收敛于一个可以介绍的值,而不应使所得的路由不停的发生变化
5,算法应是公平的
路由选择算法对所有的用户(除对少数优先级较高的用户)都是平等的。
6,算法应是最佳的
我们希望其能够找出最好的路由,使得分组平均时延最小而网络吞吐量最大。但是我们所希望的最佳却不总是最重要的,对于某些网站,网络的可靠性有时要比最小的分组平均时延或最大吞吐量更加重要
二,路由选择协议
1,内部网关协议RIP
RIP(Routing Information Protocol)叫做路由信息协议,它是内部网关协议IGP中最先得到广泛使用的协议。RIP是一种分布式的基于距离向量的路由选择协议,是Internet的标准协议,最大优点便是简单。
RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。
“距离”的定义:
从一路由器到直接连接的网络的距离定义为1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加1。
RIP协议中的“距离”也称为“跳数”(hopcount),因为每经过一个路由器,跳数就加1。
这里的“距离”实际上指的是“最短距离”,RIP认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
RIP允许一条路径最多只能包含15个路由器。
“距离”的最大值为16时即相当于不可达。可见RIP只适用于小型互联网。
RIP不能在两个网络之间同时使用多条路由。RIP选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
距离向量算法
收到相邻路由器(其地址为X)的一个RIP报文:
(1)先修改此RIP报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有的“距离”字段的值加1。
(2)对修改后的RIP报文中的每一个项目,重复以下步骤:
若项目中的目的网络不在路由表中,则把该项目加到路由表中。
否则
若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。
否则
若收到项目中的距离小于路由表中的距离,则进行更新,
否则,什么也不做。
(3)若3分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。
(4)返回。
RIP协议的报文格式:
RIP2的报文由首部和路由部分组成。RIP2报文中的路由部分由若干个路由信息组成。每个路由信息需要用20个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。路由标记填入自治系统的号码,这是考虑使RIP有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
RIP协议的优缺点:
RIP存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
RIP协议最大的优点就是实现简单,开销较小。
RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。
路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
2,内部网关协议OSPF
这个协议的名字是开放最短路径优先,它是为克服RIP协议的在1989年开发出来的。OSPF的原理很简单,但实现起来却比较复杂。“开放”表明OSPF协议不是受某一家厂商控制而是公开发表的,它使用了Dijkstra提出的最短路径算法SPF。
注意:OSPF只是一个协议的名称,它并不代表其他的路由选择协议不是“最短路径优先”。
OSPF最主要的特征就是使用分布式的链路状态协议,而不是像RIP那样的距离向量协议
其他特点:
1,向本系统中的所有路由器发消息,这里使用的是洪泛法,这就是路由器通过所有输出端口向所有相邻的路由器发送消息。
2,发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器知道的部分信息。
3,只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息,而不像RIP那样,不管网络拓扑有无变化,路由器之间都要定期交换路由表信息
OSPF的区域(area)
为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫作区域。
每一个区域都有一个32位的区域标识符(用点分十进制表示)。
区域也不能太大,在一个区域内的路由器最好不超过200个。
划分区域:
划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
OSPF使用层次结构的区域划分。在上层的区域叫作主干区域(backbonearea)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。
OSPF的五种分组类型
类型1,问候(Hello)分组。
类型2,数据库描述(DatabaseDescription)分组。
类型3,链路状态请求(LinkState Request)分组。
类型4,链路状态更新(LinkState Update)分组,
用洪泛法对全网更新链路状态。
类型5,链路状态确认(LinkState Acknowledgment)
分组。
3,外部网关协议BGP
1989年,公布了新的外部网关协议-边界网关协议BGP。
我们知道内部网关(如RIP或OSPF)主要是设法使数据报在一个AS中尽可能有效的地从源站传送到目的站
因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。
当一条路径通过几个不同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-4共使用四种报文
(1)打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
(2)更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3)保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
(4)通知(NOTIFICATION)报文,用来发送检测到的差错。
在RFC2918 中增加了ROUTE-REFRESH报文,用来请求对等端重新通告。
BGP协议的特点
BGP协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
每一个自治系统中BGP发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。
4,多播路由选择协议
连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。
多播路由选择协议比单播路由选择协议复杂得多
多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。
多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。
多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。
多播路由选择
多播路由选择协议尚未标准化。
一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
在多播转发树上的路由器不会收到重复的多播数据报。
对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。
转发多播数据报使用的方法
(1)洪泛与剪除
这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。为了避免兜圈子,采用了叫做反向路径广播RPB(Reverse Path Broadcasting)的策略。
RPB的要点
路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。
若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。
如果存在几条同样长度的最短路径),那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的IP地址最小。
(2)隧道技术(tunneling)