在数据中心的网络世界里,流控技术可算得上是一种古老技术。这么多年以来,网络技术不断新旧更替,而流控技术虽一直未曾有过很大变化,却在网络中发挥着越来越重要作用。流控技术是以太网的一项基本功能,可以防止在端口拥塞的情况下出现丢帧。流控技术在广义上来讲分为四层流控和七层流控,通过路由器、交换机这些网络设备基于报文的源地址、目的地址、源端口、目的端口以及协议类型实现的流量控制,都属于四层控制;通过专业的流量控制设备去实现基于应用层的流量控制属于七层流控。所以,流控技术在网络协议的各个层级都有应用,发挥着不同的作用。本文将逐一展开进行讨论,以便大家对流控技术有个全面了解。
物理层的流控
IEEE802.3X标准定义了物理层的流控技术,它设计了一种64字节的暂停帧,当端口阻塞时,交换机将会发送一个暂停的数据帧告诉对方,现在繁忙,暂停一段时间再发送。流控帧是以太网控制帧的一种,在流控帧中携带了时间参数。收到流控帧的设备通过简单的解析,就可以确定停止发送的时长。当对端设备出现拥塞的情况下,本端端口通常会连续收到多个流控帧,只要对端设备的拥塞状态没有解除,相关的端口就会一直发送流控帧。显然,这种流控方式有些简单、粗暴。只要端口发生拥塞,不接触就会一直发送流控帧。如果对端设备收到的流控帧过于频繁,可能导致流量急剧下降,甚至无法发送出报文的情况。如果网络中出现了流控攻击,这种恶意的流控攻击报文会导致多个端口无法正常转发报文,对网络稳定性造成极大影响。还有,IEEE 802.3X定义的流控帧虽然可以预防丢包,但是有一个不容忽视的问题,流控帧会导致一条链路上的所有报文停止发送,在服务质量要求较高的网络中,这显然是不能接受的,后来又有了IEEE802.3X的替代者IEEE 802.1Qbb。IEEE 802.1Qbb的核心思想是,针对同一链路上不同优先级的流量,单独发送流控帧。当某一优先级的业务发生拥塞时,只让该类报文暂停发送,而其他类型的业务不受影响。IEEE 802.1Qbb可以针对特定优先级的流量实现流控功能,因此也被称为PFC(Priority-based Flow Control)。PFC常用于FCOE环境中,解决FCOE环境中的拥塞丢包问题。
IP层的流控
物理层的流控对报文类型不做区分,只要端口出现拥塞,就将所有流量停止转发一段时间,显然流量控制的力度过大,而基于IP层的流量控制则要温柔许多。IP层的流量控制可以根据IP报头中的“五元组”信息进行分析,来确定当前流量的基本信息。默认情况下,整个网络的带宽是共享的,共享的也就意味着是互相影响的,网络中部分用户去看网络电视、去下载电影、存在病毒等都会严重影响到其他用户的正常运行。如果将每个用户的带宽独立出来管理,就不会受到影响了,通过IP流量控制功能就可以轻松实现。另外对于不同应用可以标记不同的优先级,根据优先级进行队列调度,当端口出现拥塞时,高优先级的应用业务优先通过,将低优先级的业务流量进行丢弃。IP层的流控可以针对某一类业务类型进行流量控制和管理,流量控制上更为细化,还可以针对某一类应用或者一个用户进行流量带宽控制。有了IP层的流控,使得在部署网络应用业务时应用自如。
智能流控
随着网上应用类型的不断丰富,仅通过IP层流控已不能真正判断流量中的应用类型,更不能应对基于开放端口、随机端口甚至采用加密方式进行传输的应用类型。比如P2P类应用会使用跳动端口技术及加密方式进行传输,基于交换路由设备进行流量控制的方法对此完全失效,这时就要考虑使用智能流控。智能流控是基于网络应用层的、专业的流量管理技术,既适用于大中型企业、校园网、城域网等流量大、应用复杂的网络环境,也适用于需优化互联网接入、保证关键业务应用、控制网络接入成本的中小型企业的网络环境。通过智能流控实现监控网络流量,分析流量行为,设置流量管理策略,实现基于时间、VLAN、用户、应用、数据流向等条件的智能流量管理。这类流控技术以深度包检测(DPI)和深度流检测(DFI)技术为基础,实现网络协议的精准识别。此时的流控技术可匹配的条件更丰富,包括源安全域、源接口、源地址条目、目的安全域、目的接口、目的地址条目、用户/用户组、服务/服务组、应用/应用组、TOS、Vlan,可以根据一种条件来划分流量,如根据源地址条目;也可以根据多种条件组合来划分流量,多种条件之间是“与”的关系,如根据源接口、目的地址条目和应用HTTP,即从指定的源接口到具体的目的地址的HTTP流量,这样能够更加精细的划分流量。为实现如此精确的流量控制,需要采用专用的硬件设备来实现,比如入侵防御系统IPS、应用控制网关ACG、Netstream、防火墙FW等都属于是智能流量控制产品。
流量控制,在数据中心网络中,已成为必不可少的技术手段。不同网络层级的流量控制实现的力度是不同的,精细化程度也有差异,所处网络层越高可以看到流量内部更多的细节部分,所以流量控制也更精准,消耗的硬件资源代价自然也越大,很多应用层智能流控的部署需要用专用的硬件设备才能完成,普通的网络设备根本无法做到。在数据中心网络里,要根据应用部署的实际情况,来选择最适合自己的流控。可见,流量控制是这个网络时代发展的必然产物,其用途必将日益彰显。
本文转自d1net(转载)