上一节介绍了队列的概念(秒懂确定性网络之玩转队列(上)),本节分析队列机制的演进过程,从单队列伸长到多队列,从柔件队列伸长到硬件队列,从柔件定义队列伸长到可编程队列,以及每用

让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

秒懂确定性网络之玩转队列(中)

上一节介绍了队列的概念(秒懂确定性网络之玩转队列(上)),本节分析队列机制的演进过程,从单队列伸长到多队列,从柔件队列伸长到硬件队列,从柔件定义队列伸长到可编程队列,以及每用户、每队列、每流、每包等队列调度粒度。

队列的演进 1. 单队列到多队列

当出端口只有一个队列时,一切的包都被放在统一个队列进走调度,流与流之间缺乏隔绝性,和缓导致乱序和抖动,因此交换机渐渐从单队列发展到多队列,行使多个队列来保证隔绝性。典型的多队列是优先级队列,其具有0-7共八个队列优先级,且平时将7定义为最高优先级。多队列在调度时,不单要考虑单个队列中包的调度递次,还要考虑队列之间的调度递次,即选择哪一个队列为出端口传输队列,常用的传输选择策略[1]有厉格优先级(SP, Strict Priority)、加权轮询(WRR,Weighted Round Robin)、加权公平队列(WRQ,Weighted Fair Queuing)。

SP调度就是厉格依照队列优先级的高矮递次进走调度,只有高优先级队列中的报文完整调度完毕后,才调度矮优先级队列。其利好是关键交易或许优先被传输以降矮反映贻误,其缺陷是拥塞发生时,伪如高优先级队列中赓续有报文存在,那么矮优先级队列中的报文将赓续得不到服务。

RR调度即采用轮询的手法,伪如轮询的队列不为空,则从该队列取走一个报文;伪如该队列为空,则直接跳过该队列,调度器不渴看。轮询保证了队列传输机会的均等性,WRR在轮询的基础上为队列加加权重,根据权重初首化发包计数器,权重越大,调度机会越多,能被传输的包就越多;比如三个队列的权重为50%、25%、25%,则50%权重的队列传输机会比另外两个队列多一倍,能多发一个包。WRR的利好是解决了SP队列中矮优先级队列长时间得不到服务的题目,缺陷是其依照报文个数进走调度,会原因报文长度转变导致无法保证每个队列固定的带宽。

WFQ加权公平队列为使带宽分配更加公平,不再像WRR那样以报文数为单位,而是以比特数为单位进走调度,从而防止长报文比短报文获得更多带宽,并缩幼大幼报文共存时的时延抖动。

此外,为了实现更好的隔绝性,已足差别维度的隔绝需求,还或许采用多级分层队列,各级可采用差别的传输选择算法,实现厚实的调度策略。比如近年来挑出的分层中心无状态公平队列HCSFQ,以及异步流量整形器ATS。

2. 柔件队列到硬件队列

上面挑到的队列策略都属于柔件队列,流量开始经历802.1p/DSCP/IP等字段在分类器进走优先级映射,进入差别的柔件队列,然后在调度器根据差别的调度策略进走出队;出队后进入到硬件队列中,末尾从接口发送传输到下一跳。实际上,柔件队列中存放的并不是准确的数据包,而是数据包的指针,指针就好比是数据包的名字,准确的数据包如故在缓冲区中,于是数据包的大幼并不影响队列的长度,一个1500字节的数据包和一个10K的数据包在队列里占用的队列长度均为1,柔件队列的总队列长度或许用队列管理工具调整[2]。

硬件队列是Tx输出队列,内中传输的是准确的数据包,其采用前辈先出FIFO的手法,实面前目今接口的ASIC芯片上。每个物理接口上都有且仅有一个硬件队列,且不可被队列管理工具管理。硬件队列的深度平时只有2-3个包,当硬件队列别国被充裕或者为空时,表明接口别国发生拥塞,平时数据不会经过柔件队列,而会被直接放入硬件队列进走传输。

3. 柔件定义队列与可编程队列

一方面,面前目今商用交换机里的队列调度策略都是选配的,即只声援诸如在某个端口关闭SP队列、开启WFQ队列之类的操作,无法明达地定制特定的队列调度策略,因此柔件定义队列的想法被挑出。其借鉴柔件定义网络中经历OpenFlow南向接口下发流外来实时转变转发走为的思维,渴看在限定器中实现诸如OpenQueue[3]的接口,定义入队、调度、出队等基本原语,从而或许实时的进走加加队列、删除队列、转变优先级、转变调度算法等操作。理论上或许在每个端口定义65000[4]个伪造捏造队列,并采用差别的调度算法。

另一方面,P4等可编程交换机的崛首,激发了人们在可编程交换机中创新队列调度算法的设想。可编程队列中的可编程紧要作用在流量管理器(TM, Traffic Manager)中的调度器上,经历转变数据机关、转变硬件设计等手法,针对特定场景实现更高效的队列算法。在2016年的SIGCOMM大会上MIT首次行使可编程PIFO队列[5]实现了WFQ等调度算法的调度器,并声援10Gbps的线速转发能力;Sharma挑出可编程日历队列(Calendar Queues)调度器[6]来实现公平队列、pFabric等各栽调度算法;比来SP-PIFO[7]调度器操纵SP厉格优先级队列实现了近似PIFO压入先出队列的调度成绩,升迁了队列在答对海量流量时的可扩展性。

4. 队列调度的粒度

队列调度的粒度是多多调度算法的兵家必争之地,由粗粒度到细粒度大致可分为每端口、每用户、每交易类、每队列、每流、每包。

每端口粒度的调度基本只能在出队时做端口限速,别国调度算法;每用户调度或许在边缘侧流量接摩登保证用户交易间的卓着隔绝性;在入队映射时,用户的多栽交易流可能被分类进差别的优先级队列;每队列调度即如厉格优先级调度般的以队列间的调度递次为最幼调度单位;每流调度或许识别流ID,从而在差别流出队时进走每流粒度的限速和整形;每包调度是最细的调度粒度,比如PIFO队列,其能转变一个包在单个队列中的列队递次。

调度粒度越细,网络服务质量越好,但所必要的支出也越大,比如每流调度频频必要维护每流的状态,缺乏可扩展性,当有成千上万条流必要调度时,调度性能会变得很矮。差别的调度粒度或许通太甚层的多级队列调度来综相符,比如下图的HQOS (Hierarchical Quality of Service)[8]技术。

下一节将介绍确定性网络中的队列增强机制,更多内容请看下回分解。

 



上一篇:中国最长煤层气长输管道神安管道终段开工建设    下一篇:保证全国物流运走顺畅!多部分发话    


Powered by 999zyz玖玖资源站免费中文-玖玖资源365-玖玖爱这里只有精品视频 @2013-2022 RSS地图 HTML地图