第三章 FCFS协议分析.docx
- 文档编号:5457470
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:14
- 大小:452.81KB
第三章 FCFS协议分析.docx
《第三章 FCFS协议分析.docx》由会员分享,可在线阅读,更多相关《第三章 FCFS协议分析.docx(14页珍藏版)》请在冰豆网上搜索。
第三章FCFS协议分析
第三章FC-FS协议分析
FC-FS协议对FC协议层次中FC-0、FC-1、FC-2层的功能进行了详细描述。
其中,FC-0层描述了两个端口之间物理链路的规范;FC-1层描述了8B/10B编码/解码方案,并规定了端口接收机和发射机的状态;FC-2层规定了数据块传送的规则和机制,包括协调端口间通信所需要的登录/登出服务,可能支持的服务类及不同服务类中的连接和信用管理规则,帧的格式、类型及不同类型的帧的响应,确保链路和数据完整性的差错检测和超时管理;此外,该协议还对光纤通道中的部分一般类服务做了简单介绍。
以下是对FC-1及FC-2层的主要内容所作的整理和总结。
3.1端口状态
3.1.1接收机状态机
图3-1接收机状态图
图3-1为接收机的状态转换图,其中,对各个状态转换条件的定义为:
a)转换1:
上电;
b)转换2:
获得字同步;
c)转换3:
检测到一个无效传输字;
d)转换4:
检测到信号丢失;
e)转换5:
检测到两个连续的无效传输字;
f)转换6:
强制接收机复位;
g)转换7:
退出接收机复位情况;
3.1.2端口状态机
图3-2端口状态机
图3-2为FC端口的状态机,对各状态的说明如下。
激活状态:
端口完成链路初始化或链路复位协议之后进入该状态,并在该状态下传送和接收帧与原语信号。
链路恢复状态:
支持1类服务的端口不能确定自己连接状态并想中止所有专线连接时进入该状态,以复原一条链路,例如当N端口A确定已与B建立连接时却接收到N端口C发送过来的带有SOFc1、SOFi1或SOFn1的帧;分为LR发送(LR1)、LR接收(LR2)、LRR接收(LR3)三个状态。
LR原语序列的传输因服务类的不同而不同。
1类服务中,撤销专用连接,端到端信用(N端口管理)复位到登录值,本地F端口进入LR接收状态,并通知远程F端口向连接的另一N端口发送LR原语序列。
2类和3类服务中,N端口或F端口中缓冲区到缓冲区信用复位到登录值,F端口应处理或丢弃与连接到N端口的输出光纤的接收缓冲区中的任何1类连接请求帧、2类或3类帧,2类的端到端信用不受影响。
链路故障状态:
端口检测到严重错误条件,例如不在离线状态时同步丢失超时,不在离线状态时信号丢失,或在链路复位期间R_T_TOV超时的时候进入该状态,分为NOS接收(LF1)、NOS发送(LF2)两个状态,这两个状态下的端口更新链路错误状态块中相应的错误计数器。
LF1状态下的F端口撤销专用连接,并通知远程F端口向连接的另一N端口发送LR原语序列。
离线状态:
在接通电源或内部复位后链路初始化协议完成之前,第一个OLS有序集发送之后,OLS原语序列接收并识别之后端口进入该状态,该状态下的端口不记录接收机错误,分为OLS发送(OL1)、OLS接收(OL2)和OLS等待(OL3)三个状态。
在下一步操作前,端口应发送至少5ms的OLS原语序列,超过该时间后端口根据进入OLS发送状态的原因来决定是按照链路初始化协议还是在线到离线转换协议所规定的步骤进行处理。
OL2状态下的F端口撤销专用连接,并通知远程F端口向连接的另一N端口发送LR原语序列。
3.1.3链路初始化
FC端口的链路初始化过程见图3-3。
接通电源时,发射机不发送任何数据,接收机检测出这个“信号丢弃”后进入LF2状态并将连续传送NOS原语序列。
原语序列的位流转换成通过光纤传送的连续的“亮”和“灭”的信号驱动接收机按照输入数据流的频率和相位调整其时钟以实现发送机和接收机之间的位同步。
接受到的位流被串并转换为每10位一组的字符,接收机在这些字符中连续查找K28.5字符,检测到该字符时就把其第一位标识为一个字节和字的边界,在该字符之后的每第10位为一个编码字节的开始,每第40位为一个编码字的开始。
建立起字节和字同步后,每个10位编码字符都由10B/8B解码器解码为带有“数据”或“特殊”表示的8位字节。
解码后的8位字节经8位/32位转换后进入另一套电路系统以寻找有序集。
当检测到三个连续的有序集时,端口将根据当前状态和接收到的有序集转换到下一个状态。
两端口间的状态转换采用全互锁握手协议不断尽心直至两端口都处于激活状态并连续传送空闲(IDLE)原语信号为止。
这时发送机和接收机都不断发送空闲原语信号以保持链路同步,并可随时应答来自FC-2或更高层的数据传送请求。
图3-3链路初始化
3.2登录
登录过程是指N端口与交换网(如果有)或与之通信的目的N端口建立操作环境的方法,一个N端口可以登录的并行N端口的数量由N端口设备决定,在登录和1类服务专用连接之间不存在一一对应的关系,不论支持何种服务类,所有N端口都需要登录到交换网,对于支持1类或2类服务的N端口,它应与要通信的每一个目的N端口登录。
3.2.1交换网登录
交换网登录完成以下功能:
(1)向交换网提供一组特定的操作特性,包括N端口名及其所在的节点名;
(2)提供与整个交换网相关的一组特定的操作特性,包括F端口名及交换网名;(3)选择分配或确认启动登录的N端口的本地N端口标识符;(4)初始化缓冲区到缓冲区信用。
直接交换网登录过程应在交换中传输登录链路服务(FLOGI)序列,该交换带有一个N端口分配的OX_ID,目的标识符为通用F端口地址FFFFFE,源标识符为二进制0,相应的F端口应执行以下二者之一:
(1)在ACC应答序列中分配唯一的N端口标识符给N端口。
(2)如果交换网不支持N端口标识符的分配,则返回一个带有原因码为S_ID无效的F_RJT。
N端口应通过FC-PH中没有定义的其它方法分配本地N端口标识符,并以S_ID=X重试FLOGI序列。
当S_ID=X时,F端口应执行以下二者之一:
(1)返回带有D_ID=X(确认标识符)的ACC应答序列。
(2)如果X无效,返回一个带有原因码为S_ID无效的F_RJT。
如果F端口拒绝S_ID=0和S_ID=X,N端口应尝试通过其它的X值重新登录,或通过FC-PH中没有定义的方法确定X的有效值。
FLOGI链路服务序列的有效载荷包括发送该序列的N端口的服务参数。
由F端口发出的对FLOGI序列的正常应答序列是一个交换中的接受(ACC)链路服务序列,该交换带有登录请求的OX_ID和交换网分配的RX_ID,目的标识符D_ID为F端口分配给N端口的标识符,源标识符S_ID为通用F端口地址标识符(FFFFFE),有效载荷包含交换网的服务参数。
启动N端口根据支持的服务类选择1类SOFc1(SOFi1)、2类SOFi2或3类SOFi3,如果接收到表明不正确类的拒绝(F_RJT、P_RJT),就用上述的下一个定界符重试登录过程;当要求多种服务类时,在登录成功的第一时间,应处理所有可用的服务类的服务参数;登录只对登录的服务类和数值更大的服务类有效(如1类、2类和3类)。
3.2.2N端口登录
N端口登录完成以下功能:
(1)提供一套与目的N端口相关的具体的操作特性;
(2)初始化目的端到端信用;(3)在点到点拓扑结构中,初始化缓冲区到缓冲区信用。
如果N端口(A)向N端口(B)完成了PLOGI请求,并且N端口(B)发送了ACC应答序列,那么(A)和(B)都可以启动其它协议的通信;只有在想使现有的登录参数无效或改变时,N端口(B)才需要发送PLOGI请求序列到N端口(A)。
如果(A)发送PLOGI到(B),在从(B)收到ACC之前收到来自(B)的PLOGI,(A)应象从没发送过PLOGI一样对其作出响应。
保存与N端口通信的目的N端口的服务参数需要N端口的资源。
2类帧的N端口登录协议如图3-4所示。
图3-42类帧N端口登录协议
3.2.3登出
目的登出过程撤消两个N端口间的服务,释放用于维持与目的N端口服务相关的资源。
由于交换网没有专门用于N端口的资源,因此不需要直接交换网登出,间接登出可在N端口和交换网之间进行。
如果N端口接收或发送了NOS或OLS原语序列,那么它应是从交换网(如果存在交换网)或者相连的N端口(点到点拓扑)间接登出。
在交换网的重新登录期间,如果N端口检测到F端口名称发生变化,那么N端口在启动或接受与其它N端口的通信前,应等待一个R_A_TOV超时周期(即间接N端口登出)并重新登录到其它已经登出的N端口。
3.3帧处理
3.3.1差错检测
光纤通道将错误恢复限制在序列层次上,由漏帧、坏帧引起的差错在序列级检测和/或恢复,而交换机服务于分层体系结构最底层,其进行信息交换的基本单位是帧,比帧更高层的序列、交换等概念不可见,所以交换机只需通过更新EOF将帧级的差错,包括含有无效传输字、CRC校验错误等,通知N端口并交由上层按照特定的差错策略执行差错恢复。
链路差错是在比帧更细的粒度上检测出的差错,包括信号丢弃、同步丢失和没有帧活动时的链路超时差错。
链路差错的恢复通过原语序列的传送和接收按照原语序列协议(包括链路初始化、链路故障、链路复位、在线到离线的转换)来完成。
3.3.2交换网忙
对于接收到的所有有效帧,交换网都应能够根据当前的操作环境和链路状态给出适当的链路响应。
交换网可能给出的响应帧有F_BSY和F_RJT。
交换网发送F_BSY响应的原因有:
(a)交换网由于其内部原因不能把帧交付给目的N端口;(b)目的N端口正在处理1类连接请求,交换网不能交付帧。
3.3.3交换网拒绝
发送F_RJT响应的条件如图3-5所示。
由于使用基本链路服务命令之前不需要登录,所以对基本链路服务命令不需要检测登录标志,图中用蓝色边框标识。
而交换网只可能在以下情况下才可能拒绝一个链路控制帧:
不支持的服务类、无效D_ID/S_ID、需要登录、N端口不可用,图中用红色字体标识。
图3-5交换网拒绝条件检测
3.4连接管理
3.4.1服务类
1类服务通过建立专用连接,保证两个N端口间的最大带宽。
一个N端口逻辑上可以在任意时间完成与其它N端口的点到点通信,不管是否有交换网。
一个节点中的多N端口能够同时与在一个或多个节点中的单个或多个N端口进行并行数据传输。
2类服务是一种无连接服务,允许交换结构在帧边界处对帧复用。
交换结构不一定保证数据帧和确认信息的传送能够按照它们被源和目的N端口发送的次序进行,但可以确保就传送和不能传送发出响应。
3类服务也是无连接服务,但仅支持无确认的传送,即目的N端口不对成功或不成功的帧传送回送任何响应。
在2类和3类服务中,一个N端口可以把数据帧同时发送到多个N端口,或从多个N端口同时接收数据帧。
1、2、3类服务的帧级传输协议如图3-6所示。
6类服务允许一个N端口同时和多个N端口建立专用连接。
数据只能从源N端口传送至目的N端口,交换网将所有目的N端口的链路响应帧(ACK,RJT等)路由至多播服务器(FFFFF5h),多播服务器负责收集这些响应,并按一定的规则生成一个单独的响应发送给源N端口。
6类帧的传输使用1类帧的定界符,并遵循1类帧的传输协议。
图3-61、2、3类服务帧级传输协议
混合服务是指在建立1类或6类专用连接的同时,允许插入2类帧和3类帧的传输,即2类和3类帧可以在已建立连接的两个N端口间或其中任何一个N端口和其它N端口间进行交换,但必须保证能够获得全部的已建立的专用连接的带宽。
在实践中,交换结构应通过等待未用带宽,或通过除去1类或6类帧间的空闲传送字插入2、3类帧来构成混合的2、3类帧所用的带宽。
若在2、3类帧传送过程中产生了1类或6类帧,则该2、3类帧应该用一个表示它无效的EOF来中止,以便立即传送该1类或6类帧。
3.4.2堆栈连接请求
有连接的交换子网可以选择支持堆栈连接请求,即允许一个N端口请求到多个目标的多个专用连接,并允许交换网按任意次序对请求进行服务,当N端口连接到一个目标时,其它连接请求可由交换网来处理而使连接等待时间最短。
堆栈连接支持透明模式或者锁定模式,在透明模式中,SOFc1的目的N端口能在发送了响应SOFc1帧的ACK帧后立即发送数据帧,在锁定模式中,通过将SOFc1数据帧的F_CTL位8置1(单向发送)来禁止SOFc1的目的N端口在回送ACK帧后发送任何数据帧。
只有支持混合服务时,堆栈连接请求才有意义。
交换网支持堆栈连接请求的功能在交换网登录过程中由交换网服务参数指出,连接启动方应在已存在专用连接的基础上,发送带有SOFc1定界符和CS_CTL位为1的连接请求帧来调用堆栈连接请求功能。
交换网使用CR_TOV定时器来决定一个堆栈连接请求可被交换网保持的最长时间,如果交换网不能在CR_TOV时间内将连接请求传送到目的N端口,那么它将丢弃该连接请求并向源N端口发送F_BSY。
3.4.3优先级和抢占
抢占是指终止一个已建立的专用连接(1类或6类)以发送更高优先级的帧或建立更高优先级的专用连接。
一个未建立连接的N端口通过向交换网发送带SOFx且抢占标志位置1的连接请求帧来发起一个抢占。
如果交换网拒绝该抢占请求,它将向抢占方返回一个原因码为“抢占请求被拒绝”的F_RJT链路响应帧。
在这种情况下,连接将不发生任何改变。
如果抢占连接请求被接受,交换网将终止被抢占的连接,并向被抢占连接的启动方和接收方发送PRMT基本链路服务命令,以告知被抢占连接中的序列已被异常终止。
交换网可以通过向被抢占连接的启动方和接收方启动链路复位协议,来彻底终止连接。
然后交换网可以进行帧的传输或通过向抢占目的N端口发送SOFx抢占请求帧来建立一个新的连接。
当抢占方接收到来自抢占目的N端口的ACK帧时,一个新的专用连接被建立。
3.5信用管理
3.5.1EE_Credit和BB_Credit
端到端流量控制发生在一对N端口之间。
在1类端到端流控制中,除了对SOFc1帧,其它帧的F_BSY、F_RJT和P_BSY都不会出现;在2类端到端流控制中,对于任何数据帧F_BSY、F_RJT或P_BSY都可能出现,每个响应都应用到端到端和缓冲区_缓冲区流控制。
对于1类服务,每个序列接收方可以给它登录的N端口分配相同的信用,该信用的值可以是序列接收方支持的最大值;对于2类服务,每个序列接收方给它登录的N端口分配一定数量的接收缓冲区,所有分配的缓冲区的总和可以超过序列接收方支持的2类缓冲区的总和,多个源N端口共享在序列接收方N端口的2类端到端缓冲区。
如果接收到的2类帧不带信用且接收方没有缓冲区来接收,那么接收方可以丢弃该帧而不回送P_BSY或P_RJT。
缓冲区到缓冲区流量控制发生在源N端口和本地F端口、远程F端口和目的N端口之间。
对于无连接的服务,每个端口把无连接缓冲区的总数分配给与其直接连接的端口,2类、3类和1类/SOFC1帧共享无连接缓冲区。
对于接收到的1类/SOFc1、2类、3类帧,每个端口都发出一个R_RDY,用于缓冲区到缓冲区流控制的同步机制。
BB_Credit代表端口(N端口或F端口)支持的接收缓冲区的数目。
BB_Credit计数定义为尚未确认的或正等待来自于相关端口之间的R_RDY响应的重要帧的数目,代表在相关端口占用的接收缓冲区个数。
为了避免信用问题(包括缓冲区到缓冲区之间和端到端之间),N端口要在数据帧发送之前发送R_RDY和链路控制帧。
为响应一个数据帧(2类帧和1类服务的连接请求帧)要求R_RDY和链路控制帧(ACK,BSY,RJT)都要求发送时,R_RDY应在链路控制帧之前被发送。
3.5.2BB_Credit管理规则
缓冲区到缓冲区流控制模型如图3.7所示,FC端口管理BB_Credit计数的过程总结如下:
a)每个端口(N端口或F端口)负责管理BB_Credit计数;
b)除非分配的BB_Credit大于0并且BB_Credit计数小于BB_Credit,发送N端口或F端口都不传输2类、3类或1类/SOFc1帧。
为了避免接收机过载,每个端口必须使得BB_Credit计数小于BB_Credit;
c)每个端口在交换网登录或者重登录结束后,将BB_Credit计数值设置为0;
d)对于每个传输的2类、3类或1类/SOFc1帧,每个端口将BB_Credit计数加1;对于每个接收到的R_RDY,BB_Credit计数减1;
e)接收到每个2类、3类或者带SOFc1的1类帧时,每个端口都发出一个R_RDY。
3.5.3BB_Credit恢复
如果两个FC端口在登录过程中指定的BB_SC_N值均不为0,则BB_Credit恢复过程可在这两个FC端口之间进行,且BB_SC_N值取其中的较大值。
支持BB_Credit恢复的FC端口应按照以下步骤进行操作:
a)如果在开始通信或上一个BB_SCs原语发送之后已有
个需要BB_Credit帧被发送,则发送BB_SCs原语;
b)如果在开始通信或上一个BB_SCr原语发送之后已有
个R_RDY原语被发送,则发送BB_SCr原语;
c)每接收到一个R_RDY,BB_RDY_N加1。
如果BB_RDY_N等于
,则将BB_RDY_N清0;
d)每接收到一个帧,BB_FRM_N加1。
如果BB_FRM_N等于
,则将BB_FRM_N清0;
e)如果接收到BB_SCr原语,则根据下式计算丢失的BB_Credit:
丢失的BB_Credit=(
-BB_RDY_N)/
。
然后将BB_Credit_CNT的值减去丢失的BB_Credit值,且使BB_RDY_N在接收下一个R_RDY之前清0;
f)如果接收到BB_SCs原语,则根据下式计算对方FC端口丢失的BB_Credit:
对方FC端口丢失的BB_Credit=(
-BB_FRM_N)/
。
然后为每个丢失的BB_Credit发送一个R_RDY,且使BB_FRM_N在接收下一个帧之前清0。
图3-7缓冲区到缓冲区流控制模型
3.6超时管理
3.6.1超时定义
R_T_TOV:
接收发送超时,被接收机用来检测同步丢失,其值为100ms。
E_D_TOV:
错误检测超时,默认值为10s。
在以下三种情况下用作上限:
单个序列中连续数据帧的传输,对F_BSY或P_BSY进行响应时2类帧的重传,ACK帧的传输。
其他情况下应作为上限,如链路超时,序列超时。
R_A_TOV:
资源分配超时,用于决定何时进行恢复限定符恢复,其值为E_D_TOV加上最大交换网延迟的两倍,默认值为120s。
CR_TOV:
连接请求超时,在启动堆栈连接请求时,连接启动方,连接接收方和交换网应对所传输的堆栈连接请求帧进行计时以控制连接请求的处理过程。
CR_TOV在交换网登录过程中作为类服务参数由F端口指定,其值最小应等于R_A_TOV,最大值由交换网设定。
交换网根据该值来确定可以保留一个堆栈连接请求帧的最长时间。
3.6.2超时检测
链路故障超时:
当同步丢失或链路复位协议(端口处于LR1、LR2或LR3的时间)大于R_T_TOV大于R_T_TOV时,即检测到链路故障。
链路故障的其它条件还包括接收到NOS原语序列。
检测到链路故障时,应更新LESB,可通过执行链路故障协议来恢复。
链路超时:
一个专用连接期间的所有活动序列均超时,或缓冲Credit_CNT达到0后,在E_D_TOV时间内没有接收到一个或多个R_RDY,则检测到链路超时。
可通过链路复位协议来恢复。
对于该超时值的设定,应考虑交换网处理一个1类连接请求的时间和2、3类帧由与所有延迟相关的最坏路径传输时所需的最大时间。
序列超时:
在一个序列完成之前,序列发送端和接收端的期望事件应在E_D_TOV时间内发生,否则即被检测为序列超时。
在1、2类服务中,发送端的期望事件是接收到所发送数据帧的ACK帧或链路控制响应,或所发送链路控制帧的下一个数据帧。
接收端的期望事件是接收到同一活动且未完成的序列中的另一个数据帧。
在3类服务中,接收端的期望事件是接受到接收到同一序列中的另一个数据帧。
OLS传输超时:
执行在线到离线协议时,端口将连续发送OLS,若在5ms时间内没有收到相连端口的原语序列响应,即可自行进入离线状态。
连接请求超时:
交换网接收到堆栈连接请求帧时应启动CR_TOV定时器。
如果交换网没有在CR_TOV时间内将堆栈连接请求帧传送到连接接收方,那么交换网应丢弃该连接请求帧,并向连接启动方发送F_BSY帧。
3.7别名服务
3.7.1建立别名组
一个N端口不仅可以通过其端口标识符来识别,还可以通过一个或多个别名标识符来识别。
N端口通过向别名服务器(FFFFF8h)注册来成为一个组的成员,目前已定义的别名有:
HG_ID(搜索组标识符)和MG_ID(多播组标识符)。
图3-8描述了启动方N端口,成员N端口,别名服务器,目录服务器以及交换网控制器建立一个别名组的流程。
图3-8建立别名组
3.7.2别名路由
交换网识别出传输帧的D_ID是一个别名标识符后负责完成帧的所有路由。
对于搜索组,进入交换网的帧被原样路由至搜索组中的某个单独的目的N端口。
对于多播组,进入交换网的帧被原样复制到由别名标识符指定的多播组中的每个目的N端口。
在复制过程中,交换网不应对帧头或帧内容作任何改变。
多播只适用于3类和6类服务,交换网应该拒绝D_ID等于一个多播组别名标识符的1类和2类帧。
图3-9和3-10分别是对3类和6类多播的描述,N端口B,C,D,E是同一个多播组的成员,N端口A为多播源。
图3-93类多播路由
图3-106类多播路由
3.8时钟同步服务
时钟同步服务的目的是向每个节点提供一个连续运转的计数器,且使所有计数器中的值时刻保持一致。
光纤通道中的时钟同步通过包含一个参考时钟的时钟同步服务器(FFFFF6h)来获得,该服务器通过周期性地发送原语信号或ELS帧使客户端时钟同参考时钟相同步。
交换网实现ELS方法的基本模型如图3-11所示。
图3-11时钟同步服务模型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 FCFS协议分析 第三 FCFS 协议 分析