CN1638319B - 用于传输卸载引擎的重发系统和方法 - Google Patents
用于传输卸载引擎的重发系统和方法 Download PDFInfo
- Publication number
- CN1638319B CN1638319B CN2004101049810A CN200410104981A CN1638319B CN 1638319 B CN1638319 B CN 1638319B CN 2004101049810 A CN2004101049810 A CN 2004101049810A CN 200410104981 A CN200410104981 A CN 200410104981A CN 1638319 B CN1638319 B CN 1638319B
- Authority
- CN
- China
- Prior art keywords
- data
- state information
- offload engine
- processor
- change
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000005540 biological transmission Effects 0.000 claims description 39
- 230000008859 change Effects 0.000 claims description 24
- 230000003139 buffering effect Effects 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000008034 disappearance Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000000712 assembly Effects 0.000 description 6
- 238000000429 assembly Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种系统和方法,该系统和方法用于在网络中进行数据重发。该系统和方法包括一个卸载引擎,该卸载引擎与系统存储器以及网络进行通信。该卸载引擎用于管理网络中被发送数据的重发。
Description
技术领域
本发明是关于用于传输卸载引擎,更特别的,是关于利用卸载引擎处理重发请求。
背景技术
传输卸载引擎(TOE)包含为优化处理能力和降低处理器的利用的目的而在高速系统中得到普及的技术。TOE组件经常被整合在各种印刷电路板中的一种,所述印刷电路板例如网卡(NIC)、主机总线适配器(HBA)、主板或任何其它希望的卸载设备(offloadingcontext)。
近年来,系统通讯速度的增长远高于处理器速度的增长,这已经产生了一个输入/输出(I/O)瓶颈。处理器主要被设计用于计算,而不是用于I/O;因而典型地跟不上遍及网络的数据流。因而,数据流的处理速度小于网络速度。TOE技术通过从处理器和/或I/O子系统除去负荷(例如卸载)解决了这个问题。
现有技术的图1显示了一个TOE的典型的操作100。如现有技术的图1所示,一个本地处理器(任何形式)首先向TOE发送一个传输数据的指令,以根据传输控制协议(TCP)连接,从具有TOE的处理器向网络上的一个远端处理器传输数据,见操作102。
接着,在操作104,TOE获得该数据,并将其分成多个分段,并向每一个数据段加上以太网、TCP、和网络协议(IP)标头,以生成一个对应于每一个数据段的TCP/IP信息包。此后,TOE将得到的信息包发送到网络,如操作106所示。
远端处理器接收并确认该信息包后,远端处理器向本地处理器发回确认(ACK),以指示有多少数据已被成功接收。一旦接收一条用于所有已发送数据的ACK(见判定108),则TOE发送一条完成指令到本地处理器,以指示发送指令已通过TOE的传输功能被完成,见操作110。然后额外数据可以被发送,如操作112所示。
如果TOE在相应的信息包发出后的一个预定的时间没有收到ACK,这指示了一个出错的情况,TCP数据被从TOE的存储器重新取出,见操作114。然后在操作116,TOE可以重发部分或全部未被确认的信息包。
因此,当通过一个信息包转换的网络传输数据时,数据可能丢失,且这些数据必须被重发。因为这个原因,TOE存储所有未被确认的数据。但是,使用一个10Gbps的连接和一个可能的200ms的来回程延迟的广域网,这可能意味着大到10Gbps×200ms,或者说2千兆的信息必须被存储。不幸的是,这么大量的数据很难以成本节约的方式存储在一个集成的TOE上,因为在TOE上的集成电路存储器可能是非常昂贵的。
因而需要有一种经济有效的技术用于实现网络重发。
发明内容
本发明提供了一种用于在网络上实现数据重发的系统和方法,包括一个与系统存储器和一个网络通信连接的卸载引擎。该卸载引擎用于管理网络中被发送的数据的重发。
为了实现这一目的,该卸载引擎确定那些需要重发的数据,找回存储在系统存储器中的那些需要重发的数据,并发送这些找回的数据。通过以这样一种方式利用系统存储器,本发明提供了一种用于完成网络重发的经济有效的技术。
在一个实施例中,该卸载引擎可以发送一个状态到一个处理器,以启动需要重发的数据的找回。优选的,这个状态信息可以基于收到的至少一个确认或确认缺失(由于超时等)而发送。而且,该状态信息可以包括一个用于控制模块的句柄(handle),该句柄用于接口(socket)、序列号和/或与重发请求相关的重发数据的大小。
而且,响应该状态信息,处理器可以向卸载引擎发送一个重发指令信息。该重发指令信息可以包括一个序列号、指向一个主机缓冲的指针(pointer)等。需要注意的是,该指针可以由卸载引擎和/或处理器来维护。
优选的,该重发指令信息还可以包含一个补偿,该补偿与指针共同使用,以确定需要重发的数据。如果需要重发的数据缓冲(buffer)只有部分被确认,则该重发指令信息可以优选地包含这个补偿。而且,该重发指令信息可以包含一个用于控制模块的句柄,该句柄用于接口。
使用中,卸载引擎可以请求一个直接存储访问(DMA)以响应重发指令信息,找回需要重发的数据。响应需要重发的数据的接收,卸载引擎可以启动一个涉及序列号的比较。此后,卸载引擎可以根据比较重发该数据。
需注意到的是,系统存储器可以通过一根总线连接到一个处理器和/或驻留在该处理器上。而且,该卸载引擎可以包括一个接收器、一个轮询器、存储器、一个状态信息发生器、一个解析器、一个发送请求器、一个DMA队列(queue)、一个信息包发生器和/或其它任何需要的组件。
附图说明
图1为现有技术的用于从一个主机发送和重发数据的方法的流程图,该主机具有界面设备,例如一个卸载引擎。
图2显示了根据一个实施例的一个网络系统。
图3显示了一个典型的结构,该结构可以实现一个实施例。
图4显示了根据一个实施例的、在网络中进行数据重发的一个典型的方法。
图5显示了根据一个实施例的、用于产生重发指令信息的一个典型的方法。
图6显示了根据一个实施例的、用于处理重发请求的一个典型的设计和操作。
图7显示了根据一个实施例的、用于跟踪数据发送的SGL的一个典型的设计。
具体实施方式
根据一个实施例,图2显示了一个网络系统200。如图所示,提供了一个网络202。在本网路系统200的上下文中,网络系统202可以采用任何形式,包括但不局限于:局域网(LAN)、广域网(WAN)例如互联网等。
连接到网络202的是一个本地主机204和一个远端主机206,它们能够通过网络202进行通信。在现有描述的上下文中,这些主机204、206可以是网络服务器、桌面电脑、笔记本电脑、手提电脑、打印机或任何其它类型的硬件/软件。需要注意的是,每一个前述组件以及其它任何未说明的设备都可以通过一个或多个网络相互连接。
图3为一个典型的结构300,该结构可以实现一个实施例。在一个实施例中,该结构300可以表示图2的主机204、206中的一个。当然,虽然这样,应该注意到,结构300可以在任何希望的上下文中实现。
例如,结构300可以在下列情况下实现:常规计算机系统、电路板系统、用于娱乐目的的游戏控制系统、机顶盒、路由器、网络系统、存储系统、特定应用系统或与网络202相关的任何其它希望的系统。
如图所示,结构300包括多个通过一根总线302相连接的组件,包括至少一个用于处理数据的处理器304。而该处理器304可以采用任何形式,在一个实施例中,处理器304采用的形式有:中央处理单元(CPU)、芯片组(例如一组集成电路等,设计成作为一个单元用于实现相关功能),或任何其它希望的能够处理数据的处理设备。
另外,结构300还包括一个处理系统存储器306,与处理器304相互通信以用于存储数据。该处理系统存储器306可以采用的形式包括:机载(on-board)或离机(off-board)随机访问存储器(RAM),硬盘驱动器,可移动存储驱动器(例如软盘驱动器、磁盘驱动器、光盘驱动器等),和/或任意其它形式的可用于存储数据的希望的存储器。
使用中,优选的,程序、控制逻辑算法可以任意地存储于处理系统存储器306。当执行时,这些程序使结构300完成各种功能。当然,结构300可以简单地直接连接。
此外还显示了一个与处理器304和网络(例如图2所示的网络202)通信的卸载引擎312。在一个实施例中,卸载引擎312可以通过总线302保持与处理器304的通信。当然,尽管这样,卸载引擎312可以通过任意提供相互间连接的设备保持与处理器304之间的通信。卸载引擎312可以包括一个传输(例如TCP/IP)卸载引擎(TOE),或任意能够管理网络中传输的数据的集成电路。
在操作中,为了提供一种用于实现网络重发的经济有效的技术,该卸载引擎312用于确定需要重发的数据,找回存储在系统存储器(例如,处理器系统存储器306)中的需要重发的数据,并重发那些找回的数据。通过使用系统存储器存储那些重发的数据,卸载引擎312的生产可以具有更小的集成存储器或不需要存储器。从而提供了一种更为经济有效的技术。参考让卸载引擎312以前述方式使用系统存储器的典型的方法,更多的信息可以被提供。
根据一个实施例,图4显示了一种在网络上进行数据重发的典型的方法400。作为选择,方法400可以在图3的典型结构300的上下文中实现。当然,尽管这样,应该注意的是,方法400可以在任何所希望的上下文中实现。而且,重要的是应当理解,如果可以给这些典型组件(例如上述的各种组件)分配各种功能,则所述各种功能可以通过任何希望的实体(entity)实现。
如图所示,在判断401中,该判断是确定确保数据重发的标准是否满足。正是通过例中的方式,所述标准可以基于以下事项:至少一个确认(ACK)或确认缺失、一个重复的ACK阀值、超时、各种计时参数和/或任何其它希望的标准。例如,在一个例子中,该标准包括一个重复的ACK阀值,该重复的ACK阀值可以是任何预先设定的,或用户设定的接收的ACK的数量,或其它任何与ACK相关的参数。在本描述的上下文中,ACK包括任何从接收主机发送到发送主机的、指示数据已被成功发送的信号。
通过判断401,如果重发的标准被确定为符合,则生成一条状态信息,并发送到一个处理器(例如图3的处理器304),如操作402所示。在一个实施例中,是利用一个卸载引擎(例如图3的卸载引擎312)生成该状态信息。而且,状态信息可以采用任何能够请求存储于系统存储器(例如图3的存储器306)的数据重发的形式。
作为选择,该状态信息可以包括便于请求数据重发的各种信息。例如,该状态信息可以包括一个序列号。在本发明的上下文中,这种序列号可以包括与重发的数据相关的号码,该号码反映该数据相对于其它发送数据的顺序。
作为又一个选择,该状态信息可以包括重发数据的大小。典型的,该重发数据的大小是以字节规定的数据、例如一个远端主机能够在一个单一的、未分段的片段中处理的数据的最大值。重发数据的大小也可以根据本地主机接收到的远端主机的ACK而规定。在这种情况下,远端主机可以请求多个用于重发的TCP信息包。而且,该状态信息可以包括一个用于接口的控制模块(CB)句柄,或任何其它希望的信息。应该注意,所述CB可以包括各种信息,例如与最新确认的数据相关的信息。
表1显示了一个典型的状态信息的格式。该格式仅用于说明的目的,不应认为是任何方式的限制。
表1
接着,作为对该状态信息的响应,处理器生成一条重发指令信息并发送到该卸载引擎。见操作404。在本描述的上下文中,重发指令信息包括任何便于找回需要重发的数据的信息,其方式将在下面被阐述。参考图5,与这个重发指令信息相关的更多信息将被更加详细地阐述。
作为对重发指令信息的响应,该卸载引擎将请求一个直接存储访问(DMA),见操作406。请求该DMA是为了找回存储在系统存储器中的需要被重发的数据。应该注意,在本描述的上下文中,DMA可以允许数据从存储器直接发送,这样,处理器可以避免被卷入特定数据的发送,从而加快了整个操作。
一旦成功完成DMA,并且所述数据也被接收,接着根据即时数据,确定是否接收到ACK,在此同时,各种前述的操作也被执行,见判定408。这个操作可以通过任何所希望的方式完成,优选的,可以通过启动一个上述序列号的比较来完成。特别是,如果一个ACK的序列号比先前收集的序列号大,那么可以假设,数据的部分或全部已被远端主机成功接收。
因此,根据判定408的先前的比较,通过使用该卸载引擎,所述数据可以通过网络被重发,见操作410。特别的,如果所述数据没有被确认已被成功接收,则该数据可以被重发。
根据一个实施例,图5显示了一个用于生成一个重发指令信息的典型的方法500。作为选择,方法500可以在图4的操作404的上下文中实现。当然,尽管这样,应该注意,方法500可以通过任何希望的情形实现。而且,重要的是应当理解,如果可以给这些典型组件(例如上述的各种组件)分配各种功能,则所述各种功能可以通过任何希望的实体实现。
如图所示,在操作502,一个缓冲(buffer)被处理器(如图3的处理器304)确定。如表1所列举的状态信息所示,该缓冲可以通过CB句柄来确定。一般而言,将被重发的缓冲是与上述CB句柄相关的未确认的最旧的缓冲。
接着在判断504,该缓冲被确定是否已被远端主机部分接收。换句话说,由处理器确定在确定的缓冲中的需要重发的数据是否以一个成功的方式被部分接收。如果数据缓冲已被至少部分确认,则一个用于补偿与前述DMA(见图4的操作406)相关的启动地址的补偿(offset)被确定,见操作506。如果不需要补偿,则跳过操作506。作为替换,与上述DMA相关的启动地址可以由补偿的值予以修改,从而排除了一个独立的补偿指示器(offset indicator)的需要。
接着,判断该数据的大小是否小于前述状态信息指示的重发数据。如果是这种情况,则加入一个额外的缓冲,见操作510。但是如果不是,则跳过操作510。
这样,类似于表1的状态信息,重发指令信息也可以包括各种信息。例如,用于DMA操作的启动地址可以作为一个补偿加入到一个与接口相关的分散-收集表(SGL)。而且,重发指令信息还可以包括前文所述的序列号。此外,重发指令信息可以包括一个用于接口的CB句柄,或任何其它希望的信息。
表2显示了一个典型的重发指令信息的格式。该格式仅用于说明的目的,不应认为是任何方式的限制。
表2
因此,重发指令信息可以用于那些位于图4中操作404(如图4的操作406-410)之后的操作。
根据一个实施例,图6显示了一个用于处理重发请求的典型的设计和操作600。作为选择,该设计和操作600可以在前述附图所公开的上下文中实现。当然,尽管这样,应该注意,该设计和操作600可以在任何希望的情况下实现。最重要的是,该典型的设计和操作600仅用于说明的目的,不应认为是任何方式的限制。
如图所示,该典型的设计和操作600包括一个与处理器相连接的主机驱动器618,该处理器又与一个卸载引擎601通信连接,该卸载引擎具有多个典型的组件。例如,所示的卸载引擎601包括一个接收器604、一个CB轮询器602、一个状态信息发生器606、一个指令模块(IB)队列620、一个IB解析器608、一个重发请求器610、一个DMA队列612、CB存储器614和一个数据信息包发生器616。这些组件如图所示进行连接。在下文的对典型设计和操作600的讨论中,各种组件的功能将被更为详细的阐述。
如图所示,通过检查CB存储器中一个重发的时间戳,CB轮询器确定重发是否需要一个接口。接着,状态信息发生器606生成一条重发状态信息,并通过主机驱动器618发送到本地主机。如前文所述,该状态信息可以包括与重发请求相关的序列号,并由来自CB存储器614的最新的未确认序列号域得到。该状态信息也可以包括与重发请求相关的重发数据的大小。
该本地主机(或卸载引擎601,两者都可以)可以维持一个用于接口的SGL。如果本地主机接收到状态信息,驱动器618就将表中最旧的缓冲取出,并在重发指令信息中使用。如前文所述,如果最旧的缓冲的数据的量小于远端主机要求重发的数据的大小,则本地主机就按照需要,在重发指令信息中加入尽量多的缓冲。
由于本地主机通过状态信息而获得用于接口的事件进展的所有ACK。因而,如果远端主机的缓冲中有部分确认的数据,本地主机也知道。在这种情况下,如上文所解释,本地主机可以适当的对缓冲中的启动地址进行补偿。表3显示了一个ACK状态信息的典型格式。该格式仅用于说明的目的,不应认为是任何方式的限制。
表3
本地主机收到状态信息后,将产生一个重发指令信息,并将该信息发送到卸载引擎601,并排在本地的缓冲中。
当IB解析器608收到该重发指令信息后,解析器将对该指令信息进行解析;一旦确定该信息是一个重发指令,解析器将把该请求发送到发送请求器610。然后,发送请求器610从CB存储器614中找回必要的参数,并请求一个DMA操作以找回主机系统中的重发数据。然后,该DMA请求排在DMA队列的一个FIFO中。该DMA操作可以类似于通常的数据发送请求。来自重发指令信息的序列号,连同一个额外的部分,将与DMA请求一起被发送,以指示该数据请求是用于重发。
如果该DMA完成,该数据信息包发生器616可以确定该请求是一个重发请求,因为该重发部分与一个DMA数据的有效指针一起被维持。如果数据信息包发生器616遇到了这个情况,则数据信息包发生器616会将需要被重发的信息包的序列号与CB存储器614中最旧的未确认的序列号进行比较。如果二者相一致,则重发有效,信息包被重发。如果CB存储器中的序列号的版本大于重发数据的序列号,则表明远端主机已经在重发请求发出与DMA操作完成之间的时间内完成全部或部分数据的确认。在这种情况下,根据被确认数据的量,数据重发请求可以被放弃或继续。
使用中,由重复的ACK或选择性的确认(SACK)选项引发的重发,也可以由指向本地主机的一个状态信息引发。根据远端主机的观点,没有必要观察不同重发类型之间的区别。对于这些情况,接收器604可以被配置成请求状态信息。一旦收到的重复ACK的数量值,则达到界限,接收器604可以请求一条重发状态信息并在接口CB存储器614中规定一个重复ACK状态。如果接收器接收到进一步的重复ACK并观察到这个部分仍然存在,则接收器不再重新请求进一步的重发。如果数据信息包发生器616发送了该重发信息包,则数据信息包发生器就可以清除前述的该部分。
如果接收器604接收到的来自远端主机的信息包含有SACK选项,则接收器也可以请求一条重发状态信息。与重复的ACK不一样,一条重发状态信息可以被请求用于每一个收到的SACK选项。重发数据的大小也可以由SACK选项中收到的参数而得知。
图7显示了一个SGL列表的典型的设计,该列表被维持以用于每一个接口。SGL700含有一个入口(entry)的列表,该列表规定了接口上发送的数据。
每个SGL入口包含一个指针,该指针指示被发送信息在主机存储器上的位置,以及将被发送的数据的量。表4显示了一个典型的SGL入口格式。该格式仅用于说明的目的,不应认为是任何方式的限制。
表4
存储数据的主机的地址 |
在SGL实体中将被传送的数据的大小 |
用于每一个SGL的指针有两个。第一个指针指示下一个项目在SGL中将被写入的位置,见701。当更多的数据需要在接口发送,则该指针所指示的SGL位置将被一个SGL项目写入,该项目包含放置数据的主机地址,以及有多少数据将被发送。
用于SGL的第二个指针是指向最旧的未确认数据缓冲,见702。当收到一条重发状态信息时,该指针用于追踪哪个数据需要被重发。由于本地主机收到了指示有多少数据已被远端主机接收的ACK状态信息,因此指针被增长。如果在最旧的SGL选项中的所有数据都被确认了,则上述选项所指示的缓冲可以被释放,并被本地主机重新使用。通过这种方式,当本地主机接收到重发状态信息时,可以快速的对需要重发的数据进行定位。
尽管前文描述了多种不同的实施例,但是,这些实施例仅仅用于举例说明本发明,并不是用来限制本发明。因此,上述的典型的实施例不应限制这些优选的实施例的应用范围,这些实施例的应用范围应该依据权利要求进行限制。
Claims (23)
1.一个卸载引擎系统,用于在网络上执行数据重发,其特征在于,该系统包括:
一个卸载引擎,与系统存储器以及网络进行通信;
其中,所述卸载引擎生成状态信息,并在确定出已满足保证重发数据的重发标准的情况下向处理器发送所述状态信息;响应于所述状态信息,所述处理器生成重发指令信息;响应于所述重发指令信息,所述卸载引擎请求直接存储访问,以找回将被重发的数据。
2.如权利要求1所述的系统,其特征在于,所述卸载引擎与处理器进行通信,并管理数据的重发,通过:
确定所述将被重发的数据;
找回存储在系统存储器中的所述将被重发的数据;
重发找回的数据。
3.如权利要求2所述的系统,其特征在于,所述卸载引擎向处理器发送一条状态信息,以启动所述将被重发的数据的找回;且该状态信息的发送是基于接收的至少一个确认或者确认缺失。
4.如权利要求2所述的系统,其特征在于,所述卸载引擎向处理器发送一条状态信息,以启动所述将被重发的数据的找回;且该状态信息基于超时而发送。
5.如权利要求2所述的系统,其特征在于,所述卸载引擎向处理器发送一条状态信息,以启动所述将被重发的数据的找回;且该状态信息包括一个用于控制模块的句柄,该控制模块用于接口。
6.如权利要求2所述的系统,其特征在于,所述卸载引擎向处理器发送一条状态信息,以启动所述将被重发的数据的找回;且该状态信息包括一个序列号。
7.如权利要求2所述的系统,其特征在于,所述卸载引擎向处理器发送一条状态信息,以启动所述将被重发的数据的找回;且该状态信息包括一个重发数据的大小。
8.如权利要求2所述的系统,其特征在于,所述卸载引擎向处理器发送一条状态信息,以启动所述将被重发的数据的找回;响应该状态信息,该处理器向该卸载引擎发送一条重发指令信息。
9.如权利要求8所述的系统,其特征在于,所述重发指令信息包括一个序列号。
10.如权利要求8所述的系统,其特征在于,所述重发指令信息包括至少一个指针,该指针指向至少一个主机缓冲。
11.如权利要求10所述的系统,其特征在于,所述指针由该卸载引擎维持。
12.如权利要求10所述的系统,其特征在于,所述指针由该处理器维持。
13.如权利要求10所述的系统,其特征在于,所述重发指令信息包括一个补偿,该补偿与该指针一起用于确定将被重发的数据。
14.如权利要求13述的系统,其特征在于,所述补偿被包括是为了规定缓冲列表中的一个起始位置,该缓冲列表用于将被重发的数据。
15.如权利要求8所述的系统,其特征在于,所述重发指令信息包括一个用于控制模块的句柄,该控制模块用于接口。
16.如权利要求15所述的系统,其特征在于,所述控制模块包括与最新确认的数据相关的信息。
17.如权利要求8所述的系统,其特征在于,响应收到将被重发的所述数据,所述卸载引擎启动一个涉及序列号的比较。
18.如权利要求17所述的系统,其特征在于,所述卸载引擎基于所述比较重发所述数据。
19.如权利要求1所述的系统,其特征在于,所述卸载引擎向一个处理器发送一条状态信息,以指示已从远端主机收到一条用于发送的数据的确认。
20.如权利要求19所述的系统,其特征在于,所述状态信息包括一个控制模块的句柄,该控制模块用于接口。
21.如权利要求19所述的系统,其特征在于,状态信息包括一个确认号码。
22.一个卸载引擎子系统,用于在网络上执行数据重发,其特征在于,该系统包括:
一个卸载引擎,与一个存储器和一个网络进行通信;
其中,所述卸载引擎管理网络中数据的发送,通过:
确定将被重发的数据;
找回存储于处理系统存储器中的需要被重发的数据;
重发该找回的数据;
其中,所述卸载引擎生成状态信息,并在确定出已满足保证重发数据的重发标准的情况下向处理器发送所述状态信息;响应于所述状态信息,所述处理器生成重发指令信息;响应于所述重发指令信息,所述卸载引擎请求直接存储访问,以找回所述将被重发的数据。
23.一种利用卸载引擎在网络上执行数据重发的方法,其特征在于,该方法包括:
确定将被重发的数据;
由所述卸载引擎生成状态信息,并在确定出已满足保证重发数据的重发标准的情况下向处理器发送所述状态信息;
响应于所述状态信息,由所述处理器生成重发指令信息;
响应于所述重发指令信息,由所述卸载引擎请求直接存储访问,以找回存储在处理系统存储器中的所述将被重发的数据;和
重发该找回的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/741,978 US8549170B2 (en) | 2003-12-19 | 2003-12-19 | Retransmission system and method for a transport offload engine |
US10/741,978 | 2003-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1638319A CN1638319A (zh) | 2005-07-13 |
CN1638319B true CN1638319B (zh) | 2011-09-28 |
Family
ID=34523242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004101049810A Active CN1638319B (zh) | 2003-12-19 | 2004-12-20 | 用于传输卸载引擎的重发系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8549170B2 (zh) |
EP (1) | EP1545042B1 (zh) |
JP (1) | JP2005192216A (zh) |
CN (1) | CN1638319B (zh) |
DE (1) | DE602004019383D1 (zh) |
TW (1) | TW200537877A (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030158959A1 (en) * | 2002-02-15 | 2003-08-21 | Jay Jayapalan | Establishment of communications using point to point protocols such that duplicate negotiations are avoided |
US7324547B1 (en) | 2002-12-13 | 2008-01-29 | Nvidia Corporation | Internet protocol (IP) router residing in a processor chipset |
US7362772B1 (en) | 2002-12-13 | 2008-04-22 | Nvidia Corporation | Network processing pipeline chipset for routing and host packet processing |
US7613109B2 (en) * | 2003-06-05 | 2009-11-03 | Nvidia Corporation | Processing data for a TCP connection using an offload unit |
US7420931B2 (en) * | 2003-06-05 | 2008-09-02 | Nvidia Corporation | Using TCP/IP offload to accelerate packet filtering |
US8572289B1 (en) | 2003-12-19 | 2013-10-29 | Nvidia Corporation | System, method and computer program product for stateless offloading of upper level network protocol operations |
US7698361B2 (en) * | 2003-12-31 | 2010-04-13 | Microsoft Corporation | Lightweight input/output protocol |
US7248229B2 (en) * | 2003-12-31 | 2007-07-24 | Zerphy Bryron L | Dynamic message sign display panel communication error detection and correction |
US7986282B2 (en) * | 2003-12-31 | 2011-07-26 | Zerphy Byron L | Dynamic message sign display panel error detection, correction, and notification |
US7502324B1 (en) * | 2004-06-28 | 2009-03-10 | Nth Ip Corporation | TCP retransmission and exception processing in high speed, low memory hardware devices |
US7764709B2 (en) * | 2004-07-07 | 2010-07-27 | Tran Hieu T | Prioritization of network traffic |
US7480301B2 (en) * | 2004-12-16 | 2009-01-20 | International Business Machines Corporation | Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement |
US20070011333A1 (en) * | 2005-06-30 | 2007-01-11 | Victor Lau | Automated serial protocol initiator port transport layer retry mechanism |
US20070101023A1 (en) * | 2005-10-28 | 2007-05-03 | Microsoft Corporation | Multiple task offload to a peripheral device |
US8447898B2 (en) * | 2005-10-28 | 2013-05-21 | Microsoft Corporation | Task offload to a peripheral device |
KR100653178B1 (ko) * | 2005-11-03 | 2006-12-05 | 한국전자통신연구원 | 전송제어프로토콜 오프로드 엔진 기반의 전송제어프로토콜전송정보 생성 및 관리 장치 및 그 방법 |
US7725556B1 (en) * | 2006-10-27 | 2010-05-25 | Hewlett-Packard Development Company, L.P. | Computer system with concurrent direct memory access |
US8271700B1 (en) | 2007-11-23 | 2012-09-18 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
US7877524B1 (en) * | 2007-11-23 | 2011-01-25 | Pmc-Sierra Us, Inc. | Logical address direct memory access with multiple concurrent physical ports and internal switching |
JP5257150B2 (ja) * | 2009-03-05 | 2013-08-07 | 日本電気株式会社 | 通信装置、データ通信システム、データ通信方法及び制御プログラム |
US8553547B2 (en) * | 2009-03-30 | 2013-10-08 | Broadcom Corporation | Systems and methods for retransmitting packets over a network of communication channels |
CN101605283B (zh) * | 2009-06-29 | 2012-06-06 | 中兴通讯股份有限公司 | Wson中节点资源状态的恢复方法及装置 |
US8832024B2 (en) * | 2012-10-26 | 2014-09-09 | Netapp, Inc. | Simplified copy offload |
US10667173B2 (en) * | 2017-02-13 | 2020-05-26 | Qualcomm Incorporated | Feedback retransmission repetition coding for wireless communications |
US10992583B1 (en) | 2019-10-07 | 2021-04-27 | Ford Global Technologies, Llc | Opportunistic packet retransmissions |
CN111245794B (zh) * | 2019-12-31 | 2021-01-22 | 中科驭数(北京)科技有限公司 | 数据传输方法和装置 |
US11283719B2 (en) | 2020-07-13 | 2022-03-22 | Google Llc | Content addressable memory (CAM) based hardware architecture for datacenter networking |
US12040988B2 (en) | 2021-05-25 | 2024-07-16 | Google Llc | Acknowledgement coalescing module utilized in content addressable memory (CAM) based hardware architecture for data center networking |
CN113905100B (zh) * | 2021-09-29 | 2024-09-06 | 济南浪潮数据技术有限公司 | 动态控制客户端重传请求的方法、系统、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1458590A (zh) * | 2002-04-30 | 2003-11-26 | 微软公司 | 用网络栈同步和上载已卸载网络栈连接的方法 |
Family Cites Families (189)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US212889A (en) * | 1879-03-04 | Improvement in road-engines | ||
JPS61257043A (ja) * | 1985-05-10 | 1986-11-14 | Nec Corp | 高速フレ−ム伝送方式 |
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 |
JPS6461145A (en) * | 1987-09-01 | 1989-03-08 | Fujitsu Ltd | Retransmission timing setting system for control signal in remote control system |
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 |
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 | 日本電気株式会社 | マルチメディアパケット通信方式 |
WO1994022253A1 (en) | 1993-03-20 | 1994-09-29 | International Business Machines Corporation | Method and apparatus for extracting connection information from protocol headers |
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 | 株式会社日立製作所 | 通信制御装置および通信制御用回路装置 |
EP0727076B1 (en) | 1993-11-02 | 1997-10-22 | Taligent, Inc. | Object-oriented graphic system and method |
BR9407962A (pt) | 1993-11-02 | 1996-12-03 | Paracom Corp | Aparelho para processamento acelerado de transaçoes com base de dados de computador |
US5524110A (en) | 1993-11-24 | 1996-06-04 | Intel Corporation | Conferencing over multiple transports |
WO1995015524A1 (en) * | 1993-12-02 | 1995-06-08 | 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 |
US5579316A (en) | 1994-05-02 | 1996-11-26 | Adtran | Communications technique for transmitting limited size digital data frames using macro headers to represent multiple header code patterns associated with encapsulation protocols and signal processing operations to which transmitted data are subjected |
US5650941A (en) * | 1994-09-07 | 1997-07-22 | Intel Corporation | Computer architecture for creating and manipulating displayable objects |
US5870549A (en) * | 1995-04-28 | 1999-02-09 | Bobo, Ii; Charles R. | Systems and methods for storing, delivering, and managing messages |
US5675507A (en) | 1995-04-28 | 1997-10-07 | Bobo, Ii; Charles R. | Message storage and delivery system |
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 |
US5598535A (en) | 1994-08-01 | 1997-01-28 | International Business Machines Corporation | System for selectively and cumulatively grouping packets from different sessions upon the absence of exception condition and sending the packets after preselected time conditions |
US5485460A (en) * | 1994-08-19 | 1996-01-16 | Microsoft Corporation | System and method for running multiple incompatible network protocol stacks |
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 | ネットワークインタフェースおよび計算機ネットワークシステム |
US5566170A (en) | 1994-12-29 | 1996-10-15 | Storage Technology Corporation | Method and apparatus for accelerated packet forwarding |
US5598410A (en) * | 1994-12-29 | 1997-01-28 | Storage Technology Corporation | Method and apparatus for accelerated packet processing |
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 |
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 |
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 |
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 |
US5983332A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5754556A (en) * | 1996-07-18 | 1998-05-19 | Teradyne, Inc. | Semiconductor memory tester with hardware accelerators |
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 |
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 |
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 |
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 |
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 |
JP2000514944A (ja) | 1997-05-08 | 2000-11-07 | アイレディー コーポレイション | オブジェクト指向プログラミング言語のためのハードウェア加速器 |
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 |
US5999974A (en) | 1997-08-29 | 1999-12-07 | International Business Machines Corporation | Internet protocol assists for high performance LAN connections |
US6014699A (en) * | 1997-08-29 | 2000-01-11 | 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 |
US6061742A (en) * | 1997-10-10 | 2000-05-09 | Nortel Networks Corporation | Computer network adaptor |
US7284070B2 (en) | 1997-10-14 | 2007-10-16 | Alacritech, Inc. | TCP offload network interface device |
US7174393B2 (en) | 2000-12-26 | 2007-02-06 | 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 |
US6470415B1 (en) | 1999-10-13 | 2002-10-22 | Alacritech, Inc. | Queue system involving SRAM head, SRAM tail and DRAM body |
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US7237036B2 (en) | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US6591302B2 (en) | 1997-10-14 | 2003-07-08 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US6427173B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
US7089326B2 (en) | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US7167927B2 (en) * | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US6687758B2 (en) | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US7076568B2 (en) | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
US6697868B2 (en) * | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
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 |
US7042898B2 (en) | 1997-10-14 | 2006-05-09 | Alacritech, Inc. | Reducing delays associated with inserting a checksum into a network message |
US6658480B2 (en) | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6389479B1 (en) | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6807581B1 (en) | 2000-09-29 | 2004-10-19 | Alacritech, Inc. | Intelligent network storage interface system |
US6226680B1 (en) * | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
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 |
US6122670A (en) | 1997-10-30 | 2000-09-19 | Tsi Telsys, Inc. | Apparatus and method for constructing data for transmission within a reliable communication protocol by performing portions of the protocol suite concurrently |
US6061368A (en) * | 1997-11-05 | 2000-05-09 | Xylan Corporation | Custom circuitry for adaptive hardware routing engine |
JPH11163869A (ja) * | 1997-11-26 | 1999-06-18 | Oki Electric Ind Co Ltd | 伝送方法及び装置 |
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 |
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 |
US6430628B1 (en) | 1998-12-08 | 2002-08-06 | Intel Corporation | Method and apparatus for reducing direct memory access transfers using smart coalescing |
CN1305681C (zh) | 1998-12-16 | 2007-03-21 | 西尔弗布鲁克研究有限公司 | 覆盖转印辊的打印头 |
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 |
US6952409B2 (en) * | 1999-05-17 | 2005-10-04 | Jolitz Lynne G | Accelerator system and method |
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 |
TW448407B (en) | 1999-11-18 | 2001-08-01 | Iready Corp | Hardware accelerator for an object-oriented programming language |
TW447205B (en) | 1999-11-18 | 2001-07-21 | Iready Corp | Multiple network protocol encoder/decoder and date processor |
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 |
AU2001238321A1 (en) | 2000-02-16 | 2001-08-27 | Goamerica, Inc. | Document creation and scheduling of applications' jobs |
US7013485B2 (en) | 2000-03-06 | 2006-03-14 | I2 Technologies U.S., Inc. | Computer security system |
US7328349B2 (en) | 2001-12-14 | 2008-02-05 | Bbn Technologies Corp. | Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses |
TW487862B (en) | 2000-09-19 | 2002-05-21 | Taipei Online Technology Co Lt | Customer relationship management system achieved by a communication network |
US8019901B2 (en) | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
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 |
US7301899B2 (en) | 2001-01-31 | 2007-11-27 | Comverse Ltd. | Prevention of bandwidth congestion in a denial of service or other internet-based attack |
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 |
GB2394095A (en) * | 2001-05-31 | 2004-04-14 | Espeed Inc | Securities trading system with multiple levels-of-interest |
WO2003005672A2 (en) * | 2001-07-06 | 2003-01-16 | Livedevices Limited | Improvements relating to reduction of resource usage in tcp/ip implementation |
US6980551B2 (en) * | 2001-07-12 | 2005-12-27 | International Business Machines Corporation | Full transmission control protocol off-load |
WO2003021447A1 (en) * | 2001-08-31 | 2003-03-13 | Adaptec, Inc. | Methods and apparatus for partially reordering data packets |
US7020716B2 (en) * | 2001-08-31 | 2006-03-28 | Adaptec, Inc. | Method and system for verifying the hardware implementation of TCP/IP |
US20030046330A1 (en) * | 2001-09-04 | 2003-03-06 | Hayes John W. | Selective offloading of protocol processing |
US8255567B2 (en) * | 2001-09-06 | 2012-08-28 | Broadcom Corporation | Efficient IP datagram reassembly |
US7620692B2 (en) * | 2001-09-06 | 2009-11-17 | Broadcom Corporation | iSCSI receiver implementation |
US7953093B2 (en) * | 2001-09-06 | 2011-05-31 | Broadcom Corporation | TCP/IP reordering |
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 |
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 |
US7496689B2 (en) * | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
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 |
US7007103B2 (en) * | 2002-04-30 | 2006-02-28 | Microsoft Corporation | Method to offload a network stack |
US7313623B2 (en) * | 2002-08-30 | 2007-12-25 | Broadcom Corporation | System and method for TCP/IP offload independent of bandwidth delay product |
WO2004021150A2 (en) | 2002-08-30 | 2004-03-11 | Broadcom Corporation | System and method for tpc/ip offload independent of bandwidth delay product |
US7519650B2 (en) * | 2002-09-05 | 2009-04-14 | International Business Machines Corporation | Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms |
US7191241B2 (en) | 2002-09-27 | 2007-03-13 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US7337241B2 (en) | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20040088262A1 (en) | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
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 |
US6996070B2 (en) | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
DE102005041460A1 (de) * | 2005-08-31 | 2007-03-01 | Daimlerchrysler Ag | Umformwerkzeugsystem und Verfahren zu seiner Herstellung |
-
2003
- 2003-12-19 US US10/741,978 patent/US8549170B2/en active Active
-
2004
- 2004-12-17 EP EP04030037A patent/EP1545042B1/en active Active
- 2004-12-17 TW TW093139551A patent/TW200537877A/zh unknown
- 2004-12-17 DE DE602004019383T patent/DE602004019383D1/de active Active
- 2004-12-20 JP JP2004368572A patent/JP2005192216A/ja active Pending
- 2004-12-20 CN CN2004101049810A patent/CN1638319B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1458590A (zh) * | 2002-04-30 | 2003-11-26 | 微软公司 | 用网络栈同步和上载已卸载网络栈连接的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1638319A (zh) | 2005-07-13 |
JP2005192216A (ja) | 2005-07-14 |
US8549170B2 (en) | 2013-10-01 |
DE602004019383D1 (de) | 2009-03-26 |
EP1545042B1 (en) | 2009-02-11 |
EP1545042A3 (en) | 2005-09-07 |
US20050149632A1 (en) | 2005-07-07 |
EP1545042A2 (en) | 2005-06-22 |
TW200537877A (en) | 2005-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1638319B (zh) | 用于传输卸载引擎的重发系统和方法 | |
JP4587053B2 (ja) | 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム | |
US20080049617A1 (en) | System for fine grained flow-control concurrency to prevent excessive packet loss | |
US7031263B1 (en) | Method and apparatus for network management system | |
CA2385899A1 (en) | System and method for managing connections between a client and a server | |
US20060271680A1 (en) | Method For Transmitting Window Probe Packets | |
CN110460412A (zh) | 用于数据传输的方法和rdma网卡 | |
CN104065465A (zh) | 一种报文重传的方法、请求端、响应端以及系统 | |
EP1225741B1 (en) | High speed interconnection for embedded systems within a computer network | |
CN110266446B (zh) | 一种基于sack模式调整乱序时长的方法和装置 | |
EP1427127A2 (en) | Communication control method, communication system and communication apparatus that can improve throughput | |
KR100932968B1 (ko) | 호스트 컴퓨터의 개입이 없는 toe의 tcp 재전송 처리방법 | |
JP6182779B1 (ja) | 転送装置、転送方法およびプログラム | |
JP3148733B2 (ja) | 信号処理装置及び信号処理システム | |
JP2004260562A (ja) | パケット送受信方法、及び装置 | |
JPH09298578A (ja) | デジタル通信におけるデータ保証方法およびデータ保証システム | |
US20220328154A1 (en) | Method and system for managing therapy plan data, and data exchange device | |
JPS63246055A (ja) | パケツト送受信装置 | |
CN114759965A (zh) | 数据包传输方法、装置、存储介质 | |
JPH04273736A (ja) | パケット通信システムおよびパケット再送装置 | |
CN116055009A (zh) | 数据传输方法及相关装置 | |
CN115442454A (zh) | 打印数据传输方法、传输系统及打印设备 | |
JPH055210B2 (zh) | ||
JPH06112973A (ja) | パケット再送方式 | |
CN117834094A (zh) | 一种网络数据重传方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |