流量管理需求背景
1、带宽资源被非关键应用大量占用:
2、传统的缓存丢包式的流控无法控制P2P下行流量:
3、空闲时带宽利用率低:
4、一刀切的流量控制手段,影响员工使用体验:
主流的流量管控技术:
流量检测方法
应用检测技术
应用控制技术
识别控制组网模式
流量检测方法:
主动检测方法 | 被动检测方法 | |
检测过程 | 使用网络爬虫(Crawler),像普通网络节点一样,主动加入网络,尽可能多的获取相关的网络特性,搜集IP地址集、端口号及所有元数据信息。 | 通常是在网络的不同位置部署一定数量的测量点,使用特定的软、硬件设备被动监测相关P2P流量信息。为了保证测量数据的代表性,测量点通常位于骨干网络的核心路由器或某个ISP网络的边缘出口。 |
作用 | 主要用于测量网络拓扑、延迟、内容可用性、上传/下载等微观行为特性。 | 主要用于测量P2P网络的流量大小、连接数量、连接持续时间等宏观流量特性。 |
优点 | 直接获取网络的特征信息,具有可行度高,准确性好的特点。 | ① 被动测量方法信息既不会增加网络负载,也不会对PEER本身造成影响。 ② 可以用于测量多种P2P应用,通用性较好。 ③ 通过控制测量点的位置,还可以给出P2P流量对特定网络区域的影响。 |
缺点 | ① 需要相当的先验知识。 ② 仅针对特定应用测量,通用性较差。 ③ 基于 Crawler 的主动测量引入了额外的探测流量,增加了网络负担。 | ① 无法深入了解P2P网络行为。 ② 对测量设备的软、硬件要求较高。 |
应用检测技术:
常用端口检测:
- 端口检测法是依赖于端口来识别流量,在应用较少的互联网初期作用效果较好。
- 随着互联网发展的多样化,应用的常用端口越来越不明显,因此,该方法识别能力非常有限。
深度流检测(DFI):
- 深度流检测方法主要采用基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态不同。
- 主要识别指标包括:数据包的大小、速率、延时、持续时间、发送频率、上下行流量的比例关系以及IP地址的连接方式等。
深度包检测(DPI):
- 深度包检测不仅检测源地址、目的地址、源端口、目的端口以及协议类型,还增加了应用层分析,另外识别各种应用及其内容,包括关键字检测、应用网关检测、行为模式检测等。
应用控制技术:
流量整形技术:
- 根据数据流识别的结果,对数据流量采用阻塞、随机丢包、或者提供QoS保证等方式,对符合策略控制条件的数据流进行流量管理和资源调度,达到流量控制的目的。
- 举例:TCP整形技术---滑动窗口允许根据自己的接受速率动态调整窗口大小来调整发送方的数据传输速率
连接干扰(TCP)/信令干扰(UDP):
- 连接干扰---根据数据流识别的结果,针对TCP流量,复制数据流的IP五元组信息,并交换源/目的IP、端口,伪造成为数据流连接的对端,发送标准的TCP Reset/FIN数据包,中断该数据流连接,或者引发TCP重传,达到流量控制的目的。
- 信令干扰---针对UDP流量,由于UDP为无状态协议,因此无法从4层对数据流进行干扰,只能通过7层的协议信令进行干扰,达到流量控制的目的。
应用控制技术对比:
流量整形 | 连接干扰/信令干扰 | |
技术成熟程度 | 成熟 | 成熟 |
流控准确度 | 较为准确 | 存在波动 |
对UDP流的控制 | 能 | 能力有限 |
是否主动注入流量 | 否 | 是 |
是否提供QOS保证 | 能 | 不能 |
控制效率 | 好 | 较好 |
流量控制组网模式:
直路串联流控模式:
- 串联在网络中,控制方式比较直接,可以灵活的对不同流量使用不同策略。
- 串联使得控制设备成为被控网络的一部分,控制设备可能会影响整个被控链路。
旁路干扰流控模式:
- TCP截断,通过伪造并发送TCP RST报文来截断TCP连接。
- TCP降速,通过伪造并发送特殊sequence报文来减小TCP的滑动窗口值。
- UDP截断,通过伪造并发送P2P应用层特殊控制命令方式来截断UDP连接。
- UDP降速,通过伪造并发送P2P应用层特殊控制命令方式来降低UDP连接的传送速率。
优势:对链路影响较小,可扩展性(扩展其他功能)较强
劣势:目前只能对应地使用连接干扰、信令干扰技术进行数据流控制,控制能力受到较大影响
网络流量控制系统:
当前广泛部署的网络流量控制系统主要由四个部分:流量分类,队列管理,分组调度,流量整形。
- 流量分类:按照不同的优先级或控制策略,将数据包注入到不同队列。当前的流量分类技术主要分为基于端口、会话、内容的识别方式。
- 队列管理:指对网络传输节点中队列缓冲资源的管理和分配,即缓冲管理。通过控制队列的平均深度来避免拥塞发生。
- 分组调度:分类器根据分组的上下文和粒度确认它所在的队列,分组进入相应队列排队等候,直至调度器将其选择发送。可以控制不同类型的分组对链路带宽的利用,使不同的数据流得到不同等级的服务。
- 流量整形:使经过网络瓶颈的数据包平缓的注入主干网,减少数据包在边缘网关排队等待的时间,从而减少边缘网关缓存的大小和数据包丢失率。流量整形主要采用两种基本方法:漏桶算法和令牌桶算法。
SANGFOR流控
SANGFOR流控原理
缓存流控:
- 以前的流控的效果是通过直接丢包来实现的,导致了丢包率比较高,SANGFOR使用缓存的方式,可以有效的解决丢包的问题。
队列调度(HTB分层令牌桶):
- 可以使每个连接的数据包得到更为公平的调度。避免的因为某个连接速率过高导致其他连接得不到带宽的问题。使保证带宽更准确。
单用户流量的公平调度(UCFQ :User & Conn Fair Qdisc):
- 对当前有流量的用户进行公平调度,而不是根据在线用户进行带宽分配,因为在线的用户不一定有流量。对用户的流量进行公平调度,避免某个用户的流量很大,导致其他用户只能使用很少的带宽。保证同一通道的用户流量可以平均分配
P2P智能流控技术:
P2P流量上传速度和下载速度具有正相关性,通过抑制上行流量来达到控制下载速度的效果
动态流控技术:
- 设定阈值(%)来区分空闲和繁忙状态,当整体带宽利用率低于阈值时,通道的最大带宽
- 限制将上浮,直到整体利用率超过了阈值,才回收上浮的部分,实现带宽利用率最大化
流控黑名单:
- 当某个用户应用的流量、流速、时长超过了限额时:
- 堵:将该用户“业务无关的应用”流量划分到流量惩罚通道中进行限速
- 疏:将该用户“必要业务应用”流量划分到保障通道,确保业务不受影响
流控通道匹配过程:
- 同级通道从上往下匹配
- 匹配到父通道后如果有下级子通道,则继续往下级匹配,
- 直到匹配到最后一级
- 如果无法匹配到任何自定义的通道,则匹配到所在级别的默认通道
流控通道优先级:
- 保证通道和限制通道都可以设置优先级
- 优先级别相同时,如果都需要借用带宽,则按照保证带宽的比例借用
- 优先级别不同,都需要借用带宽时,带宽优先给优先级高的通道使用,剩下的带宽才给低级别的通道借用。