扩散法及其改进

扩散法是一种静态路由算法,每一个输入的分组都被从除输入线路之外的所有其它线路上转发出去.扩散法显然会产生大量的分组副本,因此必须有一些办法来抑制无限的转发.
1.一种办法是在分组头中携带一个跳数计数器,分组每到一个节点其跳数计数器就减1,当计数器为0时分组被丢弃.计数器的初始值可以设为通信子网的直径,即相距最远的两个节点之间的跳数.
2.另一种办法是记住哪些分组已经转发过了,从而确保一个分组不会被同一个节点转发两次.这要求源路由器从主机收到一个分组后,将一个序号放入分组头中,同时每一个路由器对于每一个源路由器都要维护一张序号表,记录从每一个源路由器上已经收到的分组的序号.每当一个路由器收到来自某个源路由器的分组时,就用分组的序号去查找该源路由器的序号表,如果序号已在表中则该分组被丢弃.为了防止序号表过大,序号表中还应增设一个计数器k,表示序号直至k的分组都已经转发过了,从而不需要保留序号小于k的序号.

尽管扩散法在很多应用中都不实用,但它确实也有一些适用的地方.比如由于扩散法的鲁棒性(robustness)很好,它在战场的军事网络中特别有用;其次扩散法在本质上是一种广播式的路由算法,因此在一些要求广播传输的应用中也很有用,如分布式数据库的同步更新;在无线网络中位于发送站功率范围内的所有站都能收到发送站发送的消息,这其实也是一种扩散的形式,这个特性常被一些算法所利用;由于扩散法总能找到最短通路,因此其它路由算法都可以和扩散法进行比较,以衡量各自的算法性能.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

h5页 点击返回时关闭_在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口...

最近在使用微信、支付宝、百度钱包实现网页支付,对支付成功将自动关闭页面,对于支付失败,将显示错误信息。当在错误页面的时候,点击返回或者Android物理按键上一步的时候,将关闭页面。在微信、支付宝、百度钱包中&…

串操作指令

串操作指令可以方便对一组连续的数据进行操作。串操作后自动根据DF标志位修改ESI和EDI,DF 0时,ESI,EDI递增,DF 1时,ESI,EDI递减。串操作指令有2组,1组实现数据串传送,另1组实现数据…

IS-IS基本配置

实验内容:现在网络中有4台路由器,用户希望利用这4台路由器通过IS-IS协议实现网络互联,并且因为R1和R2性能相对较低,所以还要使这两台路由器处理的数据信息相对较少。 网络拓扑: 实验分析: 根据题意可知R1和…

高并发高流量网站架构

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮。以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们。但Web2.0以用户为导向的理念,使得新生的网站有…

多处理机的进程调度方式

一.自调度方式 二.成组调度方式 三.专用处理机分配方式

枚举类型用法_Mybatis-plus常见用法总结三

前面已经介绍了Mybatis-plus基本用法,今天为大家分享一些Mybatis-plus高级应用逻辑删除自动注入枚举类型处理Sql注入器多租户表结构CREATE TABLE sys_role ( id varchar(64) NOT NULL COMMENT 主键, code varchar(64) NOT NULL DEFAULT COMMENT 角色编码, name …

NOIP 2011 Day2

tags: 贪心模拟NOIP categories:信息学竞赛总结计算系数 Solution 根据二项式定理,\[ \begin{align} (ab)^n\sum_{k0}^nC_{n}^{k}a^kb^{n-k} \end{align} \] 那么\[ \begin{align}(axby)^k&\sum_{p0}^kC_{k}^p(ax)^p(by)^{k-p}\\ &\sum_{p0}^k(C_{k}^pa^pb^{k-p})x^py^…

VS Code的golang开发配置 之 代码提示

之前用VS Code的时候,发现自己的代码的提示一直不好,换用JetBrain的Goland的代码提示是好了,但是比较占用资源。在网上找了一些资料,发现很多人也是遇到第三方或者自己的代码无法提示的情况,但是都没有下文了。后来发现…

使用oprofile分析性能瓶颈

使用oprofile分析性能瓶颈 1. 概述oprofile 是 Linux 平台上,类似 INTEL VTune 的一个功能强大的性能分析工具。其支持两种采样(sampling)方式:基于事件的采样(event based)和基于时间的采样(time based)。基于事件的采样是oprofile只记录特定事件&#…

什么是死锁

死锁是多个进程在运行过程中因竞争资源时产生的一种僵局。 各并发资源彼此等待对方拥有的资源,且在得到对方资源前不释放自己的资源。

python数据工程师 面试题_阿里P7工程师耗时两天整理的292道python大厂面试题,内含解析!...

前言相对于python大家应该都不会陌生吧!现在java跟python可以算的是势均力敌了,所以现在学习python 的小伙伴也是越来越多了,可是学完之后就能找到称心如意的工作了吗?很多小伙伴学习Python的时候感觉很简单,但是到了去…

数组复制

在Java里面,可以用复制语句”AB”给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变。 1.使用FOR循环,将数组的每个元素复…

IntelliJ IDEA 对于generated source的处理

IntelliJ IDEA 对于generated source的处理 学习了:https://stackoverflow.com/questions/5170620/unable-to-use-intellij-with-a-generated-sources-folder 如果有generated source ,例如使用gRPC过程中生成的,可以使用鼠标右键点击使之成为…

产生死锁的原因

一 竞争资源,但是资源的数目不能满足进程的需要。 二 进程间推进顺序非法,进程在运行过程中请求和释放资源的顺序不当。

fabric shim安装合约_hyperledger fabric 开发第一个智能合约

一、编写智能合约代码HelloWorld.go,go语言实现,代码很简单,每个合约包含两个方法,Init、Invoke。package mainimport ("fmt""github.com/hyperledger/fabric/core/chaincode/shim""github.com/hyperled…

不能干一辈子开发???

程序员的职业生涯之我见 总是听到下面的论调 程序员干不了一辈子! 程序员怎么也不能干一辈子吧! 在中国程序员还能干一辈子? 过了(30)40我就干不动程序员了! 每每听…

分布式缓存的25个优秀实践与线上案例 done

杨彪,蚂蚁金服技术专家,《分布式服务架构:原理、设计与实战》和《可伸缩服务架构:框架与中间件》作者。近10年互联网和游戏行业工作经验。本文节选自即将出版的《可伸缩服务架构:框架与中间件》一书,作者&a…

服务器性能估算参考(硬件-应用服务器)

2019独角兽企业重金招聘Python工程师标准>>> Environment(2013-05-24) two identical machines via a GB-Ethernet link a client machine generating HTTP requests with wrk as the load generator a server machine running the respective “benchmarkee”all …

产生死锁的四个必要条件

(1)互斥条件:进程对所分配到的资源不允许其他进程进行访问,若其他进程访问该资源,只能等待,直至占有该资源的进程使用完成后释放该资源 (2)请求和保持条件:进程获得一定的…

下拉选择_在管理Excel中实现联动下拉选择

在系统中常常出现这样的情况:由于下拉选择的数量太多了,难以高效选择。为此管理Excel通过通过引入多级联动选择的方式来减少下拉选择的困难度。先看下使用效果:联动下拉选择这个功能,在管理Excel中可以通过比较简单的配置方法实现…