56
5-1 中中中中中中中中 中中中中 TCP/IP TCP/IP 基基基基 基基基基 基基基 基基基基基基基 基基基 基基基基基基基

TCP/IP 基本原理 第五章 路由原理与协议

Embed Size (px)

DESCRIPTION

TCP/IP 基本原理 第五章 路由原理与协议. 本章学习要求 : 掌握:路由器的原理 掌握:路由表的建立 掌握: I nternet 结构,及其基本概念 掌握: RIP、BGP 协议 了解: OSPF 协议 了解:组播路由. 5.1 概述. 所谓路由是将数据从一个地方转发到另一个地方的一个中继过程。 5.1.1 路由的任务 任务 寻路:寻径即判定到达目的地的最佳路径,由路由算法来实现。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。 - PowerPoint PPT Presentation

Citation preview

Page 1: TCP/IP 基本原理 第五章  路由原理与协议

5-1中国科学技术大学 远程教育

TCP/IPTCP/IP 基本原理基本原理

第五章 路由原理与协议第五章 路由原理与协议

Page 2: TCP/IP 基本原理 第五章  路由原理与协议

5-2中国科学技术大学 远程教育

本章学习要求:

掌握:路由器的原理掌握:路由表的建立掌握: Internet 结构,及其基本概念掌握: RIP 、 BGP 协议了解: OSPF 协议了解:组播路由

Page 3: TCP/IP 基本原理 第五章  路由原理与协议

5-3中国科学技术大学 远程教育

5.1 概述

所谓路由是将数据从一个地方转发到另一个地方的一个中继过程。5.1.1 路由的任务

任务寻路:寻径即判定到达目的地的最佳路径,由路由算法来实现。为了判定最佳路径,路由选择算法必须启动并维护包含路由信息的路由表,其中路由信息依赖于所用的路由选择算法而不尽相同。转发:沿寻径好的最佳路径传送信息分组。路由器首先在路由表中查找,判明是否知道如何将分组发送到下一个站点(路由器或主机),如果路由器不知道如何发送分组,通常将该分组丢弃;否则就根据路由表的相应表项将分组发送到下一个站点,如果目的网络直接与路由器相连,路由器就把分组直接送到相应的端口上。这就是路由转发协议( routed protocol )。 感知并维持网络拓扑结构:路由选择算法将收集到的不同信息填入路由表中,根据路由表可将目的网络与下一站( nexthop )的关系告诉路由器。路由器间互通信息进行路由更新,更新维护路由表使之正确反映网络的拓扑变化,并由路由器根据量度来决定最佳路径。这就是路由选择协议( routing protocol ),例如路由信息协议( RIP )、开放式最短路径优先协议( OSPF )和边界网关协议( BGP )等。

Page 4: TCP/IP 基本原理 第五章  路由原理与协议

5-4中国科学技术大学 远程教育

路由转发协议 (routed protocol) 和路由选择协议 (routing protocol)是相互配合又相互独立的概念,前者使用后者维护的路由表,同时后者要利用前者提供的功能来发布路由协议数据分组。我们说的路由协议,除非特别说明,都是指路由选择协议。路由协议分类:根据路由表的更新方式,分为:

静态路由:即在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。 动态路由:根据网络中路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和 CPU资源。

Page 5: TCP/IP 基本原理 第五章  路由原理与协议

5-5中国科学技术大学 远程教育

根据是否在一个自治域 ( 指一个具有统一管理机构、统一路由策略的网络 ) 内部使用,动态路由协议分为:内部网关协议 (IGP) :自治域内部采用的路由选择协议称为内部网关协议,常用的有 RIP 、 OSPF ;外部网关协议 (EGP) :主要用于多个自治域之间的路由选择,常用的是 BGP 和 BGP-4 。

此外,还可以分为单路和多路、平等和分级、源路由和透明路由、链路状态和距离向量。 路由表项的优先级

在一个路由器中,可同时配置静态路由和一种或多种动态路由。它们各自维护的路由表都提供给转发程序,但这些路由表的表项间可能会发生冲突。这种冲突可通过配置各路由表的优先级来解决。通常静态路由具有默认的最高优先级,当其它路由表表项与它矛盾时,均按静态路由转发。

Page 6: TCP/IP 基本原理 第五章  路由原理与协议

5-6中国科学技术大学 远程教育

交换路由信息的最终目的在于通过路由表找到一条数据交换的“最佳”路径。每一种路由算法都有其衡量“最佳”的一套原则。大多数算法使用一个量化的参数来衡量路径的优劣,一般说来,参数值越小,路径越好。该参数可以通过路径的某一特性进行计算,也可以在综合多个特性的基础上进行计算,几个比较常用的特征是:路径所包含的路由器结点数( hop count ) 网络传输费用( cost ) 带宽( bandwidth ) 延迟( delay ) 负载( load ) 可靠性( reliability ) 最大传输单元MTU ( maximum transmission unit )

Page 7: TCP/IP 基本原理 第五章  路由原理与协议

5-7中国科学技术大学 远程教育

路由协议通过度量值来决定到达目的地的最佳路径。小度量值代表优选的路径;如果两条或更多路径都有一个相同的小度量值,那么所有这些路径将被平等地分享。通过多条路径分流数据流量被称为到目的地的负载均衡。执行路由操作所需要的信息被包含在路由器的路由表中,它们由一个或多个路由选择协议进程生成。路由表由多个路由条目组成,每个条目指明了以下内容:

学习该路由所用的机制(动态或手动)逻辑目的地管理距离度量值(它是度量一条路径的总 "总开销 " 的一个尺度)去往目的地下一跳的中继设备 ( 路由器 ) 的地址;路由信息的新旧程度与要去往目的地网络相关联的接口

Page 8: TCP/IP 基本原理 第五章  路由原理与协议

5-8中国科学技术大学 远程教育

5.1.2 路由算法的设计目标

正确性 (correctness) :指路由算法选择最佳路径的能力。 简单性 (simplicity) :算法设计简洁,利用最少的软件和开销,提供最有效的功能。 健壮性 (robustness) :路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。最好的路由器算法通常能经受时间的考验,并在各种网络环境下被证实是可靠的。 快速收敛:收敛是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。收敛慢的路由算法会造成路径循环或网络中断。 稳定性 (stability) :路由算法对网络状态的变化不能过于敏感或者过于迟缓,使得路由算法不管运行了多长时间,都一直不能趋于稳定。对网络变化的反应应该做到恰倒好处。

Page 9: TCP/IP 基本原理 第五章  路由原理与协议

5-9中国科学技术大学 远程教育

5.2 路由原理

当 IP子网中的一台主机发送 IP 分组给同一 IP子网的另一台主机时,它将直接把 IP 分组送到网络上,对方就能收到。而要送给不同 IP 于网上的主机时,它要选择一个能到达目的子网上的路由器,把 IP 分组送给该路由器,由路由器负责把 IP 分组送到目的地。如果没有找到这样的路由器,主机就把 IP 分组送给一个称为“缺省网关( default gateway )”的路由器上。“缺省网关”是每台主机上的一个配置参数,它是接在同一个网络上的某个路由器端口的 IP 地址。路由器转发 IP 分组时,只根据 IP 分组目的 IP 地址的网络号部分,选择合适的端口,把 IP 分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的 IP 分组。这样,通过路由器把知道如何传送的 IP分组正确转发出去,不知道的 IP 分组送给“缺省网关”路由器,这样一级级地传送, IP 分组最终将送到目的地,送不到目的地的 IP 分组则被网络丢弃了。Internet 就是成千上万个 IP子网通过路由器互连起来的国际性网络。这种网络称为以路由器为基础的网络( router based network ),形成了以路由器为节点的“网间网”。在“网间网”中,路由器不仅负责对 IP 分组的转发,还要负责与别的路由器进行联络,共同确定“网间网”的路由选择和维护路由表。

Page 10: TCP/IP 基本原理 第五章  路由原理与协议

5-10中国科学技术大学 远程教育

5.2.1 路由表的建立

建立路由涉及初始化和更新两个方面。每个路由器在启动时都必须建立初始的一系列路由,还要在路由改变时更新路由表(如网络接口出故障时)。初始化的情况与操作系统有关:在某些系统中,路由器启动时从辅存储器中(如硬盘)读取初始路由表并将其驻留在主存中;在另一些系统中,操作系统把路由表初始化为空表,然后使用显式命令来赋初值;还有的系统在启动时根据本机直接相连的网络的地址推导出初始的一系列路由,并和相邻主机联络请求得到其他路由。初始路由表建立起来之后.路由器还要适应路由的变化情况来更改路由表。在小型的、变化缓慢的互联网中.管理员可以用手工方式来建立和更改路由。但是,在大型的、迅速变化的环境下,人工更新的办法慢得无法接受并且容易造成人为的错误,这就需要自动更新路由的协议和方法。

Page 11: TCP/IP 基本原理 第五章  路由原理与协议

5-11中国科学技术大学 远程教育

5.2.2 Internet 的结构

最初的 Internet 结构与核心路由器Internet 是由早期的 ARPANET演变而来的。其路由器可以大致

分为两类:有一小类是核心路由器 (core router) ;另一大类是非核心路由器 (non-core router) ,由各个独立的群组控制。核心系统将整个 Internet中的所有网点连接在一起,并提供到所有可能的目的站的可靠的、一致的、权威的路由。每个网点经过许可,获得一个 Internet 网络地址,再把这个地址通告给核心系统。核心系统在内部让所有核心路由器交换路由信息,使得每个路由器都具有关于到所有目的站的最短路由的全部信息,从而消除了默认路由,避免了可能低效率的路由。

非核心路出器中只包含本网络的部分路由信息。与本网络以外的通信都采用默认路由的方式交由核心路由器去处理,典型结构如右图所示。

Page 12: TCP/IP 基本原理 第五章  路由原理与协议

5-12中国科学技术大学 远程教育

从核心结构到对等结构随着美国国家科学基金网

NSFNET(National Science Foundation Network) 引人 Internet 并成为 Internet 的主要组成部分,原有的核心路由结构就无法满足要求了,这时, ARPANET 与 NSFNET 之间建立有多个连接,如右图所示。称这两个网络为对等主干网络 (peer backbone network) 或简称为对等网络 (peers) 。

对等网的 IP 路由变得非常复杂。随着骨干网的进一步增多和Internet 规模的扩展,核心路由器越来越难以保证路由信息的一致。曾经有一些尝试,将骨干网分割成几大块并在核心路由器中引入默认路由,但是这将导致出现潜在的环路。为了解决这些问题, Internet引人了自治系统的概念。

Page 13: TCP/IP 基本原理 第五章  路由原理与协议

5-13中国科学技术大学 远程教育

自治系统从路由的目的来看,将处于同一个管理机构控制之下的网

络和路由器群组称为一个自治系统 (autonomous system) ,简称为AS 。在一个 AS内的路由器可以自由选择一种协议来发现路由、传播路由以及检测路由的一致性。 在 Internet 的最上层保留核心路由的结构,各 AS 通过核心路由器接入 Internet 。核心路由器群组本身也构成一个 AS ,由专门的机构 INOC

(Internet Network Operation Center)

统一管理,可以保证极高的可靠性,并且互相交换信息,以保证 Internet

路由的一致性。其拓扑结构如右图所示。

Page 14: TCP/IP 基本原理 第五章  路由原理与协议

5-14中国科学技术大学 远程教育

为了能通过 Internet 到达隐藏在各个 AS 中的网络,每个 AS 在内部通过 RIP 、 OSPF 等内部网关协议来控制路由表的变化,并收集路由数据. AS内部中所有路由器必须把隐藏网络的信息通告给 AS 中的主路由器。用以 BGP 、 EGP 等外部网关协议将收集的网络可达信息传播给其他 AS 。为了能区分各个 AS ,每一个 AS 都被赋予一个 AS编号,该编号由负责分配 Internet 地址的中央管理机构分发。当两个 AS 中的路由器交换路由信息时,报文中都携带有该路由器所代表的 AS的系统编号。 AS号分为私有 AS号和公有 AS号。在一个管理机构管理的大型网络中,为了便于管理也会划分不同的 AS ,这些AS 使用私有 AS号。为了减少对核心系统的依赖关系,使 Internet 的管理和控制尽可能分散化进而提高可靠性,在各自治系统之间可以建立信任关系,信任度高的自治系统之间可以通过 EGP 协议直接交换路由信息,而不需要通过核心系统。

Page 15: TCP/IP 基本原理 第五章  路由原理与协议

5-15中国科学技术大学 远程教育

5.3 内部网关路由协议

5.3.1 路由信息协议 (RIP)

路由信息协议 (RIP , Routing Information Protocol) 是内部网关协议 IGP 中使用得最广泛的一个。 RIP 是一个基于距离向量的分布式路由选择协议,它的最大优点就是简单。RIP报文格式

RIP报文包含在 UDP 数据报中,如下图所示。

←─────────────  IP 数据报 ─────────────→

←──────── UDP 数据报───────→IP 首部 UDP 首部 RIP报文

封装在 UDP 数据报中的 RIP报文

Page 16: TCP/IP 基本原理 第五章  路由原理与协议

5-16中国科学技术大学 远程教育

RIP报文格式见下图所示

RIP报文中命令字段的含义:1 :请求部分或全部路由信息2 :响应,包含发送方路由表内的网络距离序偶3 :启动跟踪模式4 :关闭跟踪模式5 :保留,由 Sun Microsystem公司内部使用

0 8 16 31

命令 (1~5) 版本号 (1) ( 必须为 0)

网络 1 的协议族 ( 必须为 0) ↑

20

字节↓

网络 1 的 IP 地址( 必须为 0)

( 必须为 0)

到网络 1 的距离 (<=16)

( 最多可以有 24 个另外的路由,与前 20字节具有相同的格式 )

RIP报文格式

Page 17: TCP/IP 基本原理 第五章  路由原理与协议

5-17中国科学技术大学 远程教育

5.3.2 RIP操作初始化:在启动一个路由守护程序时,它先判断启动了哪些接口,并将这些接口所在的网络信息填入路由表,然后在每个接口上发送一个请求报文,要求其他路由器发送完整路由表。在点对点链路中,该请求是发送给其他终点的。如果网络支持广播的话,这种请求是以广播形式发送的。目的 UDP 端口号是 520( 这是其他路由器的路由守护程序端口号 ) 。 这种请求报文的命令字段设为 1 ,但网络协议族字段设置为0 ,而到网络的距离字段设置为 16 。这是一种要求另一端发送完整路由表的请求报文。接收到请求报文:如果报文是请求完整路由表,那么路由器就将内部的完整的路由表发送给请求者。如果该报文是请求部分路由,就处理请求报文中的每一个表项。如果路由表中有连接到该指明网络地址的路由,则将到该网络的距离设置成相应的值,否则将其置为 16( 在 RIP 中,距离为 16 是一种称为“无穷大”的特殊值.它意味着没有到达目的的路由),然后给请求方发回响应。

Page 18: TCP/IP 基本原理 第五章  路由原理与协议

5-18中国科学技术大学 远程教育

接收到响应报文:收到响应报文以后,可能会更新路由表。当路由器 K 收到相邻路由器 X 的“我到目的网络 Y 的距离为 N” 的信息,就按如下规则进行更新:若 K 的路由表中没有到网络 Y 的表项,则增加到网络 Y的表项,并将距离值设为 N+1.下一站设置为 X ;若 K 的路由表中已有到网络 Y 的表项:“到目的网络 Y经过路由器 Z距离为 M” ,则当 M≤N+1 时,不进行更新,当 M> N+1 ,将该表项更新为“到目的网络 Y经过路由器 X距离为 N+1” ;若 K 的路由表中已有到网络 Y 的表项:“到目的网络 Y经过路由器 X距离为 M” ,则当 M≠N+1 时,将其距离值更新为 N+1 。

Page 19: TCP/IP 基本原理 第五章  路由原理与协议

5-19中国科学技术大学 远程教育

定期进行路由更新:每过 30秒,所有或部分路由器会将其完整路由表发送给相邻路由器。发送路由表可以是广播形式的(如在以太网上),也可以是发送给点对点链路的其他终点的。收到报文的路由器按前面的规则进行更新。经过一段时间后,更新过程就会收敛,并使所有的路由器都建立起自己的路由表。每条路由都有与之相关的定时器。如果运行 RIP 的系统发现一条路由在 3 分钟内未更新,就将该路由的度量设置成无穷大 (16) ,并标注为删除。这意味着已经在 6 个 30秒更新时间里没收到通告该路由的路由器的更新了。再过 60秒,将从本地路由表中删除该路由,以保证该路由的失效信息被传播开。触发更新:每当一条路由的距离值发生变化时,就对它进行更新。不需要发送完整路由表,而只需要发送那些发生变化的表项。

Page 20: TCP/IP 基本原理 第五章  路由原理与协议

5-20中国科学技术大学 远程教育

考察右下图所示的网络拓扑图,各路由器从初始化直到路由信息收敛。其路由表的一系列变化情况如下表所示。

Page 21: TCP/IP 基本原理 第五章  路由原理与协议

5-21中国科学技术大学 远程教育

5.3.3 慢收敛和计数到无穷大问题

假设路由器 A 与网络 10.0.0.0 的连接断开了,如右图所示。路由器 A 应该立即更新它的路由表,将路由表中到网络10.0.0.0 的距离设置为 16 ,并在下一次 RIP

广播时,将这个消息通知路由器 B 和 C 。但是,假若 B 正好在 A 与网络 10.0.0.0 的连接失效后通告其路由,这样, A 就会先收到 B 的报文,并且按照前面的规则进行路由更新: A 将路由表中到网络 10.0.0.0 的表项更新为“经 40.0.0.2 到网络 10.0.0.0 距离为 2 跳”。此时,如果 A 和 B 中的任意一个收到发往网络 10.0.0.0 的数据报,就会在A 和 B 之间来回传递该数据报,直到其寿命计数器到期。

随后的 RIP广播并不能迅速解决这两个路由器的问题。从下页的图中 A 和 B 的路由表变化情况可以看出,直至 A 和 B 的路由表中关于网络 10.0.0.0 的距离都达到 16 时,更新过程才会收敛,此时的路由表才是正确的。

Page 22: TCP/IP 基本原理 第五章  路由原理与协议

5-22中国科学技术大学 远程教育

Page 23: TCP/IP 基本原理 第五章  路由原理与协议

5-23中国科学技术大学 远程教育

解决的办法之一:水平分割水平分割更新 (split horizon update) 技术是指,在使用水平分割

更新技术时,路由器不会把从某路由器学来的信息再回传到该路由器的接口去。在上面的例子中,路由器 B 和 C 不会把它到网络 10.0.0.0 的距离为 1的路由信息再通告给 A(因为 B 和 C 是从 A得到该路由信息的 ) 。因此,如果 A 与网络 10.0.0.0 的连接失效, A 将不会收到 B 和 C 提供给它的错误路由信息,而 A 会将网络 10.0.0.0 的不可达信息传播给 B 和 C ,这样,经过一轮路由更新之后,所有的路由器都知道网络 10.0.0.0 是不可达的。但是,分割范围更新技术并不能解决所有拓扑结构中的路由环路和慢收敛问题。解决的办法之二:抑制法

抑制法 (holddown) 要求所有的 RIP 路由器在收到某网络不可达信息后的一段固定时间内,忽略任何该网络的可达信息。这段抑制时间的典型长度是 60秒。该技术的思路是,等待足够的时间以确保所有机器都收到网络不可达的坏消息,并且不会错误地接受内容过时的报文。抑制技术的缺点是:如果出现了选路环路,那么在抑制期内这些选路环路仍然会维持下去。更严重的是,即便存在替代路由,抑制期间所有不正确的路由也保留下来了。

Page 24: TCP/IP 基本原理 第五章  路由原理与协议

5-24中国科学技术大学 远程教育

解决的办法之三:毒性反转毒性反转 (poison reverse) 是指,当路由器与某个网络断开后,

该路由器在若干个更新周期内都保留该路由,但是在广播路由信息时将到该路由的距离置为无限大。为提高毒性逆转法的效率,它应该与触发更新 (triggered update)技术相结合,使得路由器在接收到坏消息后立即进行广播。通过立即发送更新信息,路由器减少了因为相信好消息而容易出错的时间。

虽然触发更新技术、毒性反转技术、抑制技术和水平分割技术能够解决一些问题,但它们又带来了一些新问题。例如,当许多路由器共享一个公共网络时,如果不用触发更新技术,一个广播就能改变这些路由器的路由表,引发一轮新的广播。如果第二轮广播改变了路由表,又会引起更多的广播。这就产生了广播风暴。

使用广播(这有可能产生选路环路)和抑制技术防止慢收敛,都会使 RIP 的工作效率极低。所有机器周期性地进行广播意味着通信量随着路由器数目的增加而增加,而在线路容量有限的情况下,选路环路可能就是致命的问题。当形成环路的分组造成线路容量饱和后,路由器需要交换一些选路报文来打破这种环路。此刻就不可能做到。同样,在广域网中,抑制期可能太长,使得高层协议使用的定时器超时而中断连接。

Page 25: TCP/IP 基本原理 第五章  路由原理与协议

5-25中国科学技术大学 远程教育

5.3.4 RIP跳数的缺点RIP 作为内部网关协议在两个方面限制了选路:

RIP 把路径距离限制为一个跳数值而忽略了其他的距离度量标准。由于跳数的无穷值比较小, RIP 把互联网的跨度限制为 16 。这样,RIP 就限制了互联网的规模,使得互联网中任何两台主机之间最多可以有 15 个路由器。

对于网络跨度的限制,既不是对路由器总数的限制,也不是对密度的限制。比如一个公司内联网。一般采用层次结构由高速主干网络和多个路由器组成,每个路由器把一个工作组连接到主干网络上,而每个工作组占据一个局域网。尽管公司可以包含几十个工作组,但整个内联网的跨度只是 2 。即使把每个工作组扩展为包含连接到另外一个或几个局域网的路由器,最大跨度也只会增加到 4 。类似地,把层次再扩展一级也只会把跨度增加到 6 。因此, RIP施加的限制主要影响大型自治系统或不按层次结构组织的自治系统。跳数值只是对网络响应能力和容量的粗略估计,并不能得出具有最小时延或最高容量的路由。更为严重的是,它使路由固定不变,因为路由无法对网络负载的变化做出反应。因此在 OSPF 等协议中就支持其他几种距离度量标准。

Page 26: TCP/IP 基本原理 第五章  路由原理与协议

5-26中国科学技术大学 远程教育

5.4 Hello 协议

Hello 协议也是 IGP 中的一种,但它是基于路由的网络时延,而不是基于路由的距离,因此它对网络响应时间敏感的用户比较有用。虽然目前 Hello 协议已经陈旧,但它在 Internt 的发展历史中仍占有重要地位。最初 NSFNET 中的路由器就是使用 Hello 协议。

Hello 协议提供两种功能。一种功能是使各机器 ( 指路由器和目的主机 ) 的时钟得到同步。另一种功能是每个机器都能计算出到目的主机的最小时延路由。因此, Hello报文既包括路由信息,也还带有时间戳信息。Hello 协议的原理:参加交换 Hallo报文的每一个机器都有一个相邻机器时钟的最佳估算值表。一个机器在发送分组时,要加上一个时间戳,写入当前的时钟值。当从相邻路由器发来的分组到达时,机器计算分组在链路上的时延:从对相邻机器时钟的估算值减去分组中时间戳上的时钟值。所有的机器要周期性地向相邻机器发出轮询,以重新建立时钟的估算值。

Hello报文允许机器计算新的路由。路由的算法与 RIP 很相似,只是要将 RIP 中的距离换成时延。

Page 27: TCP/IP 基本原理 第五章  路由原理与协议

5-27中国科学技术大学 远程教育

Hello 协议也不能使路由表更新得太快,否则会出现路由的不稳定,即路由表中的表项在两条路由之间来回改变 . 。例如,发现了另一条路由的通信量较小因而时延也较小,于是立即改变路由,由原来时延较大的路由改变到这条时延较小的路由。但新的路由因通 信量突然增大而导致时延又增大,于是又转回到原来的路由。不稳定的振荡就这样产生了。要避免这种不稳定状态的发生,应当在不同路由的时延相差较大时才允许切换。Hello 协议不足之处在于,协议的范围不能超过 256 个机器。此外,每个机器所使用的路由表要有人工配置。

Page 28: TCP/IP 基本原理 第五章  路由原理与协议

5-28中国科学技术大学 远程教育

5.5 OSPF 协议

5.5.1 OSPF 的网络拓扑结构OSPF : Open Shortest Path First ,开放式最短路径优先协议。Internet 中 AS范围仍然很大,不便于管理。 OSPF 对网络进行了进一步的划分: 它把一个网络或一系列相邻的网络分为编号区域(area) 。一个区域的拓扑结构对于 AS 的其余部分是不可见的 ( 信息隐藏技术是为了让路由器信息量显著降低 ) 。域内的路由只由区域本身拓扑结构决定,而不受域外信息的影响。OSPF还定义了一个特殊的域:主干 (Backbone) ,其编号为 0 。所有的区域都与主干相连。主干负责向所有的非主干区域发送路由信息。在主干之外,其拓扑结构也是不可见的。

OSPF区域不能随意划分,应该合理地选择区域边界,使不同区域之间的通信量最小。但在实际应用中区域的划分往往并不是根据通信模式而是根据地理或政治因素来完成的。

Page 29: TCP/IP 基本原理 第五章  路由原理与协议

5-29中国科学技术大学 远程教育

路由器的分类:由于区域的引入, OSPF 路由器可以划分成以下 4种类型:域内路由器 (internal router) :与该路由器相连的所有通信对端( 网络或路由器 )均属于同一域。该路由器只运行一套基本路由算法。域间路由器 (area border router) :与多个域相连的路由器。它运行多套基本的路由算法。每套算法对应它相连的一个区域。域间路由器将与它们相连域的拓扑结构加以提炼并发送给主干,然后主干将这些信息分发到各个域中。主干路由器 (backbone router) :与主干有接口的路由器。括所有的域间路由器都是主干路由器,但并非所有的主干路由器都是域间路由器。下图中的 R2 、 R3 、 R4 、 R5 和 R6 都是主干路由器。自治系统边界路由器 (AS boundary router) :与其它 AS交换路由信息的路由器。这些路由器向整个 AS广播系统外的路由信息。 AS内的所有路由器都知道通往 AS 系统边界路由器的路径。

注意:这 4种路由器的分类是有重叠的。例如,域间路由器都是主干路由器,有些域间路由器也是 AS 边界路由器。

Page 30: TCP/IP 基本原理 第五章  路由原理与协议

5-30中国科学技术大学 远程教育

域内路由器: R1、 R4、 R7域间路由器: R2、 R3、 R5、 R6主干路由器: R2、 R3、 R4、 R5、 R6AS边界路由器: R2

Page 31: TCP/IP 基本原理 第五章  路由原理与协议

5-31中国科学技术大学 远程教育

5.5.2 OSPF 分组报头结构

OSPF属于网络层,其功能实现建立在 IP 能够接受并向邻节点发送分组的基础之上。所有的 OSPF 分组都从一个公共报头开始,其格式见右图:版本号:当前 OSPF 的版本号为 2

类型: OSPF 分组类型分组长度:分组的字节数路由器 ID :路由器的标识符域 ID :区域标识符校验和:对此字段以前的字段(8字节 ) 的校验,方法与 IP校验相同认证类型: 0_ 不认证, 1_ 认证

0 8 15 31

版本号 类型 分组长度路由器 ID

域 ID

校验和 认证类型认证认证

OSPF 的分组报头格式

Page 32: TCP/IP 基本原理 第五章  路由原理与协议

5-32中国科学技术大学 远程教育

5.5.3 OSPF 网络类型

根据路由器所连接的物理网络不同, OSPF 将网络划分为四种类型:广播多路访问型 (Broadcast multiAccess) : Ethernet 、 Token Ring 、 FDDI 。非广播多路访问型 (None Broadcast MultiAccess , NBMA) : Frame Relay 、 X.25 、 SMDS 。点到点型 (Point-to-Point) : PPP 、 HDLC 。 点到多点型( Point-to-MultiPoint )。

Page 33: TCP/IP 基本原理 第五章  路由原理与协议

5-33中国科学技术大学 远程教育

5.5.4 指派路由器 (DR) 和备份指派路由器 (BDR)

在多路访问网络上可能存在多个路由器,为了避免路由器之间建立完全相邻关系而引起的大量开销, OSPF 要求在区域中选举一个 DR 。每个路由器都与之建立完全相邻关系。 DR负责收集所有的链路状态信息,并发布给其他路由器。选举 DR 的同时也选举出一个 BDR ,在 DR失效的时候, BDR担负起 DR 的职责。 点对点型网络不需要 DR ,因为只存在两个节点,彼此间完全相邻。 协议组成 OSPF 协议由 Hello 协议、交换协议、扩散协议组成。当路由器开启一个端口的 OSPF 路由时,会从这个端口发出一个Hello报文,以后它也将以一定的间隔周期性地发送 Hello报文。OSPF 路由器用 Hello报文来初始化新的相邻关系以及确认相邻的路由器邻居之间的通信状态。 对广播型网络和非广播型多路访问网络,路由器使用 Hello 协议选举出一个 DR 。在广播型网络里, Hello报文使用多播地址 224.0.0.5周期性广播,并通过这个过程自动发现路由器邻居。在 NBMA 网络中, DR负责向其他路由器逐一发送 Hello报文。

Page 34: TCP/IP 基本原理 第五章  路由原理与协议

5-34中国科学技术大学 远程教育

下图是选举指派路由器前后网络中的邻接关系对比。

Page 35: TCP/IP 基本原理 第五章  路由原理与协议

5-35中国科学技术大学 远程教育

5.5.5 协议过程

第一步:建立路由器的邻接关系 所谓“邻接关系”( Adjacency )是指 OSPF 路由器以

交换路由信息为目的,在所选择的相邻路由器之间建立的一种关系。

路由器首先发送拥有自身 ID 信息( Loopback 端口或最大的 IP 地址)的 Hello报文。与之相邻的路由器如果收到这个 Hello报文,就将这个报文内的 ID 信息加入到自己的 Hello报文内。

如果路由器的某端口收到从其他路由器发送的含有自身 ID 信息的 Hello报文,则它根据该端口所在网络类型确定是否可以建立邻接关系。

在点对点网络中,路由器将直接和对端路由器建立起邻接关系,并且该路由器将直接进入到第三步操作:发现其他路由器。若为 MultiAccess 网络 , 该路由器将进入选举步骤。

Page 36: TCP/IP 基本原理 第五章  路由原理与协议

5-36中国科学技术大学 远程教育

第二步:选举 DR/BDR 不同类型的网络选举 DR 和 BDR 的方式不同。 Multi Access 网络支持多个路由器,在这种状况下, OSPF需要建立起作为链路状态和 LSA 更新的中心节点。选举利用 Hello报文内的 ID 和优先权 (Priority)字段值来确定。优先权字段值大小从 0 到 255 ,优先权值最高的路由器成为 DR 。如果优先权值大小一样,则 ID值最高的路由器选举为 DR ,优先权值次高的路由器选举为 BDR 。优先权值和 ID值都可以直接设置。第三步:发现路由器

路由器与路由器之间首先利用 Hello报文的 ID 信息确认主从关系,然后主从路由器相互交换部分链路状态信息。每个路由器对信息进行分析比较,如果收到的信息有新的内容,路由器将要求对方发送完整的链路状态信息。这个状态完成后,路由器之间建立完全相邻( Full Adjacency )关系,同时邻接路由器拥有自己独立的、完整的链路状态数据库。

在 Multi Access 网络内, DR 与 BDR 互换信息,并同时与本子网内其他路由器交换链路状态信息。

Page 37: TCP/IP 基本原理 第五章  路由原理与协议

5-37中国科学技术大学 远程教育

第四步 : 选择适当的路由器 当一个路由器拥有完整独立的链路状态数据库后,它将

采用 SPF 算法计算并创建路由表。 OSPF 路由器依据链路状态数据库的内容,独立地用 SPF 算法计算出到每一个目的网络的路径,并将路径存入路由表中。

OSPF 利用量度( Cost )计算目的路径, Cost 最小者即为最短路径。在配置 OSPF 路由器时可根据实际情况,如链路带宽、时延或经济上的费用设置链路 Cost 大小。 Cost越小,则该链路被选为路由的可能性越大。第五步:维护路由信息

当链路状态发生变化时, OSPF 通过 Flooding 过程通告网络上其他路由器。 OSPF 路由器接收到包含有新信息的链路状态更新报文,将更新自己的链路状态数据库,然后用 SPF 算法重新计算路由表。在重新计算过程中,路由器继续使用旧路由表,直到 SPF完成新的路由表计算。新的链路状态信息将发送给其他路由器。值得注意的是,即使链路状态没有发生改变, OSPF 路由信息也会自动更新,默认时间为 30 分钟。

Page 38: TCP/IP 基本原理 第五章  路由原理与协议

5-38中国科学技术大学 远程教育

OSPF 路由器之间使用链路状态通告 (LSA) 来交换各自的链路状态信息,并把获得的信息存储在链路状态数据库中。各 OSPF 路由器独立使用 SPF 算法计算到各个目的地址的路由。OSPF 协议支持分层路由方式,这使得它的扩展能力远远超过 RIP 协议。当 OSPF 网络扩展到 100 、 500甚至上千个路由器时,路由器的链路状态数据库将记录成千上万条链路信息。为了使路由器的运行更快速、更经济、占用的资源更少,人们通常按功能、结构和需要把 OSPF 网络分割成若干个区域,并将这些区域和主干区域根据功能和需要相互连接从而达到分层的目的。

Page 39: TCP/IP 基本原理 第五章  路由原理与协议

5-39中国科学技术大学 远程教育

5.6 外部网关路由协议

术语 EGP (Exterior Gateway Protocol) ,外部网关路由协议 ) 原来是指用于和 ARPANET核心通信的一个具体的已经淘汰的协议,现在 EGP 用来表示两个自治系统之间传送路由信息的所有协议。大多数 TCP/IP 互联网都使用 BGP-4 协议作为 EGP (Border Gateway Protocol ,边界网关路由协议 ) 协议。当两个自治系统同意交换路由信息时,每个系统必须指定一个边界路由器,它们要运行 BGP 协议。这两个路由器分别被称为另一个 BGP 的对等路由器。每个边界路由器收集自己所在的 AS内部的路由信息后,使用 BGP 通告给其它 AS 的对等路由器 (peer) 。BGP 是一种自治系统间的动态路由发现协议,它的基本功能是在自治系统间自动交换无环路的路由信息。

Page 40: TCP/IP 基本原理 第五章  路由原理与协议

5-40中国科学技术大学 远程教育

BGP 协议的层次位置

BGP 使用 Socket 服务建立连接,端口号为 179 。 BGP运行时,分别与本自治区域外和区域内的 BGP伙伴建立连接 ( 使用 Socket) 。与区域内伙伴的连接称为 IBGP(Internal BGP) 连接,与自治区域外的 BGP伙伴的连接称为 EBGP(External BGP) 连接。本地的 BGP 协议对 IBGP 和 EBGP伙伴使用不同的机制处理。

BGP

SOCKET

TCP

IP , IPX

PPP , X.25 等操作系统

硬件接口及驱动

Page 41: TCP/IP 基本原理 第五章  路由原理与协议

5-41中国科学技术大学 远程教育

5.6.1 BGP 协议工作过程BGP执行三类路由: AS 间路由、 AS内部路由和贯穿 AS 路由。AS 间路由发生在不同 AS 的两个或多个 BGP 路由器之间,这些系统的对等路由器使用 BGP 来维护一致的网络拓扑视图, AS 间通信的 BGP邻居必须处于相同的物理网络。因特网就是使用这种路由的实例,因为它由多个 AS 构成, BGP经常用于为因特网内提供最佳路径而做路由选择。AS内路由发生在同一 AS内的多个 BGP 路由器间,同一 AS内的对等路由器用 BGP 来维护一致的系统拓扑视图。 BGP也用于决定哪个路由器作为与外部 AS 的连接点。因特网利用 BGP 在其自己的管理域(或称 AS )内提供最佳路由。 BGP 协议既可以提供 AS 间也可以提供 AS内部路由。贯穿 (pass-through) AS 路由发生在通过不运行 BGP 的 AS交换数据的两个或多个 BGP 对等路由器间。在贯穿 AS环境中, BGP 通信既不源自 AS内,目的也不在该 AS内的节点, BGP 必须与 AS内使用的路由协议交互以成功地通过该 AS 传输 BGP 通信。

Page 42: TCP/IP 基本原理 第五章  路由原理与协议

5-42中国科学技术大学 远程教育

下图所示为贯穿 AS环境:

Page 43: TCP/IP 基本原理 第五章  路由原理与协议

5-43中国科学技术大学 远程教育

5.6.2 BGP 的主要功能

与其它路由协议一样, BGP 维护路由表、发送路由更新信息且基于路由 metric 决定路由。 BGP 系统的主要功能是交换其它 BGP 系统的网络可达信息,包括 AS 路径的列表信息,此信息可用于建立 AS 系统连接图,以消除路由环,及执行 AS 级策略确定。每个 BGP 路由器维护到特定网络的所有可用路径构成的路由表,但是它并不清除路由表,它维持从对等路由器收到的路由信息直到收到增值 (incremental) 更新。BGP 设备在初始数据交换和增值更新后交换路由信息。当路由器第一次连接到网络时, BGP 路由器交换它们的整个 BGP 路由表,类似的,当路由表改变时,路由器发送路由表中改变的部分。 BGP 路由器并不周期性发送路由更新,且 BGP 路由更新只包含到某网络的最佳路径。BGP 用单一的路由 metric 决定到给定网络的最佳路径。这一 metric 含有指定链路优先级的任意单元值, BGP 的 metric 通常由网管赋给每条链路。赋给一条链路的值可以基于任意数目的尺度,包括途经的 AS 数目、稳定性、速率、延迟或代价等。

Page 44: TCP/IP 基本原理 第五章  路由原理与协议

5-44中国科学技术大学 远程教育

5.6.3 BGP消息类型

RFC1771 中规定了四种 BGP消息类型:初始消息,更新消息、通知消息和 keep-alive消息:初始消息 (open) :在对等路由器间打开一个 BGP 通信会话,是建立传输协议后发送的第一个消息。初始消息由对等设备发送的 keep-alive消息确认,得到确认后再交换更新、通知和 keep-alive消息。更新消息 (update) :用于提供到其它 BGP 系统的路由更新,使路由器可以建立一致的网络拓扑视图。更新用 TCP 发送以保证传输的可靠性。更新消息可以从路由表中清除多条失效路由,同时发布若干路由。通知消息 (notify) :在检查到有错误时发送。通知消息用于关闭一条活动的会话,并通知其它路由器为何关闭该会话。keep-alive消息:通知对等 BGP 路由器该设备仍然 alive 。 keep-alive消息发布足够频繁以防止会话过期。

Page 45: TCP/IP 基本原理 第五章  路由原理与协议

5-45中国科学技术大学 远程教育

5.6.4 BGP 的消息结构

BGP 有 4种类型的消息。分别为 OPEN , UPDATE , KEEPALIVE 和 NOTIFICATION 。它们有相同的消息头:

标记 : (16字节 ) 鉴权信息长度 : (2字节 ) 消息的长度类型 : (1字节 ) 消息的类型 :

0 : OPEN

1 : UPDATE

2 : NOTIFICATION

3 : KEEPALIVE

16 bytes 2 bytes 1 byte variable

标记 长度 类型 数据

Page 46: TCP/IP 基本原理 第五章  路由原理与协议

5-46中国科学技术大学 远程教育

open消息结构

BGP初始 (open)消息由 BGP 信头和附加域构成,下图为 BGP初始消息的附加域:

在信头的类型域中标识为 BGP初始消息的 BGP 分组包含下列各域,这些域为两个 BGP 路由器建立对等关系提供了交换方案: 版本号:使接收者可以确认它是否与发送者运行同一版本协议。 自治系统:提供发送者的 AS号。 保持时间 (Hold-time) :在发送者被认为失效前最长的不接收消息的秒数。 BGP标识:提供发送者的标识 (IP 地址 ) ,在启动时决定,对所有本地接口和所有对等 BGP 路由器而言都是相同的。 可选参数长度:标识可选参数域的长度 ( 如果存在的话 ) 。 可选参数:包含一组可选参数。目前只定义了一个可选参数类型:认证信息。认证信息含有下列两个域:认证码:标识使用的认证类型。认证数据:包含由认证机制使用的数据。

1 byte 2 byte 2 byte 4 byte 1 byte 4byte版本 自治系统 保持时间 BGP标识 可选参数长度 可选参数

Page 47: TCP/IP 基本原理 第五章  路由原理与协议

5-47中国科学技术大学 远程教育

更新消息格式BGP 更新消息由 BGP 信头和附加域构成,下图为 BGP 更新消息的附加域:

收到更新消息后,路由器就可以从路由表中增加或删除指定的表项以保证路由的准确性。更新消息包含下列域:失效路由长度 :标识失效路由域的总长度或该域不存在。 失效路由:包含一组失效路由的 IP 地址前缀。 总路径属性长度:标识路径属性域的总长度或该域不存在。 路径属性:描述发布路径的属性,可能的值如下:源:必选属性,定义路径信息的来源。AS 路径:必选属性,由一系列 AS 路径段组成。下一跳:必选属性,定义了在网络层可达信息域中列出的应用作到目的地下一跳的边缘路由器的 IP 地址。多重出口区分:可选属性,用于在到相邻 AS 的多个出口间进行区分。本地优先权:可选属性,用以指定发布路由的优先权等级。原子聚合:可选属性,用于发布路由选择信息。聚合:可选属性,包含聚合路由信息。

网络层可达信息:包含一组发布路由的 IP 地址前缀。

2 byte vatiable 2 byte 可变长 可变长

失效路由长度 失效路由 总路径属性长度 路径属性 网络层可达信息

Page 48: TCP/IP 基本原理 第五章  路由原理与协议

5-48中国科学技术大学 远程教育

通知消息格式

下图为 BGP 通知消息使用的附加域:

通知消息分组用于给对等路由器通知某种错误情况。错误码 - 标识发生的错误类型。下面为定义的错误类型: -- 消息头错:指出消息头出了问题,如不可接受的消息长度、标记值或消息类型。 -- 初始消息错:指出初始消息出了问题,如不支持的版本号,不可接受的 AS号或IP 地址或不支持的认证码。 -- 更新消息错:指出更新消息出了问题,如属性列表残缺、属性列表错误或无效的下一跳属性。 -- 保持时间过期:指出保持时间已过期,这之后 BGP节点就被认为已失效。 -- 有限状态机错:指示期望之外的事件。 -- 终止:发生严重错误时根据 BGP 设备的请求关闭 BGP 连接。 错误子码 - 提供关于报告的错误的更具体的信息。 错误数据 - 包含基于错误码和错误子码域的数据,用于检测通知消息发送的原因。

1 byte 1 byte 可变长

错误码 错误子码 错误数据

Page 49: TCP/IP 基本原理 第五章  路由原理与协议

5-49中国科学技术大学 远程教育

5.6.5 BGP 协议中消息的应用 BGP使用 TCP建立连接,本地监听端口为 179。 TCP通过握手

协商通告其端口等参数, BGP的握手协商的参数有: BGP版本, BGP连接保持时间,本地的路由器标识 (Router ID),授权信息等。这些信息都在 OPEN消息中体现。

BGP连接建立后,如果有路由需要发送则发送 UPDATE消息,以通告对端路由信息。 UPDATE消息发布路由时,还要指定此路由的属性,以帮助对端 BGP协议选择最佳的路由。由 UPDATE消息的格式可以看出每个 UPDATE消息只可以发布一种路由属性,本地 BGP如果有路由属性完全相同的路由 (只有信宿地址不同 ),则可以由一条 UPDATE消息发布,否则只能使用不同的 UPDATE消息发布。

在本地 BGP路由变化时,也使用 UPDATE消息修正对端 BGP的路由表。

经过一段时间的路由信息交换后,本地 BGP和对端 BGP都无新路由通告,趋于稳定了。随后定时发送 KEEPALIVE消息以保持 BGP连接的有效性。对于本地 BGP,如果在超过保持时间的时间内,还未收到任何对端 BGP消息,就认为此 BGP连接已经无效,将此 BGP连接断开。

当本地 BGP运行中出错时,发送 NOTIFY消息通告 BGP对端。比如,对端 BGP版本本地不支持,本地 BGP收到了结构非法的 UPDATE消息等。本地 BGP退出 BGP连接时也要发送 NOTIFY消息。

Page 50: TCP/IP 基本原理 第五章  路由原理与协议

5-50中国科学技术大学 远程教育

5.7 组播路由组播:是一种允许一个或多个发送者(组播源)发送单一的数据包到多个接收者(一次的,同时的)的网络技术。组播源把数据包发送到特定组播组,而只有属于该组播组的地址才能接收到数据包。组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。 IP 组播:在 IP 网络中,源 IP 主机只发送一份数据,多个接收者可接收相同数据的拷贝。可以接收组播数据分组的一组主机,称之为组播组。IPv4 中用 D 类 IP 地址 (224.0.0.0~239.255.255.255) 来表示组播地址。局部链接地址: 224.0.0.0~ 224.0.0.255 ,用于局域网,路由器不转发此地址范围的 IP 包;预留组播地址: 224.0.1.0~ 238.255.255.255 ,用于全球范围或网络协议;管理权限地址: 239.0.0.0~ 239.255.255.255 ,组织内部使用,用于限制组播范围;

IPv6 的高 8位地址为 FF ( 11111111 )值时,标识为组播地址。随后四位的“标识字段”中高三位始终设置为 0 并保留。第四位 T标识设置为 0时表示一个永久分配的组播地址。 T标识设置为 1 时,表示非永久分配的组播地址,这种地址作为一个临时的组播地址。范围值限制了组播的范围。

Page 51: TCP/IP 基本原理 第五章  路由原理与协议

5-51中国科学技术大学 远程教育

IP 组播地址范围是 224.0.0.0~239.255.255.255 ,下面列出部分知名或已用的 IP 组播地址:224.0.0.0 基础地址,保留,不能被任何群组使用  224.0.0.1 全主机群组( all  hosts  group ),指参加本 IP 组播的所有主机、路由器、网关(不是指整个互连网)  224.0.0.2 本子网上的路由器( all routers on a LAN ) 224.0.0.4  DVMRP* 路由器 ( DVMRP Routers )224.0.0.5 本子网上的 OSPF* 路由器 (all OSPF routers on a LAN)224.0.0.6 本子网上被指定的 OSPF 路由器 (all designated OSPF routers  on a LAN )  224.0.1.1 网络时间协议 ( Network Time Protocol , NTP ) 224.0.5.000-224.0.5.127 蜂窝式数字信息包数据发送主机组 ( CDPD Groups ) 224.1.0.0-224.1.255.255 基于流的协议组播主机组 ( Stream Protocol Multicast Groups )  224.2.0.0-224.2.255.255 多媒体会议呼叫 ( Multimedia Conference   Calls )  *注: DVMRP 是 Distance  vector multicast  routing  protocol的缩写,意为距离矢量组播选路协议,是用来生成组播路由;

Page 52: TCP/IP 基本原理 第五章  路由原理与协议

5-52中国科学技术大学 远程教育

以太网组播 MAC 地址映射

组播传输可在数据链路层(第二层)和网络层(第三层)实现,支持的媒体类型包括以太网、 FDDI 和 ATM 。大多数路由器支持 IP 组播,不支持 IP 组播的网络通过组播隧道技术传输组播信息包。IP 组播帧都使用以 0X0100.5EXX.XXXX 的 24位前缀开始的 MAC层地址,但只有其中的一半MAC 地址可以被 IP 组播使用,剩下的 MAC 地址空间的 23位作为第三层 IP 组播地址进入第二层MAC 地址的映射使用。由于第三层 IP 组播的 28位地址不能映射到只有 23位的可用 MAC 地址空间,造成有 32:1 的地址不明确,所以主机 CPU 必须对收到的每一个组播数据包做出判断。这增加了主机 CPU 的开销。

Page 53: TCP/IP 基本原理 第五章  路由原理与协议

5-53中国科学技术大学 远程教育

5.7.1 组管理协议 IGMP

主机使用 IGMP 通知子网组播路由器,希望加入组播组;路由器使用 IGMP 查询本地子网中是否有属于某个组播组的主机加入组播组

当主机加入一个组播组时,它通过“成员资格报告”消息通知它所在的 IP子网的组播路由器,同时将自己的 IP 模块做相应的准备,以便开始接收来自该组播组传来的数据。如果这台主机是它所在的 IP子网中第一台加入该组播组的主机,通过路由信息的交换,组播路由器加入组播分布树。 退出组播组 在 IGMP v1 中,当主机离开某一个组播组时,它将自行退出。组播路由器定时 ( 如 120秒 ) 使用“成员资格查询” 消息向 IP子网中的所有主机的组地址( 224.0.0.1 )查询,如果某一组播组在 IP子网中已经没有任何成员,那么组播路由器在确认这一事件后,将不再在子网中转发该组播组的数据。与此同时,通过路由信息交换,从特定的组播组分布树中删除相应的组播路由器。这种不通知任何人而悄悄离开的方法,使得组播路由器知道 IP子网中已经没有任何成员的事件延时了一段时间,所以在 IGMP v2.0 中,当每一个主机离开某一个组播组时,需要通知子网组播路由器,组播路由器立即向 IP子网中的所有组播组询问,从而减少了系统处理停止组播的延时。

Page 54: TCP/IP 基本原理 第五章  路由原理与协议

5-54中国科学技术大学 远程教育

5.7.3 组播转发由于组播源是向组播组发送数据包而非单播模型中的具

体目标主机,所以组播路由器不能依靠 IP 包中的目标地址来决定如何转发数据包,而必须将组播数据包转发到多个外部接口上,以便同一组播组的成员都能接收到数据包。这使组播转发比单播转发更加复杂。大多数现有组播路由协议使用逆向路径转发( RPF )机制作为组播转发的基础。逆向路径转发 (Reverse Path Forward: RPF)

当组播数据包到达路由器时,路由器作 RPF检查,以决定是否转发或抛弃该数据包,若成功则转发,否则抛弃。 RPF检查过程如下: 检查数据包的源地址,以确定该数据包经过的接口,是否在从源到此的路径上;若数据包是从可返回源主机的接口上到达,则 RPF检查成功,转发该数据包到输出接口表上的所有接口,否则 RPF检查失败,抛弃该数据包。

Page 55: TCP/IP 基本原理 第五章  路由原理与协议

5-55中国科学技术大学 远程教育

组播转发缓存 :对每一个输入组播数据包进行 RPF检查会导致较大的路由器性能损失。因此,建立组播转发缓存时,通常由组播路由确定 RPF 接口。然后将 RPF 接口变成组播转发缓存项的输入接口。一旦 RPF检查程序使用的路由表发生变化,必须重新计算 RPF 接口;并更新组播转发缓存项。TTL阈值:每当路由器转发组播数据包, IP 包中的 TTL ( Time To Live )值减 1 。若数据包的 TTL减少到 0 ,路由器将抛弃该数据包。 TTL阈值可用于组播路由器的各个接口,以防止在该接口上转发低于 TTL阈值的组播数据包。这样可对组播的范围加以控制。下表给出典型的初始 TTL值和作为不同 TTL 边界的路由器接口 TTL阈值。

管理权限边界:除 TTL阈值外,组播提供另一种称为管理权限的地址机制作为边界,以限制组播信息转发到域外。管理权限的组播地址是从 239.0.0.0 到 239.255.255.255 ,这段地址被认为是本地分配 ( 类似于单播中的 192.168.xx.xx) ,不能用于 Internet 。这种机制使得在Intranet内部可重复使用组播地址,提高组播地址空间的利用率。

范 围 本地网 区域 地区 全球初始 TTL值 1 15 63 127

TTL阈值 N/A 16 64 128

Page 56: TCP/IP 基本原理 第五章  路由原理与协议

5-56中国科学技术大学 远程教育

本章习题

参见教师网页: http://staff.ustc.edu.cn/~leeyi