iSCSI 协议 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)被发送方用来决定是否重传报文。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/63421.html