CN101217551A - 本地存储协议接口和网络存储协议接口间的数据传输方法 - Google Patents
本地存储协议接口和网络存储协议接口间的数据传输方法 Download PDFInfo
- Publication number
- CN101217551A CN101217551A CNA2008100561458A CN200810056145A CN101217551A CN 101217551 A CN101217551 A CN 101217551A CN A2008100561458 A CNA2008100561458 A CN A2008100561458A CN 200810056145 A CN200810056145 A CN 200810056145A CN 101217551 A CN101217551 A CN 101217551A
- Authority
- CN
- China
- Prior art keywords
- data
- protocol interface
- storage protocol
- local storage
- burst
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种本地存储协议接口和网络存储协议接口间的数据传输方法,包括:本地存储协议接口读取数据过程中,协议转换模块在从网络存储协议接口接收数据应答报文的同时,向本地存储协议接口返回命令数据;本地存储协议接口发送数据过程中,协议转换模块在从本地存储协议接口接收命令数据的同时,向网络存储协议接口发送数据请求报文。通过应用本发明的方法,实现了向网络芯片发送/接收分片数据的过程与从本地存储协议接口接收/发送数据的过程的并行执行,发送/接收分片拆分的零等待,由于无需等待本地存储全部数据的时间,数据传输性能得到提高。
Description
技术领域
本发明涉及信息处理技术领域,更具体地说,本发明涉及一种本地存储协议接口和网络存储协议接口之间的数据传输方法。
背景技术
本地存储数据以命令为请求单位,每一条命令由命令参数和命令数据两部分组成;网络存储数据以报文为请求单位,每一个报文由报文头部和有效载荷两部分组成。本地存储数据的命令参数部分可以转换为网络存储数据的报文头部部分,本地存储数据的命令数据部分可以转换为网络存储数据的有效载荷部分,同时,网络存储数据的报文头部部分可以转换为本地存储数据的命令参数部分,网络存储数据的有效载荷部分可以转换为本地存储数据的命令数据部分。
在实现本地存储数据与网络存储数据相互转换传输中,由于本地存储数据具有协议简单、要求处理延时短的特性,通常采用现场可编程门阵列(FPGA)进行本地存储数据的处理。而对于网络存储数据而言,网络存储协议复杂,允许较长的处理延时,通常采用在嵌入式CPU上运行操作系统,并且结合协议栈进行处理。
现有的数据传输方法,本地存储数据和网络存储数据分别在不同位置处理,处理结束时进行处理结果的传输,两种数据的处理过程在处理时序上是串行的,没有发挥两种数据在处理过程中的并行性。而且,通常现有的本地存储数据与网络存储数据传输方法处理过程复杂,相应的处理延时较长,无法有效提升数据传输的整体性能。
发明内容
为克服现有本地存储数据与网络存储数据转换传输的处理复杂、延时较长的缺陷,本发明提供了一种本地存储协议接口和网络存储协议接口间的数据传输方法。
根据本发明的一个方面,提供了一种本地存储协议接口从网络存储协议接口读取数据的方法,包括:
步骤10)、协议转换模块接收网络存储协议接口发送的数据应答报文分片;
步骤20)、按照数据应答报文分片的顺序,协议转换模块在从网络存储协议接口接收所述数据应答报文分片的同时,向本地存储协议接口发送命令数据。
其中,步骤10)进一步包括:协议转换模块接收并解析所述数据应答报文,解析其中第一分片的包头部分,并且解析所述网络存储数据应答报文的头部。
其中,步骤20)进一步包括:
步骤210)、协议转换模块按照所述包头部分解析得到的数据地址顺序,在从网络存储协议接口接收所述数据应答报文的有效载荷的同时,向本地存储协议接口发送第一分片转换的命令数据;
步骤220)、协议转换模块接收完所述第一分片的有效载荷后,接收并解析第二分片的包头部分,按照上述步骤执行,直到接收完所有分片,并且报文的全部有效载荷传输到本地存储协议接口。
其中,步骤210)中,在网络存储协议接口和本地存储协议接口之间建立数据队列,存储分片数据;当解析每一分片的包头后,将所述分片在网络存储数据有效载荷中的偏移地址存储在所述数据队列中,按照偏移地址顺序,发送所述数据队列到本地存储协议接口。
其中,当网络存储数据报文对应的分片没有按照所述偏移地址顺序到达,而是部分提前到达,则提前到达的分片在队列中等待,不发送到本地存储协议接口。
根据本发明的另一方面,提供了一种本地存储协议接口向网络存储协议接口发送数据的方法,包括:
步骤10)、协议转换模块接收本地存储协议接口发送的命令数据;
步骤20)、协议转换模块在从本地存储协议接口接收命令数据的同时,向网络存储协议接口发送数据请求报文分片。
其中,步骤20)进一步包括:
步骤210)、协议转换模块生成请求报文第一分片的包头部分,并向网络存储协议接口发送;
步骤220)、协议转换模块生成请求报文的头部,启动本地存储协议接口,发送命令数据,协议转换模块在从本地存储协议接口接收所述命令数据的同时,向网络存储协议接口发送命令数据转换的请求报文第一分片的数据,其中,所述第一分片的数据包括包头部分和有效载荷;
步骤230)、协议转换模块发送完所述第一分片的数据后,按照上述步骤,生成报文第二分片并发送,直到发送完所有分片,本地存储协议接口的命令数据全部发送到网络存储协议接口。
其中,步骤220)中,在本地存储协议接口发送命令数据后,协议转换模块可以开始向网络存储协议接口发送分片,向网络存储协议接口发送分片数据的过程与从本地存储协议接口接收数据的过程并行执行。
通过应用本发明的方法,实现了向网络芯片发送/接收分片数据的过程与从本地存储协议接口接收/发送数据的过程的并行执行,发送/接收分片拆分的零等待,由于无需等待本地存储全部数据的时间,数据传输性能得到提高。
附图说明
图1是数据转换系统结构图;
图2为现有的读取数据流程图;
图3为现有的发送数据流程图;
图4为以太网分片与网络存储数据报文内容对应关系拆分示意图;
图5为根据本发明的实施例的读取数据流程图;
图6为根据本发明的实施例的发送数据流程图;
图7为根据本发明的实施例的读取数据部分优化流程图;
图8为根据本发明的实施例的发送数据部分优化流程图。
具体实施方式
下面结合附图和具体实施方式对本发明提出的一种本地存储协议接口和网络存储协议接口间的数据传输方法作进一步详细描述。
图1示出实施本发明的一个实施例的一种数据转换系统结构,如图1所示,所述系统主要包括:本地存储协议接口11、协议转换模块12、网络存储协议接口13。本地存储协议接口11和网络存储协议接口13通过协议转换模块12连接,并且数据双向传输,系统外部的客户机与本地存储协议接口连接,数据双向传输;网络存储协议接口与网络接口芯片连接,网络接口芯片通过网络与网络存储服务器连接,其中,协议转换模块12是本地存储数据与网络存储数据转换系统的核心部分。本系统用于实现本地客户机与网络中的服务器的信息交流,更主要用于本地客户机向网络服务器读取和发送数据。
图2示出现有的读取数据流程,在读取数据的过程中,传输过程包括:
201、协议转换模块12从本地存储协议接口11接收命令参数;
202、协议转换模块12向网络存储协议接口13发送读取数据请求报文,其中,报文中仅有报文头部,不含有效载荷;
203、协议转换模块12从网络存储协议接口13接收读取数据应答报文,其中,报文包含报文头部和有效载荷;
204、协议转换模块12从网络存储协议接口13接收报文完成后,协议转换模块12向本地存储协议接口11发送命令数据;
205、协议存储模块12向本地存储协议接口11返回设备状态。
其中,上述步骤中,步骤203和步骤204用于数据的读取和转发,占用的时间远大于其余三个步骤占用的时间。
图3示出现有的发送数据流程,在发送数据的过程中,传输过程包括:
301、协议转换模块12从本地存储协议接口11接收命令参数;
302、协议转换模块12从本地存储协议接口11接收命令数据;
303、协议转换模块12从本地存储协议接口11接收命令数据完成后,协议转换模块12向网络存储协议接口13发送写入数据请求报文,其中,所述请求报文包含报文头部和有效载荷;
304、协议转换模块12从网络存储协议接口13接收写入数据应答报文,其中,报文仅有报文头部,不含有效载荷部分;
305、协议转换模块12向本地存储协议接口11返回设备状态。
上述步骤中,步骤302和步骤303用于数据的接收和转发,占用的时间远大于其余三个步骤占用的时间。
在现有的数据转换系统中,采用协议栈处理通用网络数据包,并不区分网络存储数据报文,统一采用逐层处理、逐层拷贝的方法。在上述数据读取和数据发送过程中,所述步骤是顺序执行的。在现有的串行处理过程中,数据读取过程的步骤203和步骤204处理的总时间是所述两步骤处理时间和,数据发送过程的步骤302和步骤303处理的总时间是所述两步骤处理时间和。
因为现有网络存储数据运行在因特网参考模型的第1层(物理层)、第2层(数据链路层)和第3层(IP层)之上,并且由于第1和第2层协议(以太网协议)对能够传输的数据包最大长度进行了限制,所以,现有数据转换系统使用串行处理,网络存储数据在第3层进行分片,才能在第1和第2层协议上传输。
图4示出以太网分片与网络存储数据报文内容对应关系拆分示意图。以一个网络存储数据报文被拆分为4个分片为例,第一个分片包含网络存储数据报文的头部和部分报文有效载荷,第二个分片和其后的第三、第四个分片包含报文余下的有效载荷。拆分后,各个分片添加包头后就形成了4个IP层的分片,每个分片的包头部分包含该分片在整个报文中的偏移地址,用来在接收方重组。
由于现有数据转换系统采用通用的协议栈接收应答报文的重组处理信息,使得在接收过程中必须等待全部分片接收完毕才能进行应答报文的解析。而且,由于现有数据转换系统采用通用的协议栈发送请求报文的拆分处理,使得在发送过程中必须等待全部数据到达才能开始拆分并发送请求报文。数据的处理过程在处理时序上是串行的,没有发挥两种数据在处理过程中的并行性;而且现有的本地存储数据与网络存储数据传输方法往往处理过程复杂,相应的处理延时较长,无法有效提升转换系统整体性能。
在根据本方法的一个实施例中,利用在存储网络上传输的网络数据包相对单一的特性,针对存储网络上传输的网络存储数据报文的结构特点,把分片的网络存储数据报文看作多个连续的数据队列进行操作。
在接收分片的过程中,如图5所示,在分片顺序到达的情况下,协议转换模块可以在接收到第一个分片的第一个单位数据的同时,开始向本地存储协议接口传输数据,把上述现有的数据读取过程中的步骤203和步骤204并行处理,也就是,协议转换模块在从网络存储协议接口接收数据应答报文的同时,向本地存储协议接口返回命令数据;从网络接口芯片读取出全部的网络存储数据接收报文后,本地存储协议接口也已经接收到全部(或大部分)数据,实现了接收数据的零等待。此时,通过本实施例的并行处理,数据读取流程中的步骤203和步骤204处理的总时间为两步骤处理时间较长的那个步骤的时间。
在发送分片的过程中,如图6所示,协议转换模块从本地存储协议接口接收到第一个单位数据的同时,开始向网络存储协议接口传输数据,把现有的数据发送过程中步骤302和步骤303并行处理,也就是协议转换模块从本地存储协议接口接收命令数据的同时,向网络存储协议接口发送数据请求报文,当本地存储协议接口传输完全部数据时,网络存储数据报文的全部(或大部分)数据也已经传输到网络接口芯片中,实现了发送数据的零等待。此时,通过本实施例的并行处理,数据写入流程中的步骤302和步骤303处理的总时间为两步骤中处理时间较长的那个步骤的时间。
在根据本发明的实施例中,由于现有数据读取过程中的步骤201、步骤202和步骤205的处理方法并未做改变,所以以下仅详述步骤203和步骤204的改进实现。
如图7所示,以整个数据读取应答报文被拆分为4个分片为例,分别为分片1、分片2、分片3和分片4,在应用中,可以根据所述报文长度大小选用其他数量分片。数据读取过程阶段中,协议转换模块接收并解析分片1的包头部分;协议转换模块接收并解析网络存储数据应答报文的头部;协议转换模块接收应答报文有效载荷,同时启动本地存储协议接口,在从网络存储协议接口接收数据的过程中,向本地存储协议接口发送数据,也就是分片1的一部分;协议转换模块接收完分片1包含的全部内容后,接收并解析分片2的包头部分;协议转换模块接收应答报文的有效载荷部分,再次启动本地存储协议接口;协议转换模块接收并解析分片3的包头部分;协议转换模块接收应答报文的有效载荷部分,再次启动本地存储协议接口;协议转换模块接收并解析分片4的包头部分;协议转换模块接收应答报文的有效载荷部分,再次启动本地存储协议接口;报文的全部有效载荷传输到本地存储协议接口。
需要说明的是,在网络上传输的分片可能不会顺序传输,到达网络存储协议接口的数据顺序可能错乱,所以必须对分片调整顺序后,才能传输给本地存储协议接口。为了解决这一问题,在根据本发明的实施例的方法中,在网络存储协议接口和本地存储协议接口之间建立一个数据队列,当接收并解析完分片的包头后,判断该分片包含的数据长度和数据在网络存储数据有效载荷中的偏移地址。在接下来读取分片携带的数据内容的过程中,该数据内容就被存储在队列的对应地址中。然后,该队列可以传递给本地存储协议接口。
如果一次网络存储数据报文对应的所有分片在网络上顺序传输时,第一个分片携带的数据进入队列后必然处于队列的头部,当数据队列的头部已经有数据时,数据队列可以立即被本地存储协议接口读取;后续分片顺序到达,依次进入数据队列缓存,依次被本地存储协议接口读取,在分片顺序传输的情况下,网络存储协议接口通过数据队列传输数据到本地存储协议接口的时间很短,可以忽略。在另外一种情况下,一个网络存储数据报文对应的所有分片不是顺序到达,而是部分分片提前或者延后到达。在某一个分片没有到达的情况下,即使后续分片提前到达,也必须在队列中等待,不能传输给本地存储协议接口,在这种情况下,会产生一定的等待,传输性能根据分片乱序的情况会相应下降。在最恶劣的情况下,第一个分片最后一个到达,就会造成全部数据在队列中等待,直到第一个分片到达后才能开始向本地存储接口传输,这时,数据在队列中的等待时间与原系统重组完所有分片的等待时间相等。
但是由于在存储网络中,网络拓扑结构相对简单,网络长度相对短,网络传输的环境是相对良好的。在这样的网络传输环境下,出现部分分片乱序,甚至是全部分片逆序传输的情况很少。因此,根据本发明的实施例的方法的接收分片重组的零等待特性就可以充分发挥,实现性能的提升。
现有的数据发送过程中的步骤301、步骤304和步骤305的处理步骤没有改变,以下仅对其余两个步骤的改进进行详述。
以整个数据发送请求报文被拆分为4个分片为例,如图8所示,协议转换模块生成分片1的包头部分,并向网络存储协议接口发送;协议转换模块生成请求报文的头部,并向网络存储协议接口发送;启动本地存储协议接口,同时发送请求报文有效载荷,协议转换模块在从本地存储协议接口接收命令数据的同时向网络存储协议接口发送命令数据,该命令数据是分片1的一部分;协议转换模块发送完分片1包含的全部内容后,生成分片2的包头部分发送;启动本地存储协议接口,向协议转换模块发送请求报文的有效载荷部分;协议转换模块生成并向网络存储协议接口发送分片3的包头部分;启动本地存储协议接口,发送请求报文的有效载荷部分;协议转换模块生成并向网络存储协议接口发送分片4的包头部分;启动本地存储协议接口,向协议转换模块发送请求报文的有效载荷部分;分片2、分片3和分片4的数据发送过程与分片1的数据发送过程相同,报文的全部有效载荷传输到网络存储协议接口。
需要说明的是,由于本地存储数据传输路径简单,而且不存在分片问题,从本地存储协议接口传输到网络存储协议接口的数据不存在数据乱序问题,可以直接传输。
在此过程中,向网络接口芯片传送分片操作只需要等待本地存储协议接口传输一部分数据后就可以开始,向网络芯片发送分片数据的过程与从本地存储协议接口接收数据的过程并行执行,实现了发送分片拆分的零等待,由于不存在等待本地存储数据全部数据的等待时间,本系统的发送数据性能得到了提高。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对其限制,并且在应用上可以延伸到其他的修改、变化、应用和实施例,同时认为所有这样的修改、变化、应用、实施例都在本发明的精神和范围内。
Claims (8)
1.一种本地存储协议接口从网络存储协议接口读取数据的方法,包括:
步骤10)、协议转换模块接收网络存储协议接口发送的数据应答报文分片;
步骤20)、按照数据应答报文分片的顺序,协议转换模块在从网络存储协议接口接收所述数据应答报文分片的同时,向本地存储协议接口发送命令数据。
2.权利要求1的方法,其中,步骤10)进一步包括:协议转换模块接收并解析所述数据应答报文,解析其中第一分片的包头部分,并且解析所述网络存储数据应答报文的头部。
3.权利要求2的方法,其中,步骤20)进一步包括:
步骤210)、协议转换模块按照所述包头部分解析得到的数据地址顺序,在从网络存储协议接口接收所述数据应答报文的有效载荷的同时,向本地存储协议接口发送第一分片转换的命令数据;
步骤220)、协议转换模块接收完所述第一分片的有效载荷后,接收并解析第二分片的包头部分,按照上述步骤执行,直到接收完所有分片,并且报文的全部有效载荷传输到本地存储协议接口。
4.权利要求3的方法,其中,步骤210)中,在网络存储协议接口和本地存储协议接口之间建立数据队列,存储分片数据;当解析每一分片的包头后,将所述分片在网络存储数据有效载荷中的偏移地址存储在所述数据队列中,按照偏移地址顺序,发送所述数据队列到本地存储协议接口。
5.权利要求4的方法,其中,当网络存储数据报文对应的分片没有按照所述偏移地址顺序到达,而是部分提前到达,则提前到达的分片在队列中等待,不发送到本地存储协议接口。
6.一种本地存储协议接口向网络存储协议接口发送数据的方法,包括:
步骤10)、协议转换模块接收本地存储协议接口发送的命令数据;
步骤20)、协议转换模块在从本地存储协议接口接收命令数据的同时,向网络存储协议接口发送数据请求报文分片。
7.权利要求6的方法,其中,步骤20)进一步包括:
步骤210)、协议转换模块生成请求报文第一分片的包头部分,并向网络存储协议接口发送;
步骤220)、协议转换模块生成请求报文的头部,启动本地存储协议接口,发送命令数据,协议转换模块在从本地存储协议接口接收所述命令数据的同时,向网络存储协议接口发送命令数据转换的请求报文第一分片的数据,其中,所述第一分片的数据包括包头部分和有效载荷;
步骤230)、协议转换模块发送完所述第一分片的数据后,按照上述步骤,生成报文第二分片并发送,直到发送完所有分片,本地存储协议接口的命令数据全部发送到网络存储协议接口。
8.权利要求7的方法,其中,步骤220)中,在本地存储协议接口发送命令数据后,协议转换模块可以开始向网络存储协议接口发送分片,向网络存储协议接口发送分片数据的过程与从本地存储协议接口接收数据的过程并行执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100561458A CN101217551A (zh) | 2008-01-14 | 2008-01-14 | 本地存储协议接口和网络存储协议接口间的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100561458A CN101217551A (zh) | 2008-01-14 | 2008-01-14 | 本地存储协议接口和网络存储协议接口间的数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101217551A true CN101217551A (zh) | 2008-07-09 |
Family
ID=39623913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100561458A Pending CN101217551A (zh) | 2008-01-14 | 2008-01-14 | 本地存储协议接口和网络存储协议接口间的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101217551A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246194A (zh) * | 2008-11-10 | 2011-11-16 | 索莫亚私人有限公司 | 改进的自动交易系统 |
CN103248701A (zh) * | 2013-05-16 | 2013-08-14 | 北京京东尚科信息技术有限公司 | 存储文件的方法和装置以及系统 |
CN105471930A (zh) * | 2014-07-28 | 2016-04-06 | 浙江大华技术股份有限公司 | 一种读取分布式数据的方法、系统和设备 |
-
2008
- 2008-01-14 CN CNA2008100561458A patent/CN101217551A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102246194A (zh) * | 2008-11-10 | 2011-11-16 | 索莫亚私人有限公司 | 改进的自动交易系统 |
CN103248701A (zh) * | 2013-05-16 | 2013-08-14 | 北京京东尚科信息技术有限公司 | 存储文件的方法和装置以及系统 |
CN105471930A (zh) * | 2014-07-28 | 2016-04-06 | 浙江大华技术股份有限公司 | 一种读取分布式数据的方法、系统和设备 |
CN105471930B (zh) * | 2014-07-28 | 2019-03-26 | 浙江大华技术股份有限公司 | 一种读取分布式数据的方法、系统和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102480462B (zh) | 通用协议适配方法及装置 | |
CN101047714B (zh) | 一种处理网络数据的方法及系统 | |
JP3729237B2 (ja) | ノード及びノード内のデータ処理方法 | |
CN104782133B (zh) | 用于媒体数据递送控制的方法和装置 | |
US6539020B1 (en) | Bridge device | |
JP2009510811A5 (zh) | ||
CN107948094A (zh) | 一种高速数据帧无冲突入队处理的装置及方法 | |
US7773588B2 (en) | System and method for cross protocol communication | |
CN102422704A (zh) | 传送rlc数据块的方法 | |
CN114301995B (zh) | 实时工业以太网协议的转换切换与互通融合系统及其方法 | |
CN103095769A (zh) | 跨机房的数据同步方法以及系统 | |
CN102480426A (zh) | 基于pcie交换总线的通信方法及一种pcie交换系统 | |
US20230119412A1 (en) | Arbitration line-based full-duplex spi communication method | |
CN111970092B (zh) | 一种支持可靠性调节的多协议冗余网络异步通信方法 | |
JP3214454B2 (ja) | プログラム内蔵方式パケット処理装置 | |
CN101193041A (zh) | 网络数据传输的方法、装置及系统 | |
CN101217551A (zh) | 本地存储协议接口和网络存储协议接口间的数据传输方法 | |
CN112910909B (zh) | 基于CoAP协议与HTTP协议转换的数据包处理方法 | |
US7853706B2 (en) | Method, interface and network for cyclical sending of Ethernet telegrams | |
CN101494595B (zh) | 数据报文转发方法、系统以及同轴线路终端、光网络单元 | |
CN100576787C (zh) | 一种在维护终端与后台设备之间进行大数据量安全传送的方法 | |
CN101175073B (zh) | 基于硬盘控制器的双控制器通讯系统及其方法 | |
US9762353B2 (en) | Data packet for bidirectional transmission of data packets during data transmission between a first and a second communication appliance, and method for transmitting such a data packet | |
CN1917519B (zh) | 高级数据链路控制协议串行数据的并行传输方法及其系统 | |
JP5313155B2 (ja) | 時分割多重化モードにおけるデータ伝送方法及びシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080709 |