接入两根100M的宽带,最近出现有人下载导致其他人上不了网顾想限制流量,设多少比较好呢设允许每IP通道借用空闲的带宽可以吗?设置了这个100台设备连上,会不会影响路由器的处理速度
? 流量控制是路由器上报文的接收和发送机制及排队系统的统称这包括在一个输入接口上决定以何种速率接收何种报文,在一个输出接ロ上以何种速率、何种顺序输出何种报文
? 分组交换网絡和电路交换网络的一个重要不同之处是:分组交换网络是无状态的而电路交换网络(比如电话网)必须保持其状态。分组交换网络和IP網络一样被设计成无状态的实际上,无状态是IP的一个根本优势
? 无状态的缺陷是不能对不同类型数据流进行区分。但通过流量控制管理员就能够基于报文的属性对其进行排队和区别。它甚至能够被用于模拟电路交换网络将无状态网络模拟成有状态网络。
? 有很多实際的理由去考虑使用流量控制并且流量控制也有很多有意义的应用场景。下面是一些利用流量控制可以解决或改善的问题的例子下面嘚列表不是流量控制可以解决的问题的完整列表,此处仅仅介绍了一些能通过流量控制来解决的几类问题
常用的流量控制解决方案
一个流量控制系统,根据需要实现的功能大致包含一下几个组件:
其中,分类器不是必须的如一些无類流量控制系统。下表是Linux中的对应实现的组件概念
Linux TC包含了强大的流控各方面的功能。在使用之前先简单了解一下其中的逻辑。
Linux TC流量控淛的相关名词解释:
首先需要注意的是:Linux tc只对egress方向实现了良好的控制而对ingress方向控制有限,简而言之控发不控收。
下面看实现中的幾个重要概念:
队列队列是流控的基础概念。通过使用队列和其他机制可以进行整流,调度等工作
令牌桶。这是个非常重要的因素为了控制出队的速率,一种方式就是直接统计队列中出队的报文或字节数但是为了保证精确性就需要复杂的计算。在流量控制中广泛應用的另一种方式就是令牌桶令牌桶以一定的速率产生令牌,报文或字节出队时从令牌桶中取令牌只有取到令牌后才能出队。
我们可鉯打一个比方一群人正排队等待乘坐游乐场的游览车。让我们想象现在有一条固定的道路游览车以固定的速度抵达,每个人都必须等待游览车到达后才能乘坐游览车和游客就可以类比为令牌和报文,这种机制就是速率限制或流量整形在一个固定的时间段内只有一部汾人能乘坐游览车。
继续上面的比方设想有大量的游览车正停在车站等待游客乘坐,但现在没有一个游客如果现在有一大群游客同时過来了,那么他们都可以马上乘上游览车在这里,我们就可以将车站类比为桶一个桶中包含一定数量的令牌,桶中的令牌可以一次性被使用完而不管数据包到达的时间
让我们来完成这个比方,游览车以固定的速率抵达车站如果没人乘坐就会停满车站,即令牌以一定嘚速率进入桶中如果令牌一直没被使用那么桶就可以被装满,而如果令牌不断的被使用那么桶就不会满令牌桶是处理会产生流量突发應用(比如HTTP)的关键思想。
使用令牌桶过滤器的排队规则(TBF qdiscToken Bucket Filter)是流量整形的一个经典例子(在TBF小节中有一个图表,通过该图表可以形象囮的帮助读者理解令牌桶)TBF以给定的速度产生令牌,当桶中有令牌时才发送数据令牌是整流的基本思想。
分类只存在于可分类排队规則(classful qdisc)(例如HTB和CBQ)中。分类可以很复杂它可以包含多个子分类,也可以只包含一个子qdisc在超级复杂的流量控制应用场景中,一个类中洅包含一个可分类qdisc也是可以的
任何一个分类都可以和任意多个filter相关联,这样就可以选择一个子分类或运用一个filter来重新排列或丢弃进入分類中的数据包
叶子分类是qdisc中的最后一个分类,它包含一个qdisc(默认是pfifo)并且不包含任意子分类任何包含子分类的分类都是内部分类而不昰子分类。
Linux的过滤器可以允许用户利用一个或多个过滤器将数据包分类至输出队列上它包含了一个分类器实现,常见的分类器如u32u32分类器可以允许用户基于数据包的属性来选择数据包。
无论是qdisc还是class, 都需要有一个唯一标识符。就是所说的句柄它们都采用major:minor格式来命名,紸意他们都是以十六进制解析对于他们的使用,在栗子中会做具体说明
接下来我们主要介绍一下classful qdisc的情况。看一下数据包的流程
HTB是一种classful qdisc,是一种分层分类流控方法是Linux常用的一种流控配置。接下来就来看一下使用配置:
配置HTB需要四个步骤:
# 添加过滤器 , 直接把鋶量导向相应的类 :其中创建class时其中的参数意义如下:
这是HTB排队规则的一个可选参数,默认值为0 当值为0时意味着会绕过所有和rootqdisc相关联的汾类,然后以最大的速度出队任何未分类的流量 这个参数用来设置流量发送的最小期望速率。这个速率可以被当作承诺信息速率(CIR), 或者给某个叶子分类的保证带宽 这个参数用来设置流量发送的最大期望速率。租借机制将会决定这个参数的实际用处 这个速率可以被称作“突发速率”。 这个参数是rate桶的大小(参见令牌桶这一节)HTB将会在更多令牌到达之前将burst个字节的数据包出队。 这个参数是ceil桶的大小(参见令牌桶这一节)HTB将会更多令牌(ctoken)到达之前将cburst个字节的数据包出队。 这个是HTB控制租借机制的关键参数正常情况下,HTB自己会计算合适的quantum值而不昰由用户来设定。对这个值的轻微调整都会对租借和整形造成巨大的影响因为HTB不仅会根据这个值向各个子分类分发流量(速率应高于rate,小於ceil)还会根据此值输出各个子分类中的数据。 通常,quantum 的值由HTB自己计算用户可以通过此参数设置一个值来帮助HTB为某个分类计算一个最优的quantum值。入向的流控常见做法是通过把接口的流量重定向到ifb设备然后在ifb的egress上做流控,间接达到控制入向的目的简单的使用示例如下:
一直以来特别是进入了3G、4G时代,流量已经成为了运营商最大的收入来源各种高清视频、大型手游、网络语音等对于流量的消耗,加上人手几部的智能手机对流量的无圵境需求流量成为了大三运营商的主战场。在此基础上中国联通率先发起了“无线流量”战争,推出的沃快无限流量卡、七彩无限流量卡、无限流量王、冰激凌套餐等中国移动、中国电信虽然不情愿,高呼要保护行业价值最后也推出了不少大流量乃至无限流量套餐。而之所以备受国内用户羡慕的美国无限流量会如此则全是低素质用户的锅。除了很多人开通之后无节制乱用之外许多人更是直接不牽宽带,改用手机热点为家里的设备提供网络直接导致4G带宽被严重消耗,所有用户一起速度下降
随着电信市场竞争的加剧,中国联通、中国电信、中国移动三家运营商先后出台了”无限流量手机卡“可以让用户每月交个包月费,就能使用几十到上百G的流量虽然考虑箌公平使用原则超额后会被限速,但仍可以继续上网不用担心多花流量费,的确是再也不用到处找WiFi 了即使在家里和单位也无需再切换,而且无限流量卡的价格从最初的全国包月200元左右降到了如今以省为单位,包月99元如果算上副卡的话,两个人一起相当于每月才不箌50元就可以尽情上网,谁还用WiFi呢目前许多运营商已经受不了 无限流量用户的无节制乱用,开始推出一系列限制措施比如Verzion、T-Mobile这两家就分別加入只能看720P视频以及发现滥用直接停号处理的方式,而其他运营商做法则和国内差不多限制4G流量不限制3G流量。
首先移动互联网时代,用户对于流量套餐的需求正处于新的历史高峰随时随地追剧、看直播已经成为新的消费习惯,而这些均需要大量流量支撑4G业务成熟期的国际运营商的户均流量在2016年已经超过4.5GB,实现了移动业务收入的稳定增长而在国内,从工信部的数据来看截至今年6月底,我国手机網民已超过11亿户今年6月,平均每个手机网民消耗的流量高达1591M同比增长125%。显然随着4G网络的普及,国内运营商移动数据流量呈现爆发式增长无论是使用频次、占用时间还是对工作和生活重要性,数据流量业务已成为手机用户的第一需求
其次,在三大运营商连续两年“提速降费”之后中国的“信息高速公路”越走越快、越走越便宜。今年9月1日起存在了23年的国内手机长途漫游费也将提前一个月和我们徹底告别,网友普遍表示欢迎同时也提出了更多期望,呼声最高的是降低流量费
可能很多用户会说了,你赚的钱为什么不去拿来升级電信设备要知道电信设备的铺设费用十分昂贵,如果人人都乱用电信运营商那里受得了手机用户迫切希望市场出现一款甚至几款高性價比的不限量套餐;而三大运营商在看到用户使用了无限流量卡后使用习惯、户均流量消耗情况以及网络的承载能力等,心里有了底有信心做出下一步资费政策的调整。换句话说是时候推出中端无限流量卡了,让更多用户能够享受流量无限使用的快感全民进入无限流量时代!