现在的位置: 首页 > 综合 > 正文

优先级的流量控制(PFC:Priority-based Flow Control)

2012年01月24日 ⁄ 综合 ⁄ 共 2625字 ⁄ 字号 评论关闭
一、PFC产生的背景:

传统的在企业数据中心内,通常会部署一个以太网来支持IP流量,部署一或两个存储域网络(SAN)来支持光纤通道存储流量,并部署一个InfiniBand网络来支持高性能集群计算,这样会导致企业需要针对不同的应用部署多个不同的网络。部署和管理三类截然不同的网络会给企业带来高昂的投资和运营成本,因此企业迫切希望实现整合。
深度分析数据中心之PFC(Priority-based Flow Control)技术
基于优先级的流量控制(PFC:Priority-based Flow Control)在IEEE:802.1Qbb标准文档中定义,对传统流控的暂停机制一种增强。与传统的流控机制相比,当出现拥塞时传统流控但会阻止一条链路上的所有流量。而PFC允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个IEEE 802.1P优先等级(cos),允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务,使其能够与同一接口上的其它流量类型共存。其实PFC就是普通流控功能的一种增强。
报文的格式:
IEEE802.1qbb中定义了,PFC帧的格式如下:

  +----------------+----------------+----------------+-----------------+

     |                     Destination Mac Address(6 octets)               |

     +----------------+----------------+----------------+-----------------+

     |                       Source Mac Address(6 octets)                        |

     +----------------+----------------+----------------+-----------------+

     |                            type/len(2 octets)                            |

     +----------------+----------------+----------------+-----------------+

     |                                 Control opcode(2 octets)                  |

     +----------------+----------------+----------------+-----------------+

     |                         priority_enable_vector(2 octets)                     |

     +----------------+----------------+----------------+-----------------+

     |                             time(2 octets * 8)                      |

     +----------------+----------------+----------------+-----------------+

PFC帧各个字段的定义:

字段名

含义

Destination Mac Address 目的MAC地址域,6字节,要求为01-80- C2-00-00-01。
Source Mac Address 源MAC地址域,6字节,为本设备MAC地址。
type/len 以太网帧长度或类型域,要求为88-08,用于标明本帧的类型为MAC控制帧。
Control opcode MAC控制操作码,2字节。PFC PAUSE帧仅是MAC控制帧的一种,对于PFC PAUSE帧,其在MAC控制帧中的操作码为01-01;
priority_enable_vector 2字节,高字节置0,低字节的每个位代表相应的time[n]是否有效。e[n]代表优先级n,当e[n]为1时,表示time[n]有效;当e[n]为0,表示time[n]无效。
time 包含time[0] 至time[7]的8个数组单元,每个数组单元为2字节。当e[n]为0时,time[n]没有意义。当e[n]为1时,time[n]代表接收站点抑制优先级为n的报文发送的时间,时间的单位为物理层芯片发送512位数据所需要的时间。所以发送一次PFC PAUSE帧,要求对端设备暂停发送的时间长度最长为:65535 ×物理层芯片发送512位数据所需要的时间。
二、技术原理:

深度分析数据中心之PFC(Priority-based Flow Control)技术
按上图分析整网中FCoE cos3的流量所映射的虚拟通道开启PFC功能,其他虚拟通道保持默认。当出口CISCO设备SW3的port7出现拥塞时达到一定阀值时,数据进入的方向(即上游设备)发送反压信息(XOFF:流量停止信息),上游设备接收到XOFF,会根据反压信息XOFF指示停止发送或延迟发送数据,并将数据存储在本地端口缓存中,如果本地端口缓存消耗超过阈值,则继续向上游反压,如此一级级反压,直到网络终端设备CLIENT1和CLIENT2(这两设备是安装了支持PFC的CNA卡),CLIENT1和CLIENT2会在XOFF报文中指定pause
time内暂停发送报文流,从而消除网络节点因拥塞造成的丢包。当拥塞解除后,SW3会发送XON的报文,告诉上游设备SW1和SW2可以把缓存中的报文转发出来,SW1和SW2将缓存中的报转发出去后,也解除了拥塞,这样SW1和SW2也会分别往他们的上游CLIENT1和CLIENT2发送XON报文,CLIENT1和CLIENT2收到XON报文后,又重新发送数据流。这样处理流程就可以使得FCOE存储业务不丢包。
CISCO设备实际PFC报文如下:
<a href="http://www.datacentersky.com/wp-content/uploads/2012/06/pfc-pack.jpg" class="cboxElement" rel="example4" 677"="" style="text-decoration: none; color: rgb(1, 150, 227);">深度分析数据中心之PFC(Priority-based Flow Control)技术

抱歉!评论已关闭.