论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
引言
iSCSI是由Cisco和IBM共同发起的,并于2003年2月11日, 被IETF( Internet EngineeringTask Force, 互联网工程任务组) 通过的新的网络存储标准[4]。它是一种在Internet协议网络上, 特别是在以太网上进行数据块传输的标准。是一个供硬件设备使用的可以在IP协议上层运行的SCSI指令集。简单地说, iSCSI 可以实现在IP 网络上运行SCSI 协议, 使其能够在诸如高速千兆以太网上进行路由选择。而整个过程在用户看来,使用远端的存储设备就像访问本地的SCSI 设备一样简单。iSCSI协议利用现有的TCP/IP 网络传输SCSI协议命令和数据,价格较低,传输距离也不受限制,但协议开销较大。主要是因为CPU在处理TCP/IP这层协议的开销较大,占用了较多的系统资源和CPU时钟。为此许多学者提出了很多改进措施,例如TOE(TCP/IP offload engine)技术,它使用硬件来承担TCP/IP等网络协议数据包处理的绝大部分工作,将主机CPU从繁重的网络协议处理工作中解放出来,同时也大大提高了处理的效率。采用具有TOE的网卡实现iSCSl协议,主机CPU和软件部分就只需要完成iSCSl协议数据单元的封装、解封装,下层的处理工作由网卡完成。但是对于处理大量的小数据块来说这种技术又会成为系统瓶颈。因此本文设计一种基于UDP数据传输的高性能iSCSI软件来提高数据的处理和传输率,即采用基于UDP的数据传输,数据的传输与命令、状态的传输分离来提高数据传输率,同时减轻了CUP处理繁琐的TCP数据包的负担。
1 基于 UDP 数据传输的iSCSI 模型
iSCSI 协议栈的传输层使用的是TCP,而TCP 协议在数据处理方面比较保守,在传输大量的数据时,势必占用过多的CUP 时钟。如果完全用UDP 代替,又达不到可靠的要求,本文结合TCP 与UDP 作为iSCSI 协议栈的并行传输层。其结构模型。TCP 主要是用来建立可靠的连接和传输读写命令及状态,保障命令被执行完,如果出错则要求重传命令。UDP 的作用是在iSCSI 进入全功能阶段后传输大量数据。并且iSCSI 层在数据方面设计了数据序号机制和错误恢复机制来加强数据的可靠传输。