搜索
您的当前位置:首页正文

FC协议学习笔记

来源:哗拓教育
Fibre Chanel

一、概念

Fibre Channel字面意思就是“网状通道”,简称FC协议或FC网络。像TCP/IP一样,FC协议集同样具备TCP/IP协议集以及以太网中的很多概念,比如FC交换、FC交换机、FC路由、FC路由器,SPF路由算法等。

凡是作为一个通信协议,就可以按照OSI模型来将其划分层次,尽管有些层次可能是合并的或者是缺失的。划分了层次之后,我们就可以把这个协议进行分解,提取每个层次的功能和各个层次之间的接口,从而可以将这个协议融合到其他协议之中,形成一种“杂交”协议来适应各种不同的环境。

我们完全可以类比的地看待TCP/IP协议以及FC协议,因为他们都 遵循OSI模型。任何互联系统都逃不过OSI模型,不可能存在某种不能归属于OSI中某个层次的元素。 二、FC体系结构

FC是专门用于互连服务器与存储设备的协议。它分为五层:FC-0——物理层——用来定义存储介质及连接头等;FC-1——编码(encode)与解码(decode)及链路控制,FC使用8b/10b编码与解码方案;FC-2——帧与信号(Frame and signal),把上层的数据包封装成FC frame,定义了frame的结构,一个FC frame payload最大为2112bytes,该层还有流量控制功能;FC-3——通过服务层(common service layer);FC-4——上层应用映射(Upper Layer Protocol Mapping),主是要用来解决如何把SCSI命令/数据块封装到FCP。

三、断层分析

FC协议栈模型可用如下图表示:

物理层(FC0)

FC 作为一种高速的网络传输技术,物理层传输速度从1Gb/s、2GB/s、4GB/s到当前的8GB/s。其底层使用了同步串行传输方式,为了保证传输过程中的电直流平衡、时钟恢复和纠错等特性,其传输编码方式采用NMb编码方式。 传输协议(FC1)

根据ANSI X3 T11标准,规定了8B/10B的编码方式和传输协议,包括串行编码、编码规则、特殊字符和控制错误。 链路层(FC2)

1、数据帧,FC协议定义了一个24B的帧头(以太网为 14字节),这24字节中包括寻址、传输保障功能。网络层和传输层的逻辑都用这24B的信息来传递。基于以太网的TCP/IP协议开销是:14B(以太网帧头)+20B(IP头)+20B(TCP头) = 54B,或把TCP头换成8B的UDP头。

FC2帧完全格式

帧报头(Frame Header)

FC2的帧由一个SOF定界符、帧内容和一个EOF定界符组成。帧内容由帧头、数据字段及CRC组成。

帧开始(SOF)定界符是直接先于帧内容的一个规则集。标准为序列控制定义了多个SOF定界符。SOF定界符作为一个以字为界线进行传输。

循环冗余检验(CRC)是一个4字节的字段,它紧随数据字段之后,用于验证帧头和数据字段的数据完整性。SOF和EOF定界符不包含在CRC的检验范围。CRC编码传输前和接收解码后对帧头和数据字段进行计算。CRC字段也会以字为界线排序。

2、FC定义了两种流控策略:a、端到端的流控;b、缓存到缓存的流控。a比b要上层和高级,如果FC终端给另外一个FC终端发送数据帧,它需要先经历缓存-缓存的流控(端-FC交换机),然后再经历缓存-缓存流控(FC交换机-端),最终到达另外一个终端。端到端的流控实现,是由多个Buffer-Buffer的流控组成的。如果链路的一端是FC终端设备,另一端是FC交换机,则二者之间的缓存到缓存的流量控制只能控制这个FC终端到FC交换机之间的流量。而通信的最终目标是网络上的另一个FC终端,这之间可能经历了多个FC交换机和多条链路。而如果数据流再另外一个FC终端上发生拥塞,则这个FC终端就必须通知发起端降低发送频率,这就是“端到端”的流量控制。

3、MTU,以太网的MTU为1500B,FC的MTU可以达到2112B(该2112为负载大小,整个数据帧包括:帧起始EOF\\帧头Frame Header\\负载\\CRC\\帧结束,整个帧为2148B)。

网络层(FC2)

1、拓扑,包括2种模式:FC-AL和Fabric

FC-AL:类似于共享总线拓扑,连接方式为一条仲裁环路,每个FC-AL设备首尾相连构成环路,每个环路最多128个节点,对于FC仲裁环架构的网络没有名称注册过程,环上的每个节点都对环上其他节点了如指掌,可以对任何节点发起通信。

Fabric:意思为“网状构造”,即FC交换网络,和以太网交换拓扑类似,是一个网状交换矩阵。其转发效率比FC-AL要高,矩阵中ALL节点均可点到点通信,此架构总宽带为ALL端口宽带之和。

2、寻址,和以太网端口MAC地址类似,每个FC网络中每个FC设备自身都有个WWNN(World Wide Node Name),FC设备的每个端口都有一个WWPN(World Wide Port Name)地址,世界上没有两个接口地址是相同的。

FC交换机要做的工作比以太网交换机多,许多智能和FC的逻辑都被集成在FC交换机上,FC交换机要处理到到FC协议的最上层。

WWPN地址长度为64位,比以太网的MAC地址还要长出16位,这样长的地址不利于高效路由,所以FC协议决定在WWPN之上再映射一层寻址机制,就像MAC和IP的映射一样。给每个连接到FC网络中的接口分配一个Fabric ID,用这个ID而不是WWPN来嵌入链路帧中做路由(WWPN与ID类似于MAC与IP关系),该ID长为24位,高8位是Domain区分符,中8位是Area区分符,低8位是Port区分符。 Domain ID

映射 WWPN Fabric ID Area ID

Port ID

Domain ID:用来区分一个由众多交换机组成的大的FC网络中每个FC交换机本身。 Area ID:用来区分同一台交换机上的不同端口组。 Port ID:用来区分一个同Area中的不同Port。 经过这样的3段式寻址体系,可以区分一个大Fabric中的每个交换机、交换机中的每个端口组及每个端口组中的端口。

3、寻址过程 (1).地址映射

a.接入FC中时,端口发起登入注册动作,称为FLOGIN;

交换机收到登入帧后分配Fabric ID,并做WWPN与Fabric ID的映射; c.此后该端口中的帧不会携带WWPN,而是用ID作为地址。

(2).寻址机制

FC网络中自动分配、管理各种地址,每个节点在登入到FC网络并且被分配ID之

后,会进行一个名称注册过程,也就是接口上的设备会向一个特定的目的ID发一系列的注册帧来注册自己。这个特定的ID实际上并没有物理设备与其对应,只是运行在交换机上的一套“名称服务程序”而已。

节点注册到“名称服务”之后,服务便会将网络上存在的其他节点信息告诉这个

接口上所连接的设备,所以这个接口上的设备便知道了网络上所有节点和资源。

ZONE:即分区的意思。同区的节点可以通信,不同区则不可以通信。对于软ZONE

名称服务器没有通告的ID就不去连接;硬ZONE为底层硬件隔离,即使知道ID也无法连接。

FC服务:名称服务器只是FC提供的所有服务中的一个,其他还有时间服务、别名

服务等,这些地址都是事先定死的。

Fabric网络中还有一种FC Control Service,如果节点向这个服务注册,也就是向地

址FFFFFD发送一个State Change Registration(SCR)帧,那么一旦整个Fabric有什么变动,比如一个节点离线或上线、或者一个ZONE被创建等,Fabric便会将这些事件封装到Registered State Change Notification(RSCN)帧里发送给注册了这项服务的所有节点。 FC的链路层和网络层被合并成一层,统称为FC2。 公共服务层(FC3)

1.FC3层中定义了一组服务用于公共的单一节点中的多个端口交叉其中包括组搜寻(Hunt

Groups)和分组广播(Multicast)。 ●组搜寻

组搜寻指的是由多个节点端口(N-Port)回复同一个别名地址请求的能力。这能略降低节点端口繁忙的机会,从而有效地提高整个系统的效能。

●分组广播

分组广播指的是将一个传输信息发送到多个节点端口(N-Port)。这些节点端口可以使整个交换拓扑中所有的节点端口,也可以是整个交换拓扑中的部分节点端口,此时也称为广播(Broadcast)。

2.一个节点只有一个FC3层,它为同节点上的多个上层提供服务,它利用FC2层(可能是多个基于端口的FC2层)实现公共服务。

层还定义了其他常用服务,如数据加密和压缩等。 协议映射层(Mapping)(FC4)

1.FC4(Mapping)层是FC体系结构中的最高层,在FC4层中定义了应用程序接口和底层协议与高层协议之间的映射。

·小型计算机系统接口(SCSI) ·互联网协议(IP)

·高性能并行接口(HIPPI) ·异步传输模式(ATM) ·智能外设接口-3(IPI-3) ·单字节指令码集(SBCCS)

由于FC4层是针对不同应用层协议的映射,因此具体的应用将具有具体的映射,存储系统将使用SCSI应用层协议,SCSI协议的映射是通过FCP来完成的。

FCP综述:每个服务器\\交换机\\存储设备本身被视为节点,连接的端口(HBA)就是N端口,一个节点中可能有多个端口,其中FC3、FC4的实现是在节点上,且只有一个FC3\\FC4实现,FC0、FC1、FC2的实现是在每一个端口上实现的,一个节点可能有多个FC0\\FC1\\FC2实现。

2.FC4层还有一个角色是分割,每个Exchange(上层程序)发过来的包被FC4分割成“Information Unit(信息单元)”,然后交给下层(和TCP类似),下层会把分割好的Unit赋予序列ID。

三、FC协议中的七种端口类型

端口和F端口:基于Fabric;N-Node为终端节点一端的接口;F-Fabric为对应的交换机端口的接口 终端FC终端FCN F F N FC交换机 设备 设备

端口:基于FC-AL;L口是AL中ALL-Node的端口类型(LOOP)。

私有环:封闭的、不能与环外通信。 开放环:开放的、可以和环外通信。

端口和FL端口:基于FC-AL开放环;NL有N、L口的双重能力;FL是连接Fabric和AL的中介口。

只有NL口才能和环外通信。

NL与环外通讯时,不需要MAP,只要Tunnel过程即可 L口语环外通信时,需要MAP映射(N与L,Fabric与AL) 端口编址:N\\NL\\L的FC ID均为24位(3字节)长。 端口:交换机和交换机的端口连接专用。

端口:万能口,可转变为以上任何一种口,方式为自动协商。

6.端口:分为传送(TX)和接受(RX)两部分,有一个唯一的节点名称。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top