电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

TC流量控制学习文档

  • 资源ID:189762007       资源大小:77.63KB        全文页数:12页
  • 资源格式: DOCX        下载积分:10金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要10金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

TC流量控制学习文档

traffic control(TC)学习文档11页 共 12页 目 录第一章. 概念21.1 Netem2第二章. 原理62.1 TC62.2 简单的无类队列规则8第三章. 实践应用9第一章. 概念Netem 是linux2.6及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽,传输延迟,丢包等网络故障情况。TC是linux系统中的一个工具,全名为traffic control(流量控制)。TC可以用来控制netem的工作模式。也就是说,如果想使用netem,需要至少两个条件,一个是内核中的netem功能被包含,另一个是要有TC。通过TC,可以控制网络接口发送数据的速率,每个网络接口(如eth0)都有一个队列,用户管理和调度待发的数据。Tc的原理就是,通过设置不同类型的网络接口队列,从而改变数据包发送的速率和优先级,达到流量控制的目的。第二章. 原理Tc用于Linux内核的流量控制。2.1 基本概念流量控制包括以下几种方式:SHAPING(限制)当流量被限制,他的传输速率就被控制在某个值以下。限制值能够大大小于有效带宽,这样能够平滑突发数据流量,使网络更为稳定。shaping(限制)只适用于向外的流量。SCHEDULING(调度) 通过调度数据包的传输,能够在带宽范围内,按照优先级分配带宽。SCHEDULING(调度)也只适于向外的流量。POLICING(策略)SHAPING用于处理向外的流量,而POLICIING(策略)用于处理接收到的数据。DROPPING(丢弃)假如流量超过某个设定的带宽,就丢弃数据包,不管是向内还是向外。流量的处理由三种对象控制,他们是:qdisc(排队规则)、class(类别)和filter(过滤器)。QDISC(排队规则)QDisc(排队规则)是queueing discipline的简写,他是理解流量控制(traffic control)的基础。无论何时,内核假如需要通过某个网络接口发送数据包,他都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把他们交给网络适配器驱动模块。最简单的QDisc是pfifo他不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。但是,他会保存网络接口一时无法处理的数据包。CLASS(类)某些QDisc(排队规则)能够包含一些类别,不同的类别中能够包含更深入的QDisc(排队规则),通过这些细分的QDisc还能够为进入的队列的数据包排队。通过配置各种类别数据包的离队次序,QDisc能够为配置网络数据流量的优先级。 FILTER(过滤器)filter(过滤器)用于为数据包分类,决定他们按照何种QDisc进入队列。无论何时数据包进入一个划分子类的类别中,都需要进行分类。分类的方法能够有多种,使用fileter(过滤器)就是其中之一。使用filter(过滤器)分类时,内核会调用附属于这个类(class)的任何过滤器,直到返回一个判决。假如没有判决返回,就作进一步的处理,而处理方式和QDISC有关。需要注意的是,filter(过滤器)是在QDisc内部,他们不能作为主体。2.2 TC实现原理TC在流量控制中使用的队列分为两类:1 无类队列 2 有类队列。无类队列比较简单,分类队列则有分类和过滤器等概念,比较复杂。 无类队列对进入网卡的数据流统一对待,不进行区分,无类队列形成的队列能够接受数据包以及重新编排、延迟、丢包,它可以对网卡流量进行整形,但是不能细分各种情况,无类队列规定主要有pfifo_fast、tbf、sfq等,无类队列的流量整形手段主要是排序、限速、丢包。有类队列规定则是对进入网卡的数据包根据不同的需求以分类的方式区分对待的分类规定,数据包进入分类队列后,通过过滤器对数据包进行分类,过滤器返回一个决定,队列就根据这个返回的决定把数据包发送到相应的某一类队列中进行排队。每个子类可以再次使用他们的过滤器进行进一步的分类,直到不需要分类为止,数据包才会进入相关类的队列中进行排队。TC 包括三个基本的构成块:队列规定qdisc(queueing discipline)、类(class)和分类器(Classifiers)1)TC中的队列(queueing discipline):用来实现控制网络的收发速度.通过队列,linux可以将网络数据包缓存起来,然后根据用户的设置,在尽量不中断连接(如TCP)的前提下来平滑网络流量.需要注意的是,linux对接收队列的控制不够好,所以我们一般只用发送队列,即“控发不控收”.它封装了其他两个主要TC 组件(类和分类器)。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。最简单的QDisc是 PFIFO,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。不过,它会保存网络接口一时无法处理的数据包。队列规则包括FIFO(先进先出),RED(随机早期探测),SFQ(随机公平队列)和令牌桶(Token Bucket),类基队列(CBQ),CBQ是一种超级队列,即它能够包含其它队列(甚至其它CBQ)。2)TC中的Class类:class用来表示控制策略.很显然,很多时候,我们很可能要对不同的IP 实行不同的流量控制策略,这时候我们就得用不同的class来表示不同的控制策略了.3)TC中的Filter规则:filter用来将用户划入到具体的控制策略中(即不同的class中).比如,现在,我们想对xxa,xxb两个IP 实行不同的控制策略(A,B),这时,我们可用filter将 xxa 划入到控制策略A,将xxb 划入到控制策略B,filter划分的标志位可用u32 打标功能或IPtables的 set-mark (大多使用iptables来做标记)功能来实现。目前,TC可以使用的过滤器有:fwmark分类器,u32分类器,基于路由的分类器和RSVP分类器(分别用于IPV6、IPV4)等;其中,fwmark分类器允许我们使用Linux netfilter代码选择流量,而u32 分类器允许我们选择基于ANY 头的流量.需要注意的是,filter (过滤器)是在QDisc内部,它们不能作为主体。4)TC 的应用流程数据包->iptables(在通过iptables时,iptables根据不同的ip来设置不同的 mark)->TC(class)->TC(queue)5)TC对最对高速度的控制(1 Rate ceiling速率限度参数 ceil 指定了一个类可以用的最大带宽,用来限制类可以借用多少带宽。缺省的ceil 是和速率一样(2 Burst 突发 burst 和cburst参数控制多少数据可以以硬件最大的速度不费力的发送给需要的其他类。网络硬件只能在一个时间发送一个包这仅仅取决于一个硬件的速率。链路共享软件可以利用这个能力动态产生多个连接运行在不同的速度。所以速率和ceil 不是一个即时度量只是一个在一个时间里发送包的平均值。实际的情况是怎样使一个流量很小的类在某个时间类以最大的速率提供给其他类。 注: burst和 cburst 至少要和其子类的值一样大。2.3 TC流量控制在Linux操作系统中流量控制器(TC)主要是在输出端口处建立一个队列进行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子网的网络号的流量控制。流量控制器TC,其基本的功能模块为队列、分类和过滤器。Linux内核中支持的队列有,Class Based Queue ,Token Bucket Flow (TBF,令牌桶过滤器),CSZ ,First In First Out ,Priority ,TEQL ,SFQ ,ATM ,RED。Pfifo_fast(Third Band First In First Out Queue先进先出队列),SFQ(Stochastic Fairness Queueing 随机公平队列),HTB(Hierarchy Token Bucket分层令牌桶)等。报文分组从输入网卡(入口)接收进来,经过路由的查找,以确定是发给本机的,还是需要转发的。如果是发给本机的,就直接向上递交给上层的协议,比如TCP,如果是转发的,则会从输出网卡(出口)发出。网络流量的控制通常发生在输出网卡处。虽然在路由器的入口处也可以进行流量控制,Linux也具有相关的功能,但一般说来,由于我们无法控制自己网络之外的设备,入口处的流量控制相对较难。因此我们这里处理的流量控制一般指出口处的流量控制。流量控制的一个基本概念是队列(Qdisc),每个网卡都与一个队列(Qdisc)相联系,每当内核需要将报文分组从网卡发送出去,都会首先将该报文分组添加到该网卡所配置的队列中,由该队列决定报文分组的发送顺序。因此可以说,所有的流量控制都发生在队列中,详细流程图见图1。 图1报文在Linux内部流程图 有些队列的功能是非常简单的,它们对报文分组实行先来先走的策略。有些队列则功能复杂,会将不同的报文分组进行排队、分类,并根据不同的原则,以不同的顺序发送队列中的报文分组。为实现这样的功能,这些复杂的队列需要使用不同的过滤器(Filter)来把报文分组分成不同的类别(Class)。这里把这些复杂的队列称为可分类(Classiful)的队列。通常,要实现功能强大的流量控制,可分类的队列是必不可少的。因此,类别(Class)和过滤器(Filter)也是流量控制的另外两个重要的基本概念。图2所示的是一个可分类队列的例 子。图2多类别队列 由图2可以看出,类别(Class)和过滤器(Filter)都是队列的内部结构,并且可分类的队列可以包含多个类别,同时,一个类别又可以进一步包含有子队列,或者子类别。所有进入该类别的报文分组可以依据不同的原则放入不同的子队列 或子类别中,以此类推。而过滤器(Filter)是队列用来对数据报文进行分类的工具,它决定一个数据报文将被分配到哪个类别中。第三章. 实践应用TC命令的一般形式:tc qdisc add |change|replace|link dev DEV parent qdisk-id |root handle qdisc-id qdisc qdisc specific parametersqdisc add 添加一个派对规则dev DEV 指定和排队规则相关对应的设备。root 对于TC来说,root就是指“egress”handle 是用户指定的一个编号,其格式是 主编号:次编号。对任何排队规则句柄来说,次编号必需是0.排队规则(qdisc)句柄的一种可用简写形式是“1:”当没有指定次编号时就默认为0.使用TC给一个存在的父class添加子classtc class add dev eth0 parent 1:1 classid 1:6 htb rate 256kbit ceil 512kbitclass add :添加一个class,也可以用del删除dev eth0 :指定我们要关联新的class的设备。parent :指定我们要关联新class的父class句柄classid 1:6 :标识此class的唯一句柄(主编号:次编号)。次编号必需为非零值。htb :带分类的qdisc需要所有子cla

注意事项

本文(TC流量控制学习文档)为本站会员(添***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.