zoukankan      html  css  js  c++  java
  • 《TCP/IP详解 卷一》读书笔记-----动态路由协议

    1、以下条件只要有一个不满足,则需要使用动态路由协议:1)网络规模小,2)只有一个连接点用于连接其他网络,3)没有冗余的路由器(一般用作备份)

    2、所谓动态路由就是各个路由器与自己相邻的路由器交换各自连接的网络的信息,从而使自身的路由表一直处于最新状态,而不同的交流更新方式,称为不同的动态路由协议

    3、我们将整个互联网分为许多个自治系统(autonomous system,AS),每个自治系统里的路由器使用同一个动态路由协议,称为IGP(interior gateway protocol)而两个不同的自治系统路由器间的路由协议称为EGP(exterior gateway protocol)

    4、RIP(Routing Information Protocol):一种适用于中小型网络的IGP,原因在于RIP的报文中有一个metrics字段,用于记录到目的地址需要经过的跳数,而该字段的值为16时,表示该目的地址不可达,因此使用RIP的网络的范围是非常有限的。通常使用UDP进行通信,端口号为520。

    5、RIP协议的执行步骤:

    1)初始化,首先在各个端口广播RIP请求报文,让其他路由器将它们的整个路由表发送回来。

    2)当其他路由器接受到请求报文时,首先判断该报文是否为初始化请求报文,是则将整个路由表打包发送回去,否则逐一判断请求中的目的地址,如果该地址自己能到,则赋上自己的metric值,不能到,则将metric值置为16(表示该目的地址不可达)。

    3)路由器收到回复后,根据得到的路由表更新自己的路由表。有新的目的地址的添加表项,有更优的路径选择的,则更新原来的路由表项。

    4)常规的路由更新:每过30秒,各个路由器都要将自己完整的路由表发送给和自己直接相连的路由器。

    5)触发更新:当路由表中的一个表项的metric值发生变化时,只需要把这个表项的变化通知临近路由器即可

    6)如果路由表中存在表项经过3分钟还没有更新,即4)当中的每隔30秒的常规更新,那么将该表项从路由表中删除

    6、RIP需要用很长时间才能从路由器或者连接的故障中恢复过来,因为故障必然导致达到目的地址的跳数增加,而RIP协议的路由表的更新是向着更优,即跳数更少的方向更新的,因此逆向更新无疑需要更长的时间。

    7、OSPF(Open Shortest Path First):是另外一种IGP,很好地克服了RIP的缺点,能够满足大型网络的需求。它是一种链路状态协议,与RIP不同的是,它与相邻的路由器交互的是链路状态信息,而不是RIP中的到达某目的地址的距离。并且每个路由器都会将它们收到的链路状态信息存放在数据库中,然后基于此数据库生产一张路由表。而且OSPF的链路状态信息的传递并不是基于UDP或TCP的,而是作为一个独立的协议,在IP数据报头部的protocol字段中有专门的值进行表示。

          在基于OSPF的路由表中,不同于RIP中的路由表只有一个最优表项,对于同一个目的地址可能会有多个表项,并且OSPF会对这些表项基于轮转法进行选择,从而保证负载的平衡。当网络的拓扑结构发生变化时,路由器会被触发发送更新数据包,从而使相关路由器的路由表得到及时的更新,有效克服了RIP的坏消息传得慢的缺陷。(OSPF相对RIP要复杂得多,这里只能做一些简单的概述)

    8、BGP(Border Gateway Protocol)是一种运行于TCP之上的自治系统间的路由协议,自治系统间通过发送网络可达性信息来更新路由信息,并且每隔30秒发送一次keep-alive消息来维持连接并且检测网络拓扑结构的变化。

    9、CDIR(Classless Interdomain Routing):CIDR本质上的目的是为了减少互联网中路由器中的表项。我们知道,对于每个C类地址,路由器中都要添加相应的路由表项,因此整个路由表就会变得非常得冗长。因此我们非常正常的想法就是将几个高位相同的C类网络合并起来,那么在路由表中就只需要添加一个路由表项了。其实CIDR也就是基于这种想法,从一定程度上说,这也就弱化了A,B,C这样的网络划分。通常一个IP数据报到达路由器查找路由表进行匹配时,我们只需要选择与目的地址匹配长度(这里应该是与子网掩码的匹配长度,而非destination)最长的表项进行路由就可以了。

  • 相关阅读:
    比较两个树是否相同
    将一个字符串转换成一个整数
    求数组中第一个重复数字
    Redis之哨兵机制(sentinel)——配置详解及原理介绍
    ==和equals的区别
    求一个数的立方根
    检测应用版本
    【转】UITableViewCell自适应高度 UILabel自适应高度和自动换行
    iOS7中Cell高度 Label高度自适应
    MarsEdit 快速插入代码
  • 原文地址:https://www.cnblogs.com/YaoDD/p/4888109.html
Copyright © 2011-2022 走看看