您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > TC(linux下流量控制工具)详细说明及应用实例
linux下流量控制工具TC详细说明及应用实例目录一、TC的安装......................................................................................................................................................1二、TC原理介绍..................................................................................................................................................1三、TC规则..........................................................................................................................................................23.1、流量控制方式.....................................................................................................................................23.2、流量控制处理对象.............................................................................................................................23.3、操作原理.............................................................................................................................................33.4、命名规则.............................................................................................................................................43.5、单位.....................................................................................................................................................4四、TC命令..........................................................................................................................................................5五、具体操作........................................................................................................................................................55.1、基本实现步骤.....................................................................................................................................65.2、环境模拟实例.....................................................................................................................................65.2.1.建立队列..................................................................................................................................65.2.2.建立分类..................................................................................................................................65.2.3.建立过滤器..............................................................................................................................75.2.4.建立路由....................................................................................................................................75.2.5.监视..........................................................................................................................................85.2.6.维护........................................................................................................................................10六、dms小组应用场景一个实例.....................................................................................................................11参考资料..............................................................................................................................................................12一、TC的安装TC是linux自带的模块,一般情况下不需要另行安装,可以用mantc查看tc相关命令细节,tc要求内核2.4.18以上。二、TC原理介绍Linux操作系统中的流量控制器TC(TrafficControl)用于Linux内核的流量控制,它利用队列规定建立处理数据包的队列,并定义队列中的数据包被发送的方式,从而实现对流量的控制。TC模块实现流量控制功能使用的队列规定分为两类,一类是无类队列规定,另一类是分类队列规定。无类队列规定相对简单,而分类队列规定则引出了分类和过滤器等概念,使其流量控制功能增强。无类队列规定是对进入网络设备(网卡)的数据流不加区分统一对待的队列规定。使用无类队列规定形成的队列能够接受数据包以及重新编排、延迟或丢弃数据包。这类队列规定形成的队列可以对整个网络设备(网卡)的流量进行整形,但不能细分各种情况…。常用的无类队列规定主要有pfifo_fast(先进现出)、TBF(令牌桶过滤器)、SFQ(随机公平队列)、ID(前向随机丢包)等等。这类队列规定使用的流量整形手段主要是排序、限速和丢包。分类队列规定是对进入网络设备的数据包根据不同的需求以分类的方式区分对待的队列规定。数据包进入一个分类的队列后,它就需要被送到某一个类中,也就是说需要对数据包做分类处理。对数据包进行分类的工具是过滤器,过滤器会返回一个决定,队列规定就根据这个决定把数据包送入相应的类进行排队。每个子类都可以再次使用它们的过滤器进行进一步的分类。直到不需要进一步分类时,数据包才进入该类包含的队列排队。除了能够包含其它队列规定之外,绝大多数分类的队列规定还能够对流量进行整形。这对于需要同时进行调度(如使用SFQ)和流量控制的场合非常有用。Linux流量控制的基本原理如下图所示。接收包从输入接口(InputInterface)进来后,经过流量限制(IngressPolicing)丢弃不符合规定的数据包,由输入多路分配器(InputDe-Multiplexing)进行判断选择:如果接收包的目的是本主机,那么将该包送给上层处理;否则需要进行转发,将接收包交到转发块(ForwardingBlock)处理。转发块同时也接收本主机上层(TCP、UDP等)产生的包。转发块通过查看路由表,决定所处理包的下一跳。然后,对包进行排列以便将它们传送到输出接口(OutputInterface)。一般我们只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以我们可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。注意,64位机器上,先执行下面命令:ln-s/usr/lib64/tc//usr/lib/tc三、TC规则3.1、流量控制方式流量控制包括以下几种方式:SHAPING(限制)当流量被限制,它的传输速率就被控制在某个值以下。限制值可以大大小于有效带宽,这样可以平滑突发数据流量,使网络更为稳定。shaping(限制)只适用于向外的流量。SCHEDULING(调度)通过调度数据包的传输,可以在带宽范围内,按照优先级分配带宽。SCHEDULING(调度)也只适于向外的流量。POLICING(策略)SHAPING用于处理向外的流量,而POLICIING(策略)用于处理接收到的数据。DROPPING(丢弃)如果流量超过某个设定的带宽,就丢弃数据包,不管是向内还是向外。3.2、流量控制处理对象流量的处理由三种对象控制,它们是:qdisc(排队规则)、class(类别)和filter(过滤器)。QDisc(排队规则)是queueingdiscipline的简写,它是理解流量控制(trafficcontrol)的基础。无论何时,内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。然后,内核会尽可能多地从qdisc里面取出数据包,把它们交给网络适配器驱动模块。最简单的QDisc是pfifo它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。不过,它会保存网络接口一时无法处理的数据包。QDISC的分为CLASSLESSQDisc和CLASSFULQDISC类别如下:(1)、CLASSLESSQDisc(不可分类QDisc)1无类别QDISC包括:[p|b]fifo,使用最简单的qdisc,纯粹的先进先出。只有一个参数:limit,用来设置队列的长度,pfifo是以数据包的个数为单位;bfifo是以字节数为单位。pfifo_fast,在编译内核时,如果打开了高级路由器(AdvancedRouter)编译选项,pfifo_fast就是系统的标准QDISC。它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。而三个波段(band)的优先级也不相同,ba
本文标题:TC(linux下流量控制工具)详细说明及应用实例
链接地址:https://www.777doc.com/doc-5038380 .html