1、1 FC结构和概念1.1 概述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) 分
2、段和重组g) 序列h) 帧的序列计数SEQ_CNT i) 帧序列错误的检测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 互换网互换
3、网的重要功能是从源N端口中接受帧,并按帧中给出的地址标记符寻找目的N端口。每个N端口通过链路连接到互换网上。每个N端口都有一个唯一的N端口地址标记符。FC-2层定义了互换网与所连接的N端口间的协议。互换网涉及两个或更多的F端口,每个F端口可连接到一个N端口上。连接互换子网用于在F端口间和F端口与N端口间建立专用连接。无连接互换子网用于在F端口间和F端口与N端口间进行多路复用。1.4 构造块FC-2层中定义的构造块有:帧,序列,互换,协议。序列由一个或多个数据帧及其响应组成。互换由一个或多个序列组成。互换可以单向的,也可以是双向的。ULP使用FC进行数据互换之前须完毕登录,登录完毕后,ULP就可
4、以使用FC直到登录实效为止。 帧:分为数据帧和链路控制帧 序列:由一组数据帧和链路控制帧组成,序列单向发送。序列级的错误恢复由FC-2层以上的层完毕。每个序列都分派了一个SEQ_ID。 互换:由一个或多个非并发序列组成。互换可以在一个1类专用连接中完毕,也可以跨多个1类连接。互换的双方都分派了一个互换标记符OX_ID ,RX_ID。 协议:提供的协议如下a) 原语序列协议b) 互换网登录协议c) N端口登录协议d) 数据传输协议e) N端口登出协议2 FC-0/FC-1层2.1 FC-0FC-0层涉及多种介质及能以不同速度工作的发送机和接受机。FC-0层发送机接口FC-0层接受机接口2.2 F
5、C-1FC-1层为编码层,FC采用8b10b编码,编码后产生传输字符。数据流转换示意图3 有序集FC-1层使用8b10b编码,通过光纤发送的信息应把一组8位数据转换为10位传输字符。数据值可以统一的表达为DX.Y或KX.Y,其中D表达为数据代码,K表达为特殊的命令代码。传输字由4个连续传输字符组成,这四个字符传输前和接受后应视为一个整体。把4个特定的传输字符进行组合形成有序集,有序集由4个专用字符和数据字符组成,FC-PH 定义了如下有特殊意义的有序集:RD初始值Running Disparity有序集定界符SOFc1负K28.5D21.5D23.0D23.0SOFi1负K28.5D21.5D
6、23.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.7D2
7、1.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.5D
8、21.1D31.5D9.2 帧定界符:放在帧内容之前或之后的有序集。SOF是放在帧内容之前的有序集;EOF是放在CRC之后的有序集,表达序列内容的结束。 原语信号: Idle 表达端口已做好帧传输和接受的准备。在没有发送数据帧、R_RDY或原语序列是应发送Idle。 R_RDY:表达收到一个1类服务请求帧、2类或3类帧,并且还可以接受更多的帧。R_RDY之前和之后应至少有2两个Idle,帧之间应至少有6个原语信号。 原语序列:原语序列是一个连续反复发送的序列集,当端口或一个端口的接受机逻辑碰到了特殊情况,应发送原语序列。当条件存在,原语序列应不断地发送。当收到一组原语序列,应根据端口的状态,回
9、送相应的原语或Idle。原语序列辨认需要连续检测3个同样的原语序列,原语序列之间不能有其他数据。原语序列协议规定如下:a) 链路初始化b) 在线到离线转换c) 链路失效d) 链路复位发送原语序列发送条件响应NOS 无操作检测到链路失效:1) 不在离线状态时同步丢失超时2) 不在离线状态时信号丢失3) 链路复位期间超时OLSOLS离线序列启动链路初始化接受到NOS进入离线状态LRLR 链路复位启动链路复位启动链路超时恢复不能确认连接状态和恢复连接过程(1类N)LRRLRR链路复位响应接受到LRIdle4 帧帧分类帧格式链路控制帧FC-0型帧R_CTL 3128 为1100确认帧ACK_0ACK_
10、1ACK_N链路响应帧忙 F_BSY P_BSY拒绝 F_RJT P_RJT链路命令帧LCR数据帧FC-1型帧R_CTL 3128不为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 帧格式N端口发送机发送帧之间最少有6个原语信号,接受机接受帧之前
11、需接受到2个Idle,互换网可以插入或除去Idle。 SOF:SOF是帧内容之前的一个有序集。SOF类别描述SOFc1用于请求一个1类连接SOFi11类服务序列的第一帧SOFn11类服务正常帧起始SOFi22类服务序列的第一帧SOFn22类服务正常帧起始SOFi33类服务序列的第一帧SOFn33类服务正常帧起始SOFf互换网起始帧 帧头:是帧内容的第一个字段,24个字节,紧跟着SOF。帧头用于控制链路操作、控制设备传输协议和检测丢失或无序的帧。 数据字段:数据字段在帧头之后。长度等于四字节的倍数。FC-0型帧数据段长度为零,FC-1型帧长度等于四字节的倍数,范围为0字节到2112个字节。ULP
12、的有效载荷不能被4整除,应进行填充。 CRC:为紧跟着数据字段的四个字节字段,用于检测帧头和数据字段的数据完整性。CRC校验中不涉及SOF,EOF EOF:为紧跟着CRC后的一个有序集。指明了帧内容的结束。EOF类别描述帧内容有效EOFn帧内容结束EOFdt撤消1类专用连接EOFt表白该序列结束帧内容无效EOFni互换网检测犯错误,用其替代EOFn或EOFt 表白帧内容无效EOFdti互换网检测犯错误,用其替代EOFdt 表白帧内容无效帧内容遭破坏EOFaN端口/F端口用于表白内部故障4.2 帧头帧头 R_CTL 路由控制R_CRL是一个对帧功能进行分类的一个单字节字段,涉及路由选择字段和信息
13、字段。Bit31bit28 路由选择字段帧类型Bit31bit28 信息字段描述备注0000FC4层设备数据帧0000未分类信息0001请求数据Solicited Data0010自发控制Unsolicited Control0011请求控制Solicited Control0100自发数据Unsolicited Data0101数据描述符Data Descriptor0110自发命令Unsolicited Command0111命令状态Command Status其他未指定0100视频数据帧同上同上0011FC4层链路数据帧同上同上0010扩展链路数据帧(TPYE应为0000 0001)同上
14、同上1000基本链路数据帧(TPYE应为0000 0000)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描述
15、互换前后关系230:表达互换启动方1:表达互换接受方序列前后关系220:表达序列启动方1:表达序列接受方第一个序列210:互换的其他序列1:互换的第一个序列最后一个序列200:互换的其他序列1:互换的最后一个序列结束序列190:序列的其他数据帧1:序列的最后一个数据帧结束连接180:连接1:将结束连接链序列170:无链序列1:表达链序列激活序列积极权160:保持序列积极权1:转换序列积极权X_ID重新分派151:表达重新分派X_ID无效141:表达无效保存1310保存重传序列90:表达原始序列1:表达重传序列单向传输80:双向传输1:单向传输后续序列76剩下的数据帧:00:无信息01:立即10
16、:不久11:延迟序列中止5400:异常中止,丢弃多个序列01:异常中止,丢弃单个序列10:带无限缓冲的解决策略11:表达丢弃多个序列,并且立即重传序列接受方ACK00:继续序列01:终止序列请求10:停止序列(正常停止无需ABTS)11:请求立即重传序列相对偏移30:参数字段无意义1:参数字段为相对偏移互换重组2为互换重组保存填充数据字节1000:表达填充0个字节01:表达填充1个字节10:表达填充2个字节11:表达填充3个字节 D_ID是目的N端口或F端口内的包含地址标记符的3个字节字段 S_ID是源N端口或F端口内的包含地址标记符的3个字节字段 TYPE字段是一个单字节字段,表达了数据帧的
17、帧内容类型。在F_BSY帧中TYPE字段表达因素码。 SEQ_ID是一个由序列启动方分派的一个单字节字段。当序列开放时,每对D_ID S_ID都由唯一的SEQ_ID。 DF_CTL是一个单字节字段,该字段规定了在设备数据帧或视频数据帧的数据帧的开始部分是否有可选帧头。 SEQ_CNT是一个两个字节字段,表达在同一个互换中的一个序列或多个连续序列中数据帧的传输顺序。 OX_ID由互换启动方分派的互换标记符,两个字节。 RX_ID由互换接受放分派的互换标记符,两个字节。 参数字段是一个四字节字段,对于链路控制帧,参数字段表达特定信息。对于数据帧,参数字段用来规定相对偏移。5 链路响应链路控制帧提供
18、如下功能:a) 交付成功提醒b) 交付不成功提醒c) 流控制和缓冲区管理反馈d) 到N端口的底层控制命令成功交付的数据帧响应如下: 对1类数据帧成功交付使用ACK_0, ACK_1, ACK_N; 对2类数据帧成功交付使用ACK_0, ACK_1, ACK_N; 对3类数据帧成功交付无响应。不成功交付的数据帧响应如下: 对1类数据帧不成功交付使用F_BSY、P_BSY、F_RJT、P_RJT相应; 对2类数据帧不成功交付使用F_BSY、P_BSY、F_RJT、P_RJT相应; 对3类数据帧不成功交付无响应。R_RDY :表达接受到一个帧,且接受帧的接口缓冲区还可接受到更多的帧。对于所有2类3类
19、和1类连接请求帧端口间应发送R_RDY,R_RDY无响应。ACK帧:ACK_0 优先于 ACK_N优先于ACK_11) ACK_1帧 所有N端口都支持ACK_1,ACK_1的SEQ_CNT应与确认帧的相匹配,参数字段ACK_CNT为1 R_CTL信息字段为0;2) ACK_0帧 表达序列中的所有数据帧都已经确认。参数字段ACK_CNT为0 R_CTL信息字段为1,ACK_0不参与EE_Credit控制3) ACK_N 接受方确认N个连续数据帧,参数字段ACK_CNT为所确认数据帧的个数,SEQ_CNT为确认的最后一个数据帧的SEQ_CNT。F_BSY: 1类服务中 F_BSY只能响应1类SOF
20、c1帧,在2类服务中F_BSY可响应任何数据帧和ACK帧,在3类服务中不能使用忙响应。 对链路控制帧不能响应P_BSY,2类服务中,假如收到响应ACK帧的F_BSY,则应丢弃F_BSY。 R_CTL 信息字段为0110时表达对链路控制帧忙,信息字段为0101表达对数据帧忙。TYPE字段表达了因素码。P_BSY: 表达接受N端口被临时占用,不能接受帧,1类服务中 P_BSY只能响应1类SOFc1帧,在2类服务中P_BSY可响应任何数据帧和ACK帧,在3类服务中不能使用忙响应。 对链路控制帧不能响应P_BSY,参数字段包含4个字节的动作码和因素码。拒绝帧P_RJTF_RJT: 表达帧的交付被拒绝,
21、参数字段包含4个字节的拒绝动作码和因素码。 在1类2类服务中,端口检测到数据帧错误,则应发送一个拒绝帧。互换网在下列情况下可以发送拒绝帧:a) 服务类不支持b) 无效的S_ID或D_IDc) N端口临时或永久不可用 N端口只有在收不到盼望的ACK时才拒绝链路控制帧;在有效互换中检测到链路控制帧错误,则应启动中止序列协议;对无效互换忽略错误。6 链路服务(FC-3层)6.1 基本链路服务基本链路服务命令有单个基本链路数据帧组成,使用基本链路服务命令之前不需要登录ABTS: 用于序列启动方请求序列接受方中止一个或多个序列 序列启动方或序列接受方请求ABTS接受方中止互换,SEQ_ID,X_ID与最
22、后一个序列的相同,该命令无有效载荷。 ABTS帧的SEQ_CNT应比最后一个序列的SEQ_CNT大1下列情况下ABTS启动方可发送ABTS帧:a) 没有EECredit可使用b) 没有序列积极权c) 序列没有开放d) 并发序列已达成了所支持的最大数目BA_ACC:告知链路服务请求方请求已完毕,假如ABTS发送方有序列积极权,则应转化积极权。SEQ_ID重新分派,X_ID与ABTS匹配。基本接受有效载荷项目字节数SEQ_ID有效 0x80有效0x00无效1最后一个序列的SEQ_ID可传送给ULP1OX_ID2RX_ID2SEQ_CNT高位2等于ABTS的SEQ_CNTSEQ_CNT低位2 最后一
23、 可交付序列数据帧的SEQ_CNTBA_RJT:告知链路服务请求方请求被拒绝,SEQ_ID重新分派,X_ID与ABTS匹配。有效载荷的前4个字节标示了拒绝因素码。NOP:可以代替正常数据帧启动1类连接,启动序列,中止序列,结束1类连接。无确认序列。RMC: 用于请求立即撤消一个1类连接。响应时请发送由EOFdt结束的ACK帧。使用RMC撤消连接,所有的开放的序列都异常终止,因此不能把该方法当作撤消连接的正常方式。无确认序列。6.2 扩展链路服务扩展链路服务规定目的端口实现一个功能或服务。每个请求或确认都由单独的序列构成。有效载荷的前4个字节表达了LS命令码扩展链路服务帧 LS命令代码0000
24、0001 -LS_RTJ链路服务拒绝扩展链路服务应答序列0000 0010-ACC接受0000 0011-PLOGIN端口登录0000 0100-FLOGIF端口登录0000 0101-LOGO登出0000 0110-ABTX中止互换中止正在进行的互换0000 0111-RCS读当前专用连接状态了解其他N端口连接状态0000 1000-RES读互换状态0000 1001-RSS读序列状态0000 1010-RSI请求序列积极权转换互换双方序列积极权0000 1011-ESTS建立流用于EE_Credit信用评估0000 1100-ESTC评估信用0000 1101-ADVC建议信用0000 1
25、110-RTV读超时值返回R-A-TOV E-D-TOV0000 1111-RLS读链路状态返回链路错误状态块0001 0000-ECHO回送应答有效载荷与ECHO相同0001 0001-TEST测试无确认序列0001 0010-RRQ复位恢复限定符恢复S_ID,D_ID,OX_ID,RX_ID,SEQ_CNT低位和高位之间的SEQ_CNT其他-保存6.3 总结 基本链路服务命名由单个基本链路数据帧组成,作为互换的一部分。 扩展链路服务仅在单个互换内部执行。大多数扩展服务协议都是两个序列的互换。 基本和扩展确认帧和确认序列应按与请求同样的服务类。 假如登录不成功,因并发序列限制为1,所以不能发
26、起第二个互换来执行扩展的链路服务。因此中止序列协议时恢复动作的首选。 假如登录不成功,则不能尝试ESTC,ESTS,ADVC(EE_Credit评估)。 假如登录成功,则对所有的扩展链路服务互换,互换发送方应使用丢失多个序列错误解决策略。 假如扩展链路服务互换发送方检测到互换的错误,那么就应中止该互换,同时使用另一个互换重试被中止的互换协议。7 服务类互换网和N端口提供3种服务类,互换网和N端口可以选择支持一种或多种服务类。互换网收到的每个帧,应完毕下列各项中的一项:a) 交付帧b) 发送一个FBSYc) 发送一个FRJTd) 不发送任何响应丢弃帧7.1 1类服务:专用连接要建立1类连接需N端
27、口向另一个N端口发送连接请求,另一个N端口回送ACK。互换网给两个N端口间分派回路。一旦建立连接,在撤消连接之前互换网应保持两个N端口间的回路。规则: 建立连接前应先登录,撤消连接前需一直保持连接,撤消连接前只能与连接的N端口通信; 发送方对每个数据帧分派递增的SEQ_CNT,每个帧都包含各自的S_ID、D_ID、OX_ID、RX_ID。互换网顺序交付; 已建立连接的两个N端口可发起多个互换,启动多个序列。 N端口负责端到端流控制,目的端口对每个有效数据帧确认ACK。除SOFc1外,1类服务帧只有端到端流控制,SOFc1既参与端到端流控制,又参与缓冲区到缓冲区流控制。 互换网可拒绝1类连接请求
28、或发送带因素的F_BSY。建立专用连接后,互换网不再干涉连接,目的N端口不能发送忙帧,但可发送拒绝帧。当第三个N端口把2类服务帧或3类服务帧发送到已经建立连接的N端口,互换网给2类服务帧回送一个FBSY,对3类服务帧丢弃。 1类帧、1类SOFc1帧与2类服务帧都参与EE_Credit控制。 N端口和F端口应可以辨认所有服务类的SOF,并给出对的的响应。7.2 2类服务:多路复用2类服务是在两个N端口间提供带有未交付告知的无连接服务。规则: 接受N端口,发送N端口要完毕登录; 目的端口对每个有效数据帧确认ACK。发送方对每个数据帧分派递增的SEQ_CNT,每个帧都包含各自的S_ID、D_ID、O
29、X_ID、RX_ID。互换网不必顺序交付。 N端口与F端口间执行缓冲区到缓冲区流控,N端口间执行端到端流控。 1类SOFc1帧、2类服务帧、3类服务帧参与BB_Credit控制 N端口和F端口应可以辨认所有服务类的SOF,并给出对的的响应。 流控:2类服务使用两种流控。F端口给发送2类服务N端口发送R_RDY,表白F端口缓冲区可以接受其他帧。N端口给与之相连的F端口发送R_RDY,表白N端口缓冲区可以接受其他帧。使用ACK帧实现端到端流控。7.3 3类服务:数据报3类服务是在两个N端口间不提供交付/未交付告知的无连接服务和两个N端口端到端流控。规则: 接受N端口,发送N端口要完毕登录; 目的端
30、口对每个有效数据帧确认ACK。发送方对每个数据帧分派递增的SEQ_CNT,每个帧都包含各自的S_ID、D_ID、OX_ID、RX_ID。互换网不必顺序交付。 N端口与F端口间实行缓冲区到缓冲区流控。R_RDY用于缓冲区到缓冲区的流控。1类SOFc1帧、2类服务帧、3类服务帧都参与BB_Credit控制。 N端口和F端口应可以辨认所有服务类的SOF,并给出对的的响应。7.4 混合服务假如使用混合服务,互换网、接受N端口、发送N端口都应支持混合服务。8 登录N端口与互换网或与其他N端口建立操作环境的过程。登录前或登录后使用缺省的服务参数。缺省值如下: 并发序列数为1 并发序列总数为1 EE_Cre
31、dit为1 BB_Credit为1 接受数据字段大小等于128 规定XID互锁 没有XID重新分派 使用ACK_1 丢弃多个序列错误策略 不使用相对偏移 不使用其他可选择支持的特性 可分为互换网登录和目的N端口登录,实现过程同样只是源/目的标记符不同。8.1 互换网登录 拟定互换网是否存在,不存在可反馈已连接到一个点到点拓扑结构; 存在则能初始化BB_Credit; 1) 发送FLOGI序列 分派OX_ID ,D_ID目的地址标记符0XFFFFFE,S_ID源地址标记符为0;2) 互换网发送ACC确认序列,分派S_ID,若不支持分派则返回带S_ID无效的F_RJT。3) 发送S_ID 为X的F
32、LOGI序列,若X无效,改变x值,直到收到ACC帧。8.2 N端口登录 初始化目的端口的EE_Credit 初始化BB_Credit1) 发送PLOGI序列 分派OX_ID 目的地址标记符Y 源地址标记符为X;2) 目的N端口发送ACC确认序列,分派RX_ID,目的地址标记符X 源地址标记符为Y。ACC中有效载荷涉及N端口服务参数。8.3 N端口服务参数FLOGI 、 PLOGI 、 ACC有效载荷结构16字节8字节8字节16字节16字节16字节16字节16字节通用服务参数端口名每个N端口唯一节点/互换网名每个N端口唯一1类服务参数2类服务参数3类服务参数保存厂商标记符N端口通用服务参数参数字
33、位描述最新版本03124所支持的最新版本最早版本02316所支持的最老版本BB_Credit0150缓冲区到缓冲区信用一般特性13116-连续增长1310表达不支持 连续增长的偏移值1表达支持随机相对偏移1300表达不支持 随机的相对偏移值1表达支持保存1290 表达无效1 表达厂商标记符有效N端口F端口1280表达N端口,1表达F端口缓冲区到缓冲区接受数据字段大小1110小于128 大于2112的值都是无效的,是4的整数倍,至少128,推荐256N端口并发序列总数23116表达N端口作为接受方对所有3种服务所支持的并发序列的总合按信息类别的相对偏移2150表达是否支持相应信息类的相对偏移R_
34、A_TOV2310资源分派超时值 单位1msE_D_TOV3310仅对点到点结构故意义,故障检测超时值 单位1msN端口服务类参数参数字位备注有效性0310不支持的类1支持的类混合服务模式0300不支持混合服务1 支持混合服务堆栈连接请求02938登录时无意义连续发送027登录时无意义X_ID重新分派0151400 不支持X_ID互锁01 支持X_ID互锁11 规定X_ID重新赋值发送方响应过程关联0131200 不支持初始过程关联因子01 支持初始过程关联因子11 需要初始过程关联因子发送方支持ACK_00110表达不支持1表达支持发送方支持ACK_N0100表达不支持1表达支持接受方支持A
35、CK_01310表达不支持1表达支持接受方支持ACK_N1300表达不支持1表达支持X_ID互锁1291表达规定互锁0表达不规定互锁错误策略支持1282700 表达只支持丢弃策略10表达支持丢弃和解决策略每个序列类别1252400 每个序列1种类别01 每个序列2种类别11每个序列多于两种类别互换网特性 保存11916接受数据字段大小1150规定了数据字段大小的最大值并发序列23116N端口EE_Credit2140端到端信用 3类服务无每个互换中开发序列数331168.4 F端口服务参数参见8.39 互换/序列管理序列是一组一个或多个相关数据帧及链路控制帧的集合。序列级的错误恢复应由FC-2
36、层以上各层完毕。互换是一个或多个相关序列的集合。互换可以是单向的也可以是双向的,对于一个启动方N端口,在任何一个时刻,一个互换内只能有一个序列活动,即序列发送方在启动另一个序列之前,应完毕当前序列的数据帧发送。在每个序列结束后,序列启动方可以把发送下一个序列的积极权转移给其他N端口,或保存发送下一个序列的积极权。9.1 总体规则互换是协调两个N端口或节点之间信息数据互相互换的基本机制。所有数据传输都是互换的组成部分。互换管理规则: 在互换的整个生存期内,序列接受方以序列为基础将数据交付给FC-4层或更高层协议。 在丢弃多个序列错误策略中,序列应按发送顺序交付。假如序列正常完毕且之前序列可交付,
37、则当前序列可交付。 在丢弃单个序列错误策略中,假如序列正常完毕,则当前序列可交付。 假如序列中所有有效的数据帧都没检测到可拒绝的错误,则该序列的数据内容是完整的。 在无限缓冲区策略中 序列的首帧,尾帧没有检测到可拒绝的错误。该序列可交付。互换产生规则 登录完毕前的互换应合用缺省登录参数 要产生新的互换(非扩展链路服务)的条件源N端口已完毕到目的N端口的登录源N端口已具有OX_ID和互换资源源N端口可以启动新的序列 互换中第一个序列的每个帧的F_CTL中的第一个序列位应置1 互换中第一个序列的第一个帧应在F_CTL中bit5bit4设定互换错误策略 发送方应发送带指定OX_ID的数据帧,未指定的
38、RX_ID为0xffff。若规定X_ID互锁则需等待带RX_ID的ACK。若不需互锁则可发送序列的其他帧。 在1类2类服务中,发起下个序列前至少收到前一个序列的一个ACK序列定界符 序列应通过发送带有SOFix或SOFc1的第一帧来启动 中间帧使用SOFnx和EOFn 收到EOFt或EOFdt,序列结束。序列启动规则 当满足下列3条件时可以启动新的序列启动N端口具有序列积极权启动N端口有可使用的SEQ_ID启动N端口及接受N端口建立的活动序列总数不超过a) 并发序列总数b) 每种服务的并发序列总数c) 每个互换的开放序列数 序列启动方指定一个唯一的SEQ_ID,不能与上一个序列相同 对于同一互
39、换中的流序列互换启动方应使用X+1个SEQ_ID(X为互换序列总数),这样可使互换状态块中保存最后一个可交付序列的信息序列计数 在一个数据帧序列中,使用SEQ_CNT标记序列的每个帧 互换的第一个帧的SEQ_CNT为0,序列中其它帧随后累计加1。 对于流序列后一序列第一帧SEQ_CNT为前一序列最后帧SEQ_CNT加1。 对于流序列后一序列第一帧SEQ_CNT可为前一序列最后帧SEQ_CNT加1,也可为0。 链路响应帧的序列计数SEQ_CNT应与其响应的序列一致。正常ACK帧规则 ACK_0 优先级大于ACK_N优先级大于ACK_1。同一序列中不可混合使用ACK。 在丢弃策略和错误解决策略中都
40、可使用ACK_0,每个序列都可使用单个ACK_0表达序列发送成功,或把中止序列条件设立为一个不为00的值,请求中止序列。 ACK帧可不按SEQ_CNT顺序而按数据帧的解决顺序发送,但参数地段的历史位应指明当前序列中前一个ACK帧的状态。 每个ACK帧应在E_D_TOV限定的时间内发送。使用ACK_0时应在接受到最后一个数据帧的时限内发送。正常序列完毕规则: F_CTL的结束序列位bit19 置1、序列积极权位bit16置1。 若F_CTL中的连续序列位bit7bit6 为11时,序列启动方一直等待最后的ACK帧,收到之后才启动下一序列。 在最后一个数据帧可转移序列积极权。ACK中积极权位为1,
41、则积极权已转移到序列接受方。 1类序列最后一个数据帧的结束连接位为1,表达要结束连接。 在1类2类服务中,收到带EOFt或EOFdt的ACK时则认为序列可交付。 在3类服务中,发送方收到ABTS帧的接受响应或接受到读互换状态块请求的接受响应时,才认为序列是可交付的。 接受方在下列情况,认为一个1类2类序列可交付所有数据帧都被接受没有检测到序列错误除最后一个确认,其他确认都已发送。 接受方在下列情况,认为一个3类序列可交付所有数据帧都被接受没有检测到序列错误最后一个数据帧由EOFt结束 在1类2类中序列启动方发送的最后一个数据帧应以EOFn结束,在3类服务的最后一个数据帧应以EOFt结束。互换终
42、止规则 互换的最后序列的最后一个数据帧中的F_CTL的最后序列位应置为1。也可在最后序列其它帧设立,一旦设立不可改变。 当最后一个序列按正常规则结束时,互换终止。 可以使用ABTX扩展链路服务请求异常中止互换 互换中所涉及的N端口登出,则互换异常中止。9.2 状态块ESB Exchange Status Block项目字节数OX_ID2RX_ID2发送方地址标记符4接受方地址标记符4E_STAT4保存4服务参数112第一个序列状态8中间序列状态8*X最后一个序列状态8接受方:所有序列都应记录 发送方:所有序列都应记录,但无需提供应外部SSB Sequence Status Block项目字节数SEQ_ID1保存1SEQ_CNT的低位2SEQ_CNT的高位2S_STAT2错误SEQ_CNT2