拥塞管理时的带宽保证的rtl实现问题
请教一下拥塞管理时的带宽保证的rtl实现问题:
一个具体的应用场景:1000条队列,共享10gbps带宽,提供拥塞产生时的带宽保证,比如
第一条队列占300mbps,第二条队列500mbps,
一般有哪些典型的便于rtl实现方法哪?
初步考虑用drr算法,但思路不够清晰,各位,有没有多队列时 drr 算法 rtl实现相关的
材料或者思路哪?
1000个队列的RTL实现?那只能两级调度了,每级32个队列,DRR实现不太复杂
你缺乏tm设计最基本的概念啊
tm有推和拉两种方式来做调度
带宽保证你可以用一个计数器来保证
是啊,没有沉淀和积累,刚开始做这块,头疼着哪。
能具体解释一下推和拉这两个概念吗?或者简单的举个例子,给个比较好的材料,link之
类的。
另,带宽保证如何用一个计数器来实现吗?是用令牌桶的着色?
推和拉是否是指:
推:在入队前根据令牌桶进行分析,如果大于最大带宽的直接丢弃;
拉:先把数据存储起来,根据令牌桶的情况进行选择输出?
The key is the hardware implementation of linked-list, then xxRR, there should be a very simple wrr rtl in METEC i wrote before.
for TM/QoS basic concept u can refer any computer network books
for TM basic hardware implementation concept u can refer the following two books:
High Performance Switches and Routers, H. Jonathan Chao/Bin Liu, 2007, Chapter 4 TRAFFIC MANAGEMENT; online pdf copy available everywhere;
Quality of Service Control in High-Speed Networks, H. Jonathan Chao/Xiaolei Guo,2002, copy version available in taobao.com
随便搜下路由器,推,拉差不多吧
我记得思科主要是推,juniper是拉的方式
推比较难做而且耗资源,拉的响应慢而且抖动比较难做
好的,
咨询一下,已有的tm 实现效果是怎样的?
我偶尔看到有人说tm一直没有取得很好的效果。
另外,从算法上看,xrr算法的缺点是什吗哪?有没有比较好的论文可以推荐呢?
tm搞了那吗多年,有没有开放的实现方案的介绍哪?
呵呵,都是赵教授的书,不知道他现在忙什么呢
我的初步实现思路(主要是drr算法,很粗糙 ,欢迎大家拍砖 :) )
入口1000个 fifo,利用空信号来表示队列里是否有数据;
一个队列对应一个令牌桶,表示当前允许队列发送的数量;
从队列0 -- 999 依次采用轮训的方式
proc:
if(队列非空 && 队列首包长度<= 对应令牌数){
出队列,更新令牌数
}else{
选取下一个队列;
goto proc;
}
问题:如果队列1 的保证带宽是200mbps,令牌分配时:多长时间分配依次,每次分配多少比较好;
这中处理方法能否很好的支持拥塞时的带宽保证哪?可能存在什吗问题?
不好意思,最近被调去做别的事情,刚回来啊
我期望做的事情是这样的:
1000个队列,每个队列可以设定保证带宽,最大带宽,优先级
保证带宽:如果用户指定,即使网络拥塞,也要保证这个队列面对的数据流能
满足这个带宽;
最大带宽:无论网路状况如何,这条队列里的数据流不能超过这个带宽限定;
优先级:对于处于保证带宽和最大带宽之间的流量需求,根据用户配置优先级
来占用系统所有保障之外的可用空闲带宽;
我没搞清楚的几个概念:
1)流量监管是否可以达到这个效果?(个人感觉可以,只是有点)
2)如果要做流量整形:需要存储,调度和限速,有这吗几个问题:
a)外部数据存储:初步考虑使用外存,并采用链表的形式来维护;但入如果在
10gbps的以太网平台上,如果我们想做到比较理想的拥塞控制与整形的效果,需要存储
多长时间的数据包哪?如何存储才能高效?
b)对于调度,初步考虑使用drr,通过维护一个active list 来记录当前需要
处理的队列号,但没搞懂:quantum ; deficit counter这两个参数应该根据什吗进行
设置
c)如果不使用drr,而是使用rr ,然后通过一个三色令牌桶对当前队列流量进行
判断,
if(小于保证带宽){
置入优先级队列queue0;
}else(介于保证带宽和最大带宽之间){
根据优先级分配到不同的优先级队列
}else{
置入最低优先级队列
}
之后有一个专门模块,对上面的队列按照绝对优先级进行输出处理;
d)三色令牌桶如何做才会有效?比如令牌桶的分配间隔?
e)qos实现的精度和那些东西有关?
f)有没有比较靠谱的qos rtl实现的paper可以推荐一下呢?
qos我们没有任何经验,所以想问一下,这样做大概会有什吗问题哪?