网络层负责将数据包从源节点传送到目的节点.docx

上传人:b****7 文档编号:9502420 上传时间:2023-02-05 格式:DOCX 页数:43 大小:208.33KB
下载 相关 举报
网络层负责将数据包从源节点传送到目的节点.docx_第1页
第1页 / 共43页
网络层负责将数据包从源节点传送到目的节点.docx_第2页
第2页 / 共43页
网络层负责将数据包从源节点传送到目的节点.docx_第3页
第3页 / 共43页
网络层负责将数据包从源节点传送到目的节点.docx_第4页
第4页 / 共43页
网络层负责将数据包从源节点传送到目的节点.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

网络层负责将数据包从源节点传送到目的节点.docx

《网络层负责将数据包从源节点传送到目的节点.docx》由会员分享,可在线阅读,更多相关《网络层负责将数据包从源节点传送到目的节点.docx(43页珍藏版)》请在冰豆网上搜索。

网络层负责将数据包从源节点传送到目的节点.docx

网络层负责将数据包从源节点传送到目的节点

BOOTP的缺点是它必须手工配置服务器中的数据库信息,当一台新的机器进入一个...将到来的报片重新组装一个完整数据报的过程称为重组,重组是在目的主机中进行的....

网络层负责将数据包从源节点传送到目的节点

BOOTP的缺点是它必须手工配置服务器中的数据库信息,当一台新的机器进入一个...将到来的报片重新组装一个完整数据报的过程称为重组,重组是在目的主机中进行的....

BOOTP的缺点是它必须手工配置服务器中的数据库信息,当一台新的机器进入一个...将到来的报片重新组装一个完整数据报的过程称为重组,重组是在目的主机中进行的....

第五章网络层

网络层负责将数据包从源节点传送到目的节点,这中间可能会经过许多中间节点,也可能会穿过多个网络。

这是网络层和数据链路层不同的地方,数据链路层只负责在相邻两个节点之间传送数据。

网络层的主要功能是:

路由选择、拥塞控制、网络互联和计费。

1.网络层设计问题

网络层的主要设计问题包括网络层向传输层提供的服务,以及通信子网的内部设计。

(1)面向连接的服务与无连接服务

无连接服务:

以Internet阵营为代表,认为通信子网本质上是不可靠的,用户肯定需要自己做差错控制和流量控制的工作,既然如此,通信子网干脆只提供最基本的数据传输服务就行了,即只负责将分组正确路由到目的节点,除此之外不提供差错控制、顺序控制、流量控制等其它功能。

从这个思想出发,那么通信子网是无连接的,每个分组是一个独立的传输单位,携带完整的地址,在每个节点被独立传输,分组之间彼此没有联系。

面向连接的服务:

以电信公司阵营为代表,认为通信子网应该提供可靠的面向连接的服务,在这里服务质量是一个重点需要考虑的因素。

只有在通信前建立连接,才能进行服务协商并预留足够的资源,才能保证象话音、视频等一类实时业务获得它们所需要的服务质量。

这两派意见的焦点在于是否需要建立连接,至于是否需要保证数据传输的可靠其实是可选的。

提供无连接服务的典型代表是因特网,提供面向连接服务的典型代表是电话网和ATM网络。

事实上,由于实时多媒体应用的不断普及,服务质量的问题越来越受到关注,而因特网在这方面的局限性也日益凸现,因此因特网也在不断地改进,IPv6就引入了面向连接的特性。

(2)无连接服务的实现

在提供无连接服务的通信子网中,每个分组被独立地传输,分组常被称为数据报,而通信子网则称为数据报子网。

用图5-2的例子来说明数据报子网的工作原理:

●主机的网络层从传输层接收一个消息。

●将消息封装成分组,发送给距它最近的路由器。

若消息太大,超过了分组的最大长度,还需要先将消息划分成较小的数据块,再分别封装成分组。

●每个路由器都有一张路由表,记录各个已知的目的地址及这些地址所在的输出线路。

每当从网络端口收到一个分组,首先判断自己是否是分组的目的地,是就将分组交给合适的上层实体去处理;否则用分组的目的地址查找路由表,从相应的输出线路转发分组。

●如果分组长度超过了输出链路上的最大传输单元(称MTU,MaximumTransferUnit),路由器的网络层必须将分组分成较小的片段,每个片段封装成分组,独立传输。

●目的主机的网络层将收到的分组交给传输层;如果分组被划分成了若干个片段,目的主机先将各个片段重组,再交给传输层。

●路由器中的路由模块负责生成和维护路由表(使用路由算法),转发模块负责查找转发表和转发分组。

转发表是根据路由表生成的、便于快速查找的数据结构。

(3)面向连接服务的实现

在提供面向连接服务的通信子网中,通信前首先需要建立一条从源节点到目的节点的传输通路(也称为连接),相关的数据包都沿着这条通路传输,传输结束后要释放这条通路。

建立连接的目的是避免在每收到一个分组后,都要去查找庞大的转发表。

其基本思想是,将从源主机到目的主机的路径记录在沿途经过的每一个路由器中,此后,该连接上的所有分组都在这条路径上传输。

由于在同一条物理链路上可能存在多条连接,因此需要为每条连接分配一个标识。

每个分组必须携带其所属连接的标识,这样路由器检查分组头中的连接标识就知道分组属于哪个连接了。

连接标识只具有局部意义,即同一条连接在不同的物理链路上可能被分配不同的连接标识。

为此,路由器必须为经过它的所有连接建立一张连接表,对于每一条连接,记录其输入链路及在这条链路上的连接标识,还有输出链路及在输出链路上的连接标识。

路由器在转发分组时,必须用输出链路上的连接标识替换分组头中的连接标识。

从源主机到目的主机的连接称为虚电路,这是因为它只是表示了从源主机到目的主机的一条通路,与实际的物理通路(如固定地占用一个频道或时间片)并不相同。

除了连接建立分组需要携带完整的网络层地址之外,其它分组只需要携带一个连接标识(虚电路号)。

用图5-3的例子来说明虚电路子网的工作原理:

●源节点向目的节点发送一个连接建立分组,分组中携带完整的源地址和目的地址,并在源节点与源路由器之间的线路上选择一个当前未用的虚电路号,携带在分组头中;

●每一个中间节点收到连接建立分组后,根据分组的目的地址查找路由表,选择一条合适的输出线路,然后在输出线路上选择一个当前未用的虚电路号,替换分组头中的虚电路号,并在节点的虚电路表中记录下这条连接(输入线路,输入虚电路号,输出线路,输出虚电路号),最后从输出线路上转发该分组;

●这个过程不断重复直至到达目的节点,如果目的节点同意建立连接,则会发回一个连接确认分组,该分组沿着相反的路径返回源节点,虚电路就建立起来了,这条虚电路是全双工的;

●随后,源节点在发送的每一个分组中都放入该分组所属的虚电路号,每个中间节点用输入线路和输入虚电路号查找虚电路表,用输出虚电路号替换分组头中的虚电路号,并从输出线路上转发分组,该过程不断重复直至分组到达目的节点;

●传输结束后,任何一方都可以发出一个连接拆除分组,收到该分组的节点删除虚电路表中的相应表项,并向下转发分组,当连接拆除分组到达另一方时,虚电路就被拆除了。

(4)虚电路子网与数据报子网的比较

虚电路子网与数据报子网各有其长处和短处:

●在虚电路子网中,每个分组(除连接建立分组之外)只需要携带较短的虚电路号而不是一个完整的目的地址,这可以节省带宽,但却需要占用一部分内存空间来存放虚电路表;数据报子网刚好相反,它使用较小的内存空间,但要消耗较多的带宽。

●虚电路的建立需要花费一定的时间,但虚电路建立后,查找虚电路表进行分组转发是很快的;数据报子网虽然不需要连接建立时间,但每一个分组到达路由器时都要查找路由表转发,这个过程复杂得多也慢得多。

●由于在建立虚电路时可以预留资源,所以虚电路子网在提供服务质量保证和避免拥塞方面较数据报子网优越。

●由于节点或线路故障会使所有经过故障点的虚电路中断,而数据报却可以轻易地绕过故障点继续传输,因此数据报子网在健壮性方面较虚电路子网优越,而且数据报子网易于实现负载均衡。

2.路由算法

路由器的主要任务是转发分组。

在数据报网络中,路由器通过查找转发表来获得转发信息;而在虚电路网络中,路由器通过查找虚电路表获得转发信息。

构建转发表和虚电路表的基础是路由器中维护的路由表。

路由表是由路由算法建立起来的一张表,通常包含了从目的地址到分组转发路径上下一跳地址的映射。

在我们考虑的互连网络环境中,每个终端节点通常有一台默认路由器(defaultrouter)。

每当该终端欲与其它网络中的终端通信时,它总是将分组发送给它的默认路由器。

我们将源主机的默认路由器称为源路由器,把目的主机的默认路由器称为目的路由器,则为一个分组选择从源主机到目的主机路由的问题归结为从源路由器到目的路由器的路由问题。

我们可将路由问题描述为:

给定一组路由器和连接路由器的一组链路,寻找一条从源路由器到目的路由器的最佳路径。

什么是最佳路径呢?

一般说来,视不同的应用而定,评价一条路径的好坏可能包括路径的物理长度、链路数据速率、分组传输延迟、通信费用、安全性等等。

事实上,路径选择往往还要考虑到一些全局指标的优化,如网络吞吐量最大、平均包延迟最小、平均通信费用最低、网络负载均衡、路由稳定、健壮等等。

显然,没有哪一条路径能够满足以上所有的指标,路由算法总是试图在几种重要的指标之间取得较好的折衷。

为此,一般的做法是根据特定应用的需要使用一个代价函数将链路状态(如速率、延迟、费用等)映射为一个代价值,而路由问题就归结为寻找一条从源路由器到目的路由器的代价最小的路径。

一般来说,路由优化较多考虑最小化分组延迟和最大化网络吞吐量,但这是一对矛盾。

人们通常所做的一个折衷是最小化分组经过的跳数(hop),因为减少跳数常常会减小分组穿过网络的延迟,同时也会消耗较少的带宽资源,从而提高吞吐量。

按照路由算法使用的网络状态信息是全局信息还是局部信息,路由算法可以分为全局路由算法和分布式路由算法。

全局路由算法由于使用全局状态信息易于获得较优路径,但状态信息交换需要消耗较多的网络带宽,分布式路由算法则相反。

按照路由表是预先配置的还是动态生成的,路由算法可以分为静态路由算法和动态路由算法。

静态路由算法根据网络流量的一般特性预先(离线)计算好路由表,在网络初始化时下载到路由器中,此后不再改变。

静态路由算法简单易行,但适应性差,只适用于负载稳定、拓扑变化不大的网络。

动态路由算法随时根据网络当前的拓扑结构和流量特点计算路由表,适应性强,但算法复杂,实现难度大,而且容易引起路由循环及路由振荡等问题。

(1)最优化原则

最优化原则:

如果路由器J位于路由器I和路由器K的最佳路径上,那么从路由器J到路由器K的最佳路径也落在这条路径上。

(用反证法可以证明)

推论:

从所有源节点到一个指定目的节点的最佳路径形成了以目的节点为根的树,这棵树称为汇集树。

所有路由算法的目的都是要发现和使用汇集树,但由于网络是动态变化的,每个节点对网络的了解可能是不全面的,因此它们不一定总能找到汇集树,但汇集树可以用来衡量一个路由算法的好坏,看它能在多大程度上找到和使用汇集树。

(2)最短路径路由选择

研究路由算法常用的一种技术是将通信子网抽象为一张图,图中的顶点代表路由器,边代表通信线路(常称为链路),权代表链路的距离,这样在一对给定的路由器之间寻找一条最佳路由的问题,就转变成在图中一对给定的顶点间寻找一条最短通路的问题。

在这里“距离”是一个广义的概念,它可以指跳数、物理距离、队列长度、传输延迟等等。

一般情况下,权重是距离、带宽、平均流量、通信代价、平均队列长度、延迟及其它相关因素的函数,通过改变权重函数,路由算法就可以找出满足各种特定要求的最佳路由。

有好几种算法可以求图中两顶点之间的最短通路,以下介绍的是Dijkstra算法。

Dijkstra算法的基本思想是,从源(目的)点开始,首先求离源(目的)点最近的通路,然后求离源(目的)点次近的通路,依次类推,直至有一条通路到达目的(源)顶点,则这条通路就是源点与目的顶点之间的最短通路。

例见图5-7,程序算法见图5-8。

(3)扩散法

扩散法是一种静态路由算法,每一个输入的分组都被从除输入线路之外的所有其它线路上转发出去。

扩散法显然会产生大量的分组副本,因此必须有一些办法来抑制无限的转发。

一种办法是在分组头中携带一个跳数计数器,分组每到一个节点其跳数计数器就减1,当计数器为0时分组被丢弃。

计数器的初始值可以设为通信子网的直径,即相距最远的两个节点之间的跳数。

另一种办法是记住哪些分组已经转发过了,从而确保一个分组不会被同一个节点转发两次。

这要求源路由器从主机收到一个分组后,将一个序号放入分组头中,同时每一个路由器对于每一个源路由器都要维护一张序号表,记录从每一个源路由器上已经收到的分组的序号。

每当一个路由器收到来自某个源路由器的分组时,就用分组的序号去查找该源路由器的序号表,如果序号已在表中则该分组被丢弃。

为了防止序号表过大,序号表中还应增设一个计数器k,表示序号直至k的分组都已经转发过了,从而不需要保留序号小于k的序号。

扩散法的一种较实用的变形是选择性扩散,在这种算法中分组只朝着大致正确的方向转发,而不是转发到除输入线路外的所有线路上。

尽管扩散法在很多应用中都不实用,但它确实也有一些适用的地方。

比如由于扩散法的鲁棒性(robustness)很好,它在战场的军事网络中特别有用;其次扩散法在本质上是一种广播式的路由算法,因此在一些要求广播传输的应用中也很有用,如分布式数据库的同步更新;在无线网络中位于发送站功率范围内的所有站都能收到发送站发送的消息,这其实也是一种扩散的形式,这个特性常被一些算法所利用;由于扩散法总能找到最短通路,因此其它路由算法都可以和扩散法进行比较,以衡量各自的算法性能。

(4)距离矢量路由算法

距离矢量(DistanceVector,DV)路由算法是一种应用广泛的动态路由算法,曾被早期的ARPANET、DECnet和Novell的IPX采纳作为路由算法,目前因特网中的RIP协议和BGP协议使用的也是这个算法。

路由问题本质上是图论中的一个问题。

以节点代表路由器,边代表路由器之间的链路,权代表链路的代价,路由的基本问题是找出任意两个节点之间代价最小的路径。

路径的代价等于组成这条路径的所有边的代价之和。

距离矢量算法解决这个问题的基本思想是:

假设源节点知道自己到每个邻居节点的链路代价(即距离),以及每个邻居节点到目的节点的最小代价,则最小代价路径问题就是求源节点的一个邻居节点,使得通过该邻居节点到达目的节点的代价最小。

用数学语言描述就是:

dx(y)=minp{c(x,p)+dp(y)},p∈N(x),其中x和y分别为源节点和目的节点,N(x)为x的直接邻居集合,dx(y)为从x到y的最小代价路径的代价,c(x,p)为x到其直接邻居p的链路代价。

该方程称为Bellman-Ford方程,因此DV算法也称为分布式Bellman-Ford算法。

为求解此问题,DV算法要求每个节点知道自己到所有邻居节点的距离(即c(x,p)),这是完全可以做到的。

这里的距离是一个广义的概念,可以指到目的节点的跳数、到目的节点所需的时间、或者到目的节点的分组队列长度等。

若按跳数计算距离,则相邻节点间的距离等于1;若以延迟计算距离,则每个节点只需和各个邻居节点交换特殊的“回声”分组,根据发送和接收到分组的时间差就可以推算出到各个邻居节点的延迟时间;若以分组队列长度计算距离,则只需统计一下去往该节点的分组数量即可。

对于非相邻的节点,初始时可假设距离为无穷大。

其次,DV算法要求每个节点知道其邻居节点到目的节点的最小距离,这需要通过邻居节点之间的消息交换来实现。

DV算法要求每个节点(设为x)维护一张路由表,网络中每个节点在此表中占有一个表项,并以节点作为路由表的索引。

每个表项包括两部分内容:

去往该目的节点(设为y)的最佳输出线路(用下一跳节点p进行标识)以及估计到该目的节点的最短距离(即dx(y))。

每个节点定期地和它的所有邻居节点交换路由表中的距离列表(即距离矢量),通报从本节点到其它各个节点的估算距离。

每个节点利用从邻居节点收到的距离矢量,使用Bellman-Ford方程更新自己的距离矢量,并计算新的路由表。

若某个节点x与邻居p的距离为m(即c(x,p)),p发布的距离矢量中py表示节点p与y之间的距离(即dp(y)),则x判断自己通过p到达y的距离为m+py;利用每个邻居节点发来的距离矢量进行同样计算,x可以找到到达y的最佳输出线路;同样可以找到到达所有其它节点的最佳输出线路,更新路由表。

例见图5-9。

注意在计算新路由表时,完全没有用到老的路由表。

距离矢量路由算法的一个问题是算法有时收敛很慢,特别是它对坏消息的响应很慢,比如图5-10中的例子。

出现这个问题的根本原因在于每个路由器发布的路由消息不完全是可靠的,特别是它不知道自己是否正在这条路径上。

人们一直在努力解决这个问题,但至今为止仍然没有一个理想的解决方案。

(5)链路状态路由算法

链路状态路由算法于1979年代替了ARPANET中的距离矢量路由算法,现在各种各样的链路状态路由算法得到了非常广泛的应用,如OSPF、IS-IS等。

LS算法的基本思想是,每个节点利用可靠的方法获知其邻居节点以及到各邻居节点的链路的代价,通过与网络内其它节点交换这些信息来获得关于全网的拓扑信息,即网中所有的节点、链路和链路的代价,将这些拓扑信息抽象成一张带权图,然后用图论的方法计算出到各个目的节点的最短路径。

链路状态路由算法包括以下五个部分:

●发现邻居,获知邻居的网络地址;

●测量到每个邻居的延时;

●将以上信息构造成链路状态分组;

●向所有节点发送链路状态分组;

●计算到每个节点的最短路径。

发现邻居:

当路由器启动时,首先在它的每一条输出线路上发送一个特殊的HELLO分组,收到HELLO分组的路由器必须尽快返回一个应答,告知自己的全局唯一地址。

测量线路延时:

最直接的方法是路由器在线路上发送一个特殊的ECHO分组,收到ECHO分组的路由器必须立即发回一个应答,通过测量发送与接收之间的时间(来回时间)并除以2,可以得到单向的线路延时。

可以多测几组数据,求平均线路延时。

显然在这里我们假设延时是对称的,但实际上并不总是这样。

在计算线路延时时要不要考虑线路上的负载,这是一个颇有争议的问题。

如果考虑线路上的负载,那么发送时间应从ECHO分组放入队列时算起;如果不考虑线路负载,那么发送时间应从ECHO分组到达队头时算起。

考虑线路负载意味着当两条线路的带宽相同时,路由器将选择负载较轻的线路作为最佳输出线路,这种选择能导致良好的性能。

但这会使轻负载的线路很快超载,从而另一条线路又成为最佳选择,这样容易引起路由表的剧烈振荡,导致不稳定路由和其它潜在问题的产生,如图5-12。

只考虑带宽不考虑负载就不会出现这种问题,但完全不考虑负载也是不合理的,它会使流量都集中到高带宽的线路上,而低带宽的线路却很空闲。

以上问题的根源在于路由器总是选择最佳线路转发分组,这很容易引起负载不均衡,因此较明智的做法是将负载按一定比例分布到多条线路上。

构造链路状态分组:

一旦收集到了各个邻居节点的地址及到各个邻居的线路延时之后,就可以构造一个链路状态分组来携带这些信息。

分组格式见图5-13(b),首先是发送方地址,然后是分组序号和寿命,最后是一个邻居列表,每个表项包括一个邻居地址和到这个邻居的延时。

什么时候构造链路状态分组比较合适呢?

一种办法是周期性地产生链路状态分组,另一种办法是仅在发现网络拓扑发生改变时才产生,如邻居集合发生了变化,或到邻居的线路延时发生了变化。

发送链路状态分组:

该算法最复杂的部分是如何可靠地发送链路状态分组。

当分组被发送和安装后,首先得到分组的路由器就会用它来改变自己的路由表,此时不同的路由器可能会使用不同的网络拓扑版本,这可能导致不一致、路由环路、不可达节点和其它问题。

为了可靠地发送链路状态分组,采用了扩散法。

每个分组携带一个序号,每当发送一个新的分组时,分组序号就加1。

每个路由器维护一张由(源路由器,序号)对组成的列表,记录从每个源路由器收到的最新的分组序号。

当一个链路状态分组到来时,用分组中的源路由器地址和序号查表,如果这是一个新的链路状态分组,就用扩散法将其转发出去,否则将分组丢弃。

采用序号来区分新旧分组是会有一些问题的,一是当序号折回时,新的分组都会被丢掉;二是当路由器发生崩溃并重起后,只能从序号0开始发送,这些分组也会被丢弃;三是当序号在传输过程中出错时,如4变成了65540,则其后大量的分组都会被丢掉。

为解决序号折回的问题,使用了32比特长的序号,这样即使每隔一秒发送一个链路状态分组,也需要137年的时间才会发生序号折回。

针对后两个问题,解决的办法是在分组中增加一个寿命域,不管分组在网络中的什么地方,其寿命均每隔一秒减1,当寿命减为0时分组被丢弃。

还有一些改进的措施可增加算法的鲁棒性。

当一个链路状态分组进入一个路由器并需要扩散时,该分组并不马上放到传输队列里,而是放到一个临时区域中等待一小段时间。

如果在该分组被发送前,来自同一个源路由器的另一个链路状态分组到来,则将这两个分组的序号进行比较。

如果序号相同,就丢弃后来的分组;如果序号不同,则序号小的分组被丢弃。

为防止分组在路由器到路由器的传输线路上出错,所有链路状态分组都必须被确认。

当线路空闲时,临时区域被循环扫描,从中选择一个分组或确认进行发送。

路由器将收到的链路状态分组存放在分组缓冲器中,使用图5-14所示的数据结构。

每一行对应一个最近收到的但还未处理完毕的链路状态分组,除记录该分组的源路由器、序号、寿命、数据以外,对应每一条输出线路还有发送和确认两个标志位,用来指示是否要在这条线路上转发或确认这个分组。

解释例5-14。

计算新路由:

一旦一个路由器收集齐了一整套链路状态分组,它就可以建立完整的通信子网图,在这张图中每条链路均被报告了两次,这两个值可以分开用,也可以求平均值。

图建立起来后,就可以运行Dijkstra算法求路由器到任何目的路由器的最短通路。

(6)分级路由选择

当网络变得很大时,要求每个路由器都知道到所有其它路由器的路径是不可能的,路由表会变得非常庞大,需要占用大量的内存,花费大量的CPU时间用于路由表的查找和维护,消耗大量的带宽用于路由信息的交换,这时采用分级路由选择是必然的。

采用分级路由选择时,将路由器划分到不同的区域中,每个路由器知道到区域内所有其它路由器的路由,但不知道其它区域内的路由细节。

当需要将分组转发到其它区域时,路由器只是简单地将分组发给区域内的网关路由器去处理。

当将不同的网络互联在一起时,每个网络自然成为一个区域。

当网络规模非常大时,两级往往是不够的,需要分成多级,每一级路由器都知道本级内如何路由,但必须通过上一级路由器将分组转发到本级之外的节点。

一个两级网络的例子见5-17。

分级路由选择使得路由表的大小显著减小,但可能会因此增加某些节点的路径长度,当网络规模很大时这个代价是值得的。

研究表明,有N个路由器的通信子网的最佳级数为lnN,每个路由器需要的表项总数为elnN,由分级路由选择引起的有效平均路由长度的增长是很小的,完全可以接受。

划分区域的一种很自然的方法是按管理域(也称自治域,AS)进行划分,因为每个组织都要求按自己的意愿运行和管理网络,或对外部隐藏网络的内部组织等。

对于较大的自治域,还可以进一步将自治域划分成区(area)。

区是OSPF的术语,一个区是从管理上配置成相互交换路由信息的路由器的集合。

通过将域划分成区,可使单个域变得更大而又不会加重域内路由协议的负担。

图示是一个划分成4个区的域。

主干网区是一个特殊的区(也称区0),不同区之间的通信都要通过主干网区进行。

既是主干网区也是非主干网区成员的路由器称为区边界路由器(AreaBoarderRouter,ABR),R1、R2和R3都是区边界路由器。

当分组要从一个非主干网区传送到另一个非主干网区时,分组首先到达与源网络相连的一个ABR,然后穿过主干网区到达与目的网络相连的一个ABR,最后从该ABR进入目的网络。

分组在非主干网区内的转发使用区内路由表,这是由同一个区内的路由器通过彼此交换链路状态信息生成的。

为使源ABR能够准确地将分组转发到目的ABR,每个ABR汇总从其所在的非主干网区了解到的路由信息,计算到该区中每个网络的路由代价,然后将这些信息发送给区0的所有节点。

与此同时,每个ABR也汇总从其它ABR收到的路由信息,并将这些信息通知到自己所在的非主干网区。

这样,域中所有的路由器都知道如何到达域中的每个网络。

当非主干网区中有多个ABR时,比如R1和R2均是区2中的ABR,由于这些ABR发布的路由代价不相同,通过运行最短路径算法可知哪一个ABR是最佳的。

比如,对于区1中的目的地来说,显然R1是比R2更好的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1