随机早期检测RED(Random Early Detection)算法--两个门限防抖动-阿里云开发者社区

开发者社区> 科技小能手> 正文

随机早期检测RED(Random Early Detection)算法--两个门限防抖动

简介:
+关注继续查看

RED算法其实很简单的,简单说就是防止网络拥塞 的,一般来讲它是端到端的TCP拥塞控制的补充,用于路由器的居多,因为端到端的拥塞控制仅仅负责一条虚电路,额外可以探测网络通路情况,但是却不能保证 每个端点的这种控制行为是一致的或者使能的,因此必须存在一种类似于监督机制的拥塞控制机制,在路由器上监督和管理一切数据包,而不能天真的相信TCP端 到端拥塞控制会做的很好,事实证明,它做的并不是很好。

路由器的QOS算法有很多,包括很多队列机制,这里由于不是重点就不说了,RED算法是与之相似但不同的一个,它旨在能预测到网络将要拥塞,而提前采取丢 包动作,而不是等到网络实际拥塞了以后再采取措施,这里的方式和操作系统的内存置换策略有点类似,因为在操作系统内核中也是需要提前预知内存将不足,而不 是到实际内存不足的时候再腾地方,这是一种以保障持续运行为目的的策略,RED算法也是,典型的实现就是设置一个经验性的阀值,一旦剩余内存低于这个阀值 (对于内存置换算法)或者网络包的总长度大于这个阀值(对于RED算法),那么就认为必须采取措施了,采取措施的结果就是统计值落入这些阀值之下,但是这 样好吗?虽然可以确保系统不会撑死,但是会引起系统剧烈抖动,以内存置换为例,剩余内存刚小于阀值的时候就被发现了,然后去置换内存页面,但是还没有置换 几个页面,剩余内存就大于阀值了,毕竟发现的早,剩余内存还没有到稀缺的地步,此时就停止了置换,在系统几乎满载的情况下,然后没过一会儿,剩余内存又小 于阀值了,如此反复...网络包的例子就不举了。

实际上,在应用中是用两个阀值而不是一个阀值进行管理的,两个阀值可以有效防止抖动的发生将震动从一个点扩展到了一个区间,一个阀值的算法会引起抖动是因 为数值的课徘徊路径太短,就是一个点,一个点只有左右两个自由度,太左了就要右一点,反之就要左一点,没有缓冲的余地,而两个阀值有效的拉长了数值的徘徊 区间,在此区间内数值是可以徘徊的,徘徊的过程是系统已经出问题但是还没有到解决问题的时候的意思,体现了一种积累的效果,同时也是一种懒惰的体现。下面 看一下RED算法: 
Avq=0,Count=-1; 
当有分组到达时: 


If( 队列空)

 

 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1273524




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【开源】QuickPager ASP.NET2.0分页控件V2.0.0.4 增加了几个分页算法
================================ 欢迎转载,但是请注明出处。本文出自博客园 。谢谢合作! ================================                最近忙一个项目,没有太多的时间来升级分页控件。
818 0
【大创_社区划分】——PageRank算法的解析与Python实现
一、什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Page(google 产品经理),因为他是这个算法的发明者之一,还是google CEO(^_^)。
1096 0
遗留物检测算法及实现
        从最终实现的角度来看,说不上是遗留物检测,至多是静止目标检测【运动物体长时间滞留检测】。实验室同学搞毕业设计,帮忙弄弄,也没弄成。          本文将分别给出老外论文+对应的代码【在老外论文基础上改进的】和国内的论文+代码【失败,能力不行】。
1117 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载