流控的本质是通过特征库来对网络流量进行识别(可以对OSI的2到7层的报文进行识别),把网络流量细分到对应的具体应用,然后定义带宽通道,从而使网络中的流量根据应用各行其道,以优化宽带性能,提高网络运行效率。如下图所示:
以迅雷下载为例,通过特征库识别出网络流量为迅雷下载应用,进入定义好的迅雷下载通道里面。通道里面每个用户的网页浏览应用被限制900K,那么该用户的迅雷下载的流量无法超过900K,可以保证全网的流量不会被迅雷应用下载占满,保证其他应用能够正常运行。
流控的关键是识别技术和控制技术,EG的识别技术使用的是DPI和DFI。
使用的控制技术
1) DPI深度包检测是相对普通报文分析而言的一种新技术,普通报文检测仅仅分析IP包的四层以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型,而DPI则在此基础上,增加了对应用层的分析,可识别出各种应用及其内容。如下图:
DPI将网络上的数据报文根据五元组分为一个个的应用流,并通过识别技术对应用流中的特定数据报文进行探测,从而确定应用流对应的应用或者用户的动作。
2) DFI采用的是一种基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态各有不同。
例如,基于P2P下载应用的流量模型的特点为平均包长都在450byte以上、下载时间长、连接速率高、首选传输层协议为TCP等。
DFI技术正是基于这一系列流量的行为特征,建立流量特征模型,通过分析会话连接流的包长、连接速率、传输字节量、包与包之间的间隔等信息来与流量模型对比,从而实现鉴别应用类型。由于DPI需要使用到数据库进行逐一匹配对比,而DFI仅需将流量特征与后台流量模型比较即可,因此DFI的处理速度比DPI快,然而正因为DPI采用的是数据库逐一对比,DPI的识别准确率确比DFI更高。因此EG采用DFI+DPI两者技术,使得EG的识别效率高,识别准确率高。
3) EG采用层次化带宽分配的流量限速模式对识别出来的应用进行限速,如下图
此流量限速模式涉及3个关键概念,首先通道,其次CIR,最后PIR:
1) 通道: 设备端口、用户组、用户和应用在流控中都被抽象为一个流控通道,上下级流控通道是父子关系,所有流控通道组成一棵分层的流控通道树,设备端口作为抽象出来的顶级流控通道称为根通道。
流控通道是流控的基本单位,其一方面是一个缓存队列,用于缓存网络流量,另外一方面可以配置带宽参数,从而决定网络流量的转发量(取决带宽配置)和转发处理顺序(取决流控通道优先级)。
2) 流控通道调度基于两个原则:
先保证承诺带宽,然后再进行带宽借用;高优先级流控通道优先调度,相同优先级流控通道轮转调度。
带宽借用:
针对上述通道类型,EG的系统预设了三个通道:关键通道、普通通道和抑制通道,这三个通道分别走用户的关键应用流量、普通应用流量和抑制应用流量。
3) CIR(保障带宽即承诺带宽)指的是带宽紧张的时候,也能保证用户或者应用的带宽;
保障带宽:默认情况下,关键通道保障带宽较大,普通通道次之,抑制通道最小,保障带宽也就是承诺的带宽,当流量大小在保障带宽以下时,只要有流量需求就不会受限制,当超过了保障带宽则需通过带宽借用获得更多的带宽,关键通道、普通通道和抑制通道通道的优先级从高到低,因此关键通道能够优先借用剩余的带宽,在进行带宽借用时不影响其他通道的带宽保障。
比如:总带宽为10M,关键应用保障6M,普通应用保障2M,抑制应用保障1M,(预留1M用来动态调整),当关键应用只用了3M时,普通应用的带宽需求是4M,而
抑制应用带宽需求是2M,则普通应用能够借用到2M,抑制应用能够借用到1M,当关键应用的需求带宽变大时,能够抢占到带宽以满足需求。当变成6M时,普通应用带宽变为2M,抑制通道变为1M。如果某组应用没有流量,如普通应用组没有流量,带宽将被其他组借用。
4) PIR(最大带宽)值得是在带宽充裕的时候,能允许用户或者应用达到的最大带宽。
a. 各类应用最大带宽:即各组应用(关键/普通/抑制)所能达到的最大带宽,该值不小于保障带宽。应用组通过带宽借用所能达到的最大带宽。
比如:总带宽是10M,当关键应用组的实时带宽是1M,普通应用组的实时带宽是2M,抑制应用组可以借用剩余的带宽,但是不会超过抑制应用组的最大带宽。
b. 各类应用每ip最大带宽:即各组应用(关键/普通/抑制)每个ip地址所能达到的最大带宽。
比如:带宽比较空闲,抑制应用组的每ip最大带宽为3M,因此每个ip地址的抑制应用最大将不超过3M,即使带宽是空闲的。