[发明专利]控制iSCSI报文发送、接收的方法和装置及相应系统有效
申请号: | 200710175312.6 | 申请日: | 2007-09-28 |
公开(公告)号: | CN101132376A | 公开(公告)日: | 2008-02-27 |
发明(设计)人: | 景冬生 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06;H04L29/08 |
代理公司: | 隆天国际知识产权代理有限公司 | 代理人: | 郭晓东 |
地址: | 310053浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 控制 iscsi 报文 发送 接收 方法 装置 相应 系统 | ||
技术领域
本发明涉及网络存储领域,尤其涉及一种控制iSCSI(互联网小型计算机系统接口,Internet Small Computer System Interface)报文发送的方法及装置,一种控制iSCSI报文接收的方法及装置,以及一种控制iSCSI报文交互的系统。
背景技术
SCSI(小型计算机系统接口,Small Computer System Interface)是一种广泛使用的连接硬盘和计算机的技术标准。在该标准体系中,发送一个SCSI命令的设备称为Initiator(发起设备),通常为服务器端或者应用主机;接收并响应要求的一方为Target(目标设备),通常为存储设备端,包括磁盘、磁带、光盘、打印机、扫描仪等。具体的,发起设备和目标设备之间的读写操作过程为:发起设备将SCSI命令描述块(Command Data Block,简称CDB)发送给目标设备,该CDB中包括由目标设备执行的SCSI命令和/或数据;目标设备将执行该CDB之后的响应或者数据以CDB的形式发送给发起设备。
发起设备和目标设备之间可以通过不同的物理连接方式来通信,比如光纤连接或者基于IP网络连接。iSCSI是一种基于TCP/IP的SCSI传输协议,通过IP网络在发起设备和目标设备之间完成CDB的封装和可靠转送等处理。目前,基于iSCSI协议进行数据传输的典型应用环境如图1所示,其具体读写操作过程为:发起设备100的SCSI层生成一个适当的SCSI命令和数据请求;iSCSI层封装该命令,并生成多个协议数据单元(protocol dataunit,简称PDU)来承载;为每一个PDU加上TCP/IP协议的包头,然后发送并通过IP网络传输;目标设备200收到这些PDU后,其iSCSI层按照相反的方向进行解封装后,发送给SCSI层进行SCSI命令和数据请求的解析获得CDB,并进行后续的存储处理;将执行该CDB之后的响应或者数据沿相反的路线发送给发起设备。
其中,iSCSI层所添加的TCP/IP协议的包头也称为基本头段(BHS)。为了对传输的iSCSI数据流进行控制,该BHS中设有三个字段CmdSN(命令序列号)、ExpCmdSN(扩展命令序列号)和MaxCmdSN(最大命令序列号),通过对发送的iSCSI命令进行流控,比如控制同时发送的iSCSI命令数等实现对数据流的控制。
可以看出,现有技术中iSCSI流控是一种基于命令的单向流控机制。同时,由于每个iSCSI命令所需要的空间和网络传输时间不同,如一个写命令可能携带大量的数据,而一个查询命令则不携带数据,因此这种单纯针对命令的流控粒度很粗;假设一种情况:根据命令流控的要求,最多同时发出32个命令,则当这32个命令都是写命令,且每个写命令有8MB数据的时候,如果目标设备的SCSI层这个时候忙,那么目标设备的协议栈就需要缓冲至少32×8=256MB的数据。显然,如果每个命令携带的数据量更大,或者对于采用iSCSI协议来做数据的存储和访问的小型设备来说,很可能出现缓存的数据量大于当前可以使用的内存的情况,从而导致设备不可用。总而言之,现有技术中,基于iSCSI的数据传输所采取的是粗粒度的单向流控,并由此导致设备内存占用大,甚至设备不可用的问题。
发明内容
本发明为了克服上述现有技术的缺陷,提供了一种控制iSCSI报文发送、接收和交互的技术方案,旨在实现细化流控粒度,减少设备的内存占用问题。
为实现上述目的,本发明的实施例提供了一种控制iSCSI报文发送的方法,应用于IP存储系统中互为对端的发起设备或目标设备中,其中,该iSCSI报文的/PDU封装有SCSI命令参数;包括以下步骤:
A1、发送端依次赋予PDU一全局序列号并记录在相应的PDU中,以及向接收端发送;
A2、从接收端接收到携带有可处理的PDU最大序列号的发送提示指令时,提取该PDU最大序列号;其中,接收端可处理的PDU最大序列号为接收端已组装为SCSI命令的PDUSN与接收端缓冲队列之和;
A3、检测该PDU序列号是否大于等于发送端下一待发送的PDU全局序列号;是则,从下一PDU开始,重新执行步骤A1;否则,执行步骤A4;
A4、发送端停止发送直至接收到下一次发送提示指令。。
本发明的实施例还提供了一种控制iSCSI报文接收的方法,应用于IP存储系统中互为对端的发起设备或目标设备中,其中,/该iSCSI报文的PDU封装有SCSI命令参数;包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710175312.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:点阵型图案的设计及其解码方法及其装置
- 下一篇:电缆工控下线机