iSCSI 协议

iSCSI协议结构

如同任何一个协议一样,iSCSI也有一个清晰的层次结构,根据OSI模型,iSCSI的协议栈自顶向下一共可以分为五层,如图所示:

SCSI层:根据应用发出的请求建立SCSI CDB(命令描述块),并传给iSCSI层;同时接受来自iSCSI层的CDB,并向应用返回数据。

.iSCSI层:对SCSI CDB进行封装,以便能够在基于TCP/IP协议的网络上进行传输,完成SCSI到TCP/IP的协议映射。这一层是iSCSI协议的核心层。

.TCP层:提供端到端的透明可靠传输。

.IP层:对IP报文进行路由和转发。

.Link层:提供点到点的无差错传输

3.2 iSCSI 流量控制与超时重发

流量控制是指发送方控制发送数据帧到网络的速率。发送方发送的速率—般是传送路径上的交换机、路由器或接收方可用的缓冲区大小的函数。iSCSI则采用 TCP/lP协议的端到端的流量控制机制,以可变发送窗口的方式进行流量控制。发送窗口在连接建立时由双方面定,但在通信过程中,接收方可根据自己的资源 使用情况,随时动态地调整自已的接收窗口(可增大或减小),然后告诉对方,使发送方的发送窗口和自己的接收窗口一致。

iSCSI采用的是TCP的自适应超时重发算法,可根据网络的情况动态调整。这种算法记录每一个报文段发出的时间以及收到相应的确认报文段的时间,这两个 时间之差就是报文段的往返时延RTT,当发送—个数据段时,启动相应的定时器,如果定时器超时确认报文段还没有到达,就触发数据配发机制。如果超时之前得 到确认,就记录新的往返时延,将各个报文段的往返时延样本进行加权平均得到新的报文段的平均往返时延RTT,显然定时器设置的重发时间应大于平均的往返时 延RTT。在实际应用中,RTT的算法还很复杂,目前一般采用的是Karm算法。

3.3 iSCSI发现机制

iSCSI发起端为了和iSCSI目标端建立iSCSI会话,iSCSI需要知道ISCSI目标端的IP地址,TCP端口号和名字三个信息。iSCSI发现的目的是为了让iSCSI发起端获取一条到iSCSI目标端的通路。iSCSI有三种发现机制:

⑴ 静态配置:在iSCSI发起端已经知道iSCSI目标端的IP地址TCP端口号和名字信息时,iSCSI发起端不需要执行发现。iSCSI发起端直接通过 IP地址和TCP端口来建立TCP连接,使用iSCSI目标端的名字来建立iSCSI会话。这种发现机制比较适合比较小的iSCSI体系结构

⑵ SendTarget发现:在iSCSI发起端知道iSCSI目标端的IP地址和TCP端口的情况下,iSCSI使用IP地址和TCP端口号建立TCP连 接后建立发现对话。iSCSI发起端发送SendTarget命令查询网络中的存在的iSCSI信息。这种方法主要用于网关设备,iSCSI发起端被静态 配置连接到指定的iSCSI设备。iSCSI发起端和iSCSI网关设备建立对话并发送SendTarget请求给iSCSI网关设备。iSCSI网关设 备返回一系列和它相连的ISCSI目标端的信息。iSCSI发起端选择一个目标端来建立对话。

⑶ 零配置发现:这种机制用于iSCSI发送设备完全不知道ISCSI目标端的信息的情况下。iSCSI发起端利用现有的IP网络协议SLP(Service Location Protocol for Discovery,服务定位协议)。iSCSI目标端使用SLP来注册,iSCSI发起端可以通过查询SLP代理来获得注册的iSCSI目标端的信息。 当iSCSI目标端加入到网络中的时候,拓扑结构也随之改变。虽然这种方法增加了实现的复杂性,但它不需要重新配置发起端即可找到新的目标端。

流量控制机制对网络的适应性

iSCSI是基于窗口的发送机制,由于发送方可以根据网络的拥塞情况动态地调整发送速率,因此iSCSI的流量控制机制对网络的适应性更好,尤其在网络传输延迟较大的网络中。

超时重发机制的灵活性

在TCP/IP协议中,TCP使用自适应重传算法以适应互连网络时延的变化。它的要点是:TCP监视每一条连接的性能,并计算出报文的往返时间 RTT(Round Trip Time)。当连接的性能变化时,TCP随即修改RTT(也就是说它能自动适应时延的变化)。RTT(Round Trip Time)被发送方用来决定是否重传报文。

iSCSI 协议的更多相关文章

  1. 深入分析iSCSI协议的应用

    深入分析iSCSI协议的应用 1 引言 快速增长的存储容量使得企业需要采用网络存储解决方案.目前网络存储技术采用的连接技术主要有光纤通道和TCP/IP.基于IP的网络存储能解决基于光纤通道的网络存储中 ...

  2. 通过iscsi协议使用ceph rbd

    转自:http://blog.csdn.net/wytdahu/article/details/46545235 ceph很早就已经支持通过iscsi协议来使用rbd,这篇博文对此做下演示,并且使用O ...

  3. 主要协议SCSI、FC、iSCSI

    一.SCSI SCSI是小型计算机系统接口(Small Computer System Interface)的简称,于1979首次提出,是为小型机研制的一种接口技术,现在已完全普及到了小型机,高低端服 ...

  4. iscsi与multipath

    2016-10-01/21:07:24 http://www.cnblogs.com/wuchanming/p/4019660.htmlhttp://czmmiao.iteye.com/blog/20 ...

  5. CentOS 6.5下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行 SCSI协议,使其能 ...

  6. CentOS 6.3下配置iSCSI网络存储

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...

  7. iSCSI 与 ceph

    SCSI  小型计算机系统接口(SCSI,Small Computer System Interface)是一种用于计算机及其周边设备之间(硬盘.软驱.光驱.打印机.扫描仪等)系统级接口的独立处理器标 ...

  8. 网络存储(二)之ISCSI原理

    组成 一个简单ISCSI系统大致由以下部分构成 ISCSI Initiator 或者 ISCSI HBA ISCSI Target 以太网交换机 一台或者多台服务器 结构图如下: iscsi服务器用来 ...

  9. 第17章 使用iSCSI服务部署网络存储

    章节概述: 本章节将分析SCSI与iSCSI技术结构的不同,了解iSCSI技术的优势.SAN存储网络技术结构以及iSCSI HBA卡的作用. 完整演示部署iSCSI target服务程序的方法流程:创 ...

随机推荐

  1. OpenCV_火焰检测——完整代码

    转:http://blog.csdn.net/xiao_lxl/article/details/43307993 火焰检测小程序 前几天,偶然看到了An Early Fire-Detection Me ...

  2. [WCF安全2]使用wsHttpBinding构建UserName授权的WCF应用程序,非SSL

    上一篇文章中介绍了如何使用basicHttpBinding构建UserName授权的WCF应用程序,本文将为您介绍如何使用wsHttpBinding构建非SSL的UserName安全授权的WCF应用程 ...

  3. Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] E. Weakness and Poorness 三分

    E. Weakness and Poorness time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  4. ubuntu 14.04 (desktop amd 64) 查看配置参数

    硬盘型号 sudo hdparm -i /dev/sda |grep "Model"   硬盘数量大小 sudo fdisk -l |grep "Disk /dev/sd ...

  5. Ubuntu server 禁止显示器休眠

    Linux不让显示器休眠的方法 # setterm -blank # setterm -blank n (n为等待时间)

  6. Qt5_vs2013_error_C2001: 常量中有换行符__ZC

    ZC: 这里是解决 Windows平台下的这个 编译error :“error C2001: 常量中有换行符”. ZC: 我现在(20161221)的处理方式:vs2010或vs2015 将cpp文件 ...

  7. Java IO流-序列化流和反序列化流

    2017-11-05 20:42:06 序列化流:把对象按照流的方式存入文本文件或者在网络中传输. 对象 -- 流数据(ObjectOutputStream) 反序列化流:把文本文件中的流对象数据或者 ...

  8. Linux 常用环境搭建

    已有环境 python 2.6.6 jdk 1.7 —tomcat— —jenkins— —jq— —Python 2.7— —pip— —PIL— —Android SDK— —yum or apt ...

  9. JSP Cookies 处理

    JSP Cookies 处理 Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持. 通常有三个步骤来识别回头 ...

  10. js将 HTML 页面生成 PDF 并下载

    最近碰到个需求,需要把当前页面生成 pdf,并下载.弄了几天,自己整理整理,记录下来,我觉得应该会有人需要 :) 先来科普两个插件: html2Canvas 简介 我们可以直接在浏览器端使用html2 ...