您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机通信网_网络层
计算机通信网网络层网络层1网络层的设计问题2路由算法3拥塞控制算法4服务质量5网络互联6Internet的网络层网络层1网络层的设计问题1.1存储转发数据包交换1.2提供给传输层的服务1.3无连接服务的实现1.4面向连接服务的实现1.5虚电路与数据报网络的比较网络层的功能•网络层是OSI参考模型中的第三层•网络层关系到通信子网的运行控制,体现了网络应用环境中资源子网访问通信子网的方式,是OSI模型中面向数据通信的低三层(也即通信子网)中最为复杂、关键的一层。•网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括路由选择、阻塞控制和网际互连等。1.1存储转发数据包交换1.2.提供给传输层服务•端点之间的通信是依靠通信子网中的节点间的通信来实现的•在分组交换方式中,通信子网向端系统提供虚电路和数据报两种网络服务,而通信子网内部的操作也有虚电路和数据报两种方式。–通信子网的操作方式:虚电路操作方式和数据报操作方式–网络层提供的服务:虚电路服务和数据报服务1.2提供给传输层服务•在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。•争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?电信网的成功经验让网络负责可靠交付•面向连接的通信方式,服务质量是最主要的因素•建立虚电路(VirtualCircuit),以保证双方通信所需的一切网络资源。•如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。因特网采用的设计思路•网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。•网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。•网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。网络层1网络层的设计问题1.1存储转发数据包交换1.2提供给传输层的服务1.3无连接服务的实现1.4面向连接服务的实现1.5虚电路与数据报网络的比较1.3无连接服务的实现1.3无连接服务的实现应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层H1H2IP数据报丢失H1发送给H2的分组可能沿着不同路径传送1.4面向连接服务的实现应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层H1H2虚电路H1发送给H2的所有分组都沿着同一条虚电路传送虚电路是逻辑连接•虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。•请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。虚电路建立实例尽最大努力交付的好处•由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。•如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。•采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。•因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。1.5虚电路与数据报网络的对较对比的方面虚电路服务数据报服务思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证连接的建立必须有不需要终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责网络层2路由算法2.1优化原则2.2最短路径算法2.3泛洪算法2.4距离矢量算法2.5链路状态路由2.6层次路由2.7广播路由2.8组播路由2.9选播路由2.10移动主机路由2.11自组织网络路由2路由算法通信子网为网络源节点和目的节点提供了多条传输路径的可能性。网络节点在收到一个分组后后,要确定向下一节点传送的路径,这就是路由选择,路由选择是网络层要实现的基本功能。在数据报方式中,网络节点要为每个分组路由做出选择;而在虚电路方式中,只需在连接建立时确定路由。路由选择包括两个基本操作,即最佳路径的判定和网间信息包的传送。确定路由选择的策略称路由算法。•算法必须是正确的和完整的。•算法在计算上应简单。•算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性(鲁棒性)。•算法应具有稳定性。•算法应是公平的。•算法应是最佳的。理想的路由算法设计路由算法时要考虑诸多技术要素。首先,考虑是选择最短路由还是选择最佳路由;其次,要考虑通信子网是采用虚电路的还是采用数据报的操作方式;其三,是采用分布式路由算法,即每节点均为到达的分组选择下一步的路由,还是采用集中式路由算法,即由中央节点或始发节点来决定整个路由;其四,要考虑关于网络拓朴、流量和延迟等网络信息的来源;最后,确定是采用静态路由选择策略,还是动态路由选择策略。网络层2路由算法2.1优化原则2.2最短路径算法2.3泛洪算法2.4距离矢量算法2.5链路状态路由2.6层次路由2.7广播路由2.8组播路由2.9选播路由2.10移动主机路由2.11自组织网络路由2.1最优化原则在讨论某个特殊算法之前,有必要指出即使在不知道详细的通信子网拓扑结构和通信量的情况下,也可能对最优路由作出总体上的断言。这种断言被称作最优化原则,它断言,如果路由器J在从路由器I到K的最佳路由上,那么从J到K的最佳线路就会在同一路由之中。为理解这些,假设从I到J的路由为rl,而路由其余部分称为r2。如果J到K还有在一条比r2更好的路由,那么它可以同r1联系起来,以改进从I到K的路由,这与r1r2是最优路由的断言相悖。2.1最优化原则作为最优化原则的一个直接结果,可知,从所有源端到目地端的最佳路由集合,形成了以目的地为根的树。这样一棵树称为汇集树,如下图所示,其中距离度量单位是站点数。应当指出的是,汇集树并不惟一,共他具有相同的路由尺度的树也有可能存在。所有路由选择算法的目的就是为所有路由器找出并使用汇集树。2.1最优化原则(a)Anetwork.(b)AsinktreeforrouterB.2.1最优化原则因为汇集树是一棵树,它不包含任何循环。因此每个分组可在有限的步长之内送达。实际上,现实并不那么简单,在操作过程中链路或路由器都有可能卸下或重新装上。而且,我们必须弄清,是否每个路由器都得单独地获取计算其汇集树的信息,或者用其他方法来获取信息。不管怎样,最优化原则和汇集树为路由选择算法提供了一个测量标准。路由选择•路由算法有两类:非自适应自适应静态路由动态路由路由表固定路由表定时刷新路由协议简便、可靠、易行,适用于负荷稳定、拓扑结构变化不大的网络算法复杂,会增加网络负担,但能够改善网络的性能,并有利于流量控制两类路由算法•非自适应算法–离线时计算好,网络启动时下载到路由器中;–静态路由•自适应算法–获取信息的来源不同–本地、相邻路由器、–改变路由的时间不同–每隔δt秒随负载变化–路由优化的度量方法不同–距离、跳数、估计的传输时间–动态路由网络层2路由算法2.1优化原则2.2最短路径算法2.3泛洪算法2.4距离矢量算法2.5链路状态路由2.6层次路由2.7广播路由2.8组播路由2.9选播路由2.10移动主机路由2.11自组织网络路由静态路由选择算法•静态路由选择策略不用测量也不需利用网络信息,这种策略按某种固定规则进行路由选择;•可分为最短路由选择法、扩散法和基于流量的路由选择法。2.2.最短路由选择法•基本思想:建立一个子网图,图中的每个节点代表一台路由器,每条弧线代表一条通信线路(链路),弧上的数字代表该线路的权重。•为了在一对给定的路由器之间选择一条路由路径,路由算法只需在图中找到这对节点之间的最短路径即可。–最著名的Dijkstra算法Dijkstra算法•算法要求每个节点用从源节点沿已知最佳路径到本节点的距离来标注。•1、开始所有节点标注为无穷大•2、改变与源点相邻节点的标注•3、找到新标注点中的最小的点M•4、以M为新工作点,标注其相邻节点(若某点曾经标记过,并且新标记小于老标记,则更新其标记)•5、返回第3步利用Dijkstra算法求A到D的最短通路ABCEFGHD22164273223AB(2,A)E(∞,-)G(6,A)C(∞,-)F(∞,-)H(∞,-)D(∞,-)AB(2,A)E(4,B)G(6,A)C(9,B)F(∞,-)H(∞,-)D(∞,-)源点中间终点长度A-B2C∞D∞E∞F∞-G6H∞源点中间终点长度A-B2BC9D∞BE4F∞-G6H∞利用Dijkstra算法求A到D的最短通路AB(2,A)E(4,B)G(5,E)C(9,B)F(6,E)H(∞,-)D(∞,-)AB(2,A)E(4,B)G(5,E)C(9,B)F(6,E)H(9,G)D(∞,-)AB(2,A)E(4,B)G(5,E)C(9,B)F(6,E)H(8,F)D(∞,-)源点中间终点长度A-B2BC9D∞BE4EF6EG5H∞ABCEFGHD22164273223源点中间终点长度A-B2BC9D∞BE4EF6EG5GH9源点中间终点长度A-B2BC9D∞BE4EF6EG5FH8AB(2,A)E(4,B)G(5,E)C(9,B)F(6,E)H(8,F)D(10,H)AB(2,A)E(4,B)G(5,E)C(9,B)F(6,E)H(8,F)D(10,H)AB(2,A)E(4,B)G(5,E)C(9,B)F(6,E)H(8,F)D(10,H)最短通路为:A-B-E-F-H-D,权值为10ABCEFGHD22164273223源点中间终点长度A-B2BC9HD10BE4EF6EG5GH9源点中间终点长度A-B2BC9HD10BE4EF6EG5GH9利用Dijkstra算法求A到D的最短通路2.3.泛洪算法•又称为:泛射路由选择法•一个网络节点从某条线路收到一个分组后,再向除该线路外的所有线路重复发送收到分组。•结果,最先到达目的的节点的一个或若干个分组肯定经过了最短的路径,而且所有可能的路径都被尝试过。•没有考虑网路负载•应用:–强壮性要求很高的场合,只要源、目间有一条信道存在,仍能保证数据的可靠传送。–也可用于广播式数据交换中。–进行网络的最短路径及最短传输延迟的测试。–无线网络中泛洪算法•产生大量的重复分组,解决办法:–每个分组头包含站计数器,每经过一个站点计数器减一。当计数器为0时就扔掉分组。–记录下分组扩散的路径,防止第二次再扩散到已扩散的路径中–改进成选择扩散法,仅发送到与正确方向接近的那些线路上。网络层2路由算法2.1优化原则2.2最短路径算法2.3泛洪算法2.4距离矢量算法2.5链路状态路由2.6层次路由2.7广播路由2.8组播路由2.9选播路由2.10移动主机路由2.11自组织网络路由动态路由选择算法静态路由选择算法不考虑网络的当前负载情况,现代计算机网络通常使用动态的路由算法。节点的路由选择要依靠网络当前的状态信息来决定的策略,称动态路由选择策略,也称为自适应路由选择算法。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能。但由于算法复杂,会增加网络的负担。距离矢量路由算法链路状态路由算法2.5链路状态路由1979年以前,ARPANET一直使用距离矢量路由算法,而在此后,则被替换为链路状态路由算法。每个路由器需要完成以下工作:1.发现它的邻居节点,并知道其网络地址2.测量到它各邻居节点点的延迟或开销3.组装一个分组以告之它刚知道的所有4.将这个分组发送给所合其他路由器。计算到每个其他路由器的最短路径。发现邻居结点,并学习它们的网络地址;路由器启动后,通过发
本文标题:计算机通信网_网络层
链接地址:https://www.777doc.com/doc-3814131 .html