公开/公告号CN101483671A
专利类型发明专利
公开/公告日2009-07-15
原文格式PDF
申请/专利权人 杭州华三通信技术有限公司;
申请/专利号CN200910077470.7
申请日2009-02-12
分类号H04L29/08(20060101);H04L29/06(20060101);
代理机构11018 北京德琦知识产权代理有限公司;
代理人谢安昆;宋志强
地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地
入库时间 2023-12-17 22:14:42
法律状态公告日
法律状态信息
法律状态
2017-06-06
专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20090212
专利权人的姓名或者名称、地址的变更
2011-10-26
授权
授权
2009-10-14
实质审查的生效
实质审查的生效
2009-07-15
公开
公开
技术领域
本发明涉及基于因特网的小型计算机系统接口(iSCSI,internet SmallComputer System Interface)协议技术领域,特别涉及一种提高iSCSI会话传输速率的方法、系统和发起端装置。
背景技术
iSCSI协议是一种传输协议,硬件编码器通过iSCSI协议与存储设备通信,进行数据传输。iSCSI协议的实现可以在IP网络上应用SCSI的功能,充分利用了现有的IP网络的成熟性和普及性等优势,允许用户通过TCP/IP网络来构建存储区域网(SAN,Storage Area Network),为企业提供了直接访问存储设备的能力。
iSCSI协议的发起端(Initiator)和目标端(Target)之间的通信由一个或多个iSCSI连接完成,iSCSI连接通过发送iSCSI协议数据单元(iSCSI
PDU)来传输数据。连接一个Initiator和Target的所有iSCSI连接构成一个iSCSI会话(iSCSI Session),每个iSCSI连接可以被加入iSCSI会话或者从iSCSI会话中移出。
由于iSCSI协议是承载在TCP协议之上的,在建立iSCSI连接之前首先需要建立TCP连接。基于IP的iSCSI传输完全依赖于TCP连接,对于通过一个TCP连接传送的任何iSCSI请求,相应的响应和/或其他相关的iSCSIPDU必须经由同一个TCP连接来发送。
TCP协议具备经受时延确认的机制,即接收端在接收到数据时并不立即发送ACK消息,而是将ACK消息推迟,并与下一个需要沿该方向发送的数据一起发送。TCP协议的经受时延确认机制对TCP连接的传输速率造成影响,具体体现于如下公式:
其中,环回时间(RTT,Round-Trip Time)表示从发送端发送数据开始,到发送端收到来自接收端的确认消息之间的时间;
P表示数据包丢失率;
由上述公式可见,TCP协议的经受时延确认机制直接导致RTT的增大,由于RTT与TCP连接的传输速率成反比,进而导致TCP连接的传输速率降低。
由于iSCSI连接的建立完全依赖于TCP连接,因此,iSCSI连接的传输速率也受上述公式的影响,即:由TCP协议的经受时延确认机制导致iSCSI连接的传输速率下降。进一步地,由于iSCSI会话由iSCSI连接组成,最终导致iSCSI会话的传输速率下降。
发明内容
本发明实施例提出一种提高iSCSI会话传输速率的方法,能够提高iSCSI会话的传输速率,有效地提高iSCSI的传输吞吐量。
本发明实施例还提出一种提高iSCSI会话传输速率的系统和发起端装置,能够提高iSCSI会话的传输速率,有效地提高iSCSI的传输吞吐量。
本发明实施例的技术方案是这样实现的:
一种提高iSCSI会话传输速率的方法,包括:
周期性地获取iSCSI会话中一个iSCSI连接的RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个iSCSI连接,将所述重新建立的iSCSI连接加入所述iSCSI会话中。
一种提高iSCSI会话传输速率的系统,包括:发起端装置和目标端装置;
发起端装置,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个发起端装置和目标端装置之间的iSCSI连接,将所述重新建立的iSCSI连接加入所述iSCSI会话中。
一种提高iSCSI会话传输速率的发起端装置,包括:
RTT监控模块,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,命令iSCSI会话维持模块建立新的iSCSI连接;
iSCSI会话维持模块,用于根据RTT监控模块的命令建立iSCSI连接,将该iSCSI连接中加入iSCSI会话中。
可见,本发明提出的提高iSCSI会话传输速率的方法、系统和发起端装置,实时地获取iSCSI连接上数据传输的RTT值,当iSCSI连接的RTT值过大而影响数据传输速率时,在当前iSCSI会话中增加iSCSI连接,实现负载的有效分担,从而提高iSCSI会话的传输速率。
附图说明
图1为本发明方法实施例流程图;
图2为本发明方法实施例中获取iSCSI连接的RTT的实现流程图;
图3为本发明实施例发起端装置的结构示意图。
具体实施方式
本发明的设计思想是:当iSCSI会话的初始iSCSI连接建立成功,进行iSCSIPDU的传输时,周期性地获取初始iSCSI连接的RTT并判断RTT是否超过预期的可接受范围,直至判断出超过时,说明由于受TCP协议经受时延确认机制的影响使得整个iSCSI会话的传输速率过低,此时立即增加新的iSCSI连接。
增加新的iSCSI连接后,如果整个iSCSI会话的传输速率提高,说明网络带宽还有富余,这种情况下可以在iSCSI连接的RTT超过预期的可接受范围时再次增加iSCSI连接;如果整个iSCSI会话的传输速率没有提高,说明已经达到了网络带宽的极限值,使新增加的iSCSI连接由于没有空闲的网络带宽供其使用而无法起到负载分担的效果,这种情况下结束本流程。
本发明提出的提高iSCSI会话传输速率的方法可以包括:
周期性地获取iSCSI会话中一个iSCSI连接的RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个iSCSI连接,将所述重新建立的iSCSI连接加入所述iSCSI会话中。
针对iSCSI会话仅包含一个初始iSCSI连接的情况,上述获取iSCSI会话中一个iSCSI连接的RTT可以具体为:获取iSCSI会话中初始iSCSI连接的RTT。
针对iSCSI会话中包含多个iSCSI连接的情况,上述获取iSCSI会话中一个iSCSI连接的RTT可以具体为:获取iSCSI会话中任意一个iSCSI连接的RTT;
获取iSCSI会话中任意一个iSCSI连接的RTT之前可以进一步包括:判断所述iSCSI会话的传输速率是否允许提高,如果允许提高,则继续执行所述获取iSCSI会话中任意一个iSCSI连接的RTT的步骤;如果不允许提高,则结束当前流程。
上述方法中,判断iSCSI会话的传输速率是否允许提高的方式可以具体为:将加入新的iSCSI连接之后的iSCSI会话的传输速率与加入新的iSCSI连接之前的iSCSI会话的传输速率进行比较,当加入后的传输速率大于加入前的传输速率时,则判定所述iSCSI会话的传输速率允许提高。
以下参照附图1详细介绍本发明。参见图1,图1为本发明方法实施例流程图。本发明提出的提高iSCSI会话传输速率的方法包括:
步骤101:建立iSCSI会话的初始iSCSI连接。
步骤102:周期性地获取初始iSCSI连接的RTT,并判断该RTT是否超过预先设定的门限值,直至RTT超过预先设定的门限值时,执行步骤103;此处预先设定的门限值可以为RTT预期的可接受范围。
步骤103:建立新的iSCSI连接。
步骤104:将新的iSCSI连接加入到iSCSI会话中。
上述方法中,步骤104之后可以进一步包括:
步骤105:判断iSCSI会话的传输速率是否允许提高,如果允许提高,则执行步骤106;否则结束本方法流程。在本步骤中,判断iSCSI会话的传输速率是否允许提高的方式为:将加入新的iSCSI连接之后的iSCSI会话的传输速率与加入新的iSCSI连接之前的iSCSI会话的传输速率进行比较,当加入后的传输速率大于加入前的传输速率时,则判定iSCSI会话的传输速率允许提高。其中,iSCSI会话的传输速率可以通过在发起端装置计算特定时长内发送的字节数来获得。
步骤106:周期性地获取iSCSI会话中任意一个iSCSI连接的RTT,并判断该RTT是否超过所述预先设定的门限值(由于同一个iSCSI会话中每个iSCSI连接的RTT相差无几,因此可以采用其中任意一个iSCSI连接的RTT来作判断),直至RTT超过预先设定的门限值时,返回执行步骤103。本步骤中,预先设定的门限值可以为RTT预期的可接受范围。
从上述过程可见,当iSCSI会话中增加新的iSCSI连接后,如果整个iSCSI会话的传输速率没有提高,说明此时网络带宽已经饱和,再增加iSCSI会话也不会起到负载分担的效果,这种情况下就不再计算iSCSI连接的RTT、也不再增加新的iSCSI连接。这样既可以在一个iSCSI会话中利用多个iSCSI连接进行负载分担,又不会无谓地增加新的iSCSI连接造成浪费,有效地提高了iSCSI会话的传输速率。
在本发明中,可以通过iSCSI协议中已经定义的NOP-Out PDU及NOP-OutPDU周期性地进行时间信息的交互,实时地获取iSCSI连接的RTT。具体过程参见图2,图2为本发明方法实施例中获取iSCSI连接的RTT的实现流程图。
步骤201:发起端装置采用iSCSI连接向目标端装置发送NOP-Out PDU,所述NOP-Out PDU包含表示发起端发送NOP-Out PDU时刻的时间戳A1;
步骤202:目标端装置接收NOP-Out PDU,生成对应的NOP-In PDU,NOP-InPDU包含时间戳A1,在NOP-In PDU中增加表示目标端装置接收NOP-Out PDU时刻的时间戳B1;
步骤203:目标端装置采用发起端装置所采用的iSCSI连接发送NOP-InPDU时,在NOP-In PDU中增加表示目标端装置发送NOP-In PDU时刻的时间戳B2;
步骤204:发起端装置接收该NOP-In PDU,记录接收该NOP-In PDU的时刻A2;
至此,发起端装置有足够的信息计算该iSCSI连接的RTT,即:
RTT=B1-A1+A2-B2
上述方法中,时间戳可以采用NOP-In PDU或NOP-Out PDU中的保留(reserve)字段进行封装。
本发明实施例还提出一种提高iSCSI会话传输速率的系统,包括:发起端装置和目标端装置;
发起端装置,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,重新建立一个发起端装置和目标端装置之间的iSCSI连接,将所述重新建立的iSCSI连接加入所述iSCSI会话中。
上述系统中,发起端装置获取iSCSI会话中一个iSCSI连接的RTT可以为:获取iSCSI会话中初始iSCSI连接的RTT。
上述系统中,发起端装置获取iSCSI会话中一个iSCSI连接的RTT还可以为:获取iSCSI会话中任意一个iSCSI连接的RTT;
发起端装置还可以用于,判断iSCSI会话的传输速率是否允许提高,当允许提高时,继续执行所述获取iSCSI会话中任意一个iSCSI连接的RTT的步骤。
本发明实施例还提出一种提高iSCSI会话传输速率的发起端装置,参见图3,图3为本发明实施例发起端装置的结构示意图,包括:
RTT监控模块301,用于周期性地获取iSCSI会话中一个iSCSI连接的RTT,判断该RTT是否超过预先设定的门限值,当超过门限值时,命令iSCSI会话维持模块302建立新的iSCSI连接;
iSCSI会话维持模块302,用于根据RTT监控模块301的命令建立iSCSI连接,将该iSCSI连接中加入iSCSI会话中。
上述发起端装置还可以包括:
iSCSI会话速率监控模块303,用于判断iSCSI会话的传输速率是否允许提高,当允许提高时,命令RTT监控模块301获取iSCSI会话中任意一个iSCSI连接的RTT。
上述发起端装置中,RTT监控模块可以包括:
NOP-Out PDU发送模块,用于采用iSCSI连接向目标端装置发送NOP-OutPDU,所述NOP-Out PDU包含表示发起端装置发送NOP-Out PDU时刻的时间戳A1;
NOP-In PDU接收模块,用于接收所述NOP-Out PDU对应的NOP-In PDU,记录NOP-In PDU的接收时刻A2;获取NOP-In PDU中所包含的表示发起端装置发送NOP-Out PDU时刻的时间戳A1、表示目标端装置接收NOP-Out PDU时刻的时间戳B1和表示目标端装置发送NOP-In PDU时刻的时间戳B2;
RTT计算模块,用于采用RTT=B1-A1+A2-B2计算iSCSI连接的RTT。
综上所述,本发明提出的提高iSCSI会话传输速率的方法、系统和发起端装置,利用iSCSI协议中已定义的NOP-Out/-In PDU进行时间信息的封装,以便实时地获取iSCSI连接上数据传输的RTT值。当iSCSI连接的RTT值较大而影响数据传输速率时,在当前iSCSI会话中增加iSCSI连接,实现负载的有效分担从而提高iSCSI会话的传输速率。同时,本发明在iSCSI会话中每增加新的iSCSI连接后,即对iSCSI会话的传输速率进行监测,保证每一次iSCSI连接的增加都能有效地提高iSCSI会话的传输速率。当iSCSI会话的传输速率不再增加时,立即停止对RTT值的计算,有效节省系统资源,避免无谓地增加多余的iSCSI连接。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
机译: 在多协议标签交换(MPLS)网络上具有提高的分组传输速率的入口节点和出口节点,以及在MPLS网络系统中提高分组传输速率的方法
机译: 移动通信系统中的下行链路控制信道结构和使用相同方法的时间代码分配方法,尤其是为了提高代码通道的传输和分配效率,并通过在不同传输速率的情况下保持长期的低价来保持不同的传输速率
机译: 基于isCSI协议的传输速率控制方法及装置