理解流量控制(整形和监管行为)
流量控制是对已经成功分类的具体流量执行的一种管制行为,这控制行为从实施特性上大致可分为两种:流量监管(policing),事实上就是限速,如果可能它将超过限定速率的流量丢弃,或者重标记流量行为,流量整形(shaping)事实上就是尽量最大努力缓存并平滑流量,这两种行为将导致两种不同的现象。在开始描述监管(policing)和整形(shaping)之间还必须得来清晰的理解两个给流量控制密切相关的专业术语:接入速率与认购速率。
注意:流量控制技术包括了流量整形和流量监管,但是它们的实质和效果是完全不一样!
理解接入速率AR与认购速率CIR
接入速率(Access Rate):
是指物理接口的接入速率,如图中S1/0接口的 128Kbit/s,就是接入速度,如果是T1的接入速率就是1.544MB,通常接入速度是以物理传输介质的时钟频率所决定的。请严格区别接入速度和认购速率的差异,如果您的接入128Kbit/s,但是认购速率只有64Kbit/s,那么您的网络设备将采取这样一个行为:网络设备接口发送数据是还是以128Kbit/s来发送,因为这是一个物理事实,无法改变。但是当通过运营商的接入层后,你们的流量将被限制在认购速率之内,也就是64Kbit/s,否则运营商的网络将会因为用户的高速的接入速率而过载。
认购速率(traffic contract):
认购流量也叫“契约流量”,所谓契约流量就是指用户花钱在ISP(Internet服务供应商)处购买的网络流速,这个速度是指ISP在任何时候都应该为用户保障的速率。通常它还有一个名称叫CIR(承诺信息速率CommittedInformation Rate),打个更实际更好理解的比喻:当您安装宽带业务时,业务员通常都会给您讲他们的宽带是100MB,1000MB光纤接入到桌面,但当你签订认购合同时(宽带服务合同),通常在那张纸上的认购流量速率(也就是CIR)一般都只有1MB、1.5MB、2MB、4MB等。此时您可能会想:业务员推销宽带时所描述的100MB,1000MB光纤接入到桌面那不正是在忽悠大众吗?其实也不能这么说,因为业务员所描述的是接入速率(AR)而非承诺速率,通常您只能充分使用花钱购买的认购速率也就是CIR所规定的带宽范围,您可以当这是种“扬长避短”的销售技巧。换而言之,虽然用户可能有很高的接入速率,比如现今的PC机的网卡基本上都可以达到1G的速率,但是这个高接入速率会被ISP运营商限制到给您的认购速率(承诺速率)之内。
提问: ISP运营商如何将用户速率控制在其认购速率之内?
通常ISP运营商都会通过policing(监管)行为,将用户使用接入速率发送的流量限制在认购速率之内,关于流量监管到底是怎么做的,后面会详细描述理论和演示相关的实验,这里不得不提到的一个注意事项就是其实用户也需要使用shaping(整形)技术,将接入速率整形为适应认购速率(后面就叫CIR)的行为,如果是主机,一般能自动完成,因为主机上存在QOS数据包的计划程序,如果企业接入ISP的边界路由器,那么就需要执行手工的流量整形配置。当然这也是在流量控制部分要掌握的重点。
理解流量控制中的监管(限速)行为:
如图5所示,为流量的监管前后的示意图,可清晰的看出,没有被监管之前的流量,在限定速率之上的那部分,在执行监管这后,流量的波峰被丢弃,流量监管这种行为仅仅是对超过限定速率的流量进行丢弃或者重标记流量(一般重标记会降级流量的优先程度),不对流量做缓存,所以不会为那些没有超过限定的流量造成更大的延迟。更直接的讲流量监管实际上是一种限速行为,超额部分被丢弃的流量会引发重传。
实践行为:一般什么时候实施流量监管?
从实践角度讲,如果一个用户网络发送过多的流量,比如以接入速率发送了超过认购速率范围以外的数据到一个另一个网络,比如:比如用户只购买了2MB的速率,但是用户却以100MB或者1G的物理速率发送数据到运营商的网络,那么这个时候,用户过多的数据发送会导致运营商的网络过载,所以此时需要在运营商的接入设备上(事实上也就是面向用户的第一个接入设备),实现流量监管。将用户流量监管到认购速率之内。
还有就是需要对特定的某种类别的流量限制在一个特定的速率上,可以使用流量监管,这种情况通常发生在ISP运营商和用户之间就某项类别的流量达成了一项服务等级的协订。
如果需要将超过特点限制的流量进行重标记,通常是降低它的紧急程度,那么建议使用流量监管。因为流量监管有重标记流量的功能。
12.4.4理解流量控制中的整形(缓存)行为:
流量整形与流量监管有着不同的实质,流量整形是将超过限额的流量进行缓存,然后基于特定的策略和规则来传递这部分缓存的流量,达到平滑流量的效果。如图6所示,超过整形速率之上的流量在被实施流量整形后,这部分超额流量将以换回更大的转发延迟为代价来得到发送,而不是丢弃,所以在图6的环境中虚线所示的流量就是被整形后的流量,可看出它更加的平滑,但是在时间轴上的转发延迟将更大。
那么流量整形会不会丢包?回答是尽量不丢弃,尽量缓存,但是,当缓存的流量到达缓存区的极限时,流量还是会被丢弃,但这种丢弃与流量监管的丢弃是两种不同的实质,流量整形的丢弃,是“迫不得已,不得不丢”。
实践行为:一般什么时候实施流量整形?
从实践的角度讲主要有两个原因要求用户必须执行流量整形: 第一个原因:一般应用到一个邻居网络执行了流量监管(限制)环境中,比如ISP运营商会对用户的网络进行监管到认购流量范围之内(花钱支持的那部分流量),在这种情况下如果用户不对其自己的流量进行整形,比如一个较高的接入速率向ISP运营商发送数据,那么这样做的后果将会其得ISP的监管策略将用户的大量数据丢弃,流量整形就让用户的数据以加大延迟为代价来避免数据被丢弃,因为不加选择的丢弃数据并不是一个好事情,特别是大量的丢弃TCP数据,会造成整个网络的全局同步,关于“全局同步”的问题将在拥塞管理与避免时作更多说明。
第二个原因:由于网络边界设备的出口拥塞,那在产生拥塞的接口上应用流量整形,可以避免,或者说至少可以缓解拥塞。
12.4.5流量监管和流量整形的差异:
1 流量监管和整形都是对流量的一种控制机制,监管是限定速率,丢弃超额,或者重标记流量,流量整形是尽量缓存,平滑流量,只有当缓存被充满时,才丢弃。
2 流量监管可以用于出站或者入站方向,而流量整形需要缓存数据,只能应用于出站方向。
3 流量监管有重标记数据的能力,而流量整形没有标记能力。
4 由于流量整形需要缓存流量,所以它需要消耗内存,因为超额流量会在下一个周期被发送,所以会造成可变的延迟和抖动;而流量监管不需要缓存数据所以不会消耗内存,由于丢弃超额流量,所以不会产生可变的延迟。
5 在某些情况下,流量整形会基于网络信号进行响应,比如:拥塞通知。流量监管是不需要。
本文出自 “无名的基督” 博客,谢绝转载!