长相思兮长相忆,短相思兮无穷极
路由信息协议(RIP)
简介:
内部网关协议(IGP)中最先得到广泛应用的协议
是一种分布式的基于距离向量的路由选择协议,其最大优点就是简单
实现:
路由信息在相邻路由之间交换
距离基本单位为“跳”,每到达一个路由器为一跳
最多允许15跳,超过15跳即为不可达
每30秒广播一次RIP路由更新信息,建立并维护路由表。
RIP协议中每个网络的子同掩码必须相同
特点:
仅和相邻路由器交换信息
路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
按固定的时间间隔交换路由信息,如每隔30秒。
缺陷:
RIP限制了网络的规模。它能使用的最大距离为15(16表示不可达)
路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大
网络出现故障时,会出现慢收效现象(即需要较长时间才能将此信息传送到所有路由器 ),俗称“坏消息传得慢与使更新过程的收敛时间长
RIP和OSPE在于使用的算法是不一样的,RIP使用的是距离向量,适用于比较小的网络,OSPE使用的是链路状态,适用于比较大的网络
每一个路由器都有一个路由表,路由表的表项就是从它自己到其他每一个目的网络的距离记录,这个距离是要求是最短的路由,因为最多是15个路由器所以只适合小互联网,
这个路由表中最重要的就是最短距离,
最常见的距离—向量路由算法是RIP算法,它采用“跳数”作为距离的度量,两个路由器进行交流的时候,交流的是RIP报文,
根据这个R4的第三项就知道它们两个路由器是直接相连的,如何根据就是向下一条全部更改为R4,然后判断距离决定是否写入,并且需要注意不管是变大还是变小,若是下一跳的路由器是一样的,即使距离变大也是会更新,比如这里的目的网络Net2,
从到达每一个路由器中的表项中的距离进行对比,看哪一个表项是最小的,
UDP是传输层的协议,
其中的 1 2 R1表示的含义是目的网络是1,要走2跳,下一跳是R1,
即使不能到达,距离更新为16,但是依然是写为直接交付的,
这个坏消息就是需要两个路由器之间进行相互更新来慢慢的增加距离来判断出是不可达的,
这个距离指的就是跳数,每经过一个路由器就会增加一个值,直到增加到16,
开放最短路径优先(OSPF)协议
简介
使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP)的一种
根据是在自治系统内还是自治系统之间分为内部网关协议和外部网关协议,
这里的代价和之前所说的距离向量是不一样的,之前指的是跳数,当链路状态若是没有发生改变,自然也就不会发送信息了,OSPF是网络层协议,它不使用UDP或TCP而是直接使用IP数据报传送。
原理:链路状态路由算法要求每个参与该算法的结点都具有完全的网络拓扑信息,主动测试所有邻接结点的状态,定期地将链路状态传播给所有其他结点( 或称路由结点)
特点:使用泛洪法向所有相邻的路由器发送信息,然后相邻路由器又向其他相邻路由器发送信息发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息,只有当链路状态发生变化时,路由器才向所有路由器发送此消息
适用于大型网络或者路由信息变化聚敛的互联网环境
优点:每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算,链路状态报文不加改变地传播,因此采用该算法易于查找故障,当一个结点从所有其他结点接收到报文时,它可以在本地立即计算正确的通路,保证一步汇聚链路状态算法比距离-向量算法有更好的规模可伸展性
典型的链路状态算法就是OSPF算法
两个相邻的路由器每隔十秒就会发送一个问候分组来确定是否可达,若是可达才可以进行判断成本量。
这个链路状态数据库就是一个全网的拓扑结构图,就会知道全网络有多少路由器,以及那些路由器是相连的,还有代价是多少,
这个泛洪的意思是给相邻的邻居发送,邻居再给邻居的邻居发送,
通过第六步之后,路由器中的路由表项是比较杂乱的而全面的,然后使用这个算法来整理到其他路由器的度量,
主干的区域的标识符是为0.0.0.0的,它的作用就是连接下面的区域,主干区域的路由器叫做主干路由器,同时注意R3也是属于主干路由器,同时也叫做区域边界路由器,这里的R6是要连接到其他的自治系统AS中的,使用这种方法虽然使得交换信息的种类增多了,同时也使得OSPF协议更加复杂,但是这样却使得每一个区域内的通信量大大减少,因而OSPF就适用于比较大的自治系统了,
考纲上说OSPF是网络层协议,但是若是如上图就是传输层协议,考试的时候就记为网络层协议,RIP是应用层协议,是使用UDP来进行发送的,
OSPF协议会将收来的更新都放在自己的链路状态数据库中,然后根据整个链路状态数据库使用迪杰斯特拉来计算出一个最短路径,所以说收敛速度较快,省去了对比更新这一步,
边界网关协议(BGP)
是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议
边界网关协议常用于互联网的网关之间
BGP采用的是路径向量路由选择协议
应用层协议,基于TCP
工作原理:每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,先建立TCP连接,再利用BGP会话交换路由信息,所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的较好路由,
特点:BGP交换路由信息的结点数量级是自治系统的数量级,要比这些自治系统中的网络数少很多,每个自治系统中BGP发言人(或边界路由器)的数目是很少的,BGP支持CIDR
在BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分
报文类型:打开(Open ) 报文:用来与相邻的另一个BGP发言人建立关系,更新(Update ) 报文:用来发送某一路由的信息,以及列出要撤销的多条路由,保活( Keepalive ) 报文:用来确认打开报文并周期性地证实邻站关系,
通知(Notification )报文:用来发送检测到的差错
层次路由:
背景:当网络规模扩大时,路由器的路由表成比例地增大,这不仅会消耗越来越多的路由器缓冲区空间,而且需要用更多CPU时间来扫描路由表,用更多的带宽来交换路由状态信息
路由选择协议:内部网关协议IGP(自治系统内部所使用的路由选择协议),外部网关协议EGP(不同自治系统的路由器之间交换路由器的信息,并负责为分组在不同的自治系统之间选择最优的路径)
由于BGP仅力求寻找一条能够到达目的网络且较好的路由(不能兜圈子),而并非寻找一条最佳路由,BGP交换的路由信息是到达某个目的网络所要经过的各个自治系统序列而不仅仅是下一跳,
每一个自治系统的管理员都是要指定一个路由器来作为这个自治系统的发言人,两个BGP发言人往往是通过一个共享的网络连接到一起的,而这个BGP发言人往往都是BGP边界路由器,也就是一个自治系统边界和外界相连的路由器。当然有的时候不是这个边界路由器,
注意这里找到一个较好,而非最好,注意这是一个树型结构,只有树型结构才能保证我们不会兜圈子,假如对于AS1这个自治系统来说他有一个边界路由器,这个边界路由器也作为BGP发言人,这个发言人既使用BGP协议,同时也会使用内部网关协议,所以说这个边界路由器是身兼数职的,既要清楚到达其他自治系统的子网应该走那几个子网到达,从外部来的一个分组在这个自治系统应该沿着怎么样的一个路径来走,所以交换的是一组路径的信息称为路径向量,比如到子网1应该要走那几个AS才能够到达,
也就是一个发言人要和其他的发言人通话交换路由信息的话,就应该建立一个TCP连接,也就是通过TCP发送,然后在此连接上交换BGP报文以建立BCP会话,利用BCP会话来交换路由信息,使用TCP可以简化路由选择协议的复杂性
支持CIDR也就是这个BGP的目的网络是用这种网络前缀来表示的,
刚才我们说过BGP报文的交换是建立在TCP连接的基础之上,所以这个OPen就是实现一个链接的建立,认证发送方就是证实发送方的一个身份,进行身份认证,只要有新的路径,或者路径的更新,或者要撤销原来的路径的话都是要使用这个UPdata更新报文,
RIP协议可能会考察一下这个距离向量算法,OSPF,和BGP协议可能会考察它们是内部还是外部的协议,以及它们所使用的路由算法的区分,
注意一个距离向量,一个是路径向量。