在通信网络中,网络层主要负责将两个终端系统经过网络中的节点用数据锥路连接起来,组成通信通路,实现两个终端系统之间数据的透明传送。所谓透明传输是指发端发送到网络接口的任何信息都会按照其原始的形式传送到接收端,网络不会修改其内容或将与该信息无关的内容送给接收者。网络层的功能包括寻址和选择路由,建立、保持和终止网络连接等。
对于相同源和目的节点的每个分组来说,上次选择的最佳路由可能由于网络拓扑、负荷和拥塞等情况的变化已被改变
网络的拓扑结构在运行中可能发生变化,而且信息的流量更是随时在变化,所以一个能考虑网络当前运行情况来选择路径的适当算法,将在很大的程度上影响网络传输的可靠性和通信效率

网络层核心问题:路由算法。
两方面功能:为源目节点对(SD)选择传输路径;将消息正确送达目的地。

第二项功能比较简单,它使用称为路由表的数据结构路由表通常记录了从源节点或本节点到达目的节点的路由信息,通常包括到达目的节点必须经过的下一个节点(或输出链路)以及该路由的有关质量和利用率的度量值。

传输方式:数据报(每个分组单独路由),虚电路(数据做一次路由)。
路由算法面临的问题:路由选择策略,信息依据,执行策略方法,评价标准。
目的,要求:正确,迅速,合理传输信息;适应网络内故障引起的拓扑变化;适应网络流量变化,充分发挥效率;算法简单,减少开销。
高负荷下:保证相同时延,增加网络通过量。
轻中负荷下:减少每一个分组的平均时延。

路由选择算法分类

是否随业务量,拓扑自适应调制:非自适应算法(静态路由选择,简单,开销小),自适应算法。
按路由决策方法分:集中式,分布式

集中式路由算法是指网络的路由是由路由控制中心计算的,该中心周期性收集各链路的状态,经过路由计算后周期性地向各网络节点提供路由表。
分布式路由是指网络中所有节点通过相互交换路由信息,独立地计算到达各节点的路由。(信息不一致引起乒乓效应,路由环路)

按应用场合分:广域网路由(解决子网内路由),互连网路由(解决不同子网间路由)

理想路由算法特点:正确性,计算简单,自适应性(问句性或鲁棒性),稳定性(算法必须收敛,负载或拓扑变化时,无过多的震荡),公平性(对所有用户等同),最优性(时延最小,吞吐量最大或可靠性最高,“最佳”由多个因素影响,没有绝对的最佳,可以在特定准则下做出合理选择)。

实际上没有一个算法能全部满足上述要求,有的要求还可能是矛盾的。例如,要使吞吐量最大就可能会增加时延。然而,路由选择的效能可能影响到时延随吞吐量增加而增加的快慢程度,而且一个好的算法可能做到在一个较好的吞吐量门限以下,网络的时延较小,而在这个门限值以上时延会过大,这时就必须进行流控,以保证网络尽量工作在门限以下。

路由算法和流量控制的关系

路由选择算法确定数据从源节点到目的节点传送的路径,而流量控制算法是限制允许到达某些数据链路或网络某个部分的业务量,以防止这些链路或部分过分拥挤。
这两个算法往往要分别加以研究,但实际上它们是密切相关的,因为若路由算法把太多的业务量引导到同一区域内则可能引发拥挤,从而需要采用流量控制算法。
流控控制进入网络的吞吐量,进入网络的吞吐量影响到路由的选择,路由选择又影响到网络分组传输的时延,而这一时延又影响流控所允许进入网络的业务量,可能进一步影响到时延。
路由选择和流控总是处于这种动态的交互协调之中。
路由算法应当将网络中分组时延维持在很低的水平上。由于时延的存在,流控算法通过平衡通过量和时延的关系,采取必要措施来拒绝一些可能会引起网络阻塞的业务,好的流控算法应当允许更多的业务流进入网络。时延和通过量之间的严格平衡将由流控算法决定,而路由算法将决定不同的通过量对应的时延曲线。

常用的路由算法

不同的应用场合对路由算法有不同的要求广域网内的路由主要解决子网内分组的传输路径问题,它主要包括三种路由算法:广播、最短路由和最佳路由。
互连网中则主要采用分层的网络。
还有一类网络是Ad Hoc网络,它是一种分布式的PRNET网络,该网络中使用了多种形式的路由算法。

广播(Broadcast)
使用场景:传播公共信息,拓扑变化信息(节点链路工作变化和故障),是通信网最常用方式
接收节点:通常是全网成员,若为一组或部分节点,则为多播(Multicast)
实现方法:泛洪(Flooding)路由,采用生成树(Spanning Tree),逐一对每一节点做点对点路由(Unicast)

泛洪路由基本思想:将消息以分组形式给相邻,相邻再给相邻,广播分组接收者不会将其转发给发送者,每个节点将相同广播最多转发一次。
实现方法:源节点每个分组有标识符(ID)和序号,发送新分组,序号加一,接到小于等于记录的序号的分组,丢弃。

最短路由:基于某种形式的最小“费用”准则(RIP,OSPF)。关心节点对之间仅一条路径的选择,限制了网络的通过量;适应业务变化的能力受到防止路由震荡的限制。

最佳路由:最佳路由是从全网的范围寻找所有可能的传输路径,从而使得发送节点到达接收节点的信息流的时延最小、流量最大,而不是局限于一条所谓的最短路径。
采用最佳路由(基于平均时延最佳化)可以克服最短路径的上述缺陷,它可以将节点对之间的流量分配在多条路径上,从而可使网络的通过量最大,时延最小。

实现网络间互联的设备:网关,网桥,路由器

实现广域网(WAN)至广域网(WAN)之间的互连设备称为网关(Gateway)。它完成相当复杂的网络层的任务,包括协议转换、路由功能等。它通常在网际子层。
实现局域网(LAN)与局域网(LAN)之间在MAC层互连的设备称为网桥(Bridge)。
实现LAN与WAN或LAN与LAN之间互连的设备称为路由器(Router),它提供高级的路由功能。

分级路由选择:网络增大,路由表存储内容增大,为充分利用有效资源。将路由器划分为区域,每个路由器仅知道所属区域内的细节。

Ad Hoc网络中的路由算法

传统的路由算法(如距离矢量算法和链路状态法等)基本上是为有线网络设计的,没有考虑到网络的动态特性。而且在传统的路由算法中,网络管理的开销随着网络的规模增大而迅速增长。
上述这些因素是移动Ad Hoc网络中要关注的重要因素,而且移动Ad Hoc网络还面临着无线信道的不可靠性、高速移动环境下链路频繁中断、故障以及节点的能量有限等情况。
传统的路由算法中都存在着一些致命的缺陷,如路由闭环、收敛速度慢等问题。

Ad Hoc路由算法主要分三种

最短路由算法

许多实际的路由算法都是基于最短路径这一概念。
这里首先要明确最短的含义,它取决于对链路长度的定义。长度通常是一个正数,它可以是物理距离的长短、时延的大小、各个节点队列长度等等。如果长度取1,则最短路由即为最小跳数(中转次数)的路由。其次,锥路的长度随着时间可能是变化的,它取决于链路拥塞情况。
最短路由算法的理论基础是图论。
关联(Incident):它表示链路与节点的关系。
方向性行走(Walk):是一个节点的序列,该序列中关联的链路,是G中的一个链路。
方向性Path:指无重复节点的方向性Walk
方向性环(Cycle):指开始节点和目的节点相同的方向性Path.
强连通方向图:指对于每一对节点i,都有一条方向性路径。
连通的方向图:指如果方向图对应的无方向图是连通的,则该方向图是连通的。

讨论三种标准的集中式最短路径算法:

Bellman-Ford算法和Djkstra算法是点对多点的最短路径算法;Floyd-Warshall算法则是多点对多点的最短路径算法。

Bellman-Ford算法

Dijkstra算法:Dijkstra算法通过对路径的长度进行迭代,从而计算出到达目的节点的最短路径。其基本思想是按照路径长度增加的顺序来寻找最短路径。

Floyd-Warshall算法。
复杂度

,与B-F算法一样

分布式最短路径算法

这种路由选择策略是每个节点周期性的从相邻的节点获得网络状态信息,同时也将本节点做出的决定周期性的通知周围的各节点,以使这些节点不断的根据网络新的状态更新其路由选择。·整个网络的路由选择经常处于一种动态变化的状态。各个节点的路由表相互作用,是这种路由选择算法的特点。
当网络状态发生变化时,必然会影响到许多节点的路由表。因此,要经过一定的时间以后,各路由表中的数据才能达到稳定的数值。
分布式路由选择算法的核心思想是各个节点独立的计算最短路径。
典型的分布式最短路径选择算法有距离矢量路由算法和链路状态路由算法。
距离矢量路由算法(Distance Vector Routing)算法是B-F算法的具体实现。
在距离矢量路由表中,每个路由器维护一张路由表,该表中记录了到网络中其它所有节点的路由信息。包括到该目的节点的下一跳节点(即本节点通过哪个邻节点到达指定的目的节点),和到达该目的节点所需的"距离"的估计值。
在1979年之前,ARPANET都是采用的距离矢量路由算法。之后,就用链路状态路由算法(Link State Routing)取代了距离矢量路由算法。其主要原因有两个。第一,因为在距离矢量算法中,时延的度量是仅仅是队列的长度,而并没有考虑后来链路带宽的增长;第二,距离矢量算法的收敛速度比较慢,即使是采用了类似于水平分割这样的技术,也需要耗费过多的时间用于记录信息。

计数至无穷问题:距离矢量算法理论正确,实际中有缺陷,得出正确结论慢,它对好消息的反应迅速,但对坏消息却反应迟钝。
解决方法:水平分裂算法(但是有些时候也无法正常工作)

链路状态路由算法的思想:
1、发现邻节点,并获取它们的地址;
2、测量到达每一个邻节点的时延或成本;
3、构造一个分组来通告它所知道的所有路由信息(链路状态分组);
4、发送该分组到所有其它节点(利用泛洪,需要应答);
5、计算到所有其它节点的最短路径。
事实上,完整的拓扑结构和所有的时延都已经分发到网络中的每一个节点。随后,每个节点都可以用Djkstra算法来求得到其它所有节点的最短路径。

链路状态路由算法已广泛用于多种实际网络中,例如Internet中的OSPF采用了该算法,ISO的无连接网络层协议(CLNP)使用的IS-IS(Intermediate System-to-Intermediate System)协议也是采用该算法。IS-IS中交换的信息是用于计算最短路由的网络拓扑图(而不仅仅是链路状态分组),它还可以支持多种网络协议(如IP,IPX AppleTalk等)。

自适应最短路由的稳定性分析

正如我们前面讨论的那样,路由算法可以根据不同的分类原则划分为不同的种类。但是总的来说,我们可以将其分为确定型策略(Deterministic Algorithm)和自适应型策略(Adaptive Algorithm)。确定型策略是基于网络拓扑和平均分组时延要求,以某一固定的准则来选择分组的路径,结果一般不受业务和拓扑变化的影响。这类策略包括:扩散式路由算法,随机式路由算法,固定式最佳路由算法等。而适应型策略是基于某个在时间上不固定的准则来选择在某一段时间内有效的路径,其结果尽量地适应业务和拓扑的变化。这类策略又可细分为:集中式自适应路由、孤立式自适应路由算法和分布式自适应路由算法。
问题:如果在一段时间之后,算法最终是否可以有一个稳定的解,会不会振荡?这就是我们要讨论的算法稳定性问题。

路由信息的广播

路由信息的交换是路由算法的基础。特别是在分布式路由算法中,无论是距离矢量算法还是链路状态算法,都需要各个节点相互交换路由信息,然后各节点再独立的计算各自的路由表。
在正常情况下,将路由信息从收集该信息的节点发送到需要该信息的节点是一个比较容易的过程。但是,当网络出现故障(例如:链路故障等)时,实施起来就非常困难了。

困难:1、信息通过链路传输,而链路本身有故障。2、网络的多次拓扑变化,必须对新旧路由信息区分。(泛洪广播一次拓扑变,能正常工作,多次则不行。)3、执行最短路由算法时,新的拓扑信息到达。4、一条链路修复后,新的网络重连,新网络中可能包括过时的拓扑信息。

ARPANET的泛洪算法

ARPANET泛洪算法主要特点:1、能有效的防止拓扑更新信息在网络中无限次的循环;2、能有效的防止序号出错带来的影响。
机制:1、每更新消息包括一个年龄域(Age Field),它表明该消息已在网络中传播了多长时间。当一条消息到达某个节点后,该节点记录它的到达时间,并根据传输时间和传播时延,增加它的年龄域。一个节点可在任何时间计算其内存中所有消息的年龄。当该消息的年龄超过门限后,该消息将被丢弃,不再转发。
2、周期性广播,(至少每60秒钟发送一次)周期性广播保证在网络两个分离的部分再连通以后,使最新的拓扑更新消息能在某个固定的时间内得到。周期性广播的缺点是网络开销较大。

ospf cost 引起路由可以ping通但应用无法连接_路由算法(通网五)相关推荐

  1. 上层路由无法ping通下层路由的问题

    引言儿:   最近一个项目需要将数据上传模块和数据管理模块部署到不同网段下的两台服务器进行模拟传输测试.发现192.168.1网段的服务器无法ping通192.168.0网段的服务器,但是反过来可以, ...

  2. 3_计算机网络_网路层-IP-子网划分-路由-ping

    网络层 1.三层交换机 2.链路聚合 3.IP地址 3.1 ip地址分类 3.2 私有地址 3.3 子网掩码 3.4 IP包头格式 4.ping命令 ping的作用 ping 的过程 ping 选项 ...

  3. RIP报文封装、OSPF封装、OSPF——cost值

    目录 一.RIP报文: 二.OSPF封装: 三.OSPF--接口cost值: 1.计算方法: 2.手工调整: 3.累加cost值: (1)从数据的转发方向:去往目的地的出接口累加cost值 (2)从路 ...

  4. OSPF —— cost值选路

    目录 一.cost值选路 1.计算方法: 2.手工调整: 3.累加cost值: 二.案列: 一.cost值选路 1.计算方法: 2.手工调整: int f0/3 ip ospf cost 30 exi ...

  5. ospf避免环路_路由环路知识点总结!

    人类的创造力与破坏力同样强大". 网路互通,同样也衍生出纷繁复杂的路由协议和各种因特网服务,以及"网络安全"这个庞大的领域. 这也是为什么说当今所有的网络通讯流量中,80 ...

  6. RIP v1因掩码不同产生主机路由而ping不通

    共三个部分,前两个部分讲两个现象,第三个部分尝试根据现象分析原因 第一个部分 , 拓扑图 (所有 IP 为 24 位掩码): 先给 R1 配置: # rip 1version 1network 192 ...

  7. 华为路由交换由浅入深系列(二):静态路由、浮动路由、默认路由配置以及华为路由协议优先级总结

    掌握目标 一.配置设备名称与IP地址: 二.配置静态路由 三.配置浮动路由用于备份 四.配置默认路由 五.了解华为不同路由协议的优先级 拓扑 一.配置设备名称与IP地址: R1: system-vie ...

  8. 什么是路由策略?路由策略和策略路由有什么区别? 如何配置路由策略?

    对于IP网络工程师来说,路由策略的部署随处可见,无论在运营商IP网络还是在企业网中,路由策略的应用都是非常普遍的.同时,在网络规划中,路由策略的规划也是一个核心的内容.为了方便大家更好的掌握和应用路由 ...

  9. python距离向量路由算法_路由算法(全网最细)

    我在复习过程中整理的面试系列文章,全部免费分享给大家,适合保研和考研,需要的请移步我的个人原创公zhong号:程序员宝藏(号如其名,诚不欺你),回复关键字:复试上岸,即可获取! 正文开始 正文开始 1 ...

最新文章

  1. CVPR 2017 ECO:《ECO: Efficient Convolution Operators for Tracking》论文笔记
  2. Python【算法中心 01】Web框架Django入门(安装+项目创建+应用创建+服务启动)Python搭建算法中心后台实例分享
  3. TFS2010迁移后Web工作项访问提示:error HRESULT E_FAIL has been returned from a call to a COM component....
  4. hdu 1561 The more, The Better 树形dp
  5. UWP 响应键盘组合快捷键
  6. 数据库性能分析mysql_mysql数据库的性能优化分析
  7. ubuntu中遇到jupyter出现问题ValueError: signal only works in main thread ERROR:tornado.application:Except
  8. PHPCMS修改目录
  9. 59.node的serve-favicon中间件的使用
  10. python 中time, datetime的用法
  11. python重定向作用_Python重定向不起作用
  12. Oracle DB_LINK如何使用
  13. C# 中返回星期的函数
  14. 体重增长:目前为止我们所知道的一切器
  15. 人体姿态识别-左肩和左肘的定位识别
  16. node.js 将jade变为html
  17. 静态HTML个人博客主页 简单个人网页设计作业 DW个人网站模板下载 大学生简单个人网页作品代码 个人网页制作 学生个人网页设计作业
  18. php网站模板上传教程视频教程,网站模板怎么用
  19. 哪种锻炼方式最能让程序员远离亚健康? - 强烈推荐
  20. Ubuntu查看Cuda是否全部安装成功

热门文章

  1. R语言tidyr包pivot_longer函数、pivot_wider函数数据表变换实战(长表到宽表、宽表到长表)
  2. 大卫·史文森+耶鲁模式+得意弟子张磊
  3. 实体识别+entity resolution
  4. 服务器上安装运行fastqc
  5. ping -c3 baidu.com  ping过去是这样,代表网络畅通
  6. DNA RNA 蛋白质
  7. TensorFlow基础7-机器学习基础知识(逻辑回归,鸢尾花实现多分类)
  8. 十三、进程互斥的软件实现方法
  9. 车辆计数--FCN-rLSTM: Deep Spatio-Temporal Neural Networks for Vehicle Counting in City Cameras
  10. LeetCode 268. Missing Number--Python解法--数学题