计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

引言 iSCSI是由Cisco和IBM共同发起的,并于2003年2月(2)

2013-06-28 01:00
导读:-使用NOP-IN探测启动器的序列信息。 -可以使用R2T要求启动启动器重传数据。 -支持SNACK功能。 -可以要求启动器对自己发送的Data序列予以确认。 -支持命令忠

  -使用NOP-IN探测启动器的序列信息。
  -可以使用R2T要求启动启动器重传数据。
  -支持SNACK功能。
  -可以要求启动器对自己发送的Data序列予以确认。
  -支持命令忠贞的再分配。
  -终结session。
  iSCSI错误恢复机制从高到低依次是0级(会话恢复), 1级(冗余恢复),2级(连接恢复)三层。一般的实现是1级或2级,本文实验使用的是0级,使得数据可靠性更高。由于iSCSI有以上2种机制,即使采用UDP包进行数据传输也会保证数据正确可靠的传输,再参照可看出,TCP层和iSCSI层在数据可靠性保证方面从语义上来说是重复的,而且TCP能保证命令顺利完成,否则会要求重发命令或重新建立连接,所以本改进协议使用UDP也能保证数据可靠。
  
  2 高性能 iSCSI 读写处理设计
  
  启动设备通过登录建立与目标设备的会话(session),登录成功后目标设备赋予启动设备会话号(sessionID)。其中登录过程中在建立TCP连接的时候,给每个连接一个CID(connection ID),对于每个TCP连接我们配套添加UDP套接字接口来进行数据的传输,一旦一个连接出错(如TCP连接错误,传输异常等),为了保证命令的连接忠贞,可以为该命令分配一个新的连接及相应的UDP套接字接口。连接成功后,双方再通过协商确定各种参数,然后会话进入iSCSI全功能阶段,可以发命令对设备进行读写操作了,下面来分析新iSCSI的读写过程设计。
  
  2.1 iSCSI 读处理
  内进数据的读处理设计过程如,此图是启动器协议栈执行SCSI读操作所处理内进数据PDU(数据从目标器流向启动器为内进数据,否则为外出数据)的过程。一个iSCSI PDU的默认大8Kb,可能被包含在多个UDP包中,当NIC收到这些包时,通过DMA(Direct MemoryAccess)把它们放到NIC(Network Interface Control)缓冲区然后中断CUP,设备驱动栈使用Rx接收线程和UDP控制块来执行UDP/IP处理,即去掉Eth/UDP/IP头部。前5步就是处理UDP/IP及其下层。第6-10步处理相关的iSCSI层,首先iSCSI层从套接字读iSCSI头部到内部临时缓冲区。iSCSI头部是由48字节的基本头部,CRC校验和,以及一些可选的附加头部组成。第7步计算CRC,然后与附加在头部上的CRC进行比较,如果相符,则iSCSI层去掉头部并把内进的iSCSI PDU作为数据PDU处理。第8步,在头部中包含一个标识值,根据它能把数据PDU放在SCSI缓冲中正确的位置;基于PDU的长度以及相对偏移,iSCSI层创建一个指向SCSI缓冲区的聚集链表。然后iSCSI层把聚集链表传给套接字接口(从UDP包复制iSCSI PDU负载到SCSI缓冲区),第10步验证整个PDU数据负载CRC校验和。
(科教作文网http://zw.ΝsΕAc.Com编辑整理)

  
  2.2 iSCSI 写处理
  显示的是启动器对目标器执行SCSI写外出数据PDU的处理流程。启动器端的iSCSI层必须在一个SCSI缓冲区中保留指向下一次写到目标端的数据PDU的指针。一旦收到从目标端传来的流控制(如R2T)PDU,iSCSI层立即传输数据PDU。首先构造iSCSI头部并计算头部的CRC值,把CRC值附加在头部上(1)。然后iSCSI层创建聚集链表来描述这个头部、头部的的CRC以及iSCSI PDU负载,接着计算负载数据的CRC值并把它添加到聚集链表中(2)。最后数据通过内核接口到UDP/IP栈再传到目标器。对于UDP/IP栈的实现问题,数据要么直接从SCSI缓冲区到NIC要么经过复制到一个临时套接字缓冲区(3,4,5)。UDP/IP栈加上自己的链接头部和负载描述符来分别指向包头和UDP负载(6,7)。最后协议栈发送信号给NIC,通过DMA把数据发送出去(8)。
  
  3 实验结果分析
  
  本实验是由2台主机构建iSCSI启动器和目标器模块,启动端是自主开发的支持UDP数据传输的iSCSI模块加载到windows XP内核中所构成,目标端是修改的linux下的HNU的修改版(支持UDP数据),再在中间加上千兆以太网交换机连接构成实验环境。首先启动两模块,把目标端的磁盘映射成启动端的虚拟磁盘。然后启动器端机器随机读写不同大小的数据块。
上一篇:引言 无线传感器网络作为当今信息领域新的研究 下一篇:没有了