桶子算法

原创 2005年04月25日 22:06:00
 

1.       什么叫桶子算法?

桶子算法是网络通讯的两端看成是一定时间上的具有长度和宽度的桶子;数据在通讯的两端传输时候数据在不停的过去,这个时间可以看成是长度,及从开始通讯到现在已经经过了多长时间,而宽度当然是网络带宽了;二者的乘积可以看成是具有一定体积的桶子。如下图:

2.       用途

桶子算法的目的是为了对发送端的数据流量进行控制。

3.       原理

我们假定这个桶子具有T ms)长度,带宽为B (kbps),那么这个桶子的体积位:

V=T * B

从某个时间T1开始,有数据不断填充这个桶子,但如果数据填充的不是非常快,或者说数据的流量小于网络带宽B的时候,这个桶子永远都填不满,如下列图表示:

 

如图所示我们这个桶子的体积随着时间在增加,从T1时刻的V1B*T1-T0))变化到T2时刻的V2B*T2-T0)),桶子的体积增加了B*T2-T1),如果在这段时间内,实际的数据流量小于这个增量,那么桶子始终有空闲的地方,这样桶子就不会满,实际上在这种情况下桶子算法对流量是控制不了的。

如果在T2-T1时间内,网络的实际数据流量很大,即数据在很短的时间内(小于T2-T1)就将填满了这段容量,那么桶子算法开始发挥流量控制的作用。

在发送数据的时候需要检测桶子的可用大小,如果桶子的可用大小为0表示已经不能再向这个桶子填充任何数据了,必须等待桶子恢复到一定的体积之后才能再接收数据(我们假设为半桶的体积);当桶子恢复的时候我们又可以向这个桶子填充数据了,但如果又很快满了,那么必须又停止下来等待桶子恢复。桶子算法就是通过发发停停来控制流量的。当然如果你将带宽设置的大一些,桶子的体积就大一点,就不那么容易被填满,也能够更快速的发送数据。

4.       注意
桶子算法又几点需要注意:

l         桶子的最大容积;这是由时间来决定,我们假定的T,这个值的选择也决定了你可以向桶子发送多大的数据,当然这个时间在不同的网络环境下取值是不同的;在有的网络下,即使你设置的很大,但下面的套接字层已经没有办法发送更快了。

l         恢复算法的采用;一般桶子满了之后需要等待一段时间,如果设置一个时间让网络不至于太闲或造成数据的突然高峰,也不至于让数据不停的跳动,确实很重要。

l      这个流量控制只能对物理带宽以内的流量进行控制。

一个基数排序(桶子算法)算法的例子

基数算法基本思想:将一个数组先按个位排序,整合一下;再按十位排序。。。。(当然也可以从高位到低位) 该算法时间复杂度约为O(n*数的位数) #include    #include    ...
  • qishihah
  • qishihah
  • 2011年10月16日 10:32
  • 226

数据结构排序系列详解之九 桶排序

基本思想: 假定输入是由一个随机过程产生的[0, M)区间上均匀分布的实数。将区间[0, M)划分为n个大小相等的子区间(桶),将n个输入元素分配到这些桶中,对桶中元素进行排序,然后依次连接桶输入0...
  • S04103037
  • S04103037
  • 2013年08月16日 11:05
  • 2055

Algorithm Gossip(基数排序,俗称桶子法)

基数排序的方式可以采用LSD(Least significant digital)或MSD(Most significant digital),LSD的排序方式由键值的最右边开始,而MSD则相反,由键...
  • holymaple
  • holymaple
  • 2013年02月11日 11:55
  • 426

浅谈排序算法学习之基数排序,又称桶子排序(二)

桶子排序在我看来是很强大的排序算法,和接下来要讲的希尔排序一样,比较方便,快速。不过桶子排序更强大点,不存在大小的比较,只需要依次讲数字放入不同的桶中。废话不多说,开始讲桶子排序的基本思想。  ①假...
  • zangge2009
  • zangge2009
  • 2014年01月24日 22:02
  • 382

算是原创吧!基数排序法,又叫桶子排序法!

题目:基数排序(radix sort)是属于“分配式排序”(distribution sort),基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯...
  • xiongzaiwoxin
  • xiongzaiwoxin
  • 2014年09月03日 19:42
  • 315

算法算法算法尼玛

一定要抽时间好好看下。。。丫的 头疼死了
  • evi10r
  • evi10r
  • 2011年08月07日 10:12
  • 835

算法 + 算法 = 新算法

道生一,一生二,二生三,三生万物。—道德经 我们都知道,基础的搜索算法有深搜DFS和广搜BFS。它们的搜索效率都差不多,都是O(E)。只是对于不同的搜索特点,有各自适用场合。 假如有这样一棵树,...
  • mishifangxiangdefeng
  • mishifangxiangdefeng
  • 2015年10月24日 15:43
  • 2028

算法!算法!算法!

原文地址:算法!算法!算法!作者:jorchid最近在复习算法,写点东西。   一、分治 什么是分治?嗯……4个人打牌,发现丢了一张牌,是哪张呢?如果你是这样解决的:把牌分成四份分别给四个人,每个人...
  • fandongguang0702
  • fandongguang0702
  • 2016年06月26日 10:47
  • 148

Manacher算法总结

Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。 相对于前...
  • dyx404514
  • dyx404514
  • 2014年12月21日 16:10
  • 13308

算法列表 (转载)

http://en.wikipedia.org/wiki/List_of_algorithms The following is a list of algorithms alo...
  • u014035838
  • u014035838
  • 2014年12月31日 09:31
  • 2156
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:桶子算法
举报原因:
原因补充:

(最多只允许输入30个字)