培训教材-路由器 以主动方式运行RIP的路由器每隔30秒广播一次报文,该报文包含了路由器当前的选 路数据库中的信息。每个报文由序偶构成,每个序偶由一个IP网络地址和一个代表到达该网 络的距离的整数构成。RIP使用跳数度量( hop count metric)来衡量到达目的站的距离。在 RIP度量标准中,路由器到它直接相连的网络的跳数被定义为1,到通过另一个路由器可达的 网络的距离为2跳,其余依此类推。因此从给定源站到目的站的一条路径的跳数( number of hops或 hop count)对应于数据报沿该路传输时所经过的路由器数。显然,使用跳数作为衡 量最短路径并不一定会得到最佳结果。例如,一条经过三个以太网的跳数为3的路径,可能 比经过两条低速串行线的跳数为2的路径要快得多。为了补偿传输技术上的差距,许多RIP 软件在通告低速网络路由时人为地增加了跳数。 运行RIP的主动机器和被动机器都要监听所有的广播报文,并根据前面所说的矢量距离 算法来更新其选路表。例如图1.2中的互连网络中,路由器R1在网络2上广播的选路信息报 文中包含了序偶(1,1),即它能够以费用值1到达网络1。路由器R2和陌5收到这个广播报文 之后,建立一个通过R到达网络1的路由(费用为2)。然后,路由器R2和陌5在网络3上广 播它们的RIP报文时就会包含序偶(1,2)。最终,所有的路由器和主机都会建立到网络1的 路由 RIP规定了少量的规则来改进其性能和可靠性。例如,当路由器收到另一个路由器传来 的路由时,它将保留该路由直到收到更好的路由。在我们所举的例子中,如果路由器R2和R5 都以费用2来广播到网络1的路由,那么R3的R4就会将路由设置为经过先广播的那个路由 器到达网络1。即 为了防止路由在两个或多个费用相等的路径之间振荡不定,RIP规定在 得到费用更小的路由之前保留原有路由不变 如果第一个广播路由的路由器出故障(如崩溃)会有什么后果?RIP规定所有收听者必 须对通过RIP获得的路由设置定时器。当路由器在选路表中安置新路由时,它也为之设定了 定时器。当该路由器又收到关于该路由的另一个广播报文后,定时器也要重新设置。如果经 过180秒后还没有下一次通告该路由,它就变为无效路由 RIP必须处理下层算法的三类错误。第一,由于算法不能明确地检测出选路的回路,RIP 要么假定参与者是可信赖的,要么采取一定的预防措施。第二,RIP必须对可能的距离使用 个较小的最大值来防止出现不稳定的现象(RIP使用的值是16)。因而对于那些实际跳数值在 16左右的互连网络,管理者要么把它划分为若干部分,要么采用其他的协议。第三,选路更 新报文在网络之间的传输速度很慢,RIP所使用的矢量距离算法会产生慢收敛(slow convergence)或无限计数( count to infinity)问题从而引发不一致性。选择一个小的无 限大值(16),可以限制慢收敛问题,但不能彻底解决客观存在。 选路表的不一致问题并非仅在RIP中出现。它是出现在任何矢量距离协议中的一个根本 性的问题,在此协议中,更新报文仅仅包含由目的网络及到达该网络的距离构成的序偶。为 了理解这个问题我们考虑图1.4中路由集合。图中描述了在图1.2中到达网络1的路由。 培训教材-路由器 6 客户服务中心
培训教材-路由器 培训教材-路由器 6 客户服务中心 以主动方式运行 RIP 的路由器每隔 30 秒广播一次报文,该报文包含了路由器当前的选 路数据库中的信息。每个报文由序偶构成,每个序偶由一个 IP 网络地址和一个代表到达该网 络的距离的整数构成。RIP 使用跳数度量(hop count metric)来衡量到达目的站的距离。在 RIP 度量标准中,路由器到它直接相连的网络的跳数被定义为 1,到通过另一个路由器可达的 网络的距离为 2 跳,其余依此类推。因此从给定源站到目的站的一条路径的跳数(number of hops 或 hop count)对应于数据报沿该路传输时所经过的路由器数。显然,使用跳数作为衡 量最短路径并不一定会得到最佳结果。例如,一条经过三个以太网的跳数为 3 的路径,可能 比经过两条低速串行线的跳数为 2 的路径要快得多。为了补偿传输技术上的差距,许多 RIP 软件在通告低速网络路由时人为地增加了跳数。 运行 RIP 的主动机器和被动机器都要监听所有的广播报文,并根据前面所说的矢量距离 算法来更新其选路表。例如图 1.2 中的互连网络中,路由器 R1 在网络 2 上广播的选路信息报 文中包含了序偶(1,1),即它能够以费用值 1 到达网络 1。路由器 R2 和 R5 收到这个广播报文 之后,建立一个通过 R1 到达网络 1 的路由(费用为 2)。然后,路由器 R2 和 R5 在网络 3 上广 播它们的 RIP 报文时就会包含序偶(1,2)。最终,所有的路由器和主机都会建立到网络 1 的 路由。 RIP 规定了少量的规则来改进其性能和可靠性。例如,当路由器收到另一个路由器传来 的路由时,它将保留该路由直到收到更好的路由。在我们所举的例子中,如果路由器 R2 和 R5 都以费用 2 来广播到网络 1 的路由,那么 R3 的 R4 就会将路由设置为经过先广播的那个路由 器到达网络 1。即: 为了防止路由在两个或多个费用相等的路径之间振荡不定,RIP 规定在 得到费用更小的路由之前保留原有路由不变。 如果第一个广播路由的路由器出故障(如崩溃)会有什么后果?RIP 规定所有收听者必 须对通过 RIP 获得的路由设置定时器。当路由器在选路表中安置新路由时,它也为之设定了 定时器。当该路由器又收到关于该路由的另一个广播报文后,定时器也要重新设置。如果经 过 180 秒后还没有下一次通告该路由,它就变为无效路由。 RIP 必须处理下层算法的三类错误。第一,由于算法不能明确地检测出选路的回路,RIP 要么假定参与者是可信赖的,要么采取一定的预防措施。第二,RIP 必须对可能的距离使用一 个较小的最大值来防止出现不稳定的现象(RIP 使用的值是 16)。因而对于那些实际跳数值在 16 左右的互连网络,管理者要么把它划分为若干部分,要么采用其他的协议。第三,选路更 新报文在网络之间的传输速度很慢,RIP 所使用的矢量距离算法会产生慢收敛(slow convergence)或无限计数(count to infinity)问题从而引发不一致性。选择一个小的无 限大值(16),可以限制慢收敛问题,但不能彻底解决客观存在。 选路表的不一致问题并非仅在 RIP 中出现。它是出现在任何矢量距离协议中的一个根本 性的问题,在此协议中,更新报文仅仅包含由目的网络及到达该网络的距离构成的序偶。为 了理解这个问题我们考虑图 1.4 中路由集合。图中描述了在图 1.2 中到达网络 1 的路由
培训教材-路由器 网络1 网络1 图1.4慢收敛问题。(a)中的三个路由器各有到网络1的路由。(b) 中,到网络1的路由已经消失了,但是R对它的路由通告引 起了选路的环路 正如图1.4(a)所显示的那样,R直接与网络1相连,所以在它的选路表中有一条到 该网络的距离为1的路由;在周期性的路由广播中包括了这个路由。R从R处得知了这个路 由,并在自己的选路表中建立了相应的路由产工将之以距离值2广播出去。最后R3从R2处 得知该路由并以距离值3广播 现在假设R1到网络1的连接失效了。那么R1立即更新它的选路表把该路由的距离置为 16(无穷大)。在下一次广播时,R1应该通告这一信息。但是,除非协议包含了额外的机制预 防此类情况,可能有其他的路由器在R1广播之前就广播了其路由。可能假设一个特殊的情况 即R2正好在R1与网络1连接失效后通告其路由。因此,R1就会收到R2的报文,并对此使用 通常的矢量距离算法:它注意到R2有到达网络1的费用更低的路由,计算出现在到达网络1 需要3跳(R2通告的到网络1费用是2跳,再加上到R的1跳)。然后在选路表中装入新的 通过R2到达网络1的路由。图1.4描述了这个结果。这样的话,R1和R中的任一个收到去 网络1的数据报之后,就会把该报文在两者之间来回传输直到寿命计时器超时溢出 这两个路由器随后广播的RIP不能迅速解决这个问题。在下一轮交换选路信息的过程 中,R1通告它的选路表中的各个项目。而R2得知R1到网络1的距离是3之后,计算出该路 由新长度4。到第三轮的时候,R1收到从R传来的路由距离增加的信息,把自己的选路表中 该路由的距离增到5。如此循环往复,直至距离值到达RIP的极限。 1.2.1.慢收敛问题的解决 对图1.4的例子,可以使用分割范围更新( split horizon update)技术来解决慢收敛 问题。在使用分割范围技术时,路由器记录下收到各路由的接口,而当这路由器通告路由 就不会把该路由再通过那个接口送回去。在该例中,路由器R2不会把它到网络1的距离为2 的路由再通告给R1,因此一旦R与网络1的连接失效,它就不会再通告该路由。经过几轮选 路更新之后,所有的机器都会知道网络1是不可达的。但是分割范围更新技术不能解决所有 的拓扑结构中的问题。 考虑慢收敛问题的另一个方法是使用信息流的概念。如果路由器通告了到某网络的短路 由,所有接收路由器迅速地作出安装该路由的反应。当路由器停止通告某路由,协议在判断 该路由不可达之前,要依据超时机制来工作。当超时出现时,路由器寻找替代路由并开始传 培训教材-路由器 客户服务中心
培训教材-路由器 培训教材-路由器 7 客户服务中心 图 1.4 慢收敛问题。(a)中的三个路由器各有到网络 1 的路由。(b) 中,到网络 1 的路由已经消失了,但是 R2 对它的路由通告引 起了选路的环路 正如图 1.4(a)所显示的那样,R1 直接与网络 1 相连,所以在它的选路表中有一条到 该网络的距离为 1 的路由;在周期性的路由广播中包括了这个路由。R2 从 R1 处得知了这个路 由,并在自己的选路表中建立了相应的路由产工将之以距离值 2 广播出去。最后 R3 从 R2 处 得知该路由并以距离值 3 广播。 现在假设 R1 到网络 1 的连接失效了。那么 R1 立即更新它的选路表把该路由的距离置为 16(无穷大)。在下一次广播时,R1 应该通告这一信息。但是,除非协议包含了额外的机制预 防此类情况,可能有其他的路由器在 R1 广播之前就广播了其路由。可能假设一个特殊的情况, 即 R2 正好在 R1 与网络 1 连接失效后通告其路由。因此,R1 就会收到 R2 的报文,并对此使用 通常的矢量距离算法:它注意到 R2 有到达网络 1 的费用更低的路由,计算出现在到达网络 1 需要 3 跳(R2 通告的到网络 1 费用是 2 跳,再加上到 R2 的 1 跳)。然后在选路表中装入新的 通过 R2 到达网络 1 的路由。图 1.4 描述了这个结果。这样的话,R1 和 R2 中的任一个收到去 网络 1 的数据报之后,就会把该报文在两者之间来回传输直到寿命计时器超时溢出。 这两个路由器随后广播的 RIP 不能迅速解决这个问题。在下一轮交换选路信息的过程 中,R1 通告它的选路表中的各个项目。而 R2 得知 R1 到网络 1 的距离是 3 之后,计算出该路 由新长度 4。到第三轮的时候,R1 收到从 R2 传来的路由距离增加的信息,把自己的选路表中 该路由的距离增到 5。如此循环往复,直至距离值到达 RIP 的极限。 1.2.1. 慢收敛问题的解决 对图 1.4 的例子,可以使用分割范围更新(split horizon update)技术来解决慢收敛 问题。在使用分割范围技术时,路由器记录下收到各路由的接口,而当这路由器通告路由时, 就不会把该路由再通过那个接口送回去。在该例中,路由器 R2 不会把它到网络 1 的距离为 2 的路由再通告给 R1,因此一旦 R1 与网络 1 的连接失效,它就不会再通告该路由。经过几轮选 路更新之后,所有的机器都会知道网络 1 是不可达的。但是分割范围更新技术不能解决所有 的拓扑结构中的问题 。 考虑慢收敛问题的另一个方法是使用信息流的概念。如果路由器通告了到某网络的短路 由,所有接收路由器迅速地作出安装该路由的反应。当路由器停止通告某路由,协议在判断 该路由不可达之前,要依据超时机制来工作。当超时出现时,路由器寻找替代路由并开始传 网络1 网络1 R1 R2 R3 (b) R1 R2 R3 (a)
培训教材-路由器 播此信息。不幸的是,路由器并不知道这个替代路由是否要依赖于刚刚消失的路由。因此, 通常不应迅速地传播否定的信息。有一条警句或谓一语破的: 好消息传播得快,坏消息传播得慢。 解决慢收敛问题的另一个技术使用了抑制( hold down)法。抑制法迫使参与协议工作 的路由器,在收到关于某网络不可达的信息后的一段固定时间内,忽略任何关于该网络的路 由信息。这段抑制时间的典型长度是60秒。该技术的思路是等待足够的时间以便确信所有的 机器都收到坏消息,并且不会错误地接受内容过时的报文。需要指出的是,所有参与RIP的 机器都要遵循抑制策略,否则仍然会发生选路回路现象。抑制技术的缺点是:如果出现了选 路回路,那么在抑制期间内这些选路回路仍然会维持下去。更严重的是,在抑制期间所有不 正确的路由也保留下来了,即使是有替代路由的存在 解决慢收敛问题的最后一种技术就是毒性逆转( poison reverse)。当一条连接消失后 路由器在若干个更新周期内都有保留该路由,但是在广播路由时则规定该路由的费用为无限 长。为提高毒性逆转法的效率,它应该与触发更新( triggered updates)技术结合。触发更 新技术使得新信息,路由器减少了因为想信好消息而容易出错的时间。 不幸的是,虽然触发更新技术、毒性逆转技术、抑制技术和分割范围技术能够解决一些 问题,但它们又带来了一些新的问题。例如,在许多路由器共享一个公共网络的结构中采用 触发更新技术的情况下,一个广播就能改变这些路由器的选路表,引发一轮新的广播。如果 第二轮广播改变了路由表,它又会引起更多的广播。这就产生了广播雪崩。 使用广播技术(这有可能产生选路回路)和使用抑制技术防止慢收敛问题,可使得RIP 在广域网上的工作效率极低。广播要耗费大量宝贵的带宽。即便不出现广播雪崩现象,所有 机器周期性地进行广播也意味着网络流量随着路由器数目的増加而増加。而可能岀现的选路 回路在线路容量有限的情况下可能就是致命的问题。当兜圈子的分组使得线路的容量饱和后 路由器要交换一些选路报文来打破这种回路,就变得很困难甚至是不可能的。同样,在广域 网中,抑制期间可能太长,使得高层协议使用的定时器超时从而中断连接。尽管有这些熟知 的问题,但还是有许多的组织在广域网上使用RIP作为IGP 1.2.2.RIP报文格式 RIP报文大致可分为两类:选路信息报文和对信息的请求报文。它们都使用同样的格式 由固定的首部和后面可选的网络和距离序偶列表组成。图1.5给出的报文的格式:在这个图 中,命令( COMMAND)字段按照下表的规定对应了各种操作: 培训教材-路由器 客户服务中心
培训教材-路由器 培训教材-路由器 8 客户服务中心 播此信息。不幸的是,路由器并不知道这个替代路由是否要依赖于刚刚消失的路由。因此, 通常不应迅速地传播否定的信息。有一条警句或谓一语破的: 好消息传播得快,坏消息传播得慢。 解决慢收敛问题的另一个技术使用了抑制(hold down)法。抑制法迫使参与协议工作 的路由器,在收到关于某网络不可达的信息后的一段固定时间内,忽略任何关于该网络的路 由信息。这段抑制时间的典型长度是 60 秒。该技术的思路是等待足够的时间以便确信所有的 机器都收到坏消息,并且不会错误地接受内容过时的报文。需要指出的是,所有参与 RIP 的 机器都要遵循抑制策略,否则仍然会发生选路回路现象。抑制技术的缺点是:如果出现了选 路回路,那么在抑制期间内这些选路回路仍然会维持下去。更严重的是,在抑制期间所有不 正确的路由也保留下来了,即使是有替代路由的存在。 解决慢收敛问题的最后一种技术就是毒性逆转(poison reverse)。当一条连接消失后, 路由器在若干个更新周期内都有保留该路由,但是在广播路由时则规定该路由的费用为无限 长。为提高毒性逆转法的效率,它应该与触发更新(triggered updates)技术结合。触发更 新技术使得新信息,路由器减少了因为想信好消息而容易出错的时间。 不幸的是,虽然触发更新技术、毒性逆转技术、抑制技术和分割范围技术能够解决一些 问题,但它们又带来了一些新的问题。例如,在许多路由器共享一个公共网络的结构中采用 触发更新技术的情况下,一个广播就能改变这些路由器的选路表,引发一轮新的广播。如果 第二轮广播改变了路由表,它又会引起更多的广播。这就产生了广播雪崩。 使用广播技术(这有可能产生选路回路)和使用抑制技术防止慢收敛问题,可使得 RIP 在广域网上的工作效率极低。广播要耗费大量宝贵的带宽。即便不出现广播雪崩现象,所有 机器周期性地进行广播也意味着网络流量随着路由器数目的增加而增加。而可能出现的选路 回路在线路容量有限的情况下可能就是致命的问题。当兜圈子的分组使得线路的容量饱和后, 路由器要交换一些选路报文来打破这种回路,就变得很困难甚至是不可能的。同样,在广域 网中,抑制期间可能太长,使得高层协议使用的定时器超时从而中断连接。尽管有这些熟知 的问题,但还是有许多的组织在广域网上使用 RIP 作为 IGP。 1.2.2. RIP报文格式 RIP 报文大致可分为两类:选路信息报文和对信息的请求报文。它们都使用同样的格式, 由固定的首部和后面可选的网络和距离序偶列表组成。图 1.5 给出的报文的格式:在这个图 中,命令(COMMAND)字段按照下表的规定对应了各种操作:
培训教材-路由器 命令(1-5)版本(1) 必为零 网1的协议族 必为零 网1的IP地址 必为零 必为零 至网1的距离 网2的协议族 必为零 网2的IP地址 必为零 必为零 至网2的距离 图1.5RIP报文的格式。在32比特的首部之后,报文包含了一系 列的序偶,每个序偶由一个网络IP地址和一个到达该网络的整 数距离值构成 含义 请求部分的或全部的选路信息 1234 响应,包含发送方选路表内的网络距离序偶 启动跟踪模式(已过时) 关闭跟踪模式(已过时) 保留由 Sun Microsystem公司内部使用 路由器或主机通过发送请求命令向另一个路由器请求( request)选路信息。路由器使 用响应( response)命令回答。但是在大多数情况下,路由器不经请求就周期性发送响应报 文。版本( VERSI0N)字段包含了协议的版本号(目前的值是1),接收方检测该字段以便对报 文作出正确的解释。 1.2.3.RIP编址约定 RIP的普遍适用性也体现在它传送网络地址的方式上。它的地址格式不局限于供TCP/IP 用户使用,还能适应其他网络协议族的规定。图1.5中显示出RIP通告中的每个网络地址可 以长达14个八位组。当然,IP地址仅需4个八位组,RIP定义余下的八位组必须为零。网络 族( FAMILY OF NET i)字段指出了解释它后面出现的网络地址时应遵循的协议族。RIP对 各类地址族的赋值遵循了4 BSD UNIX操作系统的规定(IP地址类型的赋值是2)。 除了正常的IP地址之外,RIP规定地址0.0.0.0作为默认路由。RIP对通告的每个路由 包括默认路由,都附加了距离度量标准。因此可以让两个路由器以不同的度量标准来通告默 认路由(如到互连网络的其余部分的路由),选择其中的一条作为基本路径,另一条作为备用 在RIP报文每个项目的最后一个字段是到网络i的距离( DISTANCE T0NETi)字段, 其内容是到达指定网络的整数型距离值。距离值是以跳数作为度量单位的,但是它的取值范 围限制在1到16,16代表无限远(也就是说该路由不存在)。 培训教材-路由器 客户服务中心
培训教材-路由器 培训教材-路由器 9 客户服务中心 0 8 16 24 31 命令(1-5) 版本(1) 必为零 网 1 的协议族 必为零 网 1 的 IP 地址 必为零 必为零 至网 1 的距离 网 2 的协议族 必为零 网 2 的 IP 地址 必为零 必为零 至网 2 的距离 … 图 1.5 RIP 报文的格式。在 32 比特的首部之后,报文包含了一系 列的序偶,每个序偶由一个网络 IP 地址和一个到达该网络的整 数距离值构成 命令 含 义 1 请求部分的或全部的选路信息 2 响应,包含发送方选路表内的网络距离序偶 3 启动跟踪模式(已过时) 4 关闭跟踪模式(已过时) 5 保留由 Sun Microsystem 公司内部使用 路由器或主机通过发送请求命令向另一个路由器请求(request)选路信息。路由器使 用响应(response)命令回答。但是在大多数情况下,路由器不经请求就周期性发送响应报 文。版本(VERSION)字段包含了协议的版本号(目前的值是 1),接收方检测该字段以便对报 文作出正确的解释。 1.2.3. RIP编址约定 RIP 的普遍适用性也体现在它传送网络地址的方式上。它的地址格式不局限于供 TCP/IP 用户使用,还能适应其他网络协议族的规定。图 1.5 中显示出 RIP 通告中的每个网络地址可 以长达 14 个八位组。当然,IP 地址仅需 4 个八位组,RIP 定义余下的八位组必须为零。网络 i 族(FAMILY OF NET i)字段指出了解释它后面出现的网络地址时应遵循的协议族。RIP 对 各类地址族的赋值遵循了 4BSD UNIX 操作系统的规定(IP 地址类型的赋值是 2)。 除了正常的 IP 地址之外,RIP 规定地址 0.0.0.0 作为默认路由。RIP 对通告的每个路由, 包括默认路由,都附加了距离度量标准。因此可以让两个路由器以不同的度量标准来通告默 认路由(如到互连网络的其余部分的路由),选择其中的一条作为基本路径,另一条作为备用。 在 RIP 报文每个项目的最后一个字段是到网络 i 的距离(DISTANCE TO NET i)字段, 其内容是到达指定网络的整数型距离值。距离值是以跳数作为度量单位的,但是它的取值范 围限制在 1 到 16,16 代表无限远(也就是说该路由不存在)
培训教材-路由器 1.24.R|P报文的发送 RIP报文中并没包含显式的长度字段。相反,RIP假设底层投递系统能够告诉接收方收 到的报文长度。特别是,在TCP/IP系统中,RIP报文依赖于UP来告诉接收方报文的长度。 RIP工作在UDP上的端口是520,虽然RIP可以以不同的UDP端口来发送请求报文,但是在接 收端的UDP端口通常都是520,同时这也是RIP产生广播报文的源端口 使用RIP作为内部路由器协议限制选路的度量必须基于跳数。但跳数通常仅仅提供对网 络响应能力和容量的粗略估量,而并不能产生最佳路由。此外,基于最小跳数来计算路由会 有严重的缺点,即它会使选路相对固定不变,因为路由不能对网络负荷的变化作出反应 1.3.0SP 随着 Internet技术在全球范围的飞速发展,OSPF已成为目前 Internet广域网和 Intranet企 业网采用最多、应用最广泛的路由协议之一。OSPF( Open Shortest Path First)路由协议是由 IETF( Internet engineering task force)lGP工作小组提出的,是一种基于SPF算法的路由协 议,目前使用的OSPF协议是其第二版,定义于RFCl247和RFC1583 1.3.1.概述 OSPF路由协议是一种典型的链路状态(Link- state)的路由协议,一般用于同一个路由域 内。在这里,路由域是指一个自治系统( Autonomous System),即AS,它是指一组通过统 的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护 个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息, OSPF路由器正是通过这个数据库计算出其OSPF路由表的。 作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA( Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行 距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器 1.3.2.数据包格式 在OSPF路由协议的数据包中,其数据包头长为24个字节,包含如下8个字段 * ersion number-定义所采用的OSPF路由协议的版本 Type-定义OSPF数据包类型。OSPF数据包共有五种 Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。 * Database Description-用于描述整个数据库,该数据包仅在OSPF初始化时发送。 Link state request-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在 当路由器发现其数据已经过期时才发送的 Link state update-这是对 link state请求数据包的响应,即通常所说的LSA数据包。 Link state acknowledgment-是对LSA数据包的响应。 Packet length-定义整个数据包的长度 培训教材-路由器 客户服务中心
培训教材-路由器 培训教材-路由器 10 客户服务中心 1.2.4. RIP报文的发送 RIP 报文中并没包含显式的长度字段。相反,RIP 假设底层投递系统能够告诉接收方收 到的报文长度。特别是,在 TCP/IP 系统中,RIP 报文依赖于 UDP 来告诉接收方报文的长度。 RIP 工作在 UDP 上的端口是 520,虽然 RIP 可以以不同的 UDP 端口来发送请求报文,但是在接 收端的 UDP 端口通常都是 520,同时这也是 RIP 产生广播报文的源端口。 使用 RIP 作为内部路由器协议限制选路的度量必须基于跳数。但跳数通常仅仅提供对网 络响应能力和容量的粗略估量,而并不能产生最佳路由。此外,基于最小跳数来计算路由会 有严重的缺点,即它会使选路相对固定不变,因为路由不能对网络负荷的变化作出反应。 1.3. OSPF 随着 Internet 技术在全球范围的飞速发展,OSPF 已成为目前 Internet 广域网和 Intranet 企 业网采用最多、应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由 IETF(Internet Engineering Task Force)IGP 工作小组提出的,是一种基于 SPF 算法的路由协 议,目前使用的 OSPF 协议是其第二版,定义于 RFC1247 和 RFC1583。 1.3.1. 概述 OSPF 路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域 内。在这里,路由域是指一个自治系统(Autonomous System),即 AS,它是指一组通过统一 的路由政策或路由协议互相交换路由信息的网络。在这个 AS 中,所有的 OSPF 路由器都维护 一个相同的描述这个 AS 结构的数据库,该数据库中存放的是路由域中相应链路的状态信息, OSPF 路由器正是通过这个数据库计算出其 OSPF 路由表的。 作为一种链路状态的路由协议,OSPF 将链路状态广播数据包 LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行 距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。 1.3.2. 数据包格式 在 OSPF 路由协议的数据包中,其数据包头长为 24 个字节,包含如下 8 个字段: * Version number-定义所采用的 OSPF 路由协议的版本。 * Type-定义 OSPF 数据包类型。OSPF 数据包共有五种: * Hello-用于建立和维护相邻的两个 OSPF 路由器的关系,该数据包是周期性地发送的。 * Database Description-用于描述整个数据库,该数据包仅在 OSPF 初始化时发送。 * Link state request-用于向相邻的 OSPF 路由器请求部分或全部的数据,这种数据包是在 当路由器发现其数据已经过期时才发送的。 * Link state update-这是对 link state 请求数据包的响应,即通常所说的 LSA 数据包。 * Link state acknowledgment-是对 LSA 数据包的响应。 * Packet length-定义整个数据包的长度