CN102055729B - iSCSI封包的数据解析方法 - Google Patents
iSCSI封包的数据解析方法 Download PDFInfo
- Publication number
- CN102055729B CN102055729B CN2009102079430A CN200910207943A CN102055729B CN 102055729 B CN102055729 B CN 102055729B CN 2009102079430 A CN2009102079430 A CN 2009102079430A CN 200910207943 A CN200910207943 A CN 200910207943A CN 102055729 B CN102055729 B CN 102055729B
- Authority
- CN
- China
- Prior art keywords
- originating end
- iscsi
- package
- task
- packet
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种iSCSI封包的数据解析方法,用于加速解析iSCSI封包所传递的异步讯息封包。数据解析方法包括下列步骤:建立发起端与目标端的通信,并将异步讯息封包发送至发起端;通过发起端的区段重组引擎将异步讯号封包解析出发起端任务标签;由发起端任务标签中提取出发起端的主机缓冲地址信息;发出直接存取内存命令,将iSCSI封包的负载内容直接写入相应主机缓冲地址信息的内存地址。
Description
技术领域
本发明公开了一种数据解析方法,特别有关于一种iSCSI封包的数据解析方法。
背景技术
因特网小型计算机系统接口(internet Small Computer SystemsInterface,简称iSCSI)为工程任务编组(Internet Engineering Task Force,IETF)提出的通信协议标准。iSCSI通过TCP/TP通信协议连接网络的多台计算机主机,以串联多个分散于因特网的储存设备成为虚拟的网络储存设备。使用者存取此网络储存设备,就如同存取本机硬盘装置。相较于传统小型计算机系统接口(Small Computer Systems Interface,简称SCSI)及冗余磁盘阵列(Redundant Array of Independent Disks,RAID)技术,iSCSI技术兼具SCSI的高速传输能力,却又不受限于储存设备的扩充/备分能力,可无限制扩充虚拟储存设备的容量。此虚拟储存设备称为储存局域网络(Storage AreaNetwork,SAN),主要由发起端(Initiator)及目标端(target)构成。发起端传送存取请求与目标端建立通话联机(Session)。
在因特网小型计算机系统接口协议中定义了很多种封装数据的格式,其中大部是用于协议管理和错误恢复使用。但真正涉及到因特网小型计算机系统接口的数据传输只有SCSI指令负载单元(SCSI CMD PDU)、负载单元的数据(DataIn PDU)、Data Out PDU、R2T PDU的格式。所以为能加速因特网小型计算机系统接口的存取速度,可以对目标端所传送的负载单元的数据着手,藉以加速发起端的存取。但是经过每一层的封包解析需要耗费许多的时间。因此如何加快封包的解析处理,将有效的提高整体的存取效率。
发明内容
鉴于以上的问题,本发明的主要目的在于提供一种iSCSI封包的数据解析方法,用于加速解析iSCSI封包所传递的异步讯息封包。
为达上述目的,本发明公开了一种iSCSI封包的数据解析方法,其用以加速解析于一iSCSI封包所传递的一异步讯息封包,该数据解析方法包括以下步骤:
建立一发起端与一目标端的通信,并将该异步讯息封包发送至该发起端;
通过该发起端的一区段重组引擎将该异步讯号封包解析出一发起端任务标签;
由该发起端任务标签中提取出该发起端的一主机缓冲地址信息;以及
发出一直接存取内存命令,用以将该iSCSI封包的一负载内容直接写入相应该主机缓冲地址信息的内存地址。
于建立该发起端与该目标端的通信步骤前还包括:由该目标端在该发起端任务标签中记录一区段重组信息,该区段重组信息具有一区块数量值与一区块容量值。
该发起端任务标签为32位长度,将该发起端任务标签的0~15位记录一工作种类(task)且该发起端任务标签的16~31位记录该区块数量值与该区块容量值。
该发起端任务标签为32位长度,将该发起端任务标签的0~15位记录一task种类且该发起端任务标签的16~31位记录该区块数量值与一区块位置偏移量。
将该发起端任务标签记录于该异步讯息封包的标头中。
本发明提供了一种iSCSI封包的数据解析方法。本发明对目标端所传送的数据封包的内容进行调整,藉以加速整体的存取速度。
有关本发明的特征与实作,兹配合图示作最佳实施例详细说明如下。
附图说明
图1为本发明的架构示意图;
图2为本发明的运作流程示意图;
图3为本发明的发起端任务标签的封包格式示意图;
图4为本发明的解析运作示意图。
其中,附图标记:
发起端110
主机总线配接器111
目标端120
储存设备130
具体实施方式
为能加速iSCSI的封包解析处理,因此本发明从发起端来看当进行读取操作时,真正从目标端携带数据的只有负载单元中的数据(Data In PDU)。所以如果想对发起端进行读取操作的加速,则需要对负载单元中的数据进行修改。请参考图1所示,其为本发明的架构示意图。在因特网小型计算机接口的网络封包的处理系统包括有:发起端110、目标端120与储存设备130。
发起端110用以向目标端120发出存取请求。在发起端110中另包括一主机总线配接器111(Host Bus Adapter,简称HBA)。主机总线配接器111的主要作用是用来对TCP/IP封包与iSCSI封包进行封包解析的动作。储存设备130用以储存目标信息。目标端120接收来自发起端110的存取请求,目标端120根据存取请求用以存取储存设备130中的目标信息并将目标信息传送至发起端110。其中,目标端120、发起端110与储存设备130间系利用因特网相互传递网络封包。
请参考图2所示,其为本发明的运作流程示意图。本发明的解析方法包括以下步骤:
步骤S210:建立发起端与目标端的通信,并将异步讯息封包(asynchronous message PDU)发送至发起端;
步骤S220:通过发起端的区段重组引擎(Segment Reassemble Engine)将异步讯号封包解析出发起端任务标签(Initiator Task Tag,简称ITT);
步骤S230:由发起端任务标签中提取出发起端的主机缓冲地址信息;以及
步骤S240:发出直接存取内存命令,用以将iSCSI封包的负载内容直接写入相应主机缓冲地址信息的内存地址。
首先,建立发起端110与目标端120的通信(对应步骤S210)。当两端建立通信后,目标端120会发出异步讯息封包发送至发起端110。在本发明中对异步讯息封包的负载单元的数据(Data In PDU)、发起端110任务标签字段、发起端110与韧体的内存地址传递方式及硬件对iSCSI协议做出了下述修改,并请同时配合图3。发起端110任务标签具有32位的字段的封包,可以使用高位的16位来存放SCSI生成区块(SG-Block)中的位置信息,以便定位地址信息;低位的16位存放task的下标。
在目标端120的驱动器(Driver)负责把主机缓冲区(host buffer)地址以讯息的形式(message)传递给韧体,而讯息的格式定义如下:
sg_addr0 -主机的搜索清单(sg list)的基本地址
sg_dma_start -搜索清单的第一区块的索引定位
sg_dma_len -搜索清单的连续定位数量
sg_cnt -搜索清单中地址长度的总数量
Sg_add0中记录搜索清单的起始地址,sg_cnt标识所有搜索清单的数量。通过sg_add0把搜索清单的地址传递给韧体。韧体就可以通过直接存取内存(Direct Memory Access,DMA)的方式把这些搜索清单的地址信息放到相应的区块中,使得底层的数据操作考已从区块中取出相应的SCSI生成信息,用直接存取内存去拿主机上的数据。韧体上的区块不需由驱动器分配,驱动器只需要知道总共有多少个区块、每个区块的大小与这些区块的状态。驱动器就可以通过区块当前的使用状态知道下一个命令的搜索清单该占用从第几个开始的多少个区块,韧体得到这些信息后会进行处理。
存放搜索清单的缓冲区应该由驱动器来进行分配,以iscsi_task_sg_t的形式存在,先把搜索清单转成下述的结构形式。在本发明的此一实施态样中这个结构是12个字节,知道搜索清单的个数就可以算出需要多少空间及需要占用韧体上多少个区块。
typedef struct iscsi_task_sg_s
{
_uint32_t addr_high;
_uint32_t addr_low;
_uint32_t len;
}iscsi_task_sg_t;
发起端110的区段重组引擎将异步讯号封包解析出发起端110任务标签(对应步骤S220),在本发明的解析过程通过主机总线配接器111来进行的。请配合图4所述,其为本发明的解析运作示意图。发起端110任务标签在iSCSI协议中的作用是区分不同的iSCSI任务(iSCSI Task),本发明用以实现发起端110的任务和收到的iSCSI负载单元(iSCSI PDU)。由发起端110将其填充在iSCSI负载单元的文件头(iSCSI PDU Header)中。接着,目标端120返回的所有针对该任务的iSCSI负载单元的文件头中都会携带相同的发起端110任务标签进行标识。所以我们可以在搜寻清单的SCSI生成区块字段中存放SCSI指令(SCSI CMD)相关地址的位置信息封装进发起端110任务标签。这样当收到目标端120返回的数据时,就能从发起端110任务标签中直接拿到SCSI生成区块中的位置信息。同时还要保证通过发起端110任务标签能够找到对应的任务所以可以用两部分来组成发起端110任务标签。如前文所述,发起端110任务标签高端的16位来存放SCSI生成区块中的位置信息,以便定位地址信息;低端的16位存放任务的下标,以便在发起端110的任务池(task pool)中找到对应的任务。换言之,发起端110任务标签的0~15位记录任务种类且发起端110任务标签的16~31位记录区块数量值与区块容量值。
最后,由发起端110发出直接存取内存命令,将iSCSI封包的负载内容直接写入相应主机缓冲地址信息的内存地址。区段重组引擎从网络卡接收到网络包后进行解析。iSCSI层只在快速路径(fast path)中处理负载单元的数据。这是因为负载单元的数据才有携带数据,而其它的负载单元的数据只是进行基本协议检测。所以具体的解析和错误处理动作都由软件在慢路径(slow path)中完成。当区段重组引擎解析到负载单元的数据时就可以从发起端110任务标签中提取出SCSI生成区块的位置信息,然后再从相应的SCSI生成区块中取出主机缓冲区的地址信息,之后就可以针对该地址发送直接存取内存的请求将封包中的数据写到主机(意即发起端110)缓冲区中(对应步骤S230~步骤S240)。
本发明提供了一种iSCSI封包的数据解析方法。本发明对目标端120所传送的数据封包的内容进行调整,藉以加速整体的存取速度。
Claims (4)
1.一种iSCSI封包的数据解析方法,其用以加速解析于一iSCSI封包所传递的一异步讯息封包,其特征在于,该数据解析方法包括以下步骤:
建立一发起端与一目标端的通信,并将该异步讯息封包发送至该发起端;
通过该发起端的一区段重组引擎将该异步讯号封包解析出一发起端任务标签;
由该发起端任务标签中提取出该发起端的一主机缓冲地址信息;以及
发出一直接存取内存命令,用以将该iSCSI封包的一负载内容直接写入相应该主机缓冲地址信息的内存地址。
2.如权利要求1所述的iSCSI封包的数据解析方法,其特征在于,于建立该发起端与该目标端的通信步骤前还包括:
由该目标端在该发起端任务标签中记录一区段重组信息,该区段重组信息具有一区块数量值与一区块容量值。
3.如权利要求2所述的iSCSI封包的数据解析方法,其特征在于,该发起端任务标签为32位长度,将该发起端任务标签的0~15位记录一任务task种类且该发起端任务标签的16~31位记录该区块数量值与该区块容量值。
4.如权利要求1所述的iSCSI封包的数据解析方法,其特征在于,将该发起端任务标签记录于该异步讯息封包的标头中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102079430A CN102055729B (zh) | 2009-11-02 | 2009-11-02 | iSCSI封包的数据解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102079430A CN102055729B (zh) | 2009-11-02 | 2009-11-02 | iSCSI封包的数据解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102055729A CN102055729A (zh) | 2011-05-11 |
CN102055729B true CN102055729B (zh) | 2013-03-27 |
Family
ID=43959661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102079430A Active CN102055729B (zh) | 2009-11-02 | 2009-11-02 | iSCSI封包的数据解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102055729B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471956A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | 目标端的储存设备状态的识别及动态更新方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070124378A1 (en) * | 2005-10-14 | 2007-05-31 | Uri Elzur | Method and system for indicate and post processing in a flow through data architecture |
-
2009
- 2009-11-02 CN CN2009102079430A patent/CN102055729B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471956A (zh) * | 2007-12-28 | 2009-07-01 | 英业达股份有限公司 | 目标端的储存设备状态的识别及动态更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102055729A (zh) | 2011-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7742414B1 (en) | Lightweight indexing for fast retrieval of data from a flow-level compressed packet trace | |
CN104410692B (zh) | 一种用于重复文件上传的方法和系统 | |
CN1747444A (zh) | 数据处理系统网络中从主机单元分担数据流的方法及引擎 | |
US7260631B1 (en) | System and method for receiving iSCSI protocol data units | |
EP1934760B1 (en) | Parallel processing of frame based data transfers | |
US7676607B2 (en) | Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus | |
CN114201421B (zh) | 一种数据流处理方法、存储控制节点及可读存储介质 | |
CN102195874A (zh) | 数据分组的预提取 | |
US20160277544A1 (en) | Protocol data unit interface | |
CN111352889A (zh) | 一种基于mctp协议的设备管理方法、设备、装置和介质 | |
CN114039875B (zh) | 一种基于eBPF技术的数据采集方法、装置及系统 | |
CN110177087A (zh) | 一种基于TOE网卡的Target端协议硬件解析方法 | |
EP3995961A1 (en) | Storage system and operating method thereof | |
CN113014510B (zh) | 惯导系统分布式测试中数据缓存方法及装置 | |
US20120136958A1 (en) | Method for analyzing protocol data unit of internet small computer systems interface | |
CN101355483B (zh) | 一种多网口发送数据包的方法和设备 | |
US20100175073A1 (en) | Network device for accelerating iscsi packet processing | |
CN111198855B (zh) | 日志数据的处理方法和装置 | |
CN102055729B (zh) | iSCSI封包的数据解析方法 | |
CN102868684A (zh) | 一种光纤通道目标器及光纤通道目标器实现方法 | |
US7814219B2 (en) | Method, apparatus, system, and article of manufacture for grouping packets | |
CN114567614B (zh) | 基于fpga实现arp协议处理的方法及装置 | |
CN102111401A (zh) | 协议识别方法、协议识别装置及设备 | |
CN107615259A (zh) | 一种数据处理方法及系统 | |
CN109241362B (zh) | 区块生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: I VALLEY HOLDINGS CO., LTD. Free format text: FORMER OWNER: YINGYEDA CO., LTD., TAIWAN Effective date: 20150722 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150722 Address after: Cayman Islands, George Town Patentee after: IValley Holding Co., Ltd. Address before: Taipei City, Taiwan, China Patentee before: Inventec Corporation |