1FC结构和概念1.1概述FC-4映射层FC-3通用服务FC-2信号协议FC-1传输协议FC-0接口/介质FC逻辑上是一个高性能的双向点到点的串行数据传输通道,在物理上它可以通过交换网互联连接多个通讯节点也就是N端口,也可以以点到点的形式连接。FC协议由一系列的功能层组成,FC-PH由相关的功能层FC-0,FC-1,FC-2组成。FC-0层(物理层)由传输介质、发送机和接收机及接口组成。物理层规定了多种介质在不同速率下工作的驱动接收能力。FC-1层(编码层)进行8B10B编码。FC-2规定了端到端数据块的传输机制。FC-2层协议应管理下列内容:a)交换的激活和终止b)序列的启动和终止c)X_ID分配和重新分配d)序列主动权e)SEQ_ID的分配f)分段和重组g)序列h)帧的序列计数SEQ_CNTi)帧序列错误的检测j)帧序列错误的报告(3类服务除外)FC-3层提供了一组FC节点上多个N端口的通用服务(基本链路服务,扩展的链路服务,F4层链路服务)FC-4层ULP到FC的映射组成FC-4层,是FC中的最高层FC节点一个FC节点node如上图所示,节点可支持一个或多个N端口和一个或多个FC-4层协议,每个N端口包括FC-0,FC-1,FC-2层的功能,FC-3层选择性的为多个N端口和FC-4层提供通用服务。1.2拓扑结构点到点结构交换网结构仲裁环结构NL端口:具有仲裁功能的N端口FL端口:具有仲裁功能的F端口1.3交换网交换网的主要功能是从源N端口中接收帧,并按帧中给出的地址标识符寻找目的N端口。每个N端口通过链路连接到交换网上。每个N端口都有一个唯一的N端口地址标识符。FC-2层定义了交换网与所连接的N端口间的协议。连接交换子网无连接交换子网RxTxRxTx……..……..交换网F端口F端口F端口F端口BUFFERBUFFER交换网包括两个或更多的F端口,每个F端口可连接到一个N端口上。连接交换子网用于在F端口间和F端口与N端口间建立专用连接。无连接交换子网用于在F端口间和F端口与N端口间进行多路复用。1.4构造块FC-2层中定义的构造块有:帧,序列,交换,协议。序列由一个或多个数据帧及其响应组成。交换由一个或多个序列组成。交换可以单向的,也可以是双向的。ULP使用FC进行数据交换之前须完成登录,登录完成后,ULP就可以使用FC直到登录实效为止。帧:分为数据帧和链路控制帧序列:由一组数据帧和链路控制帧组成,序列单向发送。序列级的错误恢复由FC-2层以上的层完成。每个序列都分配了一个SEQ_ID。交换:由一个或多个非并发序列组成。交换可以在一个1类专用连接中完成,也可以跨多个1类连接。交换的双方都分配了一个交换标识符OX_ID,RX_ID。协议:提供的协议如下a)原语序列协议b)交换网登录协议c)N端口登录协议d)数据传输协议e)N端口登出协议2FC-0/FC-1层2.1FC-0FC-0层包括多种介质及能以不同速度工作的发送机和接收机。100–SM–LL-L速度100502512100MB/S50MB/S25MB/S12MB/S介质SMM5M6TV单模多模50微米多模62.5微米视频电缆MITP细电缆TP距离LIS长距离中距离短距离发送机LLSLLEEL长波长激光短波长激光长波LED电FC-0层发送机接口FC-0层接收机接口2.2FC-1FC-1层为编码层,FC采用8b10b编码,编码后产生传输字符。数据流转换示意图3有序集FC-1层使用8b10b编码,通过光纤发送的信息应把一组8位数据转换为10位传输字符。数据值可以统一的表示为DX.Y或KX.Y,其中D表示为数据代码,K表示为特殊的命令代码。传输字由4个连续传输字符组成,这四个字符传输前和接收后应视为一个整体。把4个特定的传输字符进行组合形成有序集,有序集由4个专用字符和数据字符组成,FC-PH定义了如下有特殊意义的有序集:RD初始值RunningDisparity有序集定界符SOFc1负K28.5D21.5D23.0D23.0SOFi1负K28.5D21.5D23.2D23.2SOFn1负K28.5D21.5D23.1D23.1SOFi2负K28.5D21.5D21.2D21.2SOFn2负K28.5D21.5D21.1D21.1SOFi3负K28.5D21.5D22.2D22.2SOFn3负K28.5D21.5D22.1D22.1SOFf负K28.5D21.5D24.2D24.2EOFt负K28.5D21.4D21.3D21.3正K28.5D21.5D21.3D21.3EOFdt负K28.5D21.4D21.4D21.4正K28.5D21.5D21.4D21.4EOFa负K28.5D21.4D21.7D21.7正K28.5D21.5D21.7D21.7EOFn负K28.5D21.4D21.6D21.6正K28.5D21.5D21.6D21.6EOFdti负K28.5D10.4D21.4D21.4正K28.5D10.5D21.4D21.4EOFni负K28.5D10.4D21.6D21.6正K28.5D10.5D21.6D21.6原语信号Idle负K28.5D21.4D21.5D21.5R_RDY负K28.5D21.4D10.2D10.2原语序列OLS无操作负K28.5D21.1D10.4D21.2NOS离线序列负K28.5D21.2D31.5D5.2LR链路复位负K28.5D9.2D31.5D9.2LRR链路复位响应负K28.5D21.1D31.5D9.2帧定界符:放在帧内容之前或之后的有序集。SOF是放在帧内容之前的有序集;EOF是放在CRC之后的有序集,表示序列内容的结束。原语信号:Idle表示端口已做好帧传输和接收的准备。在没有发送数据帧、R_RDY或原语序列是应发送Idle。R_RDY:表示收到一个1类服务请求帧、2类或3类帧,而且还可以接收更多的帧。R_RDY之前和之后应至少有2两个Idle,帧之间应至少有6个原语信号。原语序列:原语序列是一个连续重复发送的序列集,当端口或一个端口的接收机逻辑遇到了特殊情况,应发送原语序列。当条件存在,原语序列应不断地发送。当收到一组原语序列,应根据端口的状态,回送相应的原语或Idle。原语序列识别需要连续检测3个同样的原语序列,原语序列之间不能有其他数据。原语序列协议规定如下:a)链路初始化b)在线到离线转换c)链路失效d)链路复位发送原语序列发送条件响应NOS无操作检测到链路失效:1)不在离线状态时同步丢失超时2)不在离线状态时信号丢失3)链路复位期间超时OLSOLS离线序列启动链路初始化接收到NOS进入离线状态LRLR链路复位启动链路复位启动链路超时恢复不能确认连接状态和恢复连接过程(1类N)LRRLRR链路复位响应接收到LRIdle4帧帧分类帧格式链路控制帧FC-0型帧R_CTL31~28为1100确认帧ACK_0ACK_1ACK_N链路响应帧忙F_BSYP_BSY拒绝F_RJTP_RJT链路命令帧LCR数据帧FC-1型帧R_CTL31~28不为1100FC-4层设备数据帧FC-4层设备类型IP、IPI-3、SCSI、SBFC-4视频数据帧FC-4层视频类型保留链路数据帧基本链路服务ABTS、BA_ACC、BA_RJT、NOP、RMC扩展链路服务ABTX、ACC、ADVC、ECHO、ESTC、ESTS、FLOGI、LOGO、LS_RJT、PLOGI、RCS、RES、RLS、RRQ、RSI、RSS、RTV、TESTFC-4链路服务4.1帧格式SOF帧头数据CRCEOF...Idle......Idle...可选帧头可填充字节数据载荷帧内容通用帧格式N端口发送机发送帧之间最少有6个原语信号,接收机接收帧之前需接收到2个Idle,交换网可以插入或除去Idle。SOF:SOF是帧内容之前的一个有序集。SOF类别描述SOFc1用于请求一个1类连接SOFi11类服务序列的第一帧SOFn11类服务正常帧起始SOFi22类服务序列的第一帧SOFn22类服务正常帧起始SOFi33类服务序列的第一帧SOFn33类服务正常帧起始SOFf交换网起始帧帧头:是帧内容的第一个字段,24个字节,紧跟着SOF。帧头用于控制链路操作、控制设备传输协议和检测丢失或无序的帧。数据字段:数据字段在帧头之后。长度等于四字节的倍数。FC-0型帧数据段长度为零,FC-1型帧长度等于四字节的倍数,范围为0字节到2112个字节。ULP的有效载荷不能被4整除,应进行填充。CRC:为紧跟着数据字段的四个字节字段,用于检测帧头和数据字段的数据完整性。CRC校验中不包括SOF,EOFEOF:为紧跟着CRC后的一个有序集。指明了帧内容的结束。EOF类别描述帧内容有效EOFn帧内容结束EOFdt撤销1类专用连接EOFt表明该序列结束帧内容无效EOFni交换网检测出错误,用其替代EOFn或EOFt表明帧内容无效EOFdti交换网检测出错误,用其替代EOFdt表明帧内容无效帧内容遭破坏EOFaN端口/F端口用于表明内部故障4.2帧头Bit31~24Bit23~16Bit15~8Bit7~0R_CTLD_IDS_IDrrrrrrrrTYPEF_CTLSEQ_IDDF_CTLSEQ_CNTRX_ID0X_ID参数字段字0字1字2字3字4字5帧头R_CTL路由控制R_CRL是一个对帧功能进行分类的一个单字节字段,包括路由选择字段和信息字段。Bit31~bit28路由选择字段帧类型Bit31~bit28信息字段描述备注0000FC4层设备数据帧0000未分类信息0001请求数据SolicitedData0010自发控制UnsolicitedControl0011请求控制SolicitedControl0100自发数据UnsolicitedData0101数据描述符DataDescriptor0110自发命令UnsolicitedCommand0111命令状态CommandStatus其他未指定0100视频数据帧同上同上0011FC4层链路数据帧同上同上0010扩展链路数据帧(TPYE应为00000001)同上同上1000基本链路数据帧(TPYE应为00000000)0000NOP无操作基本链路服务命0001ABTS中止序列0010RMC结束连接0011保留0100BA_ACC基本接受0101BA_RJC基本拒绝其他保留令1100链路控制帧出F_BSY外TPYE保留0000ACK_1链路控制码0001ACK_0/ACK_N0010P_RTJ0011F_RTJ0100P_BSY0101F_BSY对数据帧忙0110F_BSY对链路控制帧忙0111LCR链路信用复位其他保留F_CTL字段F_CTL字段是一个与帧内容相关的包含控制信息的3字节字段F_CTL字段格式控制字段位置bit描述交换前后关系230:表示交换启动方1:表示交换接收方序列前后关系220:表示序列启动方1:表示序列接收方第一个序列210:交换的其他序列1:交换的第一个序列最后一个序列200:交换的其他序列1:交换的最后一个序列结束序列190:序列的其他数据帧1:序列的最后一个数据帧结束连接180:连接1:将结束连接链序列170:无链序列1:表示链序列激活序列主动权160:保持序列主动权1:转换序列主动权X_ID重新分配151:表示重新分配X_ID无效141:表示无效保留13~10保留重传序列90:表示原始序列1:表示重传序列单向传输80:双向传输1:单向传输后续序列7~6剩下的数据帧:00:无信息01:立即10:不久11:延迟序列中止5~400:异常中止,丢弃多个序列01:异常中止,丢弃单个序列10:带无限缓冲的处理策略11:表示丢弃多个序列,并且立即重传序列接收方ACK00:继续序列01:终止序列请求10:停止序列(正常停止无需ABTS)11:请求立即重传序列相对偏移30:参数字段无意义1:参数字段为相对偏移交换重组2为交换重组保留填充数据字节1~000:表示填充0个字节01:表示