光纤通道协议总结Word文件下载.docx
《光纤通道协议总结Word文件下载.docx》由会员分享,可在线阅读,更多相关《光纤通道协议总结Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。
交换可以在一个1类专用连接中完成,也可以跨多个1类连接。
交换的双方都分配了一个交换标识符OX_ID,RX_ID。
协议:
提供的协议如下
a)原语序列协议
b)交换网登录协议
c)N端口登录协议
d)数据传输协议
e)N端口登出协议
3FC-0/FC-1层
3.1FC-0
FC-0层包括多种介质及能以不同速度工作的发送机和接收机。
FC-0层发送机接口
FC-0层接收机接口
3.2FC-1
FC-1层为编码层,FC采用8b10b编码,编码后产生传输字符。
数据流转换示意图
4有序集
FC-1层使用8b10b编码,通过光纤发送的信息应把一组8位数据转换为10位传输字符。
数据值可以统一的表示为DX.Y或KX.Y,其中D表示为数据代码,K表示为特殊的命令代码。
传输字由4个连续传输字符组成,这四个字符传输前和接收后应视为一个整体。
把4个特定的传输字符进行组合形成有序集,有序集由4个专用字符和数据字符组成,FC-PH定义了如下有特殊意义的有序集:
RD初始值RunningDisparity
有序集
定界符
SOFc1
负
K28.5
D21.5
D23.0
SOFi1
D23.2
SOFn1
D23.1
SOFi2
D21.2
SOFn2
D21.1
SOFi3
D22.2
SOFn3
D22.1
SOFf
D24.2
EOFt
D21.4
D21.3
正
EOFdt
EOFa
D21.7
EOFn
D21.6
EOFdti
D10.4
D10.5
EOFni
原语信号
Idle
R_RDY
D10.2
原语序列
OLS无操作
NOS离线序列
D31.5
D5.2
LR链路复位
D9.2
LRR链路复位响应
帧定界符:
放在帧内容之前或之后的有序集。
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)链路复位期间超时
OLS
OLS离线序列
启动链路初始化
接收到NOS
进入离线状态
LR
启动链路复位
启动链路超时恢复
不能确认连接状态和恢复连接过程(1类N)
LRR
LRR链路复位响应
接收到LR
5帧
帧分类
帧格式
链路控制帧
FC-0型帧
R_CTL31~28为
1100
确认帧
ACK_0
ACK_1
ACK_N
链路响应帧
忙F_BSYP_BSY
拒绝F_RJTP_RJT
链路命令帧
LCR
数据帧
FC-1型帧
R_CTL31~28不为
FC-4层设备数据帧
FC-4层设备类型
IP、IPI-3、SCSI、SB
FC-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、TEST
FC-4链路服务
5.1帧格式
N端口发送机发送帧之间最少有6个原语信号,接收机接收帧之前需接收到2个Idle,交换网可以插入或除去Idle。
SOF:
SOF是帧内容之前的一个有序集。
SOF类别
描述
用于请求一个1类连接
1类服务序列的第一帧
1类服务正常帧起始
2类服务序列的第一帧
2类服务正常帧起始
3类服务序列的第一帧
3类服务正常帧起始
交换网起始帧
帧头:
是帧内容的第一个字段,24个字节,紧跟着SOF。
帧头用于控制链路操作、控制设备传输协议和检测丢失或无序的帧。
数据字段:
数据字段在帧头之后。
长度等于四字节的倍数。
FC-0型帧数据段长度为零,FC-1型帧长度等于四字节的倍数,范围为0字节到2112个字节。
ULP的有效载荷不能被4整除,应进行填充。
CRC:
为紧跟着数据字段的四个字节字段,用于检测帧头和数据字段的数据完整性。
CRC校验中不包括SOF,EOF
EOF:
为紧跟着CRC后的一个有序集。
指明了帧内容的结束。
EOF类别
帧内容有效
帧内容结束
撤销1类专用连接
表明该序列结束
帧内容无效
交换网检测出错误,用其替代EOFn或EOFt表明帧内容无效
交换网检测出错误,用其替代EOFdt表明帧内容无效
帧内容遭破坏
N端口/F端口用于表明内部故障
5.2帧头
帧头
R_CTL路由控制
R_CRL是一个对帧功能进行分类的一个单字节字段,包括路由选择字段和信息字段。
Bit31~bit28路由选择字段
帧类型
Bit31~bit28信息字段
备注
0000
FC4层设备数据帧
未分类信息
0001
请求数据SolicitedData
0010
自发控制UnsolicitedControl
0011
请求控制SolicitedControl
0100
自发数据UnsolicitedData
0101
数据描述符DataDescriptor
0110
自发命令UnsolicitedCommand
0111
命令状态CommandStatus
其他
未指定
视频数据帧
同上
FC4层链路数据帧
扩展链路数据帧
(TPYE应为
00000001)
1000
基本链路数据帧
00000000)
NOP无操作
基本链路服务命令
ABTS中止序列
RMC结束连接
BA_ACC基本接受
BA_RJC基本拒绝
出F_BSY外
TPYE保留
链路控制码
ACK_0/ACK_N
P_RTJ
F_RTJ
P_BSY
F_BSY对数据帧忙
F_BSY对链路控制帧忙
LCR链路信用复位
F_CTL字段
F_CTL字段是一个与帧内容相关的包含控制信息的3字节字段
F_CTL字段格式
控制字段
位置bit
交换前后关系
23
0:
表示交换启动方
1:
表示交换接收方
序列前后关系
22
表示序列启动方
表示序列接收方
第一个序列
21
交换的其他序列
交换的第一个序列
最后一个序列
20
交换的最后一个序列
结束序列
19
序列的其他数据帧
序列的最后一个数据帧
结束连接
18
连接
将结束连接
链序列
17
无链序列
表示链序列激活
序列主动权
16
保持序列主动权
转换序列主动权
X_ID重新分配
15
表示重新分配
X_ID无效
14
表示无效
13~10
重传序列
9
表示原始序列
表示重传序列
单向传输
8
双向传输
后续序列
7~6
剩下的数据帧:
00:
无信息
01:
立即
10:
不久
11:
延迟
序列中止
5~4
异常中止,丢弃多个序列
异常中止,丢弃单个序列
带无限缓冲的处理策略
表示丢弃多个序列,并且立即重传
序列接收方ACK
继续序列
终止序列请求
停止序列(正常停止无需ABTS)
请求立即重传序列
相对偏移
3
参数字段无意义
参数字段为相对偏移
交换重组
2
为交换重组保留
填充数据字节
1~0
表示填充0个字节
表示填充1个字节
表示填充2个字节
表示填充3个字节
D_ID是目的N端口或F端口内的包含地址标识符的3个字节字段
S_ID是源N端口或F端口内的包含地址标识符的3个字节字段
TYPE字段是一个单字节字段,表示了数据帧的帧内容类型。
在F_BSY帧中TYPE字段表示原因码。
SEQ_ID是一个由序列启动方分配的一个单字节字段。
当序列开放时,每对D_IDS_ID都由唯一的SEQ_ID。
DF_CTL是一个单字节字段,该字段规定了在设备数据帧或视频数据帧的数据帧的开始部分是否有可选帧头。
SEQ_CNT是一个两个字节字段,表示在同一个交换中的一个序列或多个连续序列中数据帧的传输顺序。
OX_ID由交换启动方分配的交换标识符,两个字节。
RX_ID由交换接收放分配的交换标识符,两个字节。
参数字段是一个四字节字段,对于链路控制帧,参数字段表示特定信息。
对于数据帧,参数字段用来规定相对偏移。
6链路响应
链路控制帧提供如下功能:
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类和1类连接请求帧端口间应发送R_RDY,R_RDY无响应。
ACK帧:
ACK_0优先于ACK_N优先于ACK_1
1)ACK_1帧所有N端口都支持ACK_1,ACK_1的SEQ_CNT应与确认帧的相匹配,参数字段ACK_CNT为1R_CTL信息字段为0;
2)ACK_0帧表示序列中的所有数据帧都已经确认。
参数字段ACK_CNT为0R_CTL信息字段为1,ACK_0不参与EE_Credit控制
3)ACK_N接收方确认N个连续数据帧,参数字段ACK_CNT为所确认数据帧的个数,SEQ_CNT为确认的最后一个数据帧的SEQ_CNT。
F_BSY:
1类服务中F_BSY只能响应1类SOFc1帧,在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_RJT\F_RJT:
表示帧的交付被拒绝,参数字段包含4个字节的拒绝动作码和原因码。
在1类2类服务中,端口检测到数据帧错误,则应发送一个拒绝帧。
交换网在下列情况下可以发送拒绝帧:
a)服务类不支持
b)无效的S_ID或D_ID
c)N端口临时或永久不可用
N端口只有在收不到期望的ACK时才拒绝链路控制帧;
在有效交换中检测到链路控制帧错误,则应启动中止序列协议;
对无效交换忽略错误。
7链路服务(FC-3层)
7.1基本链路服务
基本链路服务命令有单个基本链路数据帧组成,使用基本链路服务命令之前不需要登录
ABTS:
用于序列启动方请求序列接收方中止一个或多个序列
序列启动方或序列接收方请求ABTS接收方中止交换,SEQ_ID,X_ID与最后一个序列的相同,该命令无有效载荷。
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可传送给ULP
OX_ID
RX_ID
SEQ_CNT高位
等于ABTS的SEQ_CNT
SEQ_CNT低位
2
最后一可交付序列数据帧的SEQ_CNT
BA_RJT:
通知链路服务请求方请求被拒绝,SEQ_ID重新分配,X_ID与ABTS匹配。
有效载荷的前4个字节标示了拒绝原因码。
NOP:
可以代替正常数据帧启动1类连接,启动序列,中止序列,结束1类连接。
无确认序列。
RMC:
用于请求立即撤销一个1类连接。
响应时请发送由EOFdt结束的ACK帧。
使用RMC撤销连接,所有的开放的序列都异常终止,因此不能把该方法当作撤销连接的正常方式。
7.2扩展链路服务
扩展链路服务要求目的端口实现一个功能或服务。
每个请求或确认都由单独的序列构成。
有效载荷的前4个字节表示了LS命令码
扩展链路服务帧LS命令代码
00000001--
LS_RTJ
链路服务拒绝
扩展链路服务应答序列
00000010--
ACC
接受
00000011--
PLOGI
N端口登录
00000100--
FLOGI
F端口登录
00000101--
LOGO
登出
00000110--
ABTX
中止交换
中止正在进行的交换
00000111--
RCS
读当前专用连接状态
了解其他N端口连接状态
00001000--
RES
读交换状态
00001001--
RSS
读序列状态
00001010--
RSI
请求序列主动权
转换交换双方序列主动权
00001011--
ESTS
建立流
用于EE_Credit信用评估
00001100--
ESTC
评估信用
00001101--
ADVC
建议信用
00001110--
RTV
读超时值
返回R-A-TOVE-D-TOV
00001111--
RLS
读链路状态
返回链路错误状态块
00010000--
ECHO
回送
应答有效载荷与ECHO相同
00010001--
TEST
测试
无确认序列
00010010--
RRQ
复位恢复限定符
恢复S_ID,D_ID,OX_ID,RX_ID,
SEQ_CNT低位和高位之间的SEQ_CNT
--
7.3总结
基本链路服务命名由单个基本链路数据帧组成,作为交换的一部分。
扩展链路服务仅在单个交换内部执行。
大多数扩展服务协议都是两个序列的交换。
基本和扩展确认帧和确认序列应按与请求一样的服务类。
如果登录不成功,因并发序列限制为1,所以不能发起第二个交换来执行扩展的链路服务。
因此中止序列协议时恢复动作的首选。
如果登录不成功,则不能尝试ESTC,ESTS,ADVC(EE_Credit评估)。
如果登录成功,则对所有的扩展链路服务交换,交换发送方应使用丢失多个序列错误处理策略。
如果扩展链路服务交换发送方检测到交换的错误,那么就应中止该交换,同时使用另一个交换重试被中止的交换协议。
8服务类
交换网和N端口提供3种服务类,交换网和N端口可以选择支持一种或多种服务类。
交换网收到的每个帧,应完成下列各项中的一项:
a)交付帧
b)发送一个FBSY
c)发送一个FRJT
d)不发送任何响应丢弃帧
8.11类服务:
专用连接
要建立1类连接需N端口向另一个N端口发送连接请求,另一个N端口回送ACK。
交换网给两个N端口间分配回路。
一旦建立连接,在撤销连接之前交换网应保持两个N端口间的回路。
规则:
建立连接前应先登录,撤销连接前需一直保持连接,撤销连接前只能与连接的N端口通信;
发送方对每个数据帧分配递增的SEQ_CNT,每个帧都包含各自的S_ID、D_ID、OX_ID、RX_ID。
交换网顺序交付;
已建立连接的两个N端口可发起多个交换,启动多个序列。
N端口负责端到端流控制,目的端口对每个有效数据帧确认ACK。
除SOFc1外,1类服务帧只有端到端流控制,SOFc1既参与端到端流控制,又参与缓冲区到缓冲区流控制。
交换网可拒绝1类连接请求或发送带原因的F_BSY。
建立专用连接后,交换网不再干涉连接,目的N端口不能发送忙帧,但可发送拒绝帧。
当第三个N端口把2类服务帧或3类服务帧发送到已经建立连接的N端口,交换网给2类服务帧回送一个FBSY,对3类服务帧丢弃。
1类帧、1类SOFc1帧与2类服务帧都参与EE_Credit控制。
N端口和F端口应可以识别所有服务类的SOF,并给出正确的响应。
8.22类服务:
多路复用
2类服务是在两个N端口间提供带有未交付通知的无连接服务。
接收N端口,发送N端口要完成登录;
目的端口对每个有效数据帧确认ACK。
交换网不必顺序交付。
N端口与F端口间执行缓冲区到缓冲区流控,N端口间执行端到端流控。
1类SOFc1帧、2类服务帧、3类服务帧参与BB_Credit控制
N端口和