CN101120424B - 在高速网络应用中使用rx fifo缓冲区处理rx信息包的系统与方法 - Google Patents
在高速网络应用中使用rx fifo缓冲区处理rx信息包的系统与方法 Download PDFInfo
- Publication number
- CN101120424B CN101120424B CN2005800357446A CN200580035744A CN101120424B CN 101120424 B CN101120424 B CN 101120424B CN 2005800357446 A CN2005800357446 A CN 2005800357446A CN 200580035744 A CN200580035744 A CN 200580035744A CN 101120424 B CN101120424 B CN 101120424B
- Authority
- CN
- China
- Prior art keywords
- packet
- information
- packets
- processing
- handle
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 46
- 239000000872 buffer Substances 0.000 title claims description 72
- 230000003139 buffering effect Effects 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 14
- 230000009467 reduction Effects 0.000 claims description 11
- 230000009977 dual effect Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000015572 biosynthetic process Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000000853 adhesive Substances 0.000 description 1
- 230000001070 adhesive effect Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/128—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
一种用于处理从网络接收的信息包的系统和方法。使用中,数据包和控制包从网络被接收。而且,对所述数据包的处理与对所述控制包的处理同步进行。
Description
技术领域
本发明与网络通信有关,具体而言,与处理接收(RX)的信息包有关。
背景技术
传输减负引擎(TOE)包括在高速系统中优化输入输出量以及降低处理器使用的技术,这种技术正日益受到欢迎。TOE组件经常组合应用于各种类型的印刷电路板,如网络接口卡(NIC)、主机总线适配器(HBA)、主板,或其它任何所需的减负场合。
近年来,系统中通信速度的增加已经超出了处理器的速度。这就产生了输入/输出(I/O)瓶颈。处理器的设计目的主要是为了计算而非输入/输出,所以一般无法跟上网络中的流动数据。因此,数据流的处理速度要落后于网络速度。TOE技术通过从处理器和/或I/O子系统移除负载(即减负),从而解决了这个问题。
一种常向TOE进行减负的处理类型包括传输控制协议(TCP)信息包处理。TCP是同互联网协议(IP)一起使用的、用于在电脑与互联网之间以信息单元形式传送数据的一套规则(协议)。IP负责处理数据的实际传递,而TCP则负责追踪切分过的单个信息包以确保通过互联网进行有效输送。
在高速网络中处理TCP信息包要求进行很多处理步骤。信息包可能不按次序到达,所以如需将数据按次序传输给一个应用,则必须进行储存。此外,对所接收信息包的处理必须能跟上网络连接的线路速度。
因此,需要一种能加速TCP及其它信息包处理的技术。
发明内容
本发明提供了一种用于处理通过网络所接收的信息包的系统与方法。在实际使用中,数据包与控制包通过一个网络被接收。此外,所述数据包与控制包的处理同步进行。
在一个实施例中,所述控制包可通过使用第一处理路径进行处理,而所述数据包可通过使用独立于第一处理路径的第二处理路径进行处理。
在另一实施例中,所述控制包的处理可以包括同步使用一个查询表与一个缓存区,以识别出同所述信息包相关联的正确的接口控制块。类似地,所述数据包的处理可以包括同步使用双重逻辑程序以识别一个同所述信息包相关联的正确的接口控制块。
在另一实例中,同所述信息包相关联的控制块可与其后信息包的处理同步被更新。
作为又一种选择,标签信息可预先附带于所述数据包。此类标签信息还可以在所述数据包在一个接收器(RX)先进先出(FIFO)缓冲区中缓冲的时候预先附带于所述数据包。另外,所述标签信息可包括相应信息包的类型,一个同相应信息包相关联的接口句柄,同相应信息包相关联的状态信息,和/或同相应信息包相关联的控制信息。
在使用中,所述数据包可通过使用一个RX FIFO缓冲区来进行缓冲。
附图说明
图1显示了一个实施例的网络系统。
图2显示了一个可用于执行一个实施例的架构。
图3显示了一个实施例中用于处理所接收信息包的特定架构的例子。
图4显示了一个实施例中用于处理所接收信息包的示范性前端模块。
图5显示了一个实施例中用于处理所接收信息包的示范性接收器后端模块。
图6显示了一个实施例中用于处理所接收信息包的示范性前端方法。
图7显示了一个实施例中用于处理所接收信息包的示范性后端方法。
图8显示了一个实施例中用于处理所接收控制包的示范性控制包处理方法。
具体实施方式
图1显示了一个实施例中的网络系统100。如图所示,提供了一个网络102。在本网络系统100的上下文中,网络102可以采取任何形式,包括但不限于一个局域网(LAN)、一个广域网(WAN)如互联网等。
连接于网络102的包括一个本地主机104,以及一个可通过网络102进行通讯的远端主机106。在本说明书的上下文中,此类主机104和106可以包括一个网络服务器、储存装置或服务器、桌上型电脑、膝上型电脑、手提式电脑、打印机或任何其它类型的软/硬件。应该注意,上述组件中的每一项以及任何其它未说明的装置也可通过一个或更多网络进行相互连接。
图2显示了一个可执行一个实例的示范型架构200。在一个实例中,架构200可代表图1中的主机104、106之一。然而也应注意,架构200可在任何所需的环境中执行。
例如,架构200可在一个通用电脑系统、一个电路板系统、一个专供娱乐的游戏控制台系统、一个机顶盒、一个网络系统、一个存储系统、一个特定的应用系统,或任何与网络102相连接的其它所需系统中执行。
如图所示,架构200包括多个通过一条总线202而互相连接的组件。包括至少一个用于处理数据的处理器204。而所述处理器204可采取任何形式,如在一个实例中,其可以是一个中央处理器(CPU),一个图形模块、一个芯片组(即一组能执行相关功能、可独立运行或出售的集成电路单元)的形式,这些形式的组合,或任何其它形式的集成电路。对于图形模块,此类集成电路可包括一个转换模块、一个照明模块、及一个光栅化模块。每个上述模块可以位于单个的半导体平台上以形成一个图形处理单元(GPU)。
还可包括与处理器204进行通信以储存数据的处理系统存储器206。该处理器系统存储器206可采取机载或离机式随机存储器(RAM)、一个硬盘、一个可移除式存储驱动器(如一个软盘驱动器、一个磁带驱动器、一个致密光盘驱动器等形式),和/或任何所需的、其它类型的可储存数据的存储器。
在使用中,程序或控制逻辑算法可选择性地储存于处理器系统存储器206中。在执行时,此类程序使架构200能执行各种功能。当然,架构200可以简单地直接在硬线连接的逻辑闸层次电路中执行。
此外,还显示了与处理器204互相通信的传输减负引擎212以及网络(如图1中的网络102)。在一个实施例中,所述传送减负引擎212可保持通过总线202与处理器204的通信。然而,所述传输减负引擎212也可通过任何提供两者间通信的机构保持同处理器204的通信。所述传送减负引擎212可包括一个传输(如TCP/IP)减负引擎(TOE),系统,或任何能管理在网络中传输的数据的集成电路。
虽然实例中仅显示了利用单条总线202来提供上述组件之间的通信,应理解,可使用任何数目的总线(或其它通信机构)来提供组件之间的通信。举一个例子,可以使用一条额外的总线来提供处理器204与处理器系统存储器206之间的通信。此外,在一个实例中,任何图2中所示两个或多个的组件可以整合入单块集成电路之中。
在操作中,传输减压引擎212、处理器204和/或软件用于处理通过一个网络(如图1中的网络102)所接收的信息包。根据一个实施例,数据包与控制包通过一个网络接收。此外,所述数据包的处理与所述控制包的处理同步进行。
在本说明书的上下文,“数据包”是指任何用于进行数据通信的信息包,而“控制包”是指任何具有控制网络通信性能的信息包。此外,“同步”是指所述数据包与控制包的任何方面得到处理的步骤,这种处理至少部分同时进行。由此,所收到信息包的处理效率得到了提高。
在另一个实施例中,所述信息包的处理可以包括同步使用双重逻辑和/或多重数据结构(如一个查询表与缓存区等),以识别一个与所述信息包相关联的正确的接口控制块(CB)。作为一种选择,在此类搜寻模式中(如当此类CB得到识别时),如果正确的接口控制块不在缓存区中,正确的接口控制块可从一个主存储器中取回,此时在查询模式下取回的正确接口控制块并不储存于缓存区。在本说明书的上下文种,一个CB可以包括任何能够被用于追踪一个连接尝试和/或连接的信息。
通过使用能首先正确地识别CB的数据结构的识别结果,上述识别过程得到加速。此外,通过使用双重逻辑,可同时对多个信息包执行CB识别过程,由此提供进一步的处理加速。
作为另一种选择,标签信息可以预先附加于信息包(如数据包和/或控制包等)。此类标签信息还可以在所述数据包在一个接收器(RX)先进先出(FIFO)缓冲区中缓冲的时候预先附带于所述数据包。通过预先附加标签信息,当前述CB识别进行的时候,所收到的信息包可以被储存。此外,作为一种选择,可能不需要一个独立的、用于存储标签信息的缓冲区。
在另一个实施例中,随着额外信息包的收取,CB可以进行更新。这样,在使用中,一个同首个信息包相关联的CB可以得到更新。此外,在至少同首个信息包相关联的CB的更新启动之后以及完成更新之前,可以启动第二个信息包的处理,从而提高了性能。这样,信息包的处理可以与CB的更新同步进行,从而降低了在一个过程中出现瓶颈并在另一个中制造瓶颈的可能性。
以下将给出更多关于上述实施例的可选特性与示范实例的细节。应该注意,以下细节仅用于说明,不应被认为起到任何限制作用。
图3显示了一个实施例中用于处理所接收信息包的示范性架构300。作为选择,所述架构300可以在图2的示范架构200的环境下执行。当然,也应该注意架构300可在任何所需的环境下执行。
如图所示,提供了多个介质存取控制(MAC)RX缓冲区302,用以从多个网络102处接收数据包和控制包。应注意,RX缓冲区302对于多个网络102不是必须的。一个实例可能包括用于单个网络的一个缓冲区。此类MAC RX缓冲区302支持一个以太网RX306,而其又反过来支持互联网协议(IP)RX 310和一个异常处理器314。所有的IP信息包都送往IP RX 310,而所有其它信息包都送往异常处理器314。
在IP RX 310之内,信息包IP报头被解析。然后所有互联网协议安全(IPSEC)协议信息包被发送至一个IPSEC RX处理器308并存储于一个IPSEC RX缓冲区304,然后所有的TCP或UDP信息包被发送至TCP RX前端模块316。所有其它信息包都被发送至异常处理器314。一个多路复用器312在来自IP RX310的正常TCP/UDP信息包与来自IPSEC RX处理器308的经处理IPSEC信息包之间做出选择。
在使用中,TCP RX前端模块316对接收到的TCP信息包进行解析以决定一个所接收的信息包是否包含有TCP数据或者是一个TCP控制包。之后每个信息包类型会被提供独立的处理路径。在这里,信息包处理效率得到提升,其方式如上文所述。此外,信息包的处理可以包括同步使用双重逻辑和/或多重数据结构【如一个查询表(参见CB查询表318)及一个CB缓存区(参见CB数据缓存区324),等】,以识别一个与所述信息包相关联的正确接口CB。
然而,由于上述的原因,在寻找与信息包相关联的相应CB的同时,数据包被储存于MAC RX FIFO缓冲区322。在数据包被储存且CB查询完成之后,标签信息可以预先附加于位于MAC RX FIFO缓冲区322的数据包上。TCP RX前端模块316的另一个特性是,它可以更新一个同首个信息包相关联的CB。在至少同首个信息包相关联的CB的更新启动之后,以及在更新完成之前,可以开始第二个信息包的处理,由此处理性能得到了提高。
更多关于TCP RX前端模块316功能及选择性执行细节的信息将结合图4作进一步详细说明。
继续参照图3,TCP RX前端模块316支持一个异常处理器314。所有被识别为导致任何逻辑异常的信息包都被发送至异常处理器314。例如,同一个所接收的过滤设定相匹配的信息包,或包含不支持选项的信息包可能被发送至异常处理器314。如上所述,正常的数据包通过一个RX缓冲控制器320储存于MAC RX FIFO缓冲区322。该RX缓冲控制器320接受来自异常处理器314或TCP RX前端模块316的存储信息包的请求,并在这两个来源之间做出主观选择。更多关于此类的互动信息将在下文作详细说明。
RX缓冲控制器320支持额外的MAC RX FIFO缓冲区322,它又反过来支持RX后端模块326。该MAC RX FIFO缓冲区322由此连接于前端模块与后端模块之间,为两者提供分界并将它们互相隔离。
如图3所示,TCP RX前端模块316向RX后端模块326指示有信息包可以在MAC RXFIFO缓冲区322内进行服务。RX后端模块326负责应用层处理,如互联网小型电脑系统界面(iSCSI)协议或任何其它所需的协议【如RDMA(远端数据记忆存取等)】,这在下文将显而易见。更多关于此类RX后端模块326功能的信息与可选择执行细节将结合图5作进一步详细说明。
最后,RX后端模块326使用分散-收集列表(SGL)334【和/或可能是存储描述符列表(MDL)】,匿名缓冲区列表328,以及直接记忆存取(DMA)逻辑程序330,在主机存储器(例如图2中的处理器系统存储器206、106)中存储收到的信息包。在本说明书的上下文种,一个SGL可以包括任何所提供的数据列表对象,用以说明所收到数据最终存储于存储器中的各种位置。
根据一个实施例,图4显示了用于处理所接收信息包的示范性TCP RX前端模块316。作为选择,TCP RX前端模块316可以在图3的示范架构300的环境下执行。然而也应注意,TCPRX前端模块316可以在任何所需的环境下执行。
如图4所示,TCP RX前端模块316从IP层接收数据(例如通过图3的IP RX 310等),并处理所述信息包或将其当作异常处理。为了达成这一点,提供了一个TCP RX解析器414和接口定位器模块402。作为选择,可以提供多个TCP RX解析器414与接口定位器模块402。为此,此处所公开的任何逻辑模块可以双重甚至是三重方式提供以提升处理效率。
在使用中,TCP RX解析器414负责解析所接收的TCP与数据包协议(UDP)信息包。作为一种选择,所有的UDP信息包可以作为异常送出(例如通过图3中的异常处理模块314等)或可以同TCP数据包类似的方式进行处理。作为另一种选择,一个UDP校验和可以加以核实,如果其已损坏,则该信息包可以被放弃。
对于TCP信息包,所有数据包都储存于一个RX FIFO缓冲区322中,而所有的控制包都被送至一个控制包队列404。这种安排可以通过检查TCP报头中的FLAG比特以及信息包长度来实现。由此,控制包可通过使用第一处理路径进行处理,而数据包则可使用独立于第一处理路径的第二处理路径进行处理。
如果信息包是一个数据包,接口定位器模块402可以计算出一个接口哈希(hash)值。通过背景,每个数据包同一对IP地址和一对TCP或UDP端口相关联。该哈希值可基于该IP地址和端口而生成(例如通过使用“接口4一数组等”)。
该哈希值然后可用于为CB查询表318制定索引。表1给出了一个CB查询表318的范例。
表1
哈希1/(存储器中接口CB1的地址1)
哈希2/(存储器中接口CB2的地址2)
哈希3/(存储器中接口CB3的地址3)
CB地址可用于识别存储器中适当CB的地址,并兼做同CB相关联的接口句柄识别器。CB一般包括此类接口句柄,以及其它信息如接口状态等。在CB结构内有一个指向下一个CB的域,它包含相同的所生成的哈希值。通过这种方式,带有冲突哈希值的接口可以被解决。
然后,根据将接口句柄同与当前信息包相关联的实际接口进行比较,确定同CB相关联的接口是否是正确的接口。例如,如果信息包中的4一数组与接口CB中的参数相匹配,则正确的CB就已经找到。如果不匹配,就从CB读取下一个连接的接口句柄,此接口CB就被调出。
这个取回下一个连接的接口句柄的过程继续进行,直到找到正确的接口CB,或者确定不存在可以同所接收信息包相关联的CB。作为一种选择,CB查询表318的大小可以是所支持接口的最大数量的两倍,以减少哈希冲突的数目,并可定位于外部存储器中。
在使用此种CB查询表318的同时,在CB数据缓存区324内进行了一次查询。CB数据缓存区324包含了最近使用过的“n”接口CB(32左右)。CB数据缓存区324进一步包含一个哈希关联表,它指示了存在于CB数据缓存区324内的每个CB条目所生成的哈希。接口定位器模块402随后可以查询CB数据缓存区324以确定是否一个匹配的CB哈希存在于CB数据缓存区324中。这样,可以在一个预定的时间内(如生成哈希的一个时钟)确定是否有可能的CB匹配存在于CB数据缓冲区324中。
通过使用首次正确识别CB的数据结构的识别结果(即CB查询表318或CB数据缓存区324),上述识别过程得到加速。例如,当CB不在CB数据缓存区324内时,找到正确接口所需的最大存储器读取数可以通过等式#1得出。
等式#1
时钟数#=1+p(n),其中:
·首次读数来源于CB查询表318查询
·n是该特定哈希的CB哈希冲突的数目,且
·p是从一个CB条目中读取接口端口与IP地址所需的时钟循环的数目
如果CB位于CB数据缓存区324,则找到CB所需的时钟最大数目由等式#2给出。
等式#2
时钟数#=m,其中:
·m是指具有特定哈希的CB数据缓存区324中CB的数目
由于缓存区总线的宽度尺寸良好(如128比特等),这些参数可以从CB数据缓存区324内快速读取。
作为进一步的特性,当接口定位器模块402正在查找由CB查询表318所参照的CB时,CB数据缓存区324可以允许一个特殊的全程读取模式。在这个特殊的读取模式中,所要求的CB首先被检查,以确定其是否定位于CB数据缓存区324之内。如在,其内容可立即返回。但是,如果其不在CB查询表318中,可从主CB存储器中读取,但在这个模式中,CB不被拖入CB查询表318中。这是因为此时的查询逻辑还在寻找同所接收的信息包相关的CB。一旦正确的CB被定位,同该CB相关联的句柄被传递到TCP RX状态控制器412,由后者通过CB数据缓存区324读取该CB。此时,该CB从主CB存储器中取回,并放入CB数据缓存区324。
在进行CB查询的同时,数据包存入RX FIFO缓冲区中。这样,对于大于预定尺寸的数据包来说(如80字节等),找到合适的CB所需的平均损失时间保持最低。由于找到正确的CB是一项限时任务,这个逻辑(即TCP RX解析器414和/或接口定位器模块402等)可以在TCP RX前端模式316中双重提供(或甚至以三重形式提供),以使从IP层所接收的多重信息包可以被同时处理。
这就允许逻辑程序进行前瞻操作,在第一个信息包仍在处理中时就开始为下一个信息包查询CB。一旦找到CB,并获取其内容,信息包的处理(即决定如何处置信息包等)在几个时钟周期内完成。
回到接收处理,如果正确的CB不在CB数据缓存区324中,则从主CB存储器中对其读取,同时将其放入CB数据缓存区324。如果CB早就在CB数据缓存区324中,它可直接读取。接口状态,控制比特,以及参数(包括SEQ与ACK数目等)都可通过使用CB获得。
一旦所有的CB参数都已取回,根据接口的状态,信息包的处理可在一个预定的时间内完成(如大约2个时钟周期)。因此,对于大于预定尺寸的数据包(例如平均300字节),处理可以在数据被储存于RX FIFO缓冲区322之前就已完成。即使CB需要从CB主存储器中获取,这也可能适用。如果CB早就在CB数据缓存区324之内,即使更小的数据包也可在信息包处理所需的最小额外时间内得到处理。
标签信息被预先附加于RX FIFO缓冲区322的每个信息包中。此标签信息可以包括信息包类型的信息(如异常,TCP数据包等),与此相关的接口句柄,和/或其它控制与状态信息。所述标签信息可以在整个信息包接收完毕并验证为有效后填入。
此类标签信息还可以在信息包在一个RX FIFO缓冲区322中缓冲的时候预先附加于信息包。通过以此方式预先附加标签信息,在进行前述CB识别的同时所接收的信息包可以被储存。此外,作为一种选择,有可能标签信息不需要独立的缓冲区。
TCP解析器的另外一个功能是验证TCP校验和。这是通过当信息包在接受解析以及被储存于RX FIFO缓冲区322(对于数据包)或控制包队列404(用于TCP控制包)时监控信息包来实现的。所得的校验和与由IP层所提供的假报头校验和相结合,产生最终的校验和。此项检查在IP模块的最后语段被读取后一段预定的时间框架内是有效的(即3个时钟)。如果信息包被认为由于TCP校验和错误或通过任何来自更低层的其它错误而损坏,信息包将会从RX FIFO缓冲区322或控制包队列404中去除。
继续参照图4,图中提供了一个TCP RX状态控制器412。TCP RX状态控制器412负责确定所接收的TCP数据包的行动路线。将信息包参数与接口CB内的参数进行核对。这包括检查信息包的序列号,接口的状态等等。
然而,信息包会被当作好信息包来处理。在整个分包被接收后,所有处理早就已经开始,仅需极少的进一步计算。如果信息包被确认为损坏,CB不被更新,且信息包将从RXFIFO缓冲区322或控制包队列404中去除。在这种情况下,每个缓冲区的写入指针都被重置到信息包被接收前的点。
一旦整个数据包都储存于RX FIFO缓冲区322中,TCP RX状态控制器412可通过一个TCP发送器模块(未显示)设定一个ACK。可以支持四种ACK模式:正常即刻ACK,正常延迟ACK,主机模式即刻ACK,以及主机模式延迟ACK。
在正常模式下,当数据包收到后并被认定为有效,ACK或延迟ACK立刻被请求或加入队列。在两个主机模式中,ACK只有在主机已经确认通过RX DMA收到数据后才会被请求或加入队列。
再次回到TCP RX解析器,逻辑块可以将纯TCP控制包(即不包含任何数据的此类信息包)从数据包中分离出来。这是因为纯控制包通常都是较短的信息包,且不对过程具有限时性。这些TCP控制包可以通过TCP报头中的FLAG比特设置并结合信息包的整个长度进行检测。如果信息包不含数据,而推送(PSH)比特不被设定,信息包被认为是一个纯控制包。
这些信息包被转移到图4中的控制包队列404。在信息包被转移时,每个信息包的校验和被计算,损坏的信息包被抛弃。接口哈希也被计算,并预先附加于另一部分的信息包中。然后一个控制包处理器416会从队列中读取信息包并对其进行处理。之后对控制包进行表2所示的操作。
表2
1、接口哈希在CB查询表318中进行查询。同时,哈希被检验以确定CB是否已经在CB数据缓存区324内。
2、假设CB早就在CB数据缓存区324内,读取适用的域。
3、如果CB不在CB数据缓存区324内,则将其从主CB存储器中取回并放置于数据缓存器324中。
4、然后由所接收信息包的类型及接口的当前状态确定所采取的行动。这些行动可以是(但不限于)以下的任意一种:
a、向TCP传输器请求一个响应
b、给主机发送一个状态信息
c、不理会信息包
d、将信息包作为一个异常向上发送
5、在决定所需的行动之后,CB相应地被更新。
接口的查询与读取,信息包的处理,CB的更新都是流水线操作,这样就使得前一个控制包还在处理时,处理器就可以开始寻找下一个接口。
图5显示了一个用于处理所接收信息包的示范性RX后端模块326。作为一种选择,改RX后端模块326可以在图3的示范性架构300中执行。然而也应注意,改RX后端模块326可以在任何所需的环境下执行。
一旦信息包完全储存于RX FIFO缓冲区322中,且信息包缓冲区报头已写满,RX后端模块326就开始对其进行处理。通过使用一个数据排列与RX缓冲区报头解析模块502,RX后端模块326开始解析并剥离数据包缓冲区报头。这向RX后端模块326告知了信息包的类型(即异常或TCP数据包),同信息包相关联的CB句柄,及其它状态与控制信息,如上所述。在一个实施例中,报头的长度可以是256比特。
在信息包缓冲区报头被解析并剥离之后,信息包被重排。这个重排可能是需要的,因为对于正常的TCP(也可是UDP)数据包来说,信息包以太网,IP,以及TCP报头也被剥离。这些报头的剥离可能导致结果数据为非FIFO字符排列,而重排使得其后的逻辑模块对于信息包数据的处理更为容易。
在重新排列后,信息包可以选择性地通过应用特异性处理逻辑程序504。这个逻辑程序包括但不限于:执行iSCSI协议或远端直接记忆存取(RDMA)功能的逻辑程序。对于iSCSl支持来说,这个模块可执行iSCSI循环冗余检查(CRC)验证,iSCSI协议数据单元(PDU)报头解析,以及固定间隔标记(FIM)的移除。
所有异常信息包(来自网络堆栈的每一层)都按照异常缓冲区列表的指示被发送至主机存储器(即临时缓冲区,持有缓冲区,涡流缓冲区等)。这个异常列表(如图3的列表328等)由主机驱动器提供。该列表可随着缓冲区的使用而不断地被主机增加。取回异常缓冲区地址以及管理异常缓冲区列表由SGL处理逻辑506负责。
到达一个接口的定期TCP数据通常使用一个接口特异性SGL,以指定数据应存储于主机存储器中的哪个位置。SGL(即例如图3中的SGL 334等)由主机驱动器提供。列表在使用过程中可以不断地被主机增加。在本说明书的上下文中,一个SGL可以包括任何数据列表对象,这些对象用于说明所收到数据在存储器中最终存储的各种位置。当数据在接口被接收,同该接口相关的SGL不包含任何有效的缓冲地址,所收到的数据也通过使用异常缓冲区列表被发送至主机存储器。SGL的管理也由SGL处理逻辑程序506处理。
对于正常的TCP数据包来说,SGL条目首先从SGL存储器334取回。所接收信息包的序列号指明应在SGL的哪个部位存放该数据。这就能使即便是无序(OOS)的数据也能正确地排列。对于按次序接收的数据,只需从SGL一次读取即可获得用于储存数据的主机地址。
然后可以生成一个DMA请求,将数据加入处理系统存储器。DMA请求得到批准后,该数据从RX FIFO缓冲区322中读取并发送至一个主机DMA界面330(参见图3),在此处数据经过DMA步骤输入处理器系统存储器206内的指定地址。每个接口都可支持多重SGL,这样可以进行来回式操作。这使得主机驱动器能在一个SGL终结时尽快提供下一个SGL,而无需将数据转移至匿名缓冲区。
如果一个单个数据包横跨一个以上的SGL条目,在该信息包的第一个经过DMA处理时,下一个SGL条目可以被调出并处理。这样,在每个请求完成后可立即进行其后的DMA请求。
一旦DMA完成之后,可选择性生成状态信息,通知主机驱动器数据已到达。此时,通过使用一个TCP RX CB更新以及状态信息请求模块508,某些CB参数也被更新。
信息包报头的解析,SGL的获取,数据的DMA处理,以及CB的更新都可以是流水线操作。这就使得RX后端模块326可以开始处理下一个信息包报头,即使对于上一个信息包的DMA进程仍在完成过程中,从而保证了数据的最大通量。同样的,此处所公开的任何逻辑模块可双重或三重提供以提升处理效率。
图6显示了一个实例中用于处理所接收信息包的示范性的前端方法600。作为一种选择,方法600可以在图2所示的示范性架构200的环境下执行,或甚至在图3-5的示范性框架内进行。然而也应注意,方法600可在任何所需的环境下执行。此外,虽然各种不同的功能可以指定给示范性组件(如上文所述),各种不同功能可由任何所需的实体执行,理解这一点很重要。
图6描述了所接收的信息包上传至RX缓冲区(如图3中的RX FIFO缓冲322)的处理流程,然后集中于前端处理。
在操作602,一个互联网协议(IP)层指示一个接收的信息包是否可用。响应这一指示,在决定604,决定是否一个RX解析器(如图4中的RX解析器414)可用。
如果确定RX解析器不可用,方法600将等待一个可用的RX解析器。请注意操作606。如可用,在操作608,所接收的信息包被发送至可用的RX解析器。
如果一个RX解析器可用,则基于该信息包报头624所包含的参数,为该信息包生成一个哈希。然后RX解析器就检查该TCP报头,以确定信息包类型(见决定610),并解析信息包参数。如果该信息包是一个纯TCP控制包(即信息包不包含任何TCP数据),则该信息包将被发送至一个控制包队列(如图4中的控制包队列404)。见操作612。
如果该信息包确实包含TCP数据,在操作616与618中启动一次CB查询。该查询可以通过双重的数据结构同时进行(如CB查询表318与CB数据缓存区324等)。无论哪个路径首先结束,查询过程即告结束。然而,如果查询CB数据缓存区未能找到一个匹配的CB条目,逻辑程序将等待直到CB查询表查询结束,如操作620所示。在一个实施例中,未曾出现CB查询表无法找到CB,而该CB在CB数据缓存区内被找到的情况。
找到CB的同时,TCP数据存储于一个RX缓冲区(如RX FIFO缓冲区322等)。请注意操作614。一旦所有的数据都被写入,在操作622中,一个标签部分被附加于在RXFIFO中的数据部分。该标签包括信息包的参数(例如其是何种类型),以及从CB条目中获得的某些状态信息(如果有)。在标签被写入RX FIFO之后,特定的解析器即被释放以接收另一个收到的信息包。
图7显示了一个实例中的用于处理所接收信息包的示范性后端方法700。作为一种选择,方法700可以在图2中示范性架构200的环境下执行,或甚至在图3-5中的示范性架构中进行。另外,方法700可同图6中的前端方法600一起进行。
当然也应注意,方法700可在任何所需的环境下执行。此外,虽然各种不同的功能可以指定给各类示范性组件(如上文所述),各种不同功能可由任何所需的实体执行,理解这一点很重要。
图7描述了所接收信息包在一个RX缓冲区(如图3中的RX FIFO缓冲322)后的处理流程,然后集中于后端处理。
图7的流程起始于RX FIFO缓冲区(如RX FIFO缓冲322等)输出的数据可用。首先,在操作702与704,如果信息包可用,用于RX FIFO缓冲条目的报头部分被读取。这就向后端逻辑指明了数据包的类型,以及其它状态信息。
在信息包缓冲区报头被解析后,其与以太网、IP及TCP/UDP报头(用于减负连接所接收的信息包)一起被剥离,且该数据被重拍。见操作706。
然后该数据选择性地通过可选的分配特异性处理逻辑程序。见操作708。该逻辑程序即为iSCSI与RDMA支持处理被执行的地方。
如果信息包属于一个减负连接(例如一个CB条目被发现与该信息包参数相匹配),则进行一次检查以确定是否有可用于该数据的SGL缓冲区。请注意决定710。如果没有缓冲区可提供,该数据被DMA处理送至处理器系统存储器的接口缓冲区。这在操作712通过从中接口的一个SGL获得一个主机缓冲地址而实现,此后数据经过DMA处理送入处理器系统存储器。见操作716。
如果无接口缓冲区可提供,通过使用一个来自全域列表的异常缓冲区地址,该数据被DMA处理送至常规异常缓冲区(也位于处理器系统存储器中)。见操作714。然后一个通知被发送至主机,通知其有数据需要处理。
如果一个CB被用于信息包(根据决定718),该CB在操作722被更新。反之则无需额外的操作(如操作720中所示)。同时,后端逻辑程序可以开始处理来自RX FIFO缓冲区的下一个信息包。
图8显示了一个实例中的用于处理所接收信息包的示范性控制处理方法800。作为一种选择,方法800可在图2中示范性架构200的环境下执行,或甚至是在图3-5的示范性框架下执行。另外,方法800也可同图6与7的方法600与700一起执行。
然而也应注意,方法600可以在任何所需的环境下执行。此外,虽然各种不同的功能可指定给各类示范性组件(如上文所述),各种不同功能可由任何所需的实体执行,理解这一点很重要。
图8的方法800起始于一个控制包队列(如图4中的控制包队列404)输出的一个控制包可用。请注意操作802。第一个步骤是信息包缓冲区报头被解析。见操作804。该报头包含所生成的信息包哈希,以及同该控制包相关的其它状态信息。
随后,使用所取回的哈希值启动一次对匹配CB的查询。类似于处理数据包的前端逻辑程序所使用的图6的方法600,双重数据结构(如CB查询表318及CB数据缓存区324等)同时被问询。见操作806与808,然后在操作810等待结果。
如果根据决定812未发现有CB匹配所接收的TCP控制包,则该信息包操作816被预定通过DMA发送至主机,RX控制逻辑程序可以开始处理下一个来自该队列的控制包。在继续作业前,该逻辑程序不必等待控制包在操作824被DMA处理送至主机。
如果根据决定812发现一个能够匹配控制包的CB,则该信息包在操作814被处理。然后进行一次检查,决定是否接口CB需要根据对信息包的处理结果进行更新。见决定818。如该CB不需要更新,则该CB预定于操作820与822中进行更新。然后控制包逻辑程序可以开始处理下一个来自队列的控制包。同时,CB配合当前控制包被更新,此步骤如前所述。
虽然上文已对各种不同的实施例进行了说明,应该理解这些实施例仅是范例,并无任何限制作用。因此,所挑选实施例的广度与范围不应受任何上述示范性实施例所限定,而应仅根据以下各权利要求及其等同物所定义。
Claims (19)
1.一种用于处理从网络接收的信息包的方法,其特征在于包括:
通过一个网络接收的数据包和控制包;
在处理所述控制包的同时处理所述数据包;
其中,标签信息被预先附加于所述数据包;及
其中,所述标签信息包含与相应信息包相关联的接口句柄。
2.如权利要求1所述的方法,其特征在于,所述控制包通过第一处理路径进行处理,而所述数据包则使用独立于所述第一处理路径的第二处理路径进行处理。
3.如权利要求1所述的方法,其特征在于,所述数据包和所述控制包的处理包括同步使用一个查询表和一个缓存区,以识别一个与所述数据包和所述控制包相关联的正确的接口控制块。
4.如权利要求1所述的方法,其特征在于,所述数据包的处理包括同步使用双重逻辑以识别一个与所述数据包和所述控制包相关联的正确的接口控制块。
5.如权利要求1所述的方法,其特征在于,与所述数据包和所述控制包相关联的控制块的更新与其后数据包和控制包的处理同步进行。
6.如权利要求1所述的方法,其特征在于,所述标签信息在数据包在接收器(RX)先进先出(FIFO)缓冲区中缓冲时预先附加于所述数据包。
7.如权利要求1所述的方法,其特征在于,所述标签信息包含所述相应信息包的类型。
8.如权利要求1所述的方法,其特征在于,所述标签信息包含与所述相应信息包相关联的状态信息。
9.如权利要求1所述的方法,其特征在于,所述标签信息包含与所述相应信息包相关联的控制信息。
10.如权利要求1所述的方法,其特征在于,使用接收器(RX)先进先出(FIFO)缓冲区来对所述数据包进行缓冲。
11.如权利要求1所述的方法,其特征在于,对所述数据包和所述控制包的所述处理包含在搜寻模式中使用缓存区,以识别一个与所述数据包和所述控制包相关联的正确的接口控制块,如果所述正确的接口控制块不在所述缓存区中,则所述正确的接口控制块从一个主存储器中取回,但是在所述搜寻模式中所述取回的正确的接口控制块并不存储于所述缓存区中。
12.如权利要求4所述的方法,其特征在于,与所述信息包相关联的所述正确的接口控制块包含被用于追踪一个连接尝试或链接的信息。
13.如权利要求4所述的方法,其特征在于,根据将所述标签信息预先附加于所述数据包的结果,在与所述信息包相关联的所述正确的接口控制块被识别时存储所述信息包。
14.一种用于处理从网络接收的信息包的子系统,其特征在于包括:
一个减负引擎,其与总线通信以通过网络接收数据包和控制包,并同步处理所述数据包和控制包;
其中,标签信息被预先附加于所述数据包;
其中,所述标签信息包含与相应信息包相关联的接口句柄。
15.一种用于处理从网络接收的信息包的系统,其特征在于包括:
一条总线;
一个与所述总线通信的存储器;
一个与所述总线通信的处理器;及
一个减负引擎,其与总线通信以通过网络接收数据包和控制包,并同步处理所述数据包和控制包;
其中,标签信息被预先附加于所述数据包;
其中,所述标签信息包含与相应信息包相关联的接口句柄。
16.如权利要求15所述的系统,其特征在于,所述系统包括一通用型电脑。
17.如权利要求15所述的系统,其特征在于,所述系统包括一个游戏控制台。
18.如权利要求15所述的系统,其特征在于,所述处理器选自:中央处理单元、图像处理单元,以及内含于一个芯片组的多个集成电路之一。
19.如权利要求15所述的系统,其特征在于,所述系统包括一电路板。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/969,376 | 2004-10-19 | ||
US10/969,376 US7957379B2 (en) | 2004-10-19 | 2004-10-19 | System and method for processing RX packets in high speed network applications using an RX FIFO buffer |
PCT/US2005/037941 WO2006045057A2 (en) | 2004-10-19 | 2005-10-19 | System and method for processing rx packets in high speed network applications using an rx fifo buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101120424A CN101120424A (zh) | 2008-02-06 |
CN101120424B true CN101120424B (zh) | 2011-09-21 |
Family
ID=36180692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800357446A Expired - Fee Related CN101120424B (zh) | 2004-10-19 | 2005-10-19 | 在高速网络应用中使用rx fifo缓冲区处理rx信息包的系统与方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7957379B2 (zh) |
JP (1) | JP2008517565A (zh) |
KR (1) | KR101018575B1 (zh) |
CN (1) | CN101120424B (zh) |
TW (1) | TWI407733B (zh) |
WO (1) | WO2006045057A2 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8396981B1 (en) * | 2005-06-07 | 2013-03-12 | Oracle America, Inc. | Gateway for connecting storage clients and storage servers |
WO2007006146A1 (en) * | 2005-07-12 | 2007-01-18 | Advancedio Systems Inc. | System and method of offloading protocol functions |
US8621030B2 (en) * | 2006-09-28 | 2013-12-31 | Intel Corporation | Techniques to copy an operating system |
CN101272378B (zh) * | 2007-03-23 | 2011-05-11 | 国际商业机器公司 | 用于处理会话启动协议消息的方法和系统 |
FR2925190B1 (fr) * | 2007-12-18 | 2009-11-20 | Alcatel Lucent | Procede et dispositif de communication entre plusieurs interfaces de connexion |
WO2009093299A1 (ja) * | 2008-01-21 | 2009-07-30 | Fujitsu Limited | パケット処理装置およびパケット処理プログラム |
JP5333200B2 (ja) * | 2009-12-25 | 2013-11-06 | 富士通株式会社 | パケット通信制御装置、メモリアクセス制御装置及び情報処理システム |
CN102006283B (zh) * | 2010-10-21 | 2013-07-17 | 意法·爱立信半导体(北京)有限公司 | 数据传输的方法和装置 |
US8462780B2 (en) | 2011-03-30 | 2013-06-11 | Amazon Technologies, Inc. | Offload device-based stateless packet processing |
US8774213B2 (en) | 2011-03-30 | 2014-07-08 | Amazon Technologies, Inc. | Frameworks and interfaces for offload device-based packet processing |
EP2691865A4 (en) * | 2011-03-30 | 2016-05-25 | Amazon Tech Inc | STRUCTURES AND INTERFACES FOR PACKET PROCESSING BASED ON A LOADING DEVICE |
US20130346274A1 (en) * | 2012-06-25 | 2013-12-26 | Liquid Holdings Group, Inc. | Electronic financial trading platform with real-time data analysis and reporting |
US9654406B2 (en) | 2012-12-26 | 2017-05-16 | Realtek Singapore Pte Ltd | Communication traffic processing architectures and methods |
US10057387B2 (en) | 2012-12-26 | 2018-08-21 | Realtek Singapore Pte Ltd | Communication traffic processing architectures and methods |
CN104657555A (zh) * | 2015-02-11 | 2015-05-27 | 北京麓柏科技有限公司 | 一种基于uvm验证方法学的toe的验证方法及平台 |
KR101854377B1 (ko) | 2016-11-10 | 2018-05-03 | 고려대학교 산학협력단 | 고속 패킷 처리 시스템 및 그 제어방법 |
US11075848B2 (en) | 2019-08-21 | 2021-07-27 | Hewlett Packard Enterprise Development Lp | Fast path for acknowledgement frames in wireless networks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1318170A (zh) * | 1998-06-15 | 2001-10-17 | 诺基亚高速接入产品公司 | 交换系统数据接口 |
Family Cites Families (196)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US212889A (en) * | 1879-03-04 | Improvement in road-engines | ||
US4807111A (en) * | 1987-06-19 | 1989-02-21 | International Business Machines Corporation | Dynamic queueing method |
US4839851A (en) * | 1987-07-13 | 1989-06-13 | Idaho Research Foundation, Inc. | Programmable data path device |
US5012489A (en) * | 1988-11-07 | 1991-04-30 | Hayes Microcomputer Products, Inc. | Method for sending a plurality of data channels over a single communications line |
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 |
JP2986802B2 (ja) | 1989-03-13 | 1999-12-06 | 株式会社日立製作所 | プロトコル高速処理方法 |
US5687314A (en) | 1989-06-02 | 1997-11-11 | Tele Digital Development, Inc. | Method and apparatus for assisting data bus transfer protocol |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5161193A (en) | 1990-06-29 | 1992-11-03 | Digital Equipment Corporation | Pipelined cryptography processor and method for its use in communication networks |
US5251205A (en) | 1990-09-04 | 1993-10-05 | Digital Equipment Corporation | Multiple protocol routing |
US5367643A (en) * | 1991-02-06 | 1994-11-22 | International Business Machines Corporation | Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets |
WO1992016895A1 (en) * | 1991-03-18 | 1992-10-01 | Echelon Corporation | Networked variables |
US5307413A (en) * | 1991-07-19 | 1994-04-26 | Process Software Corporation | Method and apparatus for adding data compression and other services in a computer network |
US6098188A (en) | 1992-02-14 | 2000-08-01 | Lucent Technologies Inc. | Packet framer |
US5742760A (en) | 1992-05-12 | 1998-04-21 | Compaq Computer Corporation | Network packet switch using shared memory for repeating and bridging packets at media rate |
US5877764A (en) * | 1992-10-23 | 1999-03-02 | International Business Machines Corporation | Graphical user interface for managing text i/o between a user and a parallel program |
US5696899A (en) | 1992-11-18 | 1997-12-09 | Canon Kabushiki Kaisha | Method and apparatus for adaptively determining the format of data packets carried on a local area network |
WO1994014115A2 (en) | 1992-12-01 | 1994-06-23 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
US5619650A (en) * | 1992-12-31 | 1997-04-08 | International Business Machines Corporation | Network processor for transforming a message transported from an I/O channel to a network by adding a message identifier and then converting the message |
JPH0763161B2 (ja) | 1993-01-05 | 1995-07-05 | 日本電気株式会社 | マルチメディアパケット通信方式 |
AU6410994A (en) * | 1993-03-30 | 1994-10-24 | Ast Research, Inc. | Cache address strobe control logic for simulated bus cycle initiation |
US5596702A (en) * | 1993-04-16 | 1997-01-21 | International Business Machines Corporation | Method and system for dynamically sharing user interface displays among a plurality of application program |
US5495480A (en) * | 1993-06-21 | 1996-02-27 | Nec Corporation | Packet transmission system having timer for circuit disconnection |
US5621434A (en) * | 1993-08-11 | 1997-04-15 | Object Technology Licensing Corp. | Cursor manipulation system and method |
US5426694A (en) | 1993-10-08 | 1995-06-20 | Excel, Inc. | Telecommunication switch having programmable network protocols and communications services |
US5802287A (en) | 1993-10-20 | 1998-09-01 | Lsi Logic Corporation | Single chip universal protocol multi-function ATM network interface |
US5625825A (en) * | 1993-10-21 | 1997-04-29 | Lsi Logic Corporation | Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network |
JP3358254B2 (ja) | 1993-10-28 | 2002-12-16 | 株式会社日立製作所 | 通信制御装置および通信制御用回路装置 |
WO1995012866A1 (en) | 1993-11-02 | 1995-05-11 | Taligent, Inc. | Object-oriented graphic system |
EP0727067A4 (en) | 1993-11-02 | 1998-04-15 | Paracom Corp | APPARATUS FOR ACCELERATING TRANSACTION PROCESSING ON COMPUTER DATABASES |
US5524110A (en) | 1993-11-24 | 1996-06-04 | Intel Corporation | Conferencing over multiple transports |
AU6018294A (en) * | 1993-12-02 | 1995-06-19 | Taligent, Inc. | Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system |
US5485455A (en) | 1994-01-28 | 1996-01-16 | Cabletron Systems, Inc. | Network having secure fast packet switching and guaranteed quality of service |
US5577105A (en) * | 1994-03-11 | 1996-11-19 | U.S. Robotics, Inc. | Telephone call routing and switching techniques for data communications |
US6185619B1 (en) * | 1996-12-09 | 2001-02-06 | Genuity Inc. | Method and apparatus for balancing the process load on network servers according to network and serve based policies |
US5519704A (en) * | 1994-04-21 | 1996-05-21 | Cisco Systems, Inc. | Reliable transport protocol for internetwork routing |
US5650941A (en) | 1994-09-07 | 1997-07-22 | Intel Corporation | Computer architecture for creating and manipulating displayable objects |
US5675507A (en) | 1995-04-28 | 1997-10-07 | Bobo, Ii; Charles R. | Message storage and delivery system |
US5870549A (en) | 1995-04-28 | 1999-02-09 | Bobo, Ii; Charles R. | Systems and methods for storing, delivering, and managing messages |
US5664162A (en) | 1994-05-23 | 1997-09-02 | Cirrus Logic, Inc. | Graphics accelerator with dual memory controllers |
US5577172A (en) | 1994-07-01 | 1996-11-19 | Lasermaster Corporation | High-capacity protocol for packet-based networks |
US5485460A (en) * | 1994-08-19 | 1996-01-16 | Microsoft Corporation | System and method for running multiple incompatible network protocol stacks |
US5726769A (en) * | 1994-11-14 | 1998-03-10 | Canon Kabushiki Kaisha | Image processing apparatus capable of connecting external information processing terminal, and including printer unit and data processing unit |
US5905582A (en) * | 1994-11-14 | 1999-05-18 | Canon Kabushiki Kaisha | Image processing apparatus for processing image data in response to signals from an external apparatus |
US5812951A (en) | 1994-11-23 | 1998-09-22 | Hughes Electronics Corporation | Wireless personal communication system |
JPH08180006A (ja) * | 1994-12-22 | 1996-07-12 | Hitachi Ltd | ネットワークインタフェースおよび計算機ネットワークシステム |
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
US5566170A (en) | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
US5577237A (en) | 1995-01-23 | 1996-11-19 | Tandem Computers, Incorporated | Protocol timer and method of using same |
US5680605A (en) | 1995-02-07 | 1997-10-21 | Torres; Robert J. | Method and apparatus for searching a large volume of data with a pointer-based device in a data processing system |
US5802278A (en) | 1995-05-10 | 1998-09-01 | 3Com Corporation | Bridge/router architecture for high performance scalable networking |
US5625678A (en) * | 1995-05-24 | 1997-04-29 | Microsoft Corporation | Method and system for allowing switched voice and data communication among multiple application programs |
US5870622A (en) * | 1995-06-07 | 1999-02-09 | Advanced Micro Devices, Inc. | Computer system and method for transferring commands and data to a dedicated multimedia engine |
US5734865A (en) * | 1995-06-07 | 1998-03-31 | Bull Hn Information Systems Inc. | Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment |
US5636371A (en) * | 1995-06-07 | 1997-06-03 | Bull Hn Information Systems Inc. | Virtual network mechanism to access well known port application programs running on a single host system |
US5754540A (en) * | 1995-07-18 | 1998-05-19 | Macronix International Co., Ltd. | Expandable integrated circuit multiport repeater controller with multiple media independent interfaces and mixed media connections |
US5918051A (en) * | 1995-07-19 | 1999-06-29 | Ricoh Company, Ltd. | Object-oriented communication system with support for multiple remote machine types |
US5666362A (en) | 1995-07-25 | 1997-09-09 | 3Com Corporation | Method and apparatus for asynchronous PPP and synchronous PPP conversion |
US5701316A (en) | 1995-08-31 | 1997-12-23 | Unisys Corporation | Method for generating an internet protocol suite checksum in a single macro instruction |
US5699350A (en) | 1995-10-06 | 1997-12-16 | Canon Kabushiki Kaisha | Reconfiguration of protocol stacks and/or frame type assignments in a network interface device |
US5802306A (en) | 1995-10-31 | 1998-09-01 | International Business Machines Corporation | Supporting multiple client-server sessions from a protocol stack associated with a single physical adapter through use of a plurality of logical adapters |
US5778178A (en) | 1995-11-13 | 1998-07-07 | Arunachalam; Lakshmi | Method and apparatus for enabling real-time bi-directional transactions on a network |
US5826032A (en) | 1996-02-12 | 1998-10-20 | University Of Southern California | Method and network interface logic for providing embedded checksums |
US5809235A (en) | 1996-03-08 | 1998-09-15 | International Business Machines Corporation | Object oriented network event management framework |
US5909546A (en) * | 1996-03-08 | 1999-06-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Network interface having support for allowing remote operations with reply that bypass host computer interaction |
US5894557A (en) * | 1996-03-29 | 1999-04-13 | International Business Machines Corporation | Flexible point-to-point protocol framework |
US5901287A (en) * | 1996-04-01 | 1999-05-04 | The Sabre Group Inc. | Information aggregation and synthesization system |
US5815516A (en) | 1996-04-05 | 1998-09-29 | International Business Machines Corporation | Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation |
US5946487A (en) | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
US5983332A (en) | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5920732A (en) | 1996-07-01 | 1999-07-06 | Apple Computer, Inc. | System for preallocating additional larger buffer sizes in accordance with packet sizes of discarded packets that can't be stored in existing preallocated buffer sizes |
US5754556A (en) * | 1996-07-18 | 1998-05-19 | Teradyne, Inc. | Semiconductor memory tester with hardware accelerators |
US5956034A (en) | 1996-08-13 | 1999-09-21 | Softbook Press, Inc. | Method and apparatus for viewing electronic reading materials |
US5968161A (en) | 1996-08-29 | 1999-10-19 | Altera Corporation | FPGA based configurable CPU additionally including second programmable section for implementation of custom hardware support |
US5748905A (en) * | 1996-08-30 | 1998-05-05 | Fujitsu Network Communications, Inc. | Frame classification using classification keys |
US5854750A (en) | 1996-09-03 | 1998-12-29 | Insession, Inc. | System and method for processing transactions in an environment containing a number of object oriented applications |
US5847698A (en) | 1996-09-17 | 1998-12-08 | Dataventures, Inc. | Electronic book device |
US5987582A (en) | 1996-09-30 | 1999-11-16 | Cirrus Logic, Inc. | Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device |
US6092229A (en) | 1996-10-09 | 2000-07-18 | Lsi Logic Corporation | Single chip systems using general purpose processors |
US6101543A (en) | 1996-10-25 | 2000-08-08 | Digital Equipment Corporation | Pseudo network adapter for frame capture, encapsulation and encryption |
US6034963A (en) | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
US6230193B1 (en) * | 1996-10-31 | 2001-05-08 | 3Com Corporation | Method and apparatus supporting network communications |
US7035291B2 (en) | 2001-05-02 | 2006-04-25 | Ron Grinfeld | TCP transmission acceleration |
US6046980A (en) * | 1996-12-09 | 2000-04-04 | Packeteer, Inc. | System for managing flow bandwidth utilization at network, transport and application layers in store and forward network |
US5941988A (en) | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
US6377570B1 (en) * | 1997-02-02 | 2002-04-23 | Fonefriend Systems, Inc. | Internet switch box, system and method for internet telephony |
US6076115A (en) * | 1997-02-11 | 2000-06-13 | Xaqti Corporation | Media access control receiver and network management system |
US6172990B1 (en) * | 1997-06-19 | 2001-01-09 | Xaqti Corporation | Media access control micro-RISC stream processor and method for implementing the same |
US6247068B1 (en) * | 1997-03-07 | 2001-06-12 | Advanced Micro Devices Inc. | Winsock-data link library transcoder |
US5818935A (en) | 1997-03-10 | 1998-10-06 | Maa; Chia-Yiu | Internet enhanced video system |
US6157956A (en) | 1997-03-28 | 2000-12-05 | Global Maintech, Inc. | Heterogeneous computing interface apparatus and method using a universal character set |
US5974518A (en) | 1997-04-10 | 1999-10-26 | Milgo Solutions, Inc. | Smart buffer size adaptation apparatus and method |
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 |
US5872919A (en) * | 1997-05-07 | 1999-02-16 | Advanced Micro Devices, Inc. | Computer communication network having a packet processor with an execution unit which is variably configured from a programmable state machine and logic |
CN1266512A (zh) | 1997-05-08 | 2000-09-13 | 艾瑞迪公司 | 适用于面向对象编程语言的硬件加速器 |
US6081846A (en) * | 1997-05-08 | 2000-06-27 | Microsoft Corporation | Method and computer program product for reducing intra-system data copying during network packet processing |
US6330659B1 (en) | 1997-11-06 | 2001-12-11 | Iready Corporation | Hardware accelerator for an object-oriented programming language |
US6012961A (en) * | 1997-05-14 | 2000-01-11 | Design Lab, Llc | Electronic toy including a reprogrammable data storage device |
US5935268A (en) | 1997-06-03 | 1999-08-10 | Bay Networks, Inc. | Method and apparatus for generating an error detection code for a modified data packet derived from an original data packet |
US6208651B1 (en) * | 1997-06-10 | 2001-03-27 | Cornell Research Foundation, Inc. | Method and system for masking the overhead of protocol layering |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US6173333B1 (en) * | 1997-07-18 | 2001-01-09 | Interprophet Corporation | TCP/IP network accelerator system and method which identifies classes of packet traffic for predictable protocols |
US6397316B2 (en) * | 1997-07-24 | 2002-05-28 | Intel Corporation | System for reducing bus overhead for communication with a network interface |
US6078736A (en) * | 1997-08-28 | 2000-06-20 | Xilinx, Inc. | Method of designing FPGAs for dynamically reconfigurable computing |
US6014699A (en) * | 1997-08-29 | 2000-01-11 | International Business Machines Corporation | Internet protocol assists for high performance LAN connections |
US5999974A (en) | 1997-08-29 | 1999-12-07 | International Business Machines Corporation | Internet protocol assists for high performance LAN connections |
US6151625A (en) | 1997-09-10 | 2000-11-21 | Schneider Automation Inc. | Internet web interface including programmable logic controller for controlling output devices based on status of input devices |
US6172980B1 (en) * | 1997-09-11 | 2001-01-09 | 3Com Corporation | Multiple protocol support |
US5991299A (en) | 1997-09-11 | 1999-11-23 | 3Com Corporation | High speed header translation processing |
US6094657A (en) | 1997-10-01 | 2000-07-25 | International Business Machines Corporation | Apparatus and method for dynamic meta-tagging of compound documents |
US6061742A (en) * | 1997-10-10 | 2000-05-09 | Nortel Networks Corporation | Computer network adaptor |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US7133940B2 (en) | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US7167927B2 (en) * | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US6389479B1 (en) * | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6092110A (en) | 1997-10-23 | 2000-07-18 | At&T Wireless Svcs. Inc. | Apparatus for filtering packets using a dedicated processor |
US5923892A (en) | 1997-10-27 | 1999-07-13 | Levy; Paul S. | Host processor and coprocessor arrangement for processing platform-independent code |
US5937169A (en) | 1997-10-29 | 1999-08-10 | 3Com Corporation | Offload of TCP segmentation to a smart adapter |
US6061368A (en) | 1997-11-05 | 2000-05-09 | Xylan Corporation | Custom circuitry for adaptive hardware routing engine |
JP3042615B2 (ja) | 1997-12-09 | 2000-05-15 | 瑞麟 蕭 | 中間ステーション型のマルチメディア情報処理装置と方法 |
US6567855B1 (en) * | 1998-01-02 | 2003-05-20 | Intel Corporation | Portable processing system with always on, always connected capability |
US6058421A (en) * | 1998-02-04 | 2000-05-02 | 3Com Corporation | Method and system for addressing network host interfaces from a cable modem using DHCP |
JPH11313091A (ja) | 1998-02-24 | 1999-11-09 | Canon Inc | データ通信システム、装置及び方法並びに記憶媒体 |
US6341129B1 (en) * | 1998-04-03 | 2002-01-22 | Alteon Networks, Inc. | TCP resegmentation |
US6765901B1 (en) | 1998-06-11 | 2004-07-20 | Nvidia Corporation | TCP/IP/PPP modem |
US6157955A (en) | 1998-06-15 | 2000-12-05 | Intel Corporation | Packet processing system including a policy engine having a classification unit |
US6182228B1 (en) * | 1998-08-17 | 2001-01-30 | International Business Machines Corporation | System and method for very fast IP packet filtering |
JP3542103B2 (ja) * | 1998-09-08 | 2004-07-14 | 富士通株式会社 | ネットワーク制御方式 |
US6233626B1 (en) * | 1998-10-06 | 2001-05-15 | Schneider Automation Inc. | System for a modular terminal input/output interface for communicating messaging application layer over encoded ethernet to transport layer |
US6331865B1 (en) | 1998-10-16 | 2001-12-18 | Softbook Press, Inc. | Method and apparatus for electronically distributing and viewing digital contents |
US6363418B1 (en) * | 1998-10-16 | 2002-03-26 | Softbook Press, Inc. | On-line image caching control for efficient image display |
US6430628B1 (en) | 1998-12-08 | 2002-08-06 | Intel Corporation | Method and apparatus for reducing direct memory access transfers using smart coalescing |
US6480852B1 (en) | 1998-12-11 | 2002-11-12 | International Business Machines Corporation | Method and system for rating bookmarks in a web browser |
KR100576690B1 (ko) | 1998-12-16 | 2006-05-03 | 실버브룩 리서치 피티와이 리미티드 | 제한된 액세스를 갖는 시스템내로의 통합을 위한 프린터 |
JP2000196669A (ja) | 1998-12-25 | 2000-07-14 | Hitachi Ltd | 情報中継装置 |
US6347337B1 (en) * | 1999-01-08 | 2002-02-12 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
US6345301B1 (en) * | 1999-03-30 | 2002-02-05 | Unisys Corporation | Split data path distributed network protocol |
US6389537B1 (en) * | 1999-04-23 | 2002-05-14 | Intel Corporation | Platform and method for assuring integrity of trusted agent communications |
US6510458B1 (en) * | 1999-07-15 | 2003-01-21 | International Business Machines Corporation | Blocking saves to web browser cache based on content rating |
US6347347B1 (en) * | 1999-07-15 | 2002-02-12 | 3Com Corporation | Multicast direct memory access storing selected ones of data segments into a first-in-first-out buffer and a memory simultaneously when enabled by a processor |
US6427169B1 (en) | 1999-07-30 | 2002-07-30 | Intel Corporation | Parsing a packet header |
US6449656B1 (en) * | 1999-07-30 | 2002-09-10 | Intel Corporation | Storing a frame header |
TW447205B (en) | 1999-11-18 | 2001-07-21 | Iready Corp | Multiple network protocol encoder/decoder and date processor |
TW448407B (en) | 1999-11-18 | 2001-08-01 | Iready Corp | Hardware accelerator for an object-oriented programming language |
US6327625B1 (en) | 1999-11-30 | 2001-12-04 | 3Com Corporation | FIFO-based network interface supporting out-of-order processing |
US6530061B1 (en) * | 1999-12-23 | 2003-03-04 | Intel Corporation | Method and apparatus for offloading checksum |
US6773344B1 (en) | 2000-03-16 | 2004-08-10 | Creator Ltd. | Methods and apparatus for integration of interactive toys with interactive television and cellular communication systems |
US6701316B1 (en) * | 2000-04-07 | 2004-03-02 | Nec Corporation | Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh |
JP3614082B2 (ja) * | 2000-04-12 | 2005-01-26 | 日本電気株式会社 | 通信網接続装置 |
NL1015702C2 (nl) * | 2000-07-13 | 2002-01-15 | Dia Services B V | Systeem voor het registreren van een beschrijfbaar medium, systeem voor het authentiseren van een beschrijfbaar medium, alsmede servers en cliÙntsysteem voor dergelijke systemen. |
US20020085562A1 (en) | 2000-12-13 | 2002-07-04 | International Business Machines Corporation | IP headers for remote direct memory access and upper level protocol framing |
US6609225B1 (en) | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
US7149817B2 (en) * | 2001-02-15 | 2006-12-12 | Neteffect, Inc. | Infiniband TM work queue to TCP/IP translation |
GB2372680B (en) | 2001-02-27 | 2003-02-19 | 3Com Corp | Calculation and transmission of error check codes |
US7065702B2 (en) * | 2001-04-12 | 2006-06-20 | Siliquent Technologies Ltd. | Out-of-order calculation of error detection codes |
US8218555B2 (en) * | 2001-04-24 | 2012-07-10 | Nvidia Corporation | Gigabit ethernet adapter |
WO2002097580A2 (en) * | 2001-05-31 | 2002-12-05 | Espeed, Inc. | Securities trading system with multiple levels-of-interest |
KR100630587B1 (ko) * | 2001-06-01 | 2006-10-04 | 세이코 엡슨 가부시키가이샤 | 컬러 필터의 제조 방법, 표시 장치의 제조 방법과 그 제조 장치, 및 전자 기기의 제조 방법 |
JP3749458B2 (ja) | 2001-06-06 | 2006-03-01 | コナミ株式会社 | 遊戯拡張システムと玩具システムとを備えたシステム |
US7194766B2 (en) * | 2001-06-12 | 2007-03-20 | Corrent Corporation | Method and system for high-speed processing IPSec security protocol packets |
US20030003117A1 (en) * | 2001-06-18 | 2003-01-02 | Michael Marenick | Hydrolyzed whole egg products & related methods |
US7165112B2 (en) | 2001-06-22 | 2007-01-16 | Motorola, Inc. | Method and apparatus for transmitting data in a communication system |
WO2003005672A2 (en) | 2001-07-06 | 2003-01-16 | Livedevices Limited | Improvements relating to reduction of resource usage in tcp/ip implementation |
US7426729B2 (en) * | 2001-07-11 | 2008-09-16 | Sun Microsystems, Inc. | Distributed processing framework system |
US6980551B2 (en) * | 2001-07-12 | 2005-12-27 | International Business Machines Corporation | Full transmission control protocol off-load |
JP4154874B2 (ja) * | 2001-07-30 | 2008-09-24 | カシオ計算機株式会社 | 指紋読取装置および指紋読取方法 |
US7020716B2 (en) * | 2001-08-31 | 2006-03-28 | Adaptec, Inc. | Method and system for verifying the hardware implementation of TCP/IP |
WO2003021447A1 (en) * | 2001-08-31 | 2003-03-13 | Adaptec, Inc. | Methods and apparatus for partially reordering data packets |
DE10143366A1 (de) * | 2001-09-04 | 2003-03-20 | Kiekert Ag | Kraftfahrzeugtürverschluss |
US20030046330A1 (en) * | 2001-09-04 | 2003-03-06 | Hayes John W. | Selective offloading of protocol processing |
US7620692B2 (en) * | 2001-09-06 | 2009-11-17 | Broadcom Corporation | iSCSI receiver implementation |
US8255567B2 (en) * | 2001-09-06 | 2012-08-28 | Broadcom Corporation | Efficient IP datagram reassembly |
US7953093B2 (en) | 2001-09-06 | 2011-05-31 | Broadcom Corporation | TCP/IP reordering |
US6713201B2 (en) * | 2001-10-29 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Systems including replaceable fuel cell apparatus and methods of using replaceable fuel cell apparatus |
US20030081599A1 (en) * | 2001-10-30 | 2003-05-01 | Chui-Tsang Wu | System and method for data transmission control |
US7124198B2 (en) * | 2001-10-30 | 2006-10-17 | Microsoft Corporation | Apparatus and method for scaling TCP off load buffer requirements by segment size |
US20030095567A1 (en) * | 2001-11-20 | 2003-05-22 | Lo Man Kuk | Real time protocol packet handler |
US20030115350A1 (en) * | 2001-12-14 | 2003-06-19 | Silverback Systems, Inc. | System and method for efficient handling of network data |
US6760814B2 (en) * | 2001-12-17 | 2004-07-06 | Lsi Logic Corporation | Methods and apparatus for loading CRC values into a CRC cache in a storage controller |
US6800013B2 (en) | 2001-12-28 | 2004-10-05 | Shu-Ming Liu | Interactive toy system |
US7315976B2 (en) | 2002-01-31 | 2008-01-01 | Lsi Logic Corporation | Method for using CRC as metadata to protect against drive anomaly errors in a storage array |
US7535913B2 (en) * | 2002-03-06 | 2009-05-19 | Nvidia Corporation | Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols |
US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
JP4004389B2 (ja) * | 2002-11-27 | 2007-11-07 | 富士通株式会社 | バッファメモリ管理方法及びシステム |
US8477780B2 (en) * | 2003-03-26 | 2013-07-02 | Alcatel Lucent | Processing packet information using an array of processing elements |
KR100490433B1 (ko) | 2003-06-10 | 2005-05-17 | 삼성전자주식회사 | 광주사장치의 에프쎄타 렌즈 및 광주사장치 |
US7287092B2 (en) * | 2003-08-11 | 2007-10-23 | Sharp Colin C | Generating a hash for a TCP/IP offload device |
US7675898B2 (en) * | 2003-08-20 | 2010-03-09 | Nec Corporation | Session relay apparatus for relaying data, and a data relaying method |
US7483434B2 (en) * | 2003-12-01 | 2009-01-27 | International Business Machines Corporation | Parallel TCP sender implementation |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
US20050223110A1 (en) | 2004-03-30 | 2005-10-06 | Intel Corporation | Heterogeneous building block scalability |
JP4058014B2 (ja) | 2004-04-08 | 2008-03-05 | 株式会社日立製作所 | パケット転送装置 |
-
2004
- 2004-10-19 US US10/969,376 patent/US7957379B2/en active Active
-
2005
- 2005-10-19 WO PCT/US2005/037941 patent/WO2006045057A2/en active Application Filing
- 2005-10-19 JP JP2007538074A patent/JP2008517565A/ja active Pending
- 2005-10-19 KR KR1020077008944A patent/KR101018575B1/ko active IP Right Grant
- 2005-10-19 CN CN2005800357446A patent/CN101120424B/zh not_active Expired - Fee Related
- 2005-10-19 TW TW094136609A patent/TWI407733B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1318170A (zh) * | 1998-06-15 | 2001-10-17 | 诺基亚高速接入产品公司 | 交换系统数据接口 |
Also Published As
Publication number | Publication date |
---|---|
CN101120424A (zh) | 2008-02-06 |
TWI407733B (zh) | 2013-09-01 |
KR20070085272A (ko) | 2007-08-27 |
US7957379B2 (en) | 2011-06-07 |
US20060083246A1 (en) | 2006-04-20 |
TW200629819A (en) | 2006-08-16 |
JP2008517565A (ja) | 2008-05-22 |
WO2006045057A2 (en) | 2006-04-27 |
WO2006045057A3 (en) | 2006-11-30 |
KR101018575B1 (ko) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101120424B (zh) | 在高速网络应用中使用rx fifo缓冲区处理rx信息包的系统与方法 | |
US7908335B1 (en) | Methods and apparatus for bridging a USB connection | |
CN100382069C (zh) | 在逻辑分区之间共享网络i/o适配器的装置与方法 | |
EP1730645B1 (en) | Operating a remote usb host controller | |
CN1608255B (zh) | 使用包括扩展类型/扩展长度字段的分组头部的计算机系统中的代理之间的通信事务类型 | |
US7941569B2 (en) | Input/output tracing in a protocol offload system | |
CN101102305A (zh) | 管理网络信息处理的系统和方法 | |
CN101276258A (zh) | 存储设备及其控制方法 | |
CN101095125A (zh) | 基于RNIC的iSCSI目标方数据移动功能卸载 | |
CN1985492B (zh) | 支持iSCSI读操作和iSCSI烟囱的方法和系统 | |
US7450588B2 (en) | Storage network out of order packet reordering mechanism | |
US7460531B2 (en) | Method, system, and program for constructing a packet | |
CN101453487A (zh) | 用于混合系统的存储器到存储装置通信的方法和系统 | |
US7404040B2 (en) | Packet data placement in a processor cache | |
US10178018B2 (en) | Transmission and reception devices | |
CN101410804A (zh) | 管理多个接口的方法和数据处理系统 | |
US7539204B2 (en) | Data and context memory sharing | |
US7549088B2 (en) | Communication apparatus and program provided with failure determining method and function | |
CN110958216B (zh) | 安全的在线网络分组传输 | |
US7814219B2 (en) | Method, apparatus, system, and article of manufacture for grouping packets | |
US7020146B2 (en) | Broadcast arbitration in a multi-domain device | |
US7451240B2 (en) | Method and related circuit for increasing network transmission efficiency by increasing a data updating rate of a memory | |
CN1578267B (zh) | 处理分组以在主机系统的网络上传送的方法、系统及装置 | |
US20070297341A1 (en) | Data transmission system and method | |
US20050216616A1 (en) | Inbound packet placement in host memory |
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: 20110921 |