CN1628296A - 有效处理网络数据的***和方法 - Google Patents

有效处理网络数据的***和方法 Download PDF

Info

Publication number
CN1628296A
CN1628296A CNA028280016A CN02828001A CN1628296A CN 1628296 A CN1628296 A CN 1628296A CN A028280016 A CNA028280016 A CN A028280016A CN 02828001 A CN02828001 A CN 02828001A CN 1628296 A CN1628296 A CN 1628296A
Authority
CN
China
Prior art keywords
data
header
queue
application
network
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.)
Granted
Application number
CNA028280016A
Other languages
English (en)
Other versions
CN1315077C (zh
Inventor
O·乌扎莱德-纳里
S·古普塔
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.)
Silverback Systems Inc
Original Assignee
Silverback Systems Inc
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 Silverback Systems Inc filed Critical Silverback Systems Inc
Publication of CN1628296A publication Critical patent/CN1628296A/zh
Application granted granted Critical
Publication of CN1315077C publication Critical patent/CN1315077C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种包括主机的网络***。一个数据流部件被连接到主机。通过使用存储单元而不移动存储单元内的数据,所述数据流部件能够在主机和网络资源之间传输数据。一个通信链路连接上述数据流部件和网络资源。

Description

有效处理网络数据的***和方法
I.说明
I.A技术领域
本发明公开内容讲授了涉及管理命令(它们与网络管理***的较高层有关)的新技术。更具体地说,本发明公开内容的讲授涉及经过网络***传输的应用数据单元的有效处理。
I.B背景技术
经过网络传输的数据量已经有了显著的增长。为便于这种传输,对可以有效存储和检索数据的网络存储***的需求也增长了。已经出现了几种传统性的尝试消除与网络***中的数据传输以及数据存储有关的瓶颈。
在产生用于通过分组网络(例如以太网)或信元网络(例如ATM)来传输数据的分组或信元中涉及几个处理步骤。应当指出,本说明书中的术语“分组化”通常指的是形成分组和信元。无论哪种传输模式,都希望实现高速的存储与检索。当主机开始存储与检索时,在数据存储情况下的数据传输从主机流到存储装置。同样,在数据检索的情况下,数据从存储装置流到主机。必要的是至少像特定***所要求的那样高效而且有效地处理这两种情况。
主机所发送的、准备在网络存储单元中存储的数据必定会通过通信模型的多层。这类通信模型被用来产生高级数据表示,并且将其分解成能够通过指定物理网络的可管理信息块。数据从通信模型的一层到另一层的移动导致其相对于前一层添加或去除了某些部分的信息。在这种数据移动中,主要的难题涉及大量数据从物理存储器的一个区域到另一个区域的传输。任何用于数据移动的方案都应该确保相关的实用工具或设备可以依照要求来访问和处理数据。
图1显示了标准的七层通信模型。开头两个层,物理(PHY)层和媒介访问控制(MAC)层处理对物理网络硬件的访问,并产生基础分组形式。然后,数据向上移动到通信模型的不同的其它层,直到分组在应用层中被描述成主机可用的数据部分。类似地,当需要从网络上的主机中发送数据时,数据向通信模型的下层移动,在途中被分成较小的数据块,最后产生由MAC和PHY层处理的数据分组以便在网络上传输数据。
在图1示出的通信模型中,为了正确地执行其功能,每个较低层在其直接的上层指示下执行任务。更详细的说明可以在Andrew S.Tanenbaum的《Computer Networks(计算机网络)》(第三版)中找到,其中的内容通过引用结合于此。在称作光纤通道(FC)的常规硬件解决方案中,过去在软件中处理的一部分较低级层在硬件中处理。然而,FC不如通常所使用的以太网/网际协议技术具有吸引力。与可比的FC实施方案相比,以太网/网际协议提供了更低成本的所有权、更容易的管理、在来自不同供应商的设备之间的更好的互操作性和更好的数据和存储资源的共享。此外,FC还被优化用于传输大数据块而不是更普遍的动态低延时交互使用。
随着来自网络的数据传输需求的增长,减少至少一个与网络上数据移动有关的瓶颈是有利的。更具体地说,减少存储器内的数据移动量、直到数据被分组或直到该数据被主机描述成可用的信息为止是有利的。
II.发明内容
本发明公开内容讲授的目的在于实现上面所提到的优点。
根据本发明公开内容的一方面,提供了一种包括主机的网络***。一个数据流部件(data streamer)与所述主机连接。使用存储单元而不移动存储单元内的数据,上述数据流部件即能够在主机和网络资源之间传输数据。通信链路连接数据流部件和网络资源。
在一种具体增强方案中,上述通信链路是一个专用的通信链路。
在另一种具体增强方案中,上述主机被单独地用于使计算机初始化。
在又一种具体增强方案中,上述网络资源包括网络存储装置。
再具体地说,专用通信链路是网络通信链路。
更具体地说,从包含个人计算机接口(PCI)、PCI-X、3GIO、InfiniBand、SPI-3或SPI-4的群中选择专用通信链路。
进一步具体地说,其中网络通信链路是局域网(LAN)链路。
进一步具体地说,其中网络通信链路是基于以太网的。
进一步具体地说,网络通信链路是广域网(WAN)。
进一步具体地说,网络通信链路使用网际协议(IP)。
进一步具体地说,上述网络通信链路使用异步传输模式(ATM)协议。
在另一种具体增强方案中,所述数据流部件还包括:至少一个与所述主机连接的主机接口;至少一个与网络资源连接的网络接口;至少一个处理节点,其能够产生网络层操作所需的辅助数据和命令;一个最初处理数据的接纳和分类单元;一个支持数据处理的事件队列管理器;一个支持数据处理的调度器;一个管理存储器的存储器管理器;一个从所述接纳和分类单元接收数据的数据互连单元;以及一个控制集线器。
具体地说,上述处理节点还被连接到一个扩展存储器。
更具体地说,上述扩展存储器是代码存储器。
更具体地说,上述处理节点是网络事件处理节点。
更具体地说,上述网络事件处理节点是分组处理节点。
更具体地说,上述网络事件处理节点是报头处理节点。
更具体地说,从包含PCI、PCI-X、3GIO、InfiniBand、SPI-3和SPI-4的群中选择主机接口。
更具体地说,上述网络接口是以太网。
更具体地说,上述网络接口是ATM。
更具体地说,上述主机接口与网络接口是结合在一起的。
更具体地说,上述事件队列管理器至少能够管理:一个目标队列;一个应用队列。
更具体地说,当第一个报头被处理时,目标队列指向第一描述符。
更具体地说,报头是在第二通信层中被处理的。
更具体地说,报头是在第三通信层中被处理的。
更具体地说,报头是在第四通信层中被处理的。
更具体地说,如果第二个报头相应于第一个报头具有相同的元组,则目标队列指向第二个描述符。
更具体地说,目标队列对于报头信息至少保留开始地址。
更具体地说,目标队列对于报头信息至少保留结束地址。
更具体地说,如果至少一个应用报头可用,则应用队列指向所述描述符而不是所述目标队列。
更具体地说,描述符至少指向应用报头的开始。
更具体地说,应用队列保存所述应用报头的开始的地址。
更具体地说,描述符至少指向所述应用报头的结束。
更具体地说,应用队列保存所述应用报头的结束的地址。
更具体地说,当所有的应用报头都可用时,数据在连续操作中被传送给所述主机。
更具体地说,连续的操作是基于存储在所述应用队列中的指针信息的。
更具体地说,本***适合于从网络资源接收至少一个具有报头的数据分组,并且如果该报头不属于先前已打开的描述符,则打开一个新的描述符。
更具体地说,本***适合于在目标队列中存储报头的开始和结束地址。
更具体地说,如果有至少一个应用报头可用,则本***适合于把描述符的控制转移到应用队列,并且本***还适合于在应用队列中存储应用报头的开始和结束地址。
更具体地说,本***适合于基于所存储的应用报头把数据传送到主机。
更具体地说,本***适合于从主机接收数据和目标地址,而且进一步的是,其中本***还适合于在传输队列中使数据排队。
更具体地说,本***适合于更新较早产生的描述符以使之指向接下来将要被传送的数据部分。
更具体地说,本***适合于产生报头和把数据部分附加于报头以及通过网络传送它们。
本发明公开内容讲授的另一方面是在网络中使用的一种数据流部件,该数据流部件包括:至少一个与上述主机连接的主机接口;至少一个与网络资源连接的网络接口;至少一个处理节点,其能够产生网络层操作所需的辅助数据和命令;一个最初处理数据的接纳和分类单元;一个支持数据处理的事件队列管理器;一个支持数据处理的调度器;一个管理存储器的存储器管理器;一个从所述接纳和分类单元接收数据的数据互连单元;和一个控制集线器。
本发明公开内容讲授的又一方面是一种用于把来自网络的应用数据传送到主机的方法,该方法包括:从网络资源接收数据报头;如果这些报头不属于先前已打开的描述符,则打开一个新的描述符;在一个目标队列中存储各报头的开始的地址和结束的地址;如果有至少一个应用报头可用,则把描述符的控制转移到应用队列;在应用队列中存储各应用报头的开始和结束地址;重复上述步骤,直到所有的应用报头都可用为止;而且基于所述应用报头把数据传送到所述主机。
本发明公开内容讲授的再一方面是一种用于把来自主机的应用数据传送到网络资源的方法,该方法包括:从主机接收数据;从主机接收目标地址;在传输队列中使传送信息排队;更新指向接下来将要被发送的应用数据部分的描述符;产生用于传送的报头;把应用数据部分附加到上述报头上;通过网络传输应用数据部分和报头部分;重复上述步骤,直到所有的应用数据都被传送为止;并指示主机传输已完成。
III.附图说明
通过优选实施例的详细描述并参考附图,本发明公开内容讲授的上述目的和优点将变得更加明显,其中:
图1是常规的标准七层通信模型的一个框图。
图2是根据本发明公开内容讲授的数据流部件的典型实施例的一个示意框图。
图3是具有根据本发明公开内容讲授的、具有数据流部件的典型网络***的一个示意框图。
图4显示了应用数据的入口处理。
图5A~5I示范了根据本发明公开内容讲授的应用数据管理技术的
实施例。
图6显示了应用数据的出口处理。
IV.具体实施方式
图2示出了根据本发明公开内容讲授的数据流部件的典型实施例的一个示意图。数据流部件(DS)200可作为单个集成电路、或由两个或更多的电路元件构成的电路来实现。诸如存储器250和扩展码280之类的元件可以用独立器件来实现,而大多数其它元件可以被集成在单个IC上。主机接口(HI)210把数据流部件连接到主机。主机能够接收和传送数据到DS 200,以及发送高级命令来指示DS 200执行数据存储或数据检索。经由连接到主机接口(HI)210的主机总线(HB)212,数据和命令被传送给主机和从主机传送。HB 212可以是诸如外设部件互连(PCI)之类的标准接口,但不局限于这类标准接口,还可以使用允许主机和DS 200之间通信的专用接口。可以使用的另一个标准是PCI-X,它是PCI总线的后继总线,并且它具有明显更快的数据传输速度。如果数据流部件可以使用3GIO总线,则还有一种替换实施方案提供了甚至比PCI-X总线更高的性能。在又一个替换实施方案中,可以使用***分组接口第3级(System Packet Interface Level 3,SPI-3)或***分组物理接口第4级(System Packet Physical Interface Level 4,SPI-4)。在另一个替换实施方案中,还可以使用InfiniBand总线。
当命令被传送到事件队列管理器和调度器(EQMS)260时,从主机接收到的数据由HI 210通过总线216传送到数据互连和存储管理器(DIMM)230。从主机接收的数据将被存储在存储器250中等候进一步处理。对这类从主机到达数据的处理是在DIMM 230、控制集线器(CH)290和EQMS 260的控制下执行的。然后,数据在其中一个处理节点(PN)270中被处理。上述处理节点是网络处理器,该网络处理器能够管理用来产生网络层操作所必需的数据和命令的接口。至少一个处理节点可以是网络事件处理节点。具体地说,网络事件处理节点可以是分组处理节点或报头处理节点。
在处理之后,数据被传送到网络接口(NI)220。NI 220取决于其将被连接的接口类型和目的地,通过总线222而以其网络层格式路由数据。总线222可以是以太网、ATM或任何其它专用或标准网络接口。PN270可以依靠其嵌入码来处理一种或多种类型的通信接口,并且在某些情况下它可以使用扩展码(EC)存储器280来扩展。
DS 200能够进一步处理在网络上发送的数据,并且这些数据的目标是通过HB 212连接到DS 200的主机。在任何一个NI 222上接收的数据都通过NI 220来路由,并且最初由接纳和分类(AC)单元240来处理。数据被传送到DIMM 230,而控制则被转移到EQMS 260。DIMM 230把数据放置在存储器250中,以便在EQMS 260、DIMM 230和HC 290的控制下作进一步的处理。DIMM 230、EQMS 260和CH 290的功能将在此描述。
应当指出,DIMM 230的基本功能是控制存储器250和管理在存储器250以及DS 200的其它单元之间的所有数据业务,例如涉及HI 210和NI 220的数据业务。具体地说,DIMM 230集合所有指向存储器250的服务请求。还应当进一步指出,EQMS 260的功能是控制多个PN 270的操作。EQMS 260经由CH 290接收网络业务到达的通知,或称之为事件。EQMS 260优先化不同事件和组织它们,并且当所有事件的数据在对应的PN 270的局部存储器中都可用时,把事件分配到所需的PN 270。CH290的功能是处理在DS 200的各单元之间传输的控制消息(相对于数据报文)。例如,PN 270可以发送一个由CH 290处理的控制消息,其中CH290产生控制分组,该控制分组随后会被发送到预期目的地。DS 200的上述这些单元及其它单元的使用,根据对它们的使用(结合以下所述的方法)的描述会更加清楚。
图3示出了一个根据本发明公开讲授内容的示范性网络***300的示意图,其中使用了DS 200。DS 200借助于HB 212连接到主机310。当主机310需要从网络存储器读取数据时,就将命令经由HB 212发送到DS 200。DS 200处理“读取”请求并且有效地处理从网络存储器(NS)320中检索数据。当来自基本网络块中的NS 320的数据被接收时,它们被有效地组合在对应于DS 200的存储器250中。把数据组合成所请求读取的信息不是通过移动数据来完成的,而是通过一种高级指向***来完成的,下面给出该***的更详细解释。
具体地说,当数据沿着通信模型移动时,指针被用来指向通信模型的每层所需要的数据,而不是在存储器中把数据从一个位置移植或者说移动到另一位置。类似地,当主机310命令DS 200把数据写入NS320时,DS 200处理这个请求的做法是把数据存储在存储器250中,并且向下处理通过通信模型,而不是实际上移动存储器250内的数据。这导致更快速的操作。此外,主机的计算负担更少,存储器使用率也得到了相当大的节省。
虽然主机310被显示为通过HB 212连接到数据流部件200,但是使用其中一个网络接口222来连接主机310和数据流部件200也是可能的,该网络接口222要能够支持用于与主机310通信的特定通信协议。在本发明公开技术的另一个替代性实施方案中,主机310仅仅用于初始时配置所述***。其后,所有的操作都在网络222上执行。
图4示意性地描述了入口400的处理,示意性地说明了从网络到***的数据流。在每个步骤中,数据(最初作为分组流被接收)被合并或描述(delineated)成要被传送到主机的有意义的信息单元。用于数据组帧的入口步骤包括NI 220提供的链路接口410、AC 240提供的接纳420、DIMM 230和EQMS 260提供的缓冲和排队430、各PN 270提供的层3和层4处理440、EQMS 260提供的字节流排队450。上层协议(ULP)描述和恢复460和ULP处理470也由各PN 270支持。被指定用来将数据传送到主机480、490的各种其它类型的控制和握手操作由HI 210和总线212提供,而被指定用来将数据传送到网络485、495的操作则由NI 220和接口222支持。应当进一步指出,在入口400的所有步骤中都涉及CH 290。
ULP符合七层通信模型的第五、第六和第七层的协议。所有这类操作都由数据流部件200来执行。对本发明公开讲授内容的效率有贡献的因素是以一种不需要像在常规技术中那样移动数据的方式来管理数据的描述(delineation)。
图5示出了用以访问数据的技术,其中该数据是由从每个分组接收的有效载荷数据来描述的。当接收到由其唯一元组所标识的属于唯一过程的分组时,各PN270上的EQMS260使得一个目标队列和一个应用队列成为可用的。这展示于图5A中,其中,由于一个数据分组的到达,提供了目标队列520以及描述符指针540。描述符指针540指向存储器250中的存储单元552A,其中,相对于层2的分组报头被放置在存储单元552A中。这被重复用于相对于层3和层4的报头。它们分别被放置在存储单元553A和554A中。然后,应用报头被放置在555A中。这个操作是通过DIMM 230来执行的。
与打开的目标队列520相结合,应用队列530也被有效地用于所有与处理流程有关的有效载荷。每当关于通信层的信息被接受,包含在描述符540中的指针就被提前,因此这类报头被置于552A、553A、554A中而且555A可用于将来的检索。所属技术领域的专业人员可以容易地实现队列(或其它类似的数据结构)以用于检索这类数据。
在图5B中,所示的***500是它已经从层2、层3和层4接收了全部信息并且准备接受对应于分组的应用报头的时候。因此,对描述符540的控制被转移到应用队列530。应用队列530保存与应用报头的开始地址(在存储器250中)相关的信息。
在图5C中,所示的***500已经接收了上述应用报头。描述符540现在指向有效载荷557A在其到达时所放置的位置。数据在PN 270和CH290的控制下经由DIMM 230被传送到存储器250。因为有效载荷还没有被接收,所以此时没有指向有效载荷末尾的指针。一旦最终将要被传送到主机的有用的有效载荷数据可用,则指针就将被更新。应用数据的开始和结束指针被保留在应用队列中,确保当数据被传送到主机时易于对其定位。另外,不需要把数据从存储器的一部分移动到另一部分,从而节省了时间和存储空间,这导致更高的总体性能。
图5D显示另一个分组,该分组被接受且由此提供了新的描述符指针540B,它具有来自目标队列520的一个指针。最初,描述符540B指向第二层552B存储单元的开始的地址。
在图5E中,层2、3和4的信息已经被接收,并且该元组被***标识为属于前面已接收分组的同一元组。因此,描述符540A现在指向描述符540B,并且描述符540B指向存储在存储器250中的第四层信息的结束地址。在本例所描述的情况中,不存在处于完全可接受情况下的应用报头。应当指出,当所有的分组都具有有效载荷时,并非所有的分组都有应用报头,如本例所示。在图5示出的例子中,第一分组有应用报头,第二分组没有应用报头,而第三分组有应用报头。所有3个分组全都具有有效载荷。
如图5F所示,当另一个分组被接收时,在存储器250中会添加一个新的描述符指针540C,它指向层2、3、4和潜在应用报头的报头信息集合的开始位置。
在图5G中,在DIMM 230和被标识为属于已接收的相同分组的元组的控制下,分别对应于552C、553C、554C和555C的层2、层3、层4和应用报头的信息被存储在存储器250中。因此,描述符540B指向描述符540C。
如图5H所示,这个分组包含一个应用报头,由此描述符540C指向在存储器250中放置此报头的开始的地址,而图5I示出整个应用报头被接收之后的情况。正如上面所解释的,应用报头的开始和结束地址被存储在应用队列530中,因此很容易把它们以及有效载荷传送到主机310。在一些协议如iSCSI中,只有数据有效载荷会被传送到主机,而在其它情况下,ULP有效载荷和报头都可以被传送到主机。为了以一种适于将数据和报头传送到主机310的方式进行***配置,数据流部件200可以使用内置固件或者使用通过扩展码280提供的附加码。
图6显示了出口600,数据通过这个处理从主机传送到网络。应用数据在将其发送给目标网络位置的上层请求下,从主机310被接收到存储器250。数据流部件200被设计成它无需多次移动数据就能够处理主机数据以符合每个通信层的需要。这样就减少了数据传输数量,使得内存需求更小并且使得总体性能得到提高。事件队列管理器和调度器260管理来自主机310而现在被存储在存储器250中的数据的分解,数据被分解成被附着于分组报头上的有效载荷数据,这可以被认为适合于具体的网络业务。为了指向一个地址,而这个地址接下来将被用为附着于分组的数据,使用了指向存储在存储器250中的数据的指针,这些指针使用了一个排队***。一旦存储在存储器中的所有数据都被发送到其目的地,主机310就得到一个数据传输完成的指示。
通过上述公开内容和讲授,本发明的其它修改和变化对于所属领域的技术人员会变得显而易见。因此,虽然在此只具体描述了本发明的某些实施例,但是显然可以在不背离本发明精神和范围的前提下额外作出很多修改。

Claims (77)

1.一种网络***,包括:
一个主机;
一个连接到所述主机的数据流部件,通过使用存储单元而不在该存储单元内移动数据,所述数据流部件能够在所述主机和网络资源之间传输数据;
一个通信链路,其连接所述数据流部件和所述网络资源。
2.根据权利要求1的***,其中所述通信链路是专用通信链路。
3.根据权利要求1的***,其中所述主机被单独地用来初始化该计算机。
4.根据权利要求1的***,其中所述网络资源包括网络存储装置。
5.根据权利要求2的***,其中所述专用通信链路是网络通信链路。
6.根据权利要求3的***,其中,所述专用通信链路是从包含个人计算机接口(PCI)、PCI-X、3GIO、InfiniBand、SPI-3或SPI-4的群中选择的。
7.根据权利要求5的***,其中所述网络通信链路是局域网(LAN)链路。
8.根据权利要求5的***,其中所述网络通信链路基于以太网。
9.根据权利要求5的***,其中所述网络通信链路是广域网(WAN)。
10.根据权利要求5的***,其中所述网络通信链路使用网际协议(IP)。
11.根据权利要求5的***,其中所述网络通信链路使用异步传输模式(ATM)协议。
12.根据权利要求1的***,其中所述数据流部件进一步包括:
至少一个与所述主机连接的主机接口;
至少一个与所述网络资源连接的网络接口;
至少一个处理节点,其能够产生网络层操作所需的辅助数据和命令;
一个最初处理数据的接纳和分类单元;
一个支持数据处理的事件队列管理器;
一个支持数据处理的调度器;
一个管理存储器的存储管理器;
一个从所述接纳和分类单元接收数据的数据互连单元;和
一个控制集线器。
13.根据权利要求12的***,其中所述处理节点进一步被连接到一个扩展存储器。
14.根据权利要求13的***,其中所述扩展存储器是代码存储器。
15.根据权利要求12的***,其中所述处理节点是网络事件处理节点。
16.根据权利要求15的***,其中所述网络事件处理节点是分组处理节点。
17.根据权利要求15的***,其中所述网络事件处理节点是报头处理节点。
18.根据权利要求12的***,其中所述主机接口是从包含PCI、PCI-X、3GIO、InfiniBand、SPI-3和SPI-4的群中选择的。
19.根据权利要求12的***,其中所述网络接口是以太网。
20.根据权利要求12的***,其中所述网络接口是ATM。
21.根据权利要求12的***,其中所述主机接口与所述网络接口结合。
22.根据权利要求12的***,其中所述事件队列管理器至少能够管理:
一个目标队列;和
一个应用队列。
23.根据权利要求22的***,其中当第一个报头被处理时,所述目标队列指向第一描述符。
24.根据权利要求23的***,其中被处理的报头是在第二通信层中。
25.根据权利要求23的***,其中被处理的报头是在第三通信层中。
26.根据权利要求23的***,其中被处理的报头是在第四通信层中。
27.根据权利要求23的***,其中如果第二个报头有相应于第一个报头的相同元组,则所述目标队列指向第二描述符。
28.根据权利要求22的***,其中所述目标队列对于报头信息至少保留开始地址。
29.根据权利要求22的***,其中所述目标队列对于报头信息至少保留结束地址。
30.根据权利要求23的***,其中如果有至少一个应用报头可用,则所述应用队列指向所述描述符而不是所述目标队列。
31.根据权利要求23的***,其中所述描述符至少指向所述应用报头的开始。
32.根据权利要求31的***,其中所述应用队列保存所述应用报头的开始的地址。
33.根据权利要求23的***,其中所述描述符至少指向所述应用报头的结束。
34.根据权利要求33的***,其中所述应用队列保存所述应用报头的结束的地址。
35.根据权利要求30的***,其中当所有的应用报头都可用时,数据在连续操作中被传送到所述主机。
36.根据权利要求35的***,其中所述连续操作基于存储在所述应用队列中的指针信息。
37.根据权利要求22的***,其中所述***适合于从网络资源中接收至少一个具有报头的数据分组,并且如果该报头不属于已打开的描述符,则打开一个新的描述符。
38.根据权利要求37的***,其中所述***适合于在所述目标队列中存储所述报头的开始和结束地址。
39.根据权利要求37的***,其中如果有至少一个所述应用报头可用,则所述***适合于把所述描述符的控制转移到所述应用队列,并且所述***进一步适合于在所述应用队列中存储所述应用报头的开始和结束地址。
40.根据权利要求39的***,其中所述***适合于基于所存储的应用报头而把数据传输到所述主机。
41.根据权利要求22的***,其中所述***适合于从所述主机接收数据和目标地址,并且其中所述***还适合于在传输队列中使该数据排队。
42.根据权利要求41的***,其中所述***适合于更新较早产生的描述符,以使之指向接下来将要被传送的数据部分。
43.根据权利要求42的***,其中所述***适合于产生报头,并把所述数据部分附加于该报头而且通过网络传送它们。
44.一种在网络中使用的数据流部件,所述数据流部件包括:
至少一个与所述主机连接的主机接口;
至少一个与网络资源连接的网络接口;
至少一个处理节点,其能够产生网络层操作所需的辅助数据和命令;
一个最初处理数据的接纳和分类单元;
一个支持数据处理的事件队列管理器;
一个支持数据处理的调度器;
一个管理存储器的存储管理器;
一个从所述接纳和分类单元接收数据的数据互连单元;和
一个控制集线器。
45.根据权利要求44的数据流部件,其中所述处理节点进一步被连接到一个扩展存储器。
46.根据权利要求45的数据流部件,其中所述扩展存储器是代码存储器。
47.根据权利要求44的数据流部件,其中所述处理节点是网络事件处理节点。
48.根据权利要求47的数据流部件,其中所述网络事件处理节点是分组处理节点。
49.根据权利要求47的数据流部件,其中所述网络事件处理节点是报头处理节点。
50.根据权利要求44的数据流部件,其中所述主机接口是从包含PCI、PCI-X、3GIO、InfiniBand、SPI-3和SPI-4的群中选择的。
51.根据权利要求44的数据流部件,其中所述网络接口是以太网。
52.根据权利要求44的数据流部件,其中所述网络接口是ATM。
53.根据权利要求44的数据流部件,其中所述主机接口与所述网络接口结合。
54.根据权利要求44的数据流部件,其中所述事件队列管理器至少能够管理:
一个目标队列;
一个应用队列。
55.根据权利要求54的数据流部件,其中当第一个报头被处理时,所述目标队列指向第一描述符。
56.根据权利要求55的数据流部件,其中被处理的报头是在第二通信层中。
57.根据权利要求55的数据流部件,其中被处理的报头是在第三通信层中。
58.根据权利要求55的数据流部件,其中被处理的报头是在第四通信层中。
59.根据权利要求55的数据流部件,其中如果第二个报头有相应于第一个报头的相同元组,则所述目标队列指向第二描述符。
60.根据权利要求54的数据流部件,其中所述目标队列对于报头信息至少保留开始地址。
61.根据权利要求54的数据流部件,其中所述目标队列对于报头信息至少保留结束地址。
62.根据权利要求55的数据流部件,其中如果有至少一个应用报头可用,则所述应用队列指向所述描述符而不是所述目标队列。
63.根据权利要求55的数据流部件,其中所述描述符至少指向应用报头的开始。
64.根据权利要求63的数据流部件,其中所述应用队列保存所述应用报头的开始的地址。
65.根据权利要求55的数据流部件,其中所述描述符至少指向所述应用报头的结束。
66.根据权利要求65的数据流部件,其中所述应用队列保存应用报头的结束的地址。
67.根据权利要求62的数据流部件,其中当所有的应用报头都可用时,数据在连续操作中被传送到所述主机。
68.根据权利要求67的数据流部件,其中所述连续操作基于存储在所述应用队列中的指针信息。
69.根据权利要求54的数据流部件,其中所述数据流部件适合于从网络资源中接收至少一个具有报头的数据分组,并且如果该报头不属于已打开的描述符,则打开一个新的描述符。
70.根据权利要求69的数据流部件,其中所述数据流部件适合于在所述目标队列中存储所述报头的开始和结束地址。
71.根据权利要求70的数据流部件,其中如果有至少一个应用报头可用,则所述数据流部件适合于把所述描述符的控制转移到所述应用队列,并且该数据流部件进一步适合于在所述应用队列中存储应用报头的开始和结束地址。
72.根据权利要求71的数据流部件,其中所述数据流部件适合于基于所存储的应用报头而把数据传送到所述主机。
73.根据权利要求54的数据流部件,其中所述数据流部件适合于从所述主机接收数据和目标地址,并且其中所述数据流部件还适合于在传输队列中使该数据排队。
74.根据权利要求73的数据流部件,其中所述数据流部件适合于更新较早产生的描述符以使之指向接下来将要被传送的数据部分。
75.根据权利要求74的数据流部件,其中所述数据流部件适合于产生报头,并把所述数据部分附加于该报头而且通过网络传送它们。
76.一种把应用数据从网络传送到主机的方法,包括:
a)从网络资源中接收数据的报头;
b)如果所述报头不属于已打开的描述符,则打开一个新的描述符;
c)在一个目标队列中存储所述报头的开始地址和结束地址;
d)如果有至少一个应用报头可用,则把所述描述符的控制转移到一个应用队列;
e)在应用队列中存储所述应用报头的开始和结束地址;
f)重复a到e的各步骤,直到所有应用报头都是可用的为止;和
g)基于所述应用报头把数据传送到所述主机。
77.一种把应用数据从主机传送到网络资源的方法,包括:
a)从所述主机接收数据;
b)从所述主机接收目标地址;
c)在一个传输队列中使传送信息排队;
d)更新一个描述符,该描述符指向接下来将要被传送的应用数据部分;
e)产生用于传输的报头;
f)把所述应用数据部分附加到所述报头上;
g)在网络上传输所述的应用数据部分和报头;
h)重复d到g的各步骤,直到所有的应用数据都被发送为止;和
i)向所述主机指示该传输已经完成。
CNB028280016A 2001-12-14 2002-12-16 有效处理网络数据的***和方法 Expired - Fee Related CN1315077C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/014,602 US20030115350A1 (en) 2001-12-14 2001-12-14 System and method for efficient handling of network data
US10/014,602 2001-12-14

Publications (2)

Publication Number Publication Date
CN1628296A true CN1628296A (zh) 2005-06-15
CN1315077C CN1315077C (zh) 2007-05-09

Family

ID=21766455

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028280016A Expired - Fee Related CN1315077C (zh) 2001-12-14 2002-12-16 有效处理网络数据的***和方法

Country Status (5)

Country Link
US (1) US20030115350A1 (zh)
EP (1) EP1466263A4 (zh)
CN (1) CN1315077C (zh)
AU (1) AU2002346492A1 (zh)
WO (1) WO2003052617A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105408882A (zh) * 2013-03-11 2016-03-16 亚马逊技术有限公司 自动化桌面布置

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7060300A (en) 1999-08-16 2001-03-13 Iready Corporation Internet jack
US7039717B2 (en) * 2000-11-10 2006-05-02 Nvidia Corporation Internet modem streaming socket method
US7379475B2 (en) * 2002-01-25 2008-05-27 Nvidia Corporation Communications processor
US7171452B1 (en) 2002-10-31 2007-01-30 Network Appliance, Inc. System and method for monitoring cluster partner boot status over a cluster interconnect
US7593996B2 (en) * 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7467191B1 (en) 2003-09-26 2008-12-16 Network Appliance, Inc. System and method for failover using virtual ports in clustered systems
US8065439B1 (en) 2003-12-19 2011-11-22 Nvidia Corporation System and method for using metadata in the context of a transport offload engine
US8549170B2 (en) * 2003-12-19 2013-10-01 Nvidia Corporation Retransmission system and method for a transport offload engine
US8176545B1 (en) 2003-12-19 2012-05-08 Nvidia Corporation Integrated policy checking system and method
US7899913B2 (en) * 2003-12-19 2011-03-01 Nvidia Corporation Connection management system and method for a transport offload engine
US20050138238A1 (en) * 2003-12-22 2005-06-23 James Tierney Flow control interface
US7249227B1 (en) * 2003-12-29 2007-07-24 Network Appliance, Inc. System and method for zero copy block protocol write operations
US7340639B1 (en) 2004-01-08 2008-03-04 Network Appliance, Inc. System and method for proxying data access commands in a clustered storage system
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US7206872B2 (en) * 2004-02-20 2007-04-17 Nvidia Corporation System and method for insertion of markers into a data stream
US7698413B1 (en) 2004-04-12 2010-04-13 Nvidia Corporation Method and apparatus for accessing and maintaining socket control information for high speed network connections
US8621029B1 (en) 2004-04-28 2013-12-31 Netapp, Inc. System and method for providing remote direct memory access over a transport medium that does not natively support remote direct memory access operations
US7328144B1 (en) 2004-04-28 2008-02-05 Network Appliance, Inc. System and method for simulating a software protocol stack using an emulated protocol over an emulated network
US7957379B2 (en) * 2004-10-19 2011-06-07 Nvidia Corporation System and method for processing RX packets in high speed network applications using an RX FIFO buffer
US8073899B2 (en) * 2005-04-29 2011-12-06 Netapp, Inc. System and method for proxying data access commands in a storage system cluster
US8484365B1 (en) 2005-10-20 2013-07-09 Netapp, Inc. System and method for providing a unified iSCSI target with a plurality of loosely coupled iSCSI front ends
US7526558B1 (en) 2005-11-14 2009-04-28 Network Appliance, Inc. System and method for supporting a plurality of levels of acceleration in a single protocol session
US7797570B2 (en) * 2005-11-29 2010-09-14 Netapp, Inc. System and method for failover of iSCSI target portal groups in a cluster environment
US7734947B1 (en) 2007-04-17 2010-06-08 Netapp, Inc. System and method for virtual interface failover within a cluster
US7958385B1 (en) 2007-04-30 2011-06-07 Netapp, Inc. System and method for verification and enforcement of virtual interface failover within a cluster
US8077822B2 (en) * 2008-04-29 2011-12-13 Qualcomm Incorporated System and method of controlling power consumption in a digital phase locked loop (DPLL)
US8688798B1 (en) 2009-04-03 2014-04-01 Netapp, Inc. System and method for a shared write address protocol over a remote direct memory access connection
US9143271B2 (en) 2010-04-01 2015-09-22 Lg Electronics Inc. Broadcasting signal transmitting apparatus, broadcast signal receiving apparatus, and broadcast signal transceiving method in a broadcast signal transceiving apparatus
US9485333B2 (en) * 2013-11-22 2016-11-01 Freescale Semiconductor, Inc. Method and apparatus for network streaming

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1108325B (it) * 1978-04-10 1985-12-09 Cselt Centro Studi Lab Telecom Procedimento e dispositivo di in stradamento per una rete di comunicazione a commutazione di pacchetto
US4525830A (en) * 1983-10-25 1985-06-25 Databit, Inc. Advanced network processor
CA1294843C (en) * 1988-04-07 1992-01-28 Paul Y. Wang Implant for percutaneous sampling of serous fluid and for delivering drug upon external compression
US5303344A (en) * 1989-03-13 1994-04-12 Hitachi, Ltd. Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
JP3130609B2 (ja) * 1991-12-17 2001-01-31 日本電気株式会社 オンライン情報処理装置
JPH05252228A (ja) * 1992-03-02 1993-09-28 Mitsubishi Electric Corp データ伝送装置及びその通信路管理方法
US5671355A (en) * 1992-06-26 1997-09-23 Predacomm, Inc. Reconfigurable network interface apparatus and method
JPH08180001A (ja) * 1994-04-12 1996-07-12 Mitsubishi Electric Corp 通信方式及び通信方法及びネットワークインタフェース
JP3247540B2 (ja) * 1994-05-12 2002-01-15 株式会社日立製作所 パケット化通信装置および切替え装置
US5548730A (en) * 1994-09-20 1996-08-20 Intel Corporation Intelligent bus bridge for input/output subsystems in a computer system
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5566170A (en) * 1994-12-29 1996-10-15 Storage Technology Corporation Method and apparatus for accelerated packet forwarding
JP3335081B2 (ja) * 1995-07-03 2002-10-15 キヤノン株式会社 パケット通信を行なうネットワークシステムにおいて用いるノード装置、それを用いるネットワークシステム及びそこで用いる通信方法
US5752078A (en) * 1995-07-10 1998-05-12 International Business Machines Corporation System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5758186A (en) * 1995-10-06 1998-05-26 Sun Microsystems, Inc. Method and apparatus for generically handling diverse protocol method calls in a client/server computer system
US5793954A (en) * 1995-12-20 1998-08-11 Nb Networks System and method for general purpose network analysis
US5954794A (en) * 1995-12-20 1999-09-21 Tandem Computers Incorporated Computer system data I/O by reference among I/O devices and multiple memory units
US5684826A (en) * 1996-02-08 1997-11-04 Acex Technologies, Inc. RS-485 multipoint power line modem
US5797099A (en) * 1996-02-09 1998-08-18 Lucent Technologies Inc. Enhanced wireless communication system
US5930830A (en) * 1997-01-13 1999-07-27 International Business Machines Corporation System and method for concatenating discontiguous memory pages
US5943481A (en) * 1997-05-07 1999-08-24 Advanced Micro Devices, Inc. Computer communication network having a packet processor with subsystems that are variably configured for flexible protocol handling
US6167480A (en) * 1997-06-25 2000-12-26 Advanced Micro Devices, Inc. Information packet reception indicator for reducing the utilization of a host system processor unit
US5991299A (en) * 1997-09-11 1999-11-23 3Com Corporation High speed header translation processing
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6807581B1 (en) * 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
US6591302B2 (en) * 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US6687758B2 (en) * 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6081883A (en) * 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
US6314100B1 (en) * 1998-03-26 2001-11-06 Emulex Corporation Method of validation and host buffer allocation for unmapped fibre channel frames
US6426943B1 (en) * 1998-04-10 2002-07-30 Top Layer Networks, Inc. Application-level data communication switching system and process for automatic detection of and quality of service adjustment for bulk data transfers
US6246683B1 (en) * 1998-05-01 2001-06-12 3Com Corporation Receive processing with network protocol bypass
US6185607B1 (en) * 1998-05-26 2001-02-06 3Com Corporation Method for managing network data transfers with minimal host processor involvement
US6104696A (en) * 1998-07-08 2000-08-15 Broadcom Corporation Method for sending packets between trunk ports of network switches
US6675218B1 (en) * 1998-08-14 2004-01-06 3Com Corporation System for user-space network packet modification
US6587431B1 (en) * 1998-12-18 2003-07-01 Nortel Networks Limited Supertrunking for packet switching
US6738821B1 (en) * 1999-01-26 2004-05-18 Adaptec, Inc. Ethernet storage protocol networks
US6483804B1 (en) * 1999-03-01 2002-11-19 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high performance network interface
US6356951B1 (en) * 1999-03-01 2002-03-12 Sun Microsystems, Inc. System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
US6453360B1 (en) * 1999-03-01 2002-09-17 Sun Microsystems, Inc. High performance network interface
US6243359B1 (en) * 1999-04-29 2001-06-05 Transwitch Corp Methods and apparatus for managing traffic in an atm network
US6675200B1 (en) * 2000-05-10 2004-01-06 Cisco Technology, Inc. Protocol-independent support of remote DMA
US6772216B1 (en) * 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications
JP2002208981A (ja) * 2001-01-12 2002-07-26 Hitachi Ltd 通信方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105408882A (zh) * 2013-03-11 2016-03-16 亚马逊技术有限公司 自动化桌面布置
CN105408882B (zh) * 2013-03-11 2018-09-28 亚马逊技术有限公司 自动化桌面布置

Also Published As

Publication number Publication date
EP1466263A4 (en) 2007-07-25
EP1466263A1 (en) 2004-10-13
WO2003052617A1 (en) 2003-06-26
AU2002346492A1 (en) 2003-06-30
CN1315077C (zh) 2007-05-09
US20030115350A1 (en) 2003-06-19

Similar Documents

Publication Publication Date Title
CN1315077C (zh) 有效处理网络数据的***和方法
CN1276372C (zh) 智能网络存储接口***和装置
US20240171507A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
CN1151639C (zh) 连网***
US8874797B2 (en) Network interface for use in parallel computing systems
CN1679282A (zh) Tcp卸载的***和方法
CN1599319A (zh) 用于管理通过网络的数据传输的方法,***和程序
US20080126564A1 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
US6760304B2 (en) Apparatus and method for receive transport protocol termination
CN1688990A (zh) 用于交换数据的集成电路和方法
CN1866910A (zh) 一种基于vlan的数据报文传输方法和以太网桥设备
CN1276629C (zh) 基于Netfilter架构的流媒体集群服务内容调度方法
CN1643857A (zh) 多点传送设备、方法和***及其程序和记录介质
CN1846409A (zh) 用于基于传输控制协议话务流特征进行超高速缓存查找的设备和方法
CN1802836A (zh) 网络协议卸载引擎存储器管理
CN1449160A (zh) 用于包括无阻塞交换结构和线路卡接口的***的包调度
CN1455347A (zh) 一种分布式并行调度宽带网络服务器***
CN1674538A (zh) 一种基于局域网的网络存储***及其读写数据方法
CN1499751A (zh) 数据发射装置、发射和接收数据的方法及数据通信***
CN101043437A (zh) 一种快速发送操作、管理和维护信元的方法和装置
JP2000067017A (ja) デ―タ通信方法及びデ―タ通信装置
CN1277374C (zh) 通信***中基站与服务器数据库实时同步方法
CN1281037C (zh) 具有有效分组管理单元的分组转发***及其操作方法
CN1509023A (zh) 异步传输模式数据分发装置及方法
CN1411217A (zh) 利用缓存技术提高ip报文转发速度的方法

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