Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 合同模板 > iSCSI协议,iscsi协议

iSCSI协议,iscsi协议

收藏

本作品内容为iSCSI协议,格式为 doc ,大小 333352 KB ,页数为 22页

iSCSI协议


('.一、基本概念SCSI,小型计算机系统接口,基于client-server模型,client(initiator)将命令发送给server(target),server处理命令后回传结果给client。由于要传送命令必然要用到相应的传输协议,iSCSI就是其中的一种传输协议,除此之外还有FC等。iSCSI也就是SCSIoverIP,使用TCP/IP协议来传递SCSI命令与响应,其借用现有的互连网来实现SCSI通讯,成本低,管理、使用方便。iSCSI也有initiator和target,分别对应于SCSI的initiator和target,iSCSIinitiator与target使用TCP进行通信从而实现了SCSI的initiator与target之间的通信。如何使用iSCSI来传递SCSI命令与响应呢?首先要明白SCSItarget中包含许多LU(逻辑单元),每一个SCSI命令都有其目标LU,这些LU负责对针对其的SCSI命令进行处理与响应。iSCSI有自己的PDU,在iSCSIinitiator端,其包含SCSIinitiator下发给其的LUN(逻辑单元)及SCSI命令(CDB),在被作为TCP的数据部分传递到iSCSItarget端后由SCSItarget根据LUN将SCSI命令投放到目标LU中,LU在处理命令后把响应结果递交给SCSItarget,SCSItarget再将其递交给iSCSItarget,iSCSItarget把结果封装成iSCSIPDU,再使用TCP回传给iSCSIinitiator,iSCSIinitiator再将结果递交给上层SCSIinitiator,如图1所示:图1.iSCSI协议层次iSCSIDevice:利用iSCSI传递服务子系统进行传递的SCSI设备。..iSCSINode:iSCSI节点表示一个iSCSI启动器或者iSCSI目标器。在一个网络实体里,可能有一或者多个iSCSI节点。可以通过一个或者多个网络端口访问iSCSI节点。iSCSI节点的标识是iSCSI名称。把iSCSI名称和地址分开来后,允许多个iSCSI节点使用同一个地址,或者一个iSCSI节点使用多个地址。NetworkEntity:网络实体。它表示一个可以通过IP网络访问的设备或者网关。一个网络实体必须有一或者多个网络端口,包含在该网络实体的iSCSI节点可以用这些端口来访问IP网络。NetworkPortal:网络端口。网络实体的一个组成部分,它有一个TCP/IP地址。网络端口在initiator用IP地址标识,在target用IP地址+侦听的TCP端口标识。Session:连接initiator和target的一组TCP连接构成一个session(可以简单理解为I_Tnexus)。可以向session添加TCP连接,也可以把TCP连接从session删除。通过一个session的所有连接,initiator只看到同一个target。Connection:一个TCP连接。Initiator和target之间使用一或者多个TCP连..接通信。CID(ConnectionID):一个session里的每个connection用CID进行标识,该标识在session围是唯一。CID由initiator产生,在login请求和使用logout关闭连接时传递给target。PortalGroups:网络端口组。iSCSIsession支持多连接,一些实现能把通过多个端口建立的多个连接捆绑到一个session。一个iSCSI网络实体的多个网络端口被定义为一个网络端口组,把该组和一个session联系起来,该session就可以捆绑通过该组多个端口建立的多个连接,再使它们一起协同工作以达到捆绑的目的。每一个该组的session并不需要包括该组的所有网络端口。一个iSCSI节点可能有一或者多个网络端口组,但是每一个iSCSI使用的网络端口只能属于iSCSI节点的一个组。PortalGroupTag:网络端口组标识。使用16比特的数标识一个网络端口组。在一个iSCSI节点里,所有具有同样组标志的端口构成一个网络端口组。iSCSITask:一个iSCSI任务是指一个需要响应的iSCSI请求。..I_Tnexus:I_Tnexus是指一个SCSIinitiator的端口和一个SCSItarget端口之间的关系。对于iSCSI,这个关系对应一个session,它指session的initiator端和iSCSItarget网络端口组之间的关系。I_Tnexus的标识是一对端口名称(iSCSIinitiator名称+i+ISID,iSCSItarget名称+t+网络端口组标识)。PDU(ProtocolDataUnit):initiator和target之间通信时把信息分割为消息。这些消息称为iSCSIPDU。SSID(SessionID):iSCSIinitiator和iSCSItarget之间的session用SSID进行标识,该标识由initiator部分的ISID和target部分的TPGT构成。ISID由initiator在session建立的时候明确给出,TPGT隐含的由建立连接时选择的网络端口确定。当TargetName给定后,建立连接的过程中,target必须把TPGT关键字当作确认信息发送出去。TSIH(TargetSessionIdentifyingHandle):Target分配给与特定名称initiator建立的session的标识。但是0被保留着用于initiator告知target这是一个新session。在为一个session添加一个connect时,TSIH已经隐含指明。..二、SCSI与iSCSI的映射关系在SCSI中,一个Device(SCSIinitiator或者SCSItarget)可以包含多个ports,一个SCSIinitiatorport和一个SCSItargetport之间的联结就是一个I_Tnexus,一个SCSIinitiatorport和一个SCSItargetport之间只允许建立一个I_Tnexus。I_Tnexus对应与iSCSI中的一个session(normal),SCSItargetport对应于iSCSItarget中的一个portalgroup(具有相同tag的一组ports,iSCSItarget在这些ports上进行监听等待iSCSIinitiator的连接登陆,所有这些ports一起支撑一个I_Tnexus),SCSIinitiatorport对应于iSCSIinitiator中的session(normal)的端点。图2.SCSI与iSCSI的映射一个iSCSI节点只能有且只有一个SCSI设备;只能通过正常运行的iSCSI..session访问SCSI设备;SCSI名称也就是iSCSI节点的名称。SCSIInitiatorPort:SCSIinitiator端口。它被映射到一定正常运行的iSCSIsession的一端。在login过程中,一个iSCSIinitiator节点和一个iSCSItarget节点协商建立一个正常运行的session;当session成功建立后,一个隶属于iSCSIinitiator设备的SCSIinitiator端口被创建。SCSIinitiator端口的名称和标识被定义为:iSCSIinitiatorname+‘i’+ISID标识,对于iSCSI,SCSIinitiator端口和SCSItarget端口的定义是不一样的。SCSItarget端口,映射为iSCSItarget的一个网络端口组。SCSItarget端口名称和标识:都被定义为:iSCSItargetname+‘t’+iSCSItargetPGT三、iSCSI中的一些命名及标识每个iSCSIinitiator或者iSCSItarget都有一个全球唯一的名称,对于iSCSIinitiator称为initiatorname,对于iSCSItarget称为targetname。iSCSItarget中的portgroup使用portgrouptag来标识;session在iSCSIinitiator端使用ISID(initiatorsessionidentifier)标识,在iSCSItarget端使用TSIH(targetsessionidentifierhandle)标识。四、session和connection的状态划分及登陆登出对于connection,有两种状态,即loginphase(登陆状态)和fullfunction..phase(全功能状态),登陆状态即iSCSIinitiator与iSCSItarget正处于登陆协商过程;全功能状态即登陆过程已经完成,该connection已经能为上层SCSI提供服务。Session与connection一样也有loginphase和fullfunctionphase,当session中仅有的一个connection处于登陆状态时,session处于登陆状态,当session至少有一个connection处于全功能状态时session处于全功能状态。iSCSIinitiator登陆到iSCSItarget的过程分三个过程:1)首先是iSCSIinitiator往iSCSItarget发送initiallogin请求,请求中包括iSCSIinitiator支持的协议版本、iSCSIinitiatorname和iSCSItargetname、ISID和TSIH及CID;2)其次是安全协商,也就是chap认证之类,用于iSCSIinitiator和iSCSItarget互相之间的授权认证;3)最后是操作参数协商,用于协商在全功能时期的一些通讯参数。有两种登出方式,一种是iSCSIinitiator主动发出logout请求,在收到iSCSItarget的logout响应后完成登出;另一种就是iSCSItarget发送包含“requestlogout”的Async协议数据包,启动器再发送logout请求。..图3.iSCSI登陆及状态划分五、iSCSIPDUPDU格式iSCSIPDU包含:a.一个BasicHeaderSegment(BHS,48字节);..b.可选地n(任意)个AdditionalHeaderSegment(AHS,长度不固定,字节数为4的整数倍(不够必须填补0),iSCSItarget发往iSCSIinitiator的PDU中不包含AHS);c.可选地一个HeaderDigest(头校验信息,4个字节);d.可选地一个DataSegment(数据段,长度不固定,字节数为4的整数倍(不够必须填补0));e.可选的一个DataDigest(数据校验信息,4个字节)。图4.iSCSIPDU格式..BHS格式Byte01230-3.IOpcodeFOpcodeSpecificFields4-7TotalAHSLengthDataSegmentLength8-15LUNorOpcodeSpecificFields16-19InitialTaskTag20-47OpcodeSpecificFields图5.BasicHeaderSegment格式a.Ibit:1bit,标识本PDU为需要马上发送;b.Opcode操作码:6bit,标识本PDU的类型;由iSCSIinitiator发往iSCSItarget的请求PDU有:0x00NOP-Out0x01SCSICommand(encapsulatesaSCSICommandDescriptorBlock)0x02SCSITaskManagementfunctionrequest0x03LoginRequest0x04TextRequest0x05SCSIData-Out(forWRITEoperations)0x06LogoutRequest0x10SNACKRequest0x1c-0x1eVendorspecificcodes由iSCSItarget发往iSCSIinitiator的相应PDU有:0x20NOP-In..0x21SCSIResponse-containsSCSIstatusandpossiblysenseinformationorotherresponseinformation.0x22SCSITaskManagementfunctionresponse0x23LoginResponse0x24TextResponse0x25SCSIData-In-forREADoperations.0x26LogoutResponse0x31ReadyToTransfer(R2T)-sentbytargetwhenitisreadytoreceivedata.0x32AsynchronousMessage-sentbytargettoindicatecertainspecialconditions.0x3c-0x3eVendorspecificcodes0x3fRejectc.Fbit:1bit,标识本PDU为一个PDU序列中的最后一个;d.TotalAHSLength:1byte,本PDU中所有AHS的长度,以4字节为单位,包括可能需要填补的0(padding);e.DataSegmentLength:3byte,本PDU中数据段的长度,以字节为单位,不包括可能需要填补的0(padding);f.LUN:如果此(命令/响应/数据)PDU与具体的LU相关联,则使用LUN(LogicalUnitNumber)标识该LU;g.InitialTaskTag(ITT):在一个session中使用ITT标识iSCSIinitiator发起的任何iSCSI任务,凡是与某iSCSI任务相关联的PDU,不管是由iSCSIinitiator发出的还是由iSCSItarget发出的,都携带该iSCSI任务相应的ITT。六、PDU分类及概述1、只携带SCSI信息的PDU,包括:1)SCSICommand:iSCSIinitiator\uf0e0iSCSItarget。PDU中包含SCSICDB(CommandDescriptionBlock)和命令执行需要的所有参数(如任务属性,希望传输的数据的长度,LUN,ITT等);也包含iSCSI协议通讯需要用到的信息:\uf0b2CmdSN(session围iSCSI命令的序号,与ExpCmdSN一起用于检测iSCSI命令是否在传输过程中有丢失)。\uf0b2ExpStatSN(期望iSCSItarget发送的connection状态序号,用于向iSCSItarget确认该connection中所有StatSN小于ExpStatSN的状态响应都已被iSCSIinitiator接收到,与StatSN一起用于检测含Status信息的..iSCSIpdu是否在传输过程中有丢失);2)SCSIResponseiSCSItarget\uf0e0iSCSIinitiator,用于iSCSItarget反馈SCSICommand的执行结果。PDU中包含SCSI命令执行的结果,是没有被执行还是已经被执行但执行中出现一些问题;如果命令中进行了数据传输,还包括数据传输的偏差值Residualcount(如iSCSIinitiator起初表明要写5k字节,目标器接收到了5k+2字节等,Residualcount就为2)SCSI命令执行结果字段:response和status,如果response为0(commandcompleted)而status为2(checkcondition),将会有sensedata(含有checkcondition的详细信息)包含在pdu的data字段中。iSCSI协议通讯需要用到的字段:\uf0b2ExpCmdSN(session围iSCSItarget期望iSCSIinitiator发送的命令序号,用于向iSCSIinitiator确认所有CmdSN小于ExpCmdSN的命令都已被iSCSItarget接收到),\uf0b2MaxCmdSN(session中iSCSIinitiator能够发送的最大命令序号,用于构建一个窗口缓冲区,匹配iSCSIinitiator和iSCSItarget的命令发送速率和命令处理速率),\uf0b2StatSN(connection围iSCSI响应pdu的状态序号,用于状态响应编号),\uf0b2ExpDataSN(本命令中iSCSItarget已发送DataPDU的个数)。3)TaskManagementFunctionRequestiSCSIinitiator\uf0e0iSCSItarget,用于iSCSIinitiator控制管理(如中止)之前发往iSCSItarget的多个任务。4)TaskManagementFunctionResponseiSCSItarget\uf0e0iSCSIinitiator,用于iSCSItarget反馈任务管理请求的执行结果5)、SCSIDataOut和SCSIDataIniSCSIinitiator\uf0df\uf0e0iSCSItarget,用于传输SCSI数据。PDU中除了包含SCSI数据外,还包含用于iSCSI协议通讯的信息:\uf0b2所携带数据在命令所要传送的所有数据中的BufferOffset和DataSegmentLength,传递方向,..\uf0b2DataSN(数据在一个DataPDU序列中的序号,用于检测是否有DataPDU在传输中丢失)。6)ReadyToTransfer(R2T)iSCSIinitiator\uf0dfiSCSItarget,用于iSCSIinitiator往iSCSItarget传输数据时,iSCSItarget通知iSCSIinitiator其已准备好接收数据了,收到此PDU后iSCSIinitiator就可以往iSCSItarget发送数据了。PDU中包含TargetTransferTag(TTT),iSCSIinitiator针对此PDU发送的DataOutPDU中包含一样的TTT以标识此数据包与此R2T的关联性。此外还包含用于iSCSI协议通讯的信息:\uf0b2R2TSN是在一个iSCSI命令围R2T的序号,iSCSIinitiator据此可以检测到R2Tpdu的丢失。\uf0b2StatSN、ExpCmdSN、MaxCmdSN。2、携带SCSI信息和iSCSI信息的PDUAsynchronousMessage异步消息是一种iSCSItarget可以主动向iSCSIinitiator发送的pdu,用于告知iSCSIinitiator一些事件。异步消息pdu中可以是SCSI消息,也可以是iSCSI消息。Pdu中有一个字段AsyncEvent用于指示具体的事件,如为0表示是SCSI异步事件,具体容放置在pdu的data部分(称为sensedata);如为1表示iSCSItarget要求iSCSIinitiator登出(logout);等等。3、只携带iSCSI信息的PDU1)Textrequest和Textresponse文本请求和文本响应用于实现参数(启动器和目标器在通讯时要使用到,具体参见RFC3720第12章)的协商。Pdu中的data部分以形式“key=value”出现。多个文本请求/响应pdu包含相同的ITT来标识这些请求/响应属于同一个协商操作。此外,Pdu中的TTT使用不同的机制来标识是否继续一个协商操作还是启动一个新的协商操作。..2)loginrequest和loginresponse登陆请求和响应用来实现iSCSIinitiator登陆到iSCSItarget。Pduheader含:\uf0b2登陆阶段信息Tbit、Cbit、CSG、NSG(登陆分两个阶段,安全协商阶段和操作参数协商阶段);\uf0b2ISID和TSIH(分别在iSCSIinitiator和iSCSItarget中唯一地标识session),指示本次登陆session的ID;\uf0b2CID(在session中唯一的标识connection),指示本次登陆connection的ID;\uf0b2CmdSN、ExpStatSN(loginrequest);\uf0b2StatSN、ExpCmdSN、MaxCmdSN(loginresponse)。Pdu的data部分与文本请求/响应pdu一样以形式“key=value”出现,含登陆参数,包括安全协商参数(参见RFC3720第11章)和操作参数(参见RFC3720第12章)。一个session的第一个connection的登陆过程会确定/协商整个session围的一些参数,如iSCSI协议版本号、sessionID、session允许创建的connection个数。具体登陆过程请参阅图3。3)logoutrequest和logoutresponse登出请求和响应用来实现iSCSI登出iSCSItarget,登出requestpdu中包含登出的原因:\uf0b20:关闭整个session;\uf0b21:关闭session中的某个connecton(可以是发送登出请求的connection本身由pduheader中的CID确定);\uf0b22:删除session中的某个connecton以便进行修复,原connection中的未决iSCSI命令都将被转移到另外的connection中进行传输处理,也就是所谓的connectionrecovery。登出responsepduheader中包含response字段反馈登出请求的响应结果:\uf0b20:成功关闭session或者connection;\uf0b21:找不到connection;\uf0b22:iSCSItarget不支持connectionrecovery;\uf0b23:关闭session/connection失败或者修复connection失败。如果是connection修复响应pdu,pduheader中还包含两个字段:Time2Wait:如果iSCSIinitiator要进行把任务(iSCSI命令)重新指派到别的..connection(taskreasign),至少要等待的时间,单位为秒;Time2Retain:iSCSItarget在Time2Wait之后会等待iSCSIinitiator进行taskreasign的时间,超过这个时间后将丢弃该任务(iSCSI命令)。4)SNACKrequestSNACK顾名思义就是对SN的ack,就是对各种有序号的pdu包括包含Status/response信息的pdu、datainpdu、r2tpdu进行确认(对于无误的情况)或者要求iSCSItarget重传输(对于出错的情况)。具体而言在SNACKrequestpduheader中包含字段Type:0:请求datainpdu或者r2tpdu的重传输1:请求包含Status/Response信息的pdu的重传输2:确认接收到datainpdu(针对Abit被置位的datainpdu)3:在MaxRecvDataSegmentLength被改变后请求datainpdu的重传输另外两个字段BegRun和RunLength指示需要重传输的pdus的起始SN及pdu个数(重传输时)或者指示期待的下一个datainpdu的SN(确认接收时)。5)rejectrejectpdu用于向iSCSIinitiator提示一个iSCSI错误,表示拒绝之前的iSCSIinitiator发送过来的某一个pdu。Pduheader中含一个指示拒绝原因的字段Reason:2:pdu的数据字段校验错误,需要iSCSIinitiator的重传输3:拒绝之前的一个SNACKpdu,需要重传输4:协议错误5:不支持该iSCSI命令。。。具体见RFC3720-10.17.1。此外rejectpdu还把被拒绝的pdu的header部分拷贝到rejectpdu的data部分发送给iSCSIinitiator。6)nopin和nopoutnopin和nopout用于iSCSIinitiator和iSCSItarget周期性的检测其对端是否还处于可操作状态,相当于TCP/IP协议中的“ping”。由iSCSIinitiator主动发起并要求iSCSItarget响应的nopoutpdu必须包含一个有效的ITT(非全1),此外的其它nopoutpdu所包含的ITT必须为全1。..由iSCSItarget主动发起并要求iSCSIinitiator响应的nopinpdu必须包含一个有效的TTT(非全1),此外的其它nopinpdu所包含的TTT必须为全1。由iSCSIinitiator响应iSCSItarget的nopinpdu(含非全1的TTT)而发送的nopoutpdu必须包含与其响应的nopinpdu一样的TTT,此外其它nopoutpdu所包含的TTT都为全1。由iSCSItarget响应iSCSIinitiator的nopoutpdu(含非全1的ITT)而发送的nopinpdu必须包含与其响应的nopoutpdu一样的ITT,此外其它nopinpdu所包含的ITT必须为全1。PDU传输例子SCSI读命令图6.SCSI读命令..SCSI写命令图7.SCSI写命令..SCSI双向读写命令图8.SCSI双向读写命令CmdSN/StatSN/DataSNCmdSN、ExpCmdSN、MaxCmdSN在iSCSIinitiator端,CmdSN最初为某个值,每发送一个SCSIcmdpdu之后都会加1。在iSCSItarget端,ExpCmdSN最初使用接收到的CmdSN+1初始化,此后在接收到一个SCSIcmdpdu后都会加1。在iSCSItarget端,iSCSItarget会根据SCSI命令的处理情况增加MaxCmdSN。在iSCSIinitiator端,每次接收到pdu后都要拿其中的ExpCmdSN与iSCSIinitiator维护的CmdSN比较,如果相等表示吻合,没有SCSI命令被丢失,否则。。。..在iSCSItarget端,每次接收到pdu后都要拿其中的CmdSN与iSCSItarget维护的ExpCmdSN比较,如果一致表示吻合,没有SCSI命令被丢失,否则。。。StatSN、ExpStatSN在iSCSItarget端,StatSN最初为某个值,每发送一个含StatSN的pdu之后都会加1。在iSCSIinitiator端,ExpStatSN最初使用接收到的StatSN+1初始化,此后在接收到一个含StatSN的pdu后都会加1。在iSCSItarget端,每次接收到pdu后都要拿其中的ExpStatSN与iSCSItarget维护的StatSN比较,如果相等表示吻合,没有含状态信息的pdu被丢失,否则。。。在iSCSIinitiator端,每次接收到pdu后都要拿其中的StatSN与iSCSIinitiator维护的ExpStatSN比较,如果一致表示吻合,没有含状态信息的pdu被丢失,否则。。。DataSN、R2TSN、ExpDataSN、Fbit参见1.5.3pdu传输例子iSCSI错误处理错误修复围(class)withincommand\uf0b2目标器:Write命令时目标器丢失dataoutpdu(digesterrororsequenceerror)。解决:使用recoveryR2T。\uf0b2启动器:Read命令时启动器丢失datainpdu或者r2tpdu(digesterrororsequenceerror)。解决:使用snack。withinconnection\uf0b2启动器:发出的命令没有得到响应(ExpCmdSN)、丢失responsepdu(digesterrororsequenceerror)。解决:前者使用retry,后者使用..snack。\uf0b2目标器:发出responsepdu没有得到启动器的确认(ExpStatSN)。解决:使用nop-in通知启动器使启动器发送snack要求重传输。connectionrecovery\uf0b2启动器:检测到tcpconnection失败或者接收到目标器异步消息(AsynchronousMessage)通知其tcpconnection失败。解决:connectionrecovery(taskreassign)。\uf0b2目标器:检测到tcpconnetion失败。解决:关闭connection,如果还有connection可用则通过异步消息通知启动器tcpconnection失败。sessionrecovery其它三种修复尝试后,才考虑使用session修复。Session修复对于启动器:关闭所有的连接connection,中止所有未决命令以恰当的结果返回上层SCSI,重新建立一个新的session连接到目标器。错误修复层次/级别(hierarchy/level)错误修复层次/级别用于定义iSCSIinitiator/iSCSItarget修复错误的能力,分级如下,\uf0b20级:不管遇到什么错误仅能进行sessionrecovery,修复能力很差。\uf0b21级:能在command、connection围进行修复,同时拥有sessionrecovery能力,遇到错误先考虑withincommand修复,不行再考虑withinconnection修复,最后才会考虑sessionrecovery。\uf0b22级:能在command、connection围进行修复,同时拥有connectionrecovery、sessionrecovery能力,遇到错误先考虑withincommand修复,不行再考虑withinconnection修复,不行再考虑connectionrecovery,最后才会考虑sessionrecovery。taskreassign在iSCSI中,每个iSCSI命令(task)都与唯一的一个connection关联,有关该命令的所有pdu都需要在该connection上发送/接收,在进行connectionrecovery之后,iSCSIinitiator可以考虑进行taskreassign,就是把原connection上的task(iSCSI命令)重新关联到另一个或者新的connection,这要通过在新connection上发送iSCSI任务管理命令――taskreassign来完成。..retry当iSCSIinitiator往iSCSItarget发送了iSCSIcmdpdu但却收不到iSCSItarget的确认(通过ExpCmdSN或者datain/r2tpdu或者responsepdu),此时iSCSIinitiator需要重新发送该iSCSIcmdpdu(需要使用跟原来一样的ITT及CmdSN)。rejectpdu如果reject是针对cmdpdu,则意味着iSCSItarget要丢弃该cmd;如果是针对非cmdpdu,则iSCSItarget必须还要发送一个responsepdu来完成该命令,同时iSCSIinitiator可以选择是否重传输被reject了的pdu。DigestError对于headerdigesterror,会接收并丢弃pdu中的数据或者直接关闭当前connection。对于payload(data)digesterror:\uf0b2iSCSIinitiator直接丢弃该pdu,如果该pdu是datainpdu,则发送一个dataSNACK请求重传输或者可以中止该任务(任务管理命令)从而完成该命令。如果该pdu是responsepdu,则发送一个statusSNACK请求重传输,或者进行connection修复(在新connection完成该命令),或者直接关闭该connection。如果该pdu是一个非请求pdu(如Async,Reject等)则无需进一步的处理。\uf0b2iSCSItarget响应一个rejectpdu,pdu中reason设为Data-Digest-Error,然后丢弃该pdu,如果该pdu是一个dataoutpdu(r2t请求的或者非请求的),则发送r2t请求重传输,或者响应一个cmdresponsepdu中止该任务(完成该命令)(Status字段为“CHECKCONDITION”,sensedata为“protocolserviceCRCerror”)。如果该pdu不是一个dataoutpdu,则无需进一步的处理。SequenseError\uf0b2当iSCSIinitiator接收到一个R2TSN/DataSN乱序的r2t/datainpdu或者一个含ExpDataSN指示有r2t/datainpdu丢失的responsepdu,意味着iSCSIinitiator之前曾接收到过一个或多个DigestError的r2t/datain..pdu,使用1.7.3介绍的方法进行处理。\uf0b2当iSCSItarget接收到一个DataSN乱序的dataoutpdu,则意味着iSCSItarget之前至少接收到过一个DigestError的dataoutpdu,使用1.7.3介绍的方法进行处理。\uf0b2当iSCSIinitiator接收到一个StatSN乱序的responsepdu时,意味着之前曾接收到过digesterror的responsepdu,所以使用1.7.3介绍的方法进行处理就行了。formaterror如果iSCSIinitiator或者iSCSItarget检测到接收到的pdu格式错误(容非法或者容不一致),则会关闭当前session并重建一个session(sessionrecovery)安全参数这些参数在登陆时进行协商,登陆时使用,具体参阅RFC3720第11章。操作参数/文本参数这些参数是跟iSCSI协议通讯相关的,iSCSI通讯时会使用到,可在登陆时使用loginrequest/response进行协商,或者在ffp时使用textrequest/response进行协商,具体参阅RFC3720第12章。.',)


  • 编号:1700665970
  • 分类:合同模板
  • 软件: wps,office word
  • 大小:22页
  • 格式:docx
  • 风格:商务
  • PPT页数:333352 KB
  • 标签:

广告位推荐

相关合同模板更多>