深度分析FC/FCOE协议中CLASS和ACK的作用

存储网络(FC/FCOE)中CLASS分类分为:CLASS1,CLASS2,CLASS3和CLASSF,不同的服务用不同的CLASS类型。同时这些CLASS类型会使用不同的ACK进行确认。
ACK有三种,分别有如下作用:

    1. 1.  ACK_1: Acknowledgment of every frame received   确认每个帧
    2. 2.  ACK_N: Acknowledgment of a group of ‘n’consecutive frames received   N个帧确认一次
  1. 3.  ACK_0: Acknowledgment of every sequence received  一个序列确认一次

接着分析各类CLASS的作用与应用场景:

一、CLASS 1:

Class-1 provides a dedicated connection with the full bandwidth guaranteed between two communicating devices.
同ATM类似,提供一个专用链路保证两点之间的通信带宽。独占带宽。这个CLASS类型不适用于当多个设备想和另外多个设备同时保持通信。
缺点及解决方式:
The main problem with the Class-1 service is that a source device, with no Class-1 data ready wastes the bandwidth on the dedicated connection with the destination device. To overcome this deficiency, Class-1 service needs the assistance of the Intermix option. Intermix is a special feature of Class-1 service that allows interleaving of possible Class-2 or -3 data frames or high priority Class-2 and -3 control frames on an established Class-1 connection, one frame at a time, when the connection is idle.To take advantage of this function, both source and destination devices engaged in the dedicated connection, and the intervening Fabric must support the Intermix feature. However, implementation of Intermix requires extra switch resources. In a Fabric of cascaded switches, tracking and managing the Intermix frames at different switch stages is very difficult.
主要问题是CLASS1中在专用线路上源没有CLASS1数据准备很浪费带宽。为解决这个困难,CLASS1需要混合交换选项的确认。混合交换是CLASS1中特殊的一个功能:它允许是一个已建立的CLASS1连接中交插CLASS2-3数据帧或是高优先级的CLASS2-3的控制帧。每一次一个帧。想要达到这个功能,源和目标必须在专用线路上,FABRIC网络必须支持混合功能。无论如何混杂需求的完成需要交换资源。在一个级联的fabric的网络中,在不同的交换阶段跟踪和管理混合帧是非常困难的。
CLASS1不适用是全互连网络,他的瓶劲出现中ISL链路中,因为在CLASS1中是专用链路,ISL链路是从属于专用链路的,也就是说当这个链路有两个设备已经建立连接了,其他所有设备都不能再用这条链路建立连接即使这些设备都是空闲的。

二、CLASS 2:

基于帧交换方式,在CLASS2中可以是多对多,或是1对多。
基于Class 2服务类别转发的数据帧,在转发过程中无连接要求,即不在乎数据帧如何到达目的地,但要求对数据帧进行应答(ACK)。
对Class 2数据帧的应答不仅包括接收数据帧的终端设备进行应答,还包括转发过程中转发设备对非法的Class 2数据帧丢弃并向发起端发回应答。转发设备需要对非法的Class 2数据帧进行校验,可能的包括情况如:
(1)发送端为本FC交换机直连主机设备,但数据帧的源FC-ID非本FC交换机分配。
(2)数据帧的目的FC-ID不可达。

三、CLASS3:

也是基于帧交换。与CLASS2不同的是它是数据服务,不提供帧确认机制,也就是帧是否收到都不会回复ACK或是RJT。他的确认机制都由上层协议进行,例:TCP。
在CLASS3中出现严重拥塞时,网络将会丢弃一些帧,然而这些帧的丢失可以通过上层协议TCP传输来恢复。CLASS3没有确认机制的优势:在组播服务中时,源往组播组中发数据,所有组成员都会回复ACK,这样肯定会造成带宽的浪费,影响整个网络的吞吐率。这个缺点在CLASS3中不存在。另一个优势:在CLASS3中无ACK,不存在确认机制这样就不存在帧传输过程中的往返延时。这里要强调一点的是CLASS被用于FCOE协议,可能有人会问这个CLASS不是没有ACK,就无法控制不丢包,而存储协议允许丢包。在FCOE协议中,控制报文不丢包是通过增强以太网协议族中的PFC功能来控制FCOE报文不丢包的,言外之意就是FCOE需要结合PFC功能才能正常使用。

四、CLASSF:

用于fabric网络。E模式中ELP。CLASS F用来控制,协调,配置FABRIC。标准上定义CLASS F被用ISL链中两台switch之间通信协商参数。CLASS F服务在所有的传输中使用end-to-end流控,ACK1帧用来执行end-to-end流控。ACK0链路控制帧不被用在CLASS F服务中。协议中有说明PN_PORT如果接收到CLASS F的帧时应该丢弃掉。

weinxin
DC Farm小程序二维码
扫一扫添加博客小程序
Jim

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:4   其中:访客  3   博主  1

    • avatar 互联网教育 0

      非专业人士不能看明白啊。。。汗啊,欢迎回访。~

        • avatar bonben 2

          @互联网教育 问个问题,在FC协议中。给交换机增加一个多播组A,添加端口A1,A2进入这个多播组中。 如果A1给多播组播数据,A1和A2能收到吗?

            • 激劉勇靖 激劉勇靖 Admin

              @bonben 两个端口都有这个组中就可以收到。

                • avatar bonben 2

                  @激劉勇靖 但我做实验不行啊,觉得很奇怪! 如果发送端口不在多播组内,则它给多播组发送数据都能成功。但如果发送端口在多播组内,则多播组的每个端口都收不到数据。 能指点下吗??