CN101741878B - 加速处理iSCSI数据包的网络设备 - Google Patents

加速处理iSCSI数据包的网络设备 Download PDF

Info

Publication number
CN101741878B
CN101741878B CN 200810180944 CN200810180944A CN101741878B CN 101741878 B CN101741878 B CN 101741878B CN 200810180944 CN200810180944 CN 200810180944 CN 200810180944 A CN200810180944 A CN 200810180944A CN 101741878 B CN101741878 B CN 101741878B
Authority
CN
China
Prior art keywords
network
computer system
system interface
small computer
data
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.)
Expired - Fee Related
Application number
CN 200810180944
Other languages
English (en)
Other versions
CN101741878A (zh
Inventor
胡智江
张倩
陈玄同
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Corp
Original Assignee
Inventec Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CN 200810180944 priority Critical patent/CN101741878B/zh
Publication of CN101741878A publication Critical patent/CN101741878A/zh
Application granted granted Critical
Publication of CN101741878B publication Critical patent/CN101741878B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种加速处理网络小型计算机系统接口数据包的网络设备。该网络设备区分为主机端以及网络卡端。在主机端包括联机指令描述区块队列、网络小型计算机系统接口主机端管理模块、以及小型计算机系统接口模块,通过这些模块可用来处理指令描述区块内的SCSI指令。在网络卡端包括底层协议处理模块以及微处理器。通过微处理器内的协议数据单元描述器、协议数据单元产生器、以及网络小型计算机系统接口网络卡管理单元,可预先将网络数据包中的协议数据单元解析出来,借以让主机端专职于执行SCSI指令,加快网络设备的网络数据包处理效率。

Description

加速处理iSCSI数据包的网络设备
技术领域
本发明涉及一种网络设备,特别涉及一种加速处理iSCSI数据包的网络设备。
背景技术
随着网络储存技术进步,网络储存变得非常流行。一种名为网络小型计算机系统接口(internet Small Computer Systems Interface,iSCSI)的通讯协议标准被IETF提出。iSCSI技术为一种实现网络储存的协议,可让多台计算机主机的储存空间通过TCP/IP通讯协议串接而形成虚拟的网络磁盘(又称为iSCSI网络磁盘)。iSCSI网络磁盘的特性为安装容易、成本低廉、以及拥有无限扩充虚拟储存设备容量的扩充/备份能力,因此逐渐受到许多企业的青睐。
iSCSI是基于TCP/IP的通讯协议,其上层为小型计算机系统接口(SmallComputer Systems Interface,SCSI)协议,下层则为TCP/IP及底层协定(LowLevel Protocol,LLP)。图1A为公知的系统结构示意图。请参照图1A,发起通讯的一方称为发起端(Initator),而被联机的一方为目标端(Target)。发起端与目标发端的系统结构相同,两者皆具有:小型计算机系统接口110a、网络小型计算机系统接口120a、主机堆栈130a、网络卡硬件140a。当发起端的应用程序发送数据读写请求后,发起端的小型计算机系统接口110a会生成对应的SCSI命令(SCSI Command),并通过其网络小型计算机系统接口120a先以一种消息语义封装成指令描述区块(Command Descriptor Block,CDB),再将此CDB封装为协议数据单元(Protocol Data Unit,PDU),然后再通过TCP/IP通讯协议传送到目标端。目标端接收到PDU后亦会层层解析回SCSI命令内容,以触发其设备执行SCSI命令。当SCSI命令执行完毕后,目标端回传指令响应(Command Response)给发起端,其流程如同前述需层层封装SCSI命令为PDU数据包。
近几年网络卡设备传输速度大幅提升,传输速度已由原本的10Mbps提升到10Gbps的高速传输,硬件设备传输速率的提升连带使网络储存设备的存取速度大幅提升。然而,网络储存设备的数据处理能力却成为整个网络储存设备的效能瓶颈。图1B为公知的具有TCP卸载引擎(TCP Offload Engine,TOE)功能的系统结构示意图。请参照图1B,当网络卡硬件140b收到数据包后,具有TOE功能的韧体堆栈130b将数据包中的TCP内容(Payload)取出交给上层的小型计算机系统接口110b、网络小型计算机系统接口120b处理。然而,这种TOE技术虽然可通过网络卡硬件加速解析出TCP数据包内容,但是iSCSI协议部分仍须由主机处理,处理及校验大量的PDU对主机来说仍是很大的工作压力,甚至成为整个网络储存设备的效能瓶颈。
发明内容
鉴于上述网络储存设备的效能瓶颈问题,本发明所要解决的技术问题在于提出一种加速处理iSCSI数据包的网络设备,通过在网络卡加入微处理器使网络卡具有硬件TOE功能,并通过此网络卡来处理协议数据单元的标头与数据,使主机端专注于执行SCSI指令而不必额外耗费运算资源来分析协议数据单元,借以加快整体网络储存设备的数据包处理速度。
为实现上述目的,本发明的加速处理iSCSI数据包的网络设备包括主机端以及网络卡端。主机端包括:联机指令描述区块队列、网络小型计算机系统接口主机端管理模块、以及小型计算机系统接口模块。联机指令描述区块队列用以队列储存接收的小型计算机系统接口命令;网络小型计算机系统接口主机端管理模块接收SCSI命令,并回传对应的回应数据包;而小型计算机系统接口模块则用以执行SCSI命令。网络卡端则包括:底层协议处理模块及微处理器。底层协议处理模块用来接收或传递网络数据包;而微处理器则用来监听底层协议处理模块所接收的网络数据包。在微处理器中,则又包括:协议数据单元描述器、协议数据单元产生器、以及网络小型计算机系统接口网络卡管理单元。协议数据单元描述器从接收的网络数据包解析输入协议数据单元,并将其区分出第一档头及数据段;协议数据单元产生器,将响应数据包加入第二档头以产生输出协议数据单元,并送交给底层协议处理模块;网络小型计算机系统接口网络卡管理单元则读取第一文件头的指令描述区块,以判断指令描述区块的任务,并通知网络小型计算机系统接口主机端管理模块执行此任务。
依照本发明的较佳实施例所述的加速处理iSCSI数据包的网络设备,其中网络卡端设置有一组内存,用来储存输入协议数据单元及输出协议数据单元;以及设置一个直接内存存取模块,用来对输入数据暂存区及输出数据暂存区进行直接内存存取。直接内存存取模块也可以对网络卡端的内存进行直接内存存取。网络小型计算机系统接口网络卡管理单元可根据第一文件头触发直接内存存取模块直接对输入数据暂存区进行数据写入;而网络小型计算机系统接口主机端管理模块则可触发直接内存存取模块直接自输出数据暂存区取出SCSI指令数据,并直接储存到网络卡的内存。
依照本发明的较佳实施例所述的加速处理iSCSI数据包的网络设备,其中处理器更通过多线程技术处理接收底层协议处理模块的网络数据包,或传送数据包数据给底层协议处理模块。
由上所述,本发明的加速处理iSCSI数据包的网络设备通过在网络卡设置微处理器,以网络小型计算机系统接口网络卡管理单元、协议数据单元描述器、以及协议数据单元产生器等模块来处理网络数据包,以预先取出数据包中的协议数据单元,并解析协议数据单元所带的SCSI指令数据。当SCSI指令数据取出后,再交由主机端的网络小型计算机系统接口主机端管理模块以及小型计算机系统接口模块进行后序的iSCSI/SCSI指令执行。由于主机端仅需专职于iSCSI/SCSI指令执行,不必进行数据包监听、解析等繁琐的动作,故可加速网络设备的iSCSI数据包处理速度。
下面结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1A为公知的系统结构示意图;
图1B为公知的具有TOE功能的系统结构示意图;
图2为本发明一较佳实施例的系统结构示意图;
图3为本发明一较佳实施例的细部系统结构示意图。
其中,附图标记
110a  小型计算机系统接口
120a    网络小型计算机系统接口
130a    主机堆栈
140a    网络卡硬件
110b    小型计算机系统接口
120b    网络小型计算机系统接口
130b    韧体堆栈
140b    网络卡硬件
210     小型计算机系统接口
220     第一阶网络小型计算机系统接口
230     第二阶网络小型计算机系统接口
240     韧体堆栈
250     网络卡硬件
310     主机端
311     小型计算机系统接口模块
312     网络小型计算机系统接口主机端管理模块
313     联机指令描述区块队列
314     输入数据暂存区
315     输出数据暂存区
320     网络卡端
321     微处理器
321a    网络小型计算机系统接口网络卡管理单元
321b    协议数据单元描述器(PDU Delineator)
321c    协议数据单元产生器
322     网络卡内存
322a    输入协议数据单元
322b    输出协议数据单元
323     直接内存存取模块
324     底层协议处理模块
具体实施方式
本发明的目的及其执行方法在下列较佳实施例中详细说明。然而本发明的概念亦可用于其它范围。以下列举的实施例仅用于说明本发明的目的与执行方法,并非用以限制其范围。
图2为本发明一较佳实施例的系统结构示意图。请参照图2,在本实施例中,加速处理iSCSI数据包的网络设备分为主机端以及网络卡端。在主机端包括小型计算机系统接口210以及第一阶网络小型计算机系统接口220;而在网络卡端包括了第二阶网络小型计算机系统接口230、韧体堆栈240以及网络卡硬件250。其中的小型计算机系统接口210、韧体堆栈240以及网络卡硬件250与现有的iSCSI网络设备系统结构类似,但有别于现有的网络设备系统结构,本实施例将iSCSI拆解为两阶段,第一阶网络小型计算机系统接口220为iSCSI指令执行,也就是专职执行协议数据单元(Protocol Data Unit,PDU)内所带的iSCSI指令。网络数据包的TCP/IP卸载(即区分出TCP标头以及内容部分)、解析协议数据单元的标头及数据等繁杂耗费运算资源的琐事,则交由第二阶网络小型计算机系统接口230执行。换言之,在本实施例中,解析网络数据包格式部分是通过网络卡硬件完成的,主机端并不需要额外花费运算资源用于监听数据包、解析PDU、或取出CMD,且当主机端处理iSCSI/SCSI指令同时,网络卡也会同时剖析或封装网络数据包,因此可大幅提升网络设备处理iSCSI数据包的执行效率。
接着,再以一实施例详细说明本发明的系统结构。图3为本发明一较佳实施例的细部系统结构示意图。请参照图3,加速处理iSCSI数据包的网络设备分为主机端310以及网络卡端320两部分。在本实施例中主机端310有一个小型计算机系统接口模块311、网络小型计算机系统接口主机端管理模块312、以及联机指令描述区块队列313。小型计算机系统接口模块311用以执行SCSI命令。网络小型计算机系统接口主机端管理模块312用来接收SCSI命令或执行iSCSI命令,并于执行完成后回传对应于iSCSI/SCSI命令的回应数据包。联机指令描述区块队列313则用来将接收到的所有SCSI命令队列储存起来,借以按命令的先后顺序递交SCSI指令到小型计算机系统接口模块311,或将未处理完的SCSI指令加以暂存,避免因网络流量过大SCSI指令处理不及而造成系统延迟或系统错误。
网络卡端320则为具备运算能力的网络卡,网络卡端320包含有底层协议处理模块(LLP module)324,用以接收或传递网络数据包,以及微处理器321,用以监听由底层协议处理模块324接收的网络数据包,其中微处理器包括:协议数据单元描述器321b,用以从接收的网络数据包解析输入协议数据单元322a,并进一步解析为第一档头及数据段。协议数据单元产生器321c,则用以将主机端310的响应数据包加入第二档头以产生输出协议数据单元322b,并送交底层协议处理模块324通过TCP/IP协议传输。网络小型计算机系统接口网络卡管理单元321a则用以读取第一文件头的指令描述区块,以判断指令描述区块内的任务,并通知网络小型计算机系统接口主机端管理模块312执行此任务。
加速处理iSCSI数据包的网络设备的运作方式如下:网络卡端320的微处理器321会监听网络数据包,并以iSCSI协议规定的数据格式解析出输入协议数据单元322a而存放于网络卡内存322。同时微处理器321会进一步解析输入协议数据单元322a的标头部分,若此输入协议数据单元322a所代表的为SCSI指令,则撷取出CDB以及网络设备号(LUN)等信息,并根据CDB数据内容决定是否需开启网络卡端320的直接内存存取模块323,以直接将CDB数据储存在主机端310的输入数据暂存区314。之后,网络小型计算机系统接口网络卡管理单元321a则根据CDB类型产生一数据结构,在此我们称之为任务。网络小型计算机系统接口网络卡管理单元321a会一并将任务告知主机端310的网络小型计算机系统接口主机端管理模块312。所有的任务将会依序加入联机指令描述区块队列313,以依序递交小型计算机系统接口模块311执行。当执行完一个任务后,网络小型计算机系统接口主机端管理模块312会回复任务响应。首先,网络小型计算机系统接口主机端管理模块312会先产生回复数据以传回网络卡端320。此时此数据结构则储存于输出数据暂存区315,而网络小型计算机系统接口主机端管理模块312则发出通知(亦即将任务索引、回复数据的地址及数据长度)给网络小型计算机系统接口网络卡管理单元321a。网络小型计算机系统接口网络卡管理单元321a收到通知后,先根据任务ID查得被回复的任务,再到输出数据暂存区315取出任务回复数据,并通过协议数据单元产生器321c将任务回复数据加入文件头而产生输出协议数据单元322b,以送交底层协议处理模块完成iSCSI的回复动作。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (8)

1.一种加速处理iSCSI数据包的网络设备,其特征在于,包括一主机端和一网络卡端:
该主机端包括:
一联机指令描述区块队列,用以队列储存接收的多个小型计算机系统接口命令;
一网络小型计算机系统接口主机端管理模块,接收SCSI命令,并回传对应的回应数据包;以及
一小型计算机系统接口模块,用以执行SCSI命令;以及
该网络卡端包括:
一底层协议处理模块,用以接收或传递网络数据包;以及
一微处理器,用以监听该底层协议处理模块接收的该网络数据包,其中该微处理器包括:
一数据包传送单元描述器,从接收的该网络数据包解析一输入协议数据单元为一第一文件头及一数据段;
一协议数据单元产生器,将该回应数据包加入一第二档头以产生一输出协议数据单元送交该底层协议处理模块;以及
一网络小型计算机系统接口网络卡管理单元,读取该第一文件头的一指令描述区块,以判断该指令描述区块的任务,并通知该网络小型计算机系统接口主机端管理模块执行该任务。
2.根据权利要求1所述的加速处理iSCSI数据包的网络设备,其特征在于,该网络卡端还包括一内存,用以储存该输入协议数据单元及该输出协议数据单元。
3.根据权利要求1所述的加速处理iSCSI数据包的网络设备,其特征在于,该主机端还包括:
一输入数据暂存区,用以存放该输入协议数据单元的SCSI指令数据;以及
一输出数据暂存区,用以存放该输出协议数据单元的SCSI指令数据。
4.根据权利要求3所述的加速处理iSCSI数据包的网络设备,其特征在于,该网络卡端还包括一直按内存存取模块,用以对该输入数据暂存区及该输出数据暂存区进行直接内存存取。
5.根据权利要求4所述的加速处理iSCSI数据包的网络设备,其特征在于,该直接内存存取模块,亦用以对该网络卡端的该内存进行直接内存存取。
6.根据权利要求4所述的加速处理iSCSI数据包的网络设备,其特征在于,该网络小型计算机系统接口网络卡管理单元根据该第一文件头触发该直接内存存取模块直接对该输入数据暂存区进行数据写入。
7.根据权利要求4所述的加速处理iSCSI数据包的网络设备,其特征在于,网络小型计算机系统接口主机端管理模块触发该直接内存存取模块直接自该输出数据暂存区取出SCSI指令数据并直接储存到该网络卡的内存,或不经该网络卡的内存而直接将SCSI指令数据发往网络卡的物理层。
8.根据权利要求1所述的加速处理iSCSI数据包的网络设备,其特征在于,该处理器还通过多线程技术处理接收该底层协议处理模块的网络数据包,或传递数据包资料给该底层协议处理模块。
CN 200810180944 2008-11-18 2008-11-18 加速处理iSCSI数据包的网络设备 Expired - Fee Related CN101741878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200810180944 CN101741878B (zh) 2008-11-18 2008-11-18 加速处理iSCSI数据包的网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200810180944 CN101741878B (zh) 2008-11-18 2008-11-18 加速处理iSCSI数据包的网络设备

Publications (2)

Publication Number Publication Date
CN101741878A CN101741878A (zh) 2010-06-16
CN101741878B true CN101741878B (zh) 2012-12-12

Family

ID=42464763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200810180944 Expired - Fee Related CN101741878B (zh) 2008-11-18 2008-11-18 加速处理iSCSI数据包的网络设备

Country Status (1)

Country Link
CN (1) CN101741878B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102075401B (zh) * 2011-01-28 2013-08-07 华为技术有限公司 在pcie总线上传输报文的方法、设备和系统
CN102752366B (zh) * 2012-05-30 2016-11-23 浪潮电子信息产业股份有限公司 一种iscsi客户端存储加速模块

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633131A (zh) * 2005-01-14 2005-06-29 清华大学 一种iSCSI存储系统的实现方法
US7389462B1 (en) * 2003-02-14 2008-06-17 Istor Networks, Inc. System and methods for high rate hardware-accelerated network protocol processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389462B1 (en) * 2003-02-14 2008-06-17 Istor Networks, Inc. System and methods for high rate hardware-accelerated network protocol processing
CN1633131A (zh) * 2005-01-14 2005-06-29 清华大学 一种iSCSI存储系统的实现方法

Also Published As

Publication number Publication date
CN101741878A (zh) 2010-06-16

Similar Documents

Publication Publication Date Title
CN100544310C (zh) 为通过网络的数据传输管理存储器的方法、系统和程序
EP2216955B1 (en) Network interface device
CN100438403C (zh) 用于管理通过网络的数据传输的方法和系统
US7400639B2 (en) Method, system, and article of manufacture for utilizing host memory from an offload adapter
US7664892B2 (en) Method, system, and program for managing data read operations on network controller with offloading functions
US6549934B1 (en) Method and system for remote access to computer devices via client managed server buffers exclusively allocated to the client
CN104410692B (zh) 一种用于重复文件上传的方法和系统
US7676607B2 (en) Hardware acceleration apparatus for iSCSI target system using TOE and method for performing read/write command using the apparatus
US8099470B2 (en) Remote direct memory access for iSCSI
EP2587769B1 (en) Apparatus and method for transmitting a plurality of files
WO2004077211A2 (en) Method and apparatus for increasing file server performance by offloading data path processing
CN107392768A (zh) 一种基于fpga的期货交易系统及方法
CN110177087A (zh) 一种基于TOE网卡的Target端协议硬件解析方法
CN1985492A (zh) 支持iSCSI读操作和iSCSI烟囱的方法和系统
CN114201421A (zh) 一种数据流处理方法、存储控制节点及可读存储介质
CN101741878B (zh) 加速处理iSCSI数据包的网络设备
CN107360177A (zh) 一种基于udp的报文传输方法及装置
CN102098291B (zh) 一种基于fpga的网络安全日志处理方法和装置
US20100175073A1 (en) Network device for accelerating iscsi packet processing
CN109088782A (zh) 分布式系统的日志收集方法及装置
CN106936852B (zh) 一种数据发送和接收方法、设备以及数据传输系统
CN101355483B (zh) 一种多网口发送数据包的方法和设备
EP2774342B1 (en) Reducing tcp timeouts due to incast collapse at a network switch
CN101951327A (zh) 一种iSCSI网络系统以及检测网络故障的方法
US7814219B2 (en) Method, apparatus, system, and article of manufacture for grouping packets

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121212

Termination date: 20191118

CF01 Termination of patent right due to non-payment of annual fee