之前收到来自(B)的PLOGI,(A)应象从没发送过PLOGI一样对其作出响应。保存与N端口通信的目的N端口的服务参数需要N端口的资源。2类帧的N端口登录协议如图3-4所示。
图3-4 2类帧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端口不可用,图中用红色字体标识。
可支持服务类SOF不支持服务类D_ID(字0[23:0])注册表ID表项无效D_IDS_ID(字1[23:0])被分配的ID无效S_ID登录标志位需要登录两端口速度交换网路径不可用TYPE(字2[31:24])可支持TYPETYPE不支持有效载荷BB接收大小长度错误EOFN端口状态SOFN端口不可用定界符使用错误 图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-6 1、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帧时,一个新的专用连接被建立。