网络层
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章网络层
网络层——端到端数据传输的最低层
●网络层负责把源计算机发出的信息分组经过适当的路径送到目的计算机。
●网络层需要了解通信子网的拓扑结构,选择合适的传输路径。
●网络层要预防和控制通信子网中超量的信息分组造成的拥塞。
●网络层还要处理不同网络中源端和目的端之间的差异。
§5.1 网络层设计的有关问题
●对网络层所提供的服务存在着两种观点:
–面向连接的服务,复杂的功能放在通信子网中。
–无连接服务,复杂的功能放在主机中。
网络层的内部结构
●网络层提供的服务是否可靠与有无连接并没有关系。理论上存在四种组合,但最
重要的只是其中的两种组合:
–可靠的面向连接服务。
–不可靠的无连接服务。
●针对两种服务,网络层有两种不同的工作方式:
–虚电路(virtual circuit)方式。当建立连接时,从信源到信宿的路由就作为连接建立的一部分加以保存,此路由用于传输连接上的所有数据,当释放连接时,虚电路也随之撤消。
–数据报(datagrams)方式。即使提供面向连接的服务也不预先选择路由,发出的每个分组所选择的路由独立于其前面发出的分组,后续的分组可以走不同的路由,比虚电路方式更健壮,更容易处理传送失败和拥塞。
§5.2 路由选择算法
●路由选择是网络层的主要功能,负责为分组选择合适的转发路径。
●路由选择算法应具有以下几种特征:正确性(correctness)、简单性
(simplicity)、健壮性(robustness)、稳定性(stability)、公平性(fairness)和最优性(optimality)。
●一个好的路由选择算法是兼顾某几种重要的性能指标。
路由选择算法的分类
●分为两大类:
–非自适应算法(non-adaptive algorithm):也叫静态路由选择(static
routing),预先离线计算好路由表,在网络启动时装入到路由器中,在网络运行过程中不会根据网络流量和拓扑结构的变化而改变。简单。
–自适应算法(adaptive algorithm):也叫动态路由选择(dynamic routing),根据当前网络流量和拓扑结构的变化,动态在线地计算网络的路由。复杂、健壮,网络负担重。
最短通路路由选择算法
●最短通路(shortest path)路由选择算法属于自适应路由算法。它将一个通信
子网抽象成一张图,图中的顶点代表网络节点(路由器),弧线代表通信线路,弧线上的权代表相邻顶点间的“距离”(可为物理上的距离,或指分组在其间的传输时间,也可指线路上的通信费用等)。任意一对顶点之间的最小权值即为它们的最短通路。
●求任意一对顶点之间的最短通路可有很多方法,其中迪杰斯特拉(Dijkstra)提
出了按通路长度递增的次序产生最短通路的算法,基本思想为:
–首先从起始点出发,找出距起始点最近的结点,然后以此结点为基础找出距起始点次近的结点,如此每次都找出比前一次次短的通路,直至某个通路到达给定的目的,这时所得到的通路就是源到目的的最短通路。
–具体可采用标记方法。
扩散法(flooding)
●扩散法为静态算法,也称洪泛式。基本思想:路由器将收到的每个分组,从除了
分组到来的线路外的所有输出线路上发出。
●可靠性高,但容易造成网络拥塞,改进办法有:
◆在每个分组头中增加一个站点计数器(hop counter):每经过一个站点,计
数器减1,当计数器减为0时,就扔掉分组。计数器的值可设置为源到目的的长度或子网的直径。
◆记下分组扩散的路径,确保分组只转发一次。可以让源路由器对来自主机的每
个分组设置一个序号,每个路由器对应于每个源路由器都有一张表,用来记录已转发过的分组(源路由器和序号)。
◆选择扩散法(flood selectively):只转发到与正确方向接近的那些线路上。
●适用于负荷轻的小规模网络以及特别强调健壮性的网络。
基于流量(flow-based)的路由选择
●一种既考虑拓扑结构又兼顾载荷的静态路由选择算法。
●基本思想:利用已知的载荷平均流量,计算出该线路上的平均分组延迟;由所有
线路的平均延迟,计算出整个网络的平均分组延迟,从而找出具有网络最小延迟的最优路由选择算法。
●采用这种技术必须预知的几种信息:
–网络的拓扑结构
F ij
–给出通信量矩阵
C ij
–各线路容量的矩阵
–选定一种路由选择算法
距离矢量路由选择
●距离矢量路由选择(distance vector routing)算法是现代计算机网络两个最
常使用的动态路由选择算法之一。
●基本思想:每个路由器维护一张(矢量)表,表中给出到每个目的节点已知的最
佳距离和路径;每个路由器还不断测试到达相邻路由器的距离;相邻的路由器之间也不断地相互交换矢量信息;这样每个路由器将测试出的到达相邻路由器的距离加上相邻路由器给出的矢量信息,就可得知通过相邻路由器到达每个目的节点的距离,选择最佳路径更新表的信息。
无穷计算(count-to-infinity)的问题
●DVR算法收敛慢,其时间复杂度为O(n3)。特别是它对好消息的反应迅速,但对坏
消息却反应迟钝。
●其对坏消息的反应迟钝,会造成相互交换的矢量信息错误,最终导致无穷计算的
后果。
●在实际使用中,可通过设置距离的最大值(如设置为网络最长路由加1)来扼制
这种无限的增长。
链路状态路由选择
●链路状态路由选择(link state routing)算法1979年出现在ARPAnet上,作为
一种用来取代DVR的动态路由选择算法,之后得到了广泛的应用。