CDN的带宽管理需求分析
Radware分析:CDN的部署是服务于“建立宽带应用支撑平台系统”这一目标,因此多个内容运营商、多种宽带应用并存是必然的,同时CDN所使用的基础网络又是无质量保证的IP网,因此,为了达到保证“服务”质量的目的,需要在CDN网络规划中充分考虑带宽管理和QoS 保证的需求。
1. CDN业务的差异性
CDN业务的差异性因素所引发的带宽管理需求表现在两方面。
第一:不同的具体应用对基础带宽的通量及其稳定性的需求不同。流媒体服务通常需要较大的带宽通量保证,同时对于带宽的变化也非常的敏感;而一些诸如FTP下载、HTTP访问服务由于本身缺乏带宽控制协议,当产生FTP或HTTP 请求时,会以抢占优先方式“掠夺”可用带宽。因此当CDN 上混合部署了这些类型的应用时,若没有有效的带宽管理策略,则所有的流量共享一定的基础带宽通量,流媒体服务的质量保证就无从谈起。
第二:不同的应用对于CDN运营而言可能具有不同的价值。例如,对于网络设备的监控和管理信息所需的带宽必须得到优先保证。
2. CDN服务水平的差异性
CDN服务水平的差异性带来的带宽管理需求同样表现为两种情况。
第一是内容本身的价值不同。例如,同样都是HTTP下载,一个下载的内容是经过DRM处理的影片,另一个则是免费下载,内容运营商会申请不同的服务水平。
第二是内容运营商的不同。例如某一内容运营商会有在某一CDN节点独享100M带宽以提供流媒体服务的需求。因此即便对于相同的业务类型,由于存在内容运营商所选择的服务水平存在差异,CDN所提供的带宽保证也并不相同。
Radware带宽管理解决方案
综上所述,一个合理的CDN带宽管理策略不仅需要能够实现流量的分级,还要能够实现流量的带宽保证。因此:
在CDN规划时,需要合理部署并组织节点,避免广域垃圾流量的产生;
在各内容服务节点,建议利用Layer4交换机所提供的带宽管理功能实现本地服务时的带宽管理策略;
在本次项目工程中,在核心节点和各分布节点所应用的RadwareWSD交换机上安装SynAppsLicense,实现基于策略的本地服务带宽管理。
SynApps提供了强大的分级引擎,可以按照源和目标IP地址、或者,地址组、应用程序端口、内容/URL和cookies 对流量进行分级。这使用户可以根据上述参数对流量类型进行区分并确定如何恰当地处理流量类型。
1. 带宽保证
对某些IP应用,如流媒体服务器或服务器/集群,提供带宽的保证。例如:某一MMS服务,需要提供400M的流媒体服务,其IP(VIP)地址为202.202.100.100.为了保证它所提供的服务质量,在两台WSD 上设置相应的带宽管理策略:
次序源目标方向操作优先级带宽保证服务
1202.202.100.100AnyTwoWayForwardRealtime400MAny
该策略保证来自地址202.202.100.100的所有流量都被实时传输,同时保证400M的带宽。
2. 流量分级
降低某些应用的传输级别,并限制带宽。例如,在CDN系统中有一个FTP服务器集群,提供歌词下载,其IP(VIP)地址为202.202.100.200.为了保证多媒体服务质量,在两台WSD上设置相应的带宽管理策略:
次序源目标方向操作优先级带宽限制服务
2202.202.100.200AnyTwoWayForward250MFTP
该策略使来自地址202.202.100.100的所有FTP流量都被定为2级,同时限制带宽在50M.
CDN节点带宽管理的实现原理
带宽管理主要的思想就是能够按照一系列标准区分用户流量,然后为每种数据包或者会话指定不同的优先级,最后按照优先级来传输。同时带宽管理解决方案能够跟踪每个应用程序所使用的实际带宽,并对每种流量模式可以使用的带宽进行限制或保证。
Radware可以为CDN系统提供基于策略的带宽管理。下图表述了Radware带宽管理机制的组成部分和其所完成的任务:
该系统包括三个主要的组件:分类器、排队和调度器。
数据包首先通过分类器进入系统。分类器的任务是决定如何处理数据包。一组综合的用户可配置策略组成的策略数据库控制分类器如何识别每个数据包以及如何处理它们。在此文档的后面将详细讨论策略数据库。
当分类器收到数据包后,它可以执行以下三项操作之一:
丢弃数据包这使分类器能够提供非常强大的,粒状数据包过滤机制。
实时转发数据包这意味着数据包绕过整个带宽管理系统并立即被此设备转
发,即使根本没有启用带宽管理,最终的结果也是非常有效的。
确定数据包的优先级这使此机制能够提供真正的带宽管理服务。
分类器如何处理数据包是由与数据包最匹配的策略所决定的。
如果分类器确定了数据包的优先级,它会将其放入排队中,然后数据包就获得了从0 到7 的优先级,0 的优先级最高,7 的优先级最低。每个策略都有自己的排队队列。因此,排队队列的数量与策略数据库中策略的数量相等,但每个排队队列都标记了一个优先级(0 到7 共8 个优先级中的一个)。这表示可能有100 个排队队列(如果有100 个策略),每个排队都有一个标记(从0 到7)。
最后,调度器从许多排队中提出数据包并转发它们。
调度器通过两种算法之一来进行操作:Cyclic和CBQ(基于分类的排队)。
在Cyclic算法中,调度器为每个优先级赋予的优先比率是与之紧密相连的低优先级的两倍。
CBQ算法与Cyclic算法具有相同的数据包转发模式,但具有一个明显的不同点。
CBQ算法知道每个策略预定义的带宽配置。每个策略都有自己的排队队列。在制定策略时,可以为策略分配最大的带宽值(Kbps)。如果调度器正在使用CBQ算法,则会访问每个排队队列以进行数据包转发,并检查有关策略的最大/保证带宽。如果转发排队队列中的“此”数据包会超过此策略配置的带宽,调度器将跳过此数据包,并从相同优先级的另一个排队队列中选择另一个数据包。这样,分类器可以控制调度器以使一些应用程序不超过预先定义的带宽限制。
如果启用了带宽借用功能,调度器在访问某个已超出其带宽的排队时(或者将要超出),将看看其它策略的带宽是否有“剩余”。如果找到这样的策略,将从此策略借用带宽并将其分配给将要超出带宽限制的策略。这样如果排队队列已经超出了其配置的带宽限制,根据调度计划就可以使用其它排队队列的可用带宽。