计算机网络 网络层
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机网络 网络层
网络层又称通信子网层,主要负责控制通信子网的操作,实现网络上任一节点的数据准确、无差错地传输到其他节点。
它涉及的是将发送端发出的信息包经过各种途径送到接收端。
要实现这样的过程,网络层需要了解通信子网的拓扑结构,从而选择适当的路径。
在网络层中通过路由选择算法机制能够确定发送端到接收端的信息包传送路径,其目前使用的路由选择算法有两大类,即非自适应算法和自适应算法,非自适应算法不会根据当前测量或者估计的流量和拓扑结构来进行路由选择;而自适应算法会根据当前拓扑结构和流量的变化情况,从而改变信息包的路由选择。
下面我们将介绍网络层中常用的路由选择算法:
1.最优化原则
如果在不考虑通信子网的网络拓扑结构和流量的情况下,也可以对最优路径做出总体的论述,这条论述称为最优化原则。
最优化原则的一个直接结果是,从所有的源节点到一个指定目标节点的最优路径的结合构成了一棵以目标节点为根的树,即汇集树,如图2-7所示,图中的距离度量单位是站点数。
F
F (a )子网(b )路由器B 汇集树
图2-7 子网和路由器B 的汇集树
因
为汇集树不含任何循环,所以每个分组可以在有限的步长之内被传送给目标计算机。
但是,实际情况并不是如此简单,在操作过程中链路或路由器都有可能断开或停止工作,然后又恢复工作,所以不同的路由器对于当前的拓扑结构可能会有不同的看法。
最优化原则和汇集树为其他各种路由算法提供了一个测量标准。
2.最短路由选择
最短路由选择算法的基本思想是:建立子网拓扑图,拓扑图中每个节点代表一个路由器,每条弧线表示一条通信线路。
为了选择一对路由器间的路由,算法要在图中找出其间最短的路径。
可以采用计算站点数量来度量两路由器之间的路径,也可以采用km 来度量两路由器之间的路径,还可以用其他的度量方法。
例如,每条弧线都采用一个标准测试分组每小时或每天测试运行所得的平均队列长和传输时延来标识。
对于这样标注的拓扑图,最短路径就时最快路径。
一般情况,拓扑图中的弧线可以由距离、信道带宽、平均通信量、通信开销、队列平均长度、测量到的时延等度量单位表示出来。
通过改变度量单位,算法就会根据许多标注中的
提 示 汇集树并不是唯一的,其他具有同样路由长度的树也可能存在,所有路由选择算
法的目标就是为所有的路由器找到并使用汇集树。
任何一个或几个计算出最短路径。
计算最短路径常用的方法有著名的Dijkstra (1959)方法。
3.距离矢量路
由选择
距离矢量路由选择算法是通过每个路由器维护一张矢量表来实现的。
该表中列出了到达每一个目标地的可知最短路径及所经过的线路,这些信息通过相邻路由器间交换信息来更新完成。
我们称该矢量表为路由表,表中按进入子网的节点索引,每个表项包含两部分:到达目的地最优路径所使用的线路及估计的距离或时间,所使用的度量可能是站段数、时间延迟、沿着路径的排队报数或其他。
在距离矢量路由选择算法中,每个路由器维护一张子网中每一个以其他路由器为索引的路由选择表,并且每个路由器对应一个表项。
该表项包含两部分:为到达该目标路由器而首选使用的输出线路,以及到达该目标路由器的时间估计值或者距离估计值。
假设路由器知道它到每个相邻路由器的“距离”。
如果所用的度量为站点,那么该距离就为一个站点。
如果用的度量是队列长度,那么路由器只需要检查每一个队列即可。
如果度量值为延迟,则路由器可以直接发送一个特殊的“响应”分组来测出延时,接收端只对它加上时间标记后尽快送回。
4.链路状态路由选择
链路状态路由选择算法是网络应用较广泛的一种路由选择算法,其路由选择思想比较简单,可以分五部分进行描述。
每个路由必须完成以下工作:
● 发现它的相邻节点,并知道其网络地址
● 测量到各邻节点的延迟或者开销
● 构造一个分组,分组中包含它们刚知道的所有信息
● 将这个分组发送给所有其他路由器
● 计算出到每一个其他路由器的最短路径
事实上,完整的拓扑结构和所有的延迟信息都已被测量并发布到各个路由器中,然后每个路由器用Dijkstra 算法来找出最短路径。
5.分级路由选择
随着网络规模的增大,路由器的路由表也成比例的增大。
不断增大的路由表不仅占用路由器的内存,而且还需要更多的处理时间来扫描路由表,以及需要更大的带宽来发送有关状态报告。
在网络不断增大的某一时刻,可能会达到这样一个点:在这个点上每个路由器不太可能再为其他每一个路由器维护一个表项。
因此,就像在电话网络中一样,不得不进行分级路由选择。
当采用分级路由选择时,路由器被划分为区域,每个路由器知道如何将分组路由到自己所在区域内的目标地址,但并不知道其他区域的内部结构,当不同的网络连接时,将会将每个网络当作一个独立的区域,以便让一个网络中的路由器不必知道它所在网络的拓扑结构。
对于大型网络,两级的分层结构可能是不够的,这就有必要将区域分组,形成簇,簇又分成区,区又分成组,可以这样继续下去,直到集体性名词用完为止。
提 示 Dijkstra (1959)算法为拓扑图中每一个节点都作一个标记,初始的时候,所有节点的标记都是暂时的,当已经发现一个节点标记代表了从源节点到目的节点的最短可能路径时,该节点标记变成永久的,不会再改变。