互联网IP路由的逐跳全局最优化原则-Dijkstra算法证明

把周末写了一半的东西继续补齐了,实现了完美的一天。
我们知道的一个事实就是IP地址实在太多了,根本就不可能统一的管理起来,无论从数据平面还
是从控制/管理平面上说都是这样。所以,IP协议被设计出来就是可扩展的。对于IP路由来讲,路由计算是逐跳进行的,当然也支持“源路由”选项,源路由就
是说数据在出发前就已经把路线规划好了,逐跳路由是IP路由的标准形式,也就是说,IP数据包是在路上即时规划路线的。
      
我比较喜欢IP路由是因为这也是我旅行的方式,我喜欢旅行,但是我不喜欢事先订酒店,事先规划路线,导航等,我的方式是在路上看路牌前行,到了临时停下的
地方之后背着行囊找住处,然后走到哪算哪,这是一种说走就走且没有目的地的游荡...当然,IP数据包是有目的地的。

逐跳全局最优化

IP路由是在每一台路由器上逐跳路由的,那么就产生了一个问题,偌大一个互联网,该怎么相信这么多逐跳路由拼接起来的一条完整的路径确实是最优化的呢?答案显然是确定的,问题是怎么证明它。

路由算法


上讲,路由算法基本分为距离矢量算法和链路状态算法,各自的协议代表作就是RIP和OSPF(我就是靠着这两个找到的第一份工作),确实是这样,但是从这
些算法的正确性的证明过程中,你就会发现,确实是“逐跳的最优化路由真的就是全局的最优化路由”。本文中我仅仅给出基于链路状态路由协议的
Dijkstra算法的证明,因为全网每台设备的链路状态数据库都是相同的,所以它是很好理解的。

Dijkstra算法正确性证明

首先要给出Dijkstra算法正确性的证明,才能进行后续的。毕竟,Dijkstra算法本身只是指导了step by step的操作步骤,并没没能证明这么折腾一圈得到的最短路径树中的每一条路径确实是最短的。而要想证明逐跳全局最优化原则,需要这个事实。
       下面的示意图给出了Dijkstra算法正确性的简单证明,详细完备的数学证明可以参照这个思路:

逐跳全局最优化的问题

下面的示意图点名了逐跳全局最优化的问题所在:

逐跳全局最优化的证明

下面的示意图给出了逐跳全局最优化的简单证明,证明方式多种多样,我这里给出的仅仅是其中一种:

附:Dijkstra算法的贪心模型


果我们在地上倒上一杯水,观察水摊开渗透的痕迹,就会理解Dijkstra算法,它确实是不证自明的。大自然是懒惰的,总是用最省力的方式行事,水分子在
落地那个点开始,在崎岖不平的地上由于重力(暂时不考虑其它分子力)沿着一定的路径到达一系列点,这些路径一定是最短路径。我们可以把地面的崎岖程度视为
路径的权值,这不就和Dijkstra算法模型一模一样吗?

时间: 2024-10-23 10:25:49

互联网IP路由的逐跳全局最优化原则-Dijkstra算法证明的相关文章

互联网IP合全局路由优化的原则-Dijkstra算法证明

周末继续写东西的一半填补了,为了达到完美的一天.我们知道一个事实,IP地址太多.统一管理是不可能的了,无论从控制平面从数据/管理层表示,飞机是如此. 所以.IP协议被设计为可伸缩.供IP路由术语,跳路由进行计算.当然,支持"源路由",源路由就是说数据在出发前就已经把路线规划好了,逐跳路由是IP路由的标准形式.也就是说.IP数据包是在路上即时规划路线的.       我比較喜欢IP路由是由于这也是我旅行的方式,我喜欢旅行,可是我不喜欢事先订酒店.事先规划路线.导航等,我的方式是在路上看路

IP路由基础知识总结

路由是什么?路由器转发报文时必须有一个依据,这个依据就是路由:路由是指导IP报文转发的路径信息:路由器的转发特点是逐跳转发: 路由匹配原则路由最长匹配原则.路由迭代查找.缺省路由匹配 路由的来源主要有三种直连路由.手工配置静态路由.动态路由协议发现的路由: 路由度量值路由度量值(metric)表示到达这条路由所指目的地的代价:计算路由度量值通常考量以下几个因素:跳数.链路带宽.链路延时.链路使用率.链路可信度及链路MTU等:RIP使用"跳数"计算度量值.跳数越小,其路由度量值越小:OS

17.HCNA-HNTD——IP路由基础

以太网交换机工作在数据链路层,用于在网络内进行数据转发.而企业网的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中,此时就需要使用路由器来连接不同的网络,实现网络之间的数据转发. 学习目标: 1. 掌握路由器的基本工作原理 2. 掌握路由器选择最优路由的方法 自治系统 一般地我们可以把一个企业网络认为是一个自治系统AS(Autonomous System).根据RFC1030的定义,自治系统是由一个单一实体管辖的网络,这个实体可以是一个互联网服务提供商,或一个大型组织机构.

Linux基础命令---IP路由操作

ip ip指令可以显示或操作路由.网路设备,设置路由策略和通道. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora.   1.语法      ip [选项]  OBJECT  COMMAND [help] OBJECT对象可以是:link,网络设备:addr,设备的协议地址:route,路由表:rule,策略:neigh,arp缓存:tunnel,ip通道:maddr,多播地址:mroute,多播路由 COMMAND是操作命令,不同的

对TCP/IP协议的一些看法(13):IP路由

之前在介绍网络层协议的时候忘记介绍一个很重要的知识点:IP路由. 曾经讲过如果两个通信方的IP地址不在同一个子网内,那么两者要进行通信,数据包需要经过路由器进行转发,可能要经过多个路由器才能到达接收方.那么路由器是怎么工作的呢?其实最核心的一点是路由器内有一张路由表,它包括了以下几类信息: 1.目的IP地址:它既可以是一个完整的主机地址,也可以是一个网络地址. 2.下一跳路由器的IP地址,指的是一个在直连网络上的路由器. 3.标志.其中一个标志指明目的IP是主机地址还是网络地址,另一个标志表明下

IP路由及静态路由配置

IP路由及静态路由配置 qianghaohao(CodingNutter) 链接来源:http://www.cnblogs.com/codingnutter/p/5654271.html 一.IP路由: IP路由就是根据IP地址在不同网络之间转发数据的过程.它决定了IP数据包从 源网络到目的网络怎么走,也就是规划一条到目的地的路径.实现这个功能的设 备就是路由器,每个路由器都保存着一张路由表,表中每个条目指明分组到某个 子网或主机应该通过路由器的哪个物理端口发送,然后就可到达该路由的下一个 路由

Masscan:最快的互联网IP端口扫描器

Masscan:最快的互联网IP端口扫描器 Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网. masscan的扫描结果类似于nmap(一个很著名的端口扫描器),在内部,它更像scanrand, unicornscan, and ZMap,采用了异步传输的方式.它和这些扫描器最主要的区别是,它比这些扫描器更快.而且,masscan更加灵活,它允许自定义任意的地址范和端口范围. 安装配置 在Debian/Ubuntu系统中,安装方法如下: $ sudo apt-get in

IP路由、静态路由及距离矢量路由RIP

IP路由.静态路由及距离矢量路由RIP IP 数据包的路由转发过程:详见:https://wenku.baidu.com/view/2b9aa6187c1cfad6185fa765.html 常用的动态路由协议: 路由协议缺省时的外部优先级: 路由协议类型 优先级 Direct 0 OSPF 10 IS-IS 15 Static 60 RIP 100 OSPF 150 IBGP/EBGP 255 查看路由表 : display ip routing-table 配置静态路由: ip routin

IP路由原理1

IP路由原理概述:研究IP路由:静态路由.动态路由的特征以及按需路由(ODR):1.距离矢量.链路状态.高级路由矢量路由(也叫混合路由):2.分类和无类路由:路由器将数据转发到目标网络,需要知道远程网络,和到达此网络的最佳路径.路由器知道与他直连的网络--它根据接口配置的地址和子网掩码确定接口的子网和网络号:而对于不接口直接相连的网络,路由器需要依赖外部路由(静态路由.动态路由). 静态路由原理管理员手动指定的路由,在下列情况下适合使用静态路由:1.带宽较低(拨号连接).不希望传输动态路更新:2