ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

改进“尽最大努力交付”服务

2021-09-16 22:37:11  阅读:261  来源: 互联网

标签:R1 努力 队列 权标 改进 分组 交付 漏桶 路由器


改进“尽最大努力交付”服务

  • 使互联网提供服务质量
    • 服务质量QoS是服务性能的总效果,此效果决定了一个用户对服务的满意程度。
    • image
    • 图中局域网表示两台主机H1,H2通过非常简单的网路(路由器R1和路由器R2)分别向另外两个主机H2和H4发送数据。连接R1和R2的链路带宽为1.5Mbit/s。现在考虑以下四种情况:
      • 一个1Mbit/s的实时语音数据,而H2向H4传送低优先级的FTP文件数据。两台主机发送的数据都在路由器R1的输出队列中排队,若突然有一个很大的FTP数据来到R1,就会把输出队列全部占满,后面达到路由器的R1的实时语音就会把音频分组丢弃掉,显然这是不合理的。因此需要增加一个机制,需要给不同性质的分组打上不同的标记。这样当H1和H2的分组进入路由器R1时,R1就能够识别H1实时的数据分组,并使这些分组以高优先级进入输出队列,而仅仅在队列有多余的空间的时候才允许低优先级的FTP数据分组进入。
      • 一个1Mbit/s的实时音频数据和一个高优先级的FTP服务。路由器根据某些规则(例如:根据发送数据的地址)对输入的分组进行分类,然后对不同类别的通信量给予不同的优先级。
      • 一个数据率异常的实时语音数据和FTP文件数据。主机H1的速率突然不正常的增加到1.5Mbit/s或更高,那么这会使得FTP低优先级的数据无法通过路由器R1,因此,应当使路由器能够对某个数据流进行通信量的管制,为了更加合理利用网络资源,应该在路由器中在增加一中机制,:调度。我们可以利用调度动态的为不同的应用分配不同的带宽。
      • H1和H2都发送数据率为1Mbit/s的实时数据。则每个数据流将平均丢失25%的分组。比较合理的做法是让一个数据流通过1.5Mbit/s的链路,而阻止另一个另一个数据流的通过。这就需要另一个机制:呼叫接纳。
    • 调度和管理机制
      • 调度机制:
        • “调度”指的是排队的规则,路由器默认的排队规则为FIFO,当队列已满的时候,后到达的分组就会丢弃掉。FIFO最大的缺点是不能区分时间敏感分组和一般分组。并且也不公平,排在长分组后面的分组需要等待很长的时间
        • 在先进先出的基础上增加按优先级排序,就能使得优先级高的分组优先得到服务。
        • image
        • 简单的按照优先排列会带来一个缺点,这就是在高优先级的队列中总是有分组时,低优先级中的队列中的分组就长期得不到服务。这就不太公平。公平队列FQ(Fair Queuing)可以解决这个问题,公平排队是对每一个种类的分组设置一个队列,然后轮流使每一个队列一次只能发送一个分组,对于空的队列就跳过去。但公平队列也有不公平的地,就是长分组得到的服务期时间长,而短分组就比较吃亏,并且公平队列并没有区分分组的优先级。
          • 为了使高优先的队列中的分组有更多的机会得到服务,可以增加队列权重的概念,这就是加权公平队列WFQ(Weighted Fair Queuing):
          • image
          • WFQ是这样工作的:分组到达后就进行分类,然后送交与其类别对应的队列(图中假设为3类)。三个队列按顺序依次把队列的首部的分组发送到链路。遇到队列空就跳过去。但根据各类别的优先级不同,每个队列分配到的服务时间也不同。可以给队列i指派一个权重w(i),于是队列i得到的平均服务时间为image
            ,这里image
            是对所有非空队列的权重求和。这样路由器输出链路的数据率(即带宽)为R,那么队列i将得到的有保证的数据率Ri为:
            • image
      • 管理机制
        • 对于一个数据流,我们可以根据以下三个方面进行管制
          • 平均速率:网络需要控制一个数据流的平均速率。这里的平均速率是指在一定的时间间隔内通过的分组数。但这个时间间隔的选择也说明了这个指标的严重程度。
          • 峰值速率:峰值速率限制了数据流在非常短的时间间隔内的流量。峰值速率也同受到链路带宽的限制。
          • 突发长度:网络业限制在非常短的时间间隔内连续注入到网络中的分组数。
        • 要在网络中对进入的分组流按照以上三个指标进行管制,可以使用非常著名的漏桶管制器(leaky bucket policer)简称漏桶,工作原理如图所示:
          • image
          • 漏桶是一个抽象的机制。在漏桶中可以装入许多权标(token),但最多装入b个权标,只有漏桶中的权标数小于b个,新的权标就以每秒r个权标的恒定速率加入到漏桶中,但若漏桶中已经加入了b个权标,则新的权标就不能再加入。漏桶的权标数最大为b。
          • 漏统管理分组流进入到网络的过程如下。分组进入到网络前,先要进入一个队列中等候漏桶中的权标。只要漏桶中有权标,就可以从漏桶中取走一个权标,然后就准许一个分组从队列进入到网络。若漏桶中没有权标,就要等待新的权标进入到漏桶中,再把这个权标拿走后才能准许下一个分组进入网络。注意,准许进入网络并不是进入到网络,因为分组进入网络还需要时间,这取决于输出链路层的带宽和分组在输出端的排队情况。
          • 假定在时间间隔为t中把漏桶中的全部b个权标全部拿走,但在这个时间间隔内漏桶有装入了rt个新的权标,因此在任何时间间隔t内准许进入网络的分组数最大值为rt+b,控制权标进入桶的速率r就可以对分组进入网络的速率进行管制。
        • 漏桶机制与加权公平排队相结合
          • 把漏桶机制与加权公平排队相结合,可以控制队列中的最大时延。
          • 现假定有n个分组流输入到一个路由器中,复用后从一个链路输出。每一个分组流使用漏桶机制进行管制,漏桶参数为ri和bi,i=1,2,3,....,n。如图:
          • image
          • WFQ可以使每一个分组流到合适的数据率,那么当分组通过漏桶后等待WFQ服务的时候,一个分组所经受的最大时延是多少?
          • 现在考虑分组刘流i,假定漏桶i已经装满了bi个权标,就表示这个分组i不需要等待就可以从漏桶中拿走bi个权标,因此bi个分组可以立即从路由器中输出,但分组i得到的数据率是由公式给出的,这bi个分组最后的一个分组所经受的时延最大,它等于传输这bi个分组所需要的时间dmax,即:
          • image

标签:R1,努力,队列,权标,改进,分组,交付,漏桶,路由器
来源: https://www.cnblogs.com/xiaomitu/p/15302528.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有