首页 > 其他分享 >第八章:路由基础

第八章:路由基础

时间:2024-05-17 10:44:26浏览次数:20  
标签:路径 基础 第八章 source 算法 计算 节点 路由

第八章:路由基础

路由: 在特定的拓扑上,选择从 source 节点到 destination 节点的路径。

  • 一个好的路由算法,即使面对 non-uniform traffic pattern,也能有效地均衡负载,使实际 throughput 更加接近于理想情况。
  • 好的路由算法可以使路径长度尽可能短,从而减少跳数和传输的总延迟

1、路由算法示例

可以逆时针路由,也可以顺时针路由,根据路径长度进行选择

2、路由算法分类

确定性算法(Determinstic):在 x 和 y 之间,总是选择相同的路径进行路由,即使存在着其他可能的路径。确定性算法忽略了路径多样性,因此容易造成负载不均衡。然而这种算法常常被使用,因为它实现简单,且容易实现无死锁性质。

遗忘算法(Oblivious):在确定路由路径时,不会考虑当前网络的实时状态。上面的确定性算法也属于状态无关性算法的范畴。例如,一个随机路由算法即属于状态无关性算法。

自适应算法(Adaptive):在确定路由路径时,会与网络当前状态相适应,使用网络状态信息(Node 状态,link 状态,占用 resources 情况)决定路由。

3、路由关系

一次计算(All-at-once):

当数据包注入进 source 节点时一次性计算完成路由路径。之后在包传输过程中按照计算好的路径路由。

通过在 source 节点计算完整路由路径,能减少用于计算路由路径的时间。但是在后续包传递的过程中,计算好的路由路径需跟数据一起传输。

多次计算(Incremental):

包在到达每一个中转节点时,计算下一跳的路由。一直持续到到达 destination 节点。

不需要随包一起传输路由路径,但在每一个节点都计算路由可能导致包传输的延时加大。相比于 all-at-once,计算路由时可利用的历史信息较少,导致可能无法实现某些 all-at-once 路由算法。

4、确定性路由算法

Destination-Tag Routing in Butterfly Networks

在 Butterfly 网络中,目标地址被直接用作路由选择。地址的每一位被依次用作下一跳路由的决定。这期间,source 节点并没有被考虑。

Dimension-Order Routing in Cube Networks

首先计算相对位置

在本拓扑中k为6,因此

标签:路径,基础,第八章,source,算法,计算,节点,路由
From: https://www.cnblogs.com/icwangpu/p/18197427

相关文章

  • python爬虫基础
    前言Python非常适合用来开发网页爬虫,理由如下:1、抓取网页本身的接口相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)此外,抓取网页有时候需要模......
  • Linux基础知识(Ubuntu)
    文件权限意义权限类型1.r可读2.w可写3.x可执行/切换陌路4.-无权限通配符*匹配0个或多个字符串?匹配1个字符[abcd]匹配abcd中间任意一个字符[a-Z]匹配a-Z范围里的任意一个字符[!abc]不匹配方括号里的任何一个字符;与[^abc]一致帮助命令man语法man[m......
  • java01基础入门
    java01基础入门准备javac-versionjava-versioncd..//回到上一级勾选文件扩展名设置Path环境变量IDEA创建工程开发步骤project->module->package->class设置主题、字体快捷键注释关键字基本组成:由数字、字母、下划线(_)和美元符($)等组......
  • CVE-2023-34644锐捷路由器漏洞复现
    前序起由是我想看看近两年主流路由器漏洞是如何挖出来的,然后就找到了CVE-2023-34644,该漏洞影响面比较广,比较新,又有一定难度,下面是相关漏洞说明编号:CVE-2023-34644影响面:锐捷旗下睿易NBS3/5/6/7系列、睿易EG系列、睿易EAP/RAP/NBC系列、星耀EW系列CVSS3.1评分:9.8(严重)固件获取......
  • Python基础02
    Python基础02基础语法字面量掌握字面量的含义代码中,被写在代码中的固定的值,称之为字面量常见的字面量类型我们目前了解:整数、浮点数、字符串这三类即可如何基于print语句完成各类字面量的输出print(字面量),如:print(10),输出整数10print(13.14),输出浮点数13.......
  • 《Spark编程基础》(Scala版)第八章简答题答案(自制)
    8SparkMLlib简答题T1与MapReduce框架相比,为何Spark更适合进行机器学习各算法的处理?答:通常情况下,机器学习算法参数学习的过程都是迭代计算。MapReduce由于延迟高、磁盘开销大、无法高效支持迭代计算,不适合高效的实现机器学习算法;Spark由于立足于内存计算,所以能很好地与......
  • 分布式数据处理-《Spark编程基础》(Scala版)第二章简答题答案(自制)
    2Scala语言基础简答题T1简述Scala语言与Java语言的联系与区别。答:①联系:(1)Scala和Java均运行在JVM之上;(2)Scala和Java均有面向对象语言特点;②区别:(1)Scala是类Java的多范式编程;Java是命令式编程。T2简述Scala语言的基本特性。......
  • 分布式数据处理-《Spark编程基础》(Scala版)第四章简答题答案(自制)
    4Spark环境搭建和使用方法简答题T1请阐述Spark的四种部署模式。......
  • 分布式数据处理-《Spark编程基础》(Scala版)第三章简答题答案(自制)
    3Spark的设计与运行原理简答题T1Spark是基于内存计算的大数据计算平台,请阐述Spark的主要特点。......
  • 分布式数据处理-《Spark编程基础》(Scala版)第七章简答题答案(自制)
    7SparkStreaming简答题T1请阐述静态数据和流数据的区别?答:静态数据是可以看作是静止不动的,适合进行批量计算;流数据是指数据以大量、快速、时变的流形式持续到达的,适合进行实时计算。同时,流计算被处理后,只有部分进入数据库成为静态数据,其余部分则被丢弃。T2请阐述批量计算和......