CN1679015A - 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 - Google Patents
用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 Download PDFInfo
- Publication number
- CN1679015A CN1679015A CN03820357.XA CN03820357A CN1679015A CN 1679015 A CN1679015 A CN 1679015A CN 03820357 A CN03820357 A CN 03820357A CN 1679015 A CN1679015 A CN 1679015A
- Authority
- CN
- China
- Prior art keywords
- tcp
- toe
- main frame
- link variable
- variable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- 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]
- H04L12/2854—Wide area networks, e.g. public data networks
- H04L12/2856—Access arrangements, e.g. Internet access
- H04L12/2869—Operational details of access network equipments
- H04L12/2898—Subscriber equipments
-
- 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]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- 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/37—Slow start
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/10—Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/141—Denial of service attacks against endpoints in a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的方面可包括TCP卸载,该卸载可包括从至少一个TCP连接获得TCP连接变量并且使用获得的TCP连接变量管理至少一个TCP连接。可以更新至少一部分获得的TCP连接变量,并可将至少一部分更新的TCP连接变量传送回主机。在本发明的一个方面中,TCP连接变量可以是独立于带宽延迟产品的变量。可由主机使用至少一部分更新的TCP连接变量以处理该TCP连接或另一个TCP连接。主机可将变量推入栈中,TOE可从栈取出变量。同样,可由TOE将更新的TCP连接变量推入栈中,并由主机从栈取出变量。
Description
对相关申请的交叉引用/通过引用结合
本申请参考、要求优先权并要求获益于:
2002年9月6日提交的题为“用于TCP/IP卸载的系统和方法(System andMethod for TCP/IP Offload)”的美国临时专利申请,其序列号为60/408,617。以及
2002年8月30日提交的美国临时专利申请,其序列号为60/407,165。
上述申请通过引用完整地结合在本文中。
技术领域
本发明的某些实施例涉及TCP数据和相关TCP信息的处理。更具体地,本发明的某些实施例涉及用于独立于带宽延迟产品的TCP/IP卸载的系统和方法。
背景技术
传输控制协议(TCP)的初始开发是以当前可用的连网和处理能力为基础。因此,关于其操作的各种基本设想开始于那时存在的连网和处理技术。在此设想中(TCP开始于其上)中包括可为主处理器所使用的带宽和部分无限制处理资源的缺乏和高价。随着诸如吉比特以太网(GbE)技术的出现,这些基本设想已经根本上转移到一个位置,在该位置上带宽不再缺乏和昂贵,并且现在认为主机处理资源是有限的而不是几乎无限的。在这方面,瓶颈已从网络带宽转移到主机处理带宽。由于主机处理系统并不仅仅提供快速的网络连接,转移网络资源以提供足够快速的网络连接对于获得设想中的基本变化是微不足道的。需要注意的是,转移网络资源以提供足够快速的网络连接应该以执行系统应用为代价,因而导致系统性能的降低。
虽然能够建立新的连网结构和协议来实现设想中的基本转移,新的系统结构和协议仍需对现有系统和传统系统提供支持。因此,需要解决为实现设想中的转移并消除由主机处理系统而形成的任何瓶颈。可以利用传输控制协议卸载引擎(TOE)将来自专用处理器上的主系统的TCP处理重新分配,该专用处理器可以具有合适的软件用于处理TCP处理。可将TCP卸载引擎配置为实现不同的TCP算法,用于处理快速网络连接,从而使得可以将主系统处理资源分配或重新分配给应用处理。
为了减少主机资源的消耗,可以将TCP连接从主机卸载到专用的TCP/IP卸载引擎(TOE)。这些主机资源中的一些主机资源可以包括CPU(中央处理器)周期和子系统存储器带宽。在卸载过程中,将TCP连接状态信息从主机(例如从主机软件栈)卸载到TOE。在给定时间那,TCP连接可以处于多个状态中的任何一个状态中。为了处理TCP连接,可采用TCP软件来管理各种TCP定义状态。能够管理不同的TCP定义状态可能需要TOE中结构高度复杂。
用于处理连接到TOE的TCP连接的卸载状态信息可能不一定是最佳的解决方案,这是由于诸如CLOSING、LAST_ACK和FIN_WAIT_2的许多状态可能不是性能灵敏的。此外,许多这样的非性能灵敏状态可能消耗相当多的处理资源以处理例如差错条件和潜在的恶意攻击。这些仅仅是显著增加建立并涉及TOE费用的因素中的几个。另外,来自主机、控制TCP连接的所有状态变量的TOE可能相当复杂,其可使用相当多的能量,并可能需要和消耗许多板内存储器。此外,卸载到TOE的TCP连接(其是从主机传送来,可控制TCP连接的所有状态变量)对于连接损耗而言可以是不可改变的和可以接受的。
TCP分段是可允许将很小一部分TCP处理卸载到网络接口卡(NIC)的技术。在这点上,支持TCP分段的NIC并不是真正结合完整的传输控制处理卸载引擎。相反,支持TCP分段地NIC仅仅有能力将出站TCP块分割成与物理介质所支持的包相同大小的包。每一个出站TCP块小于允许的TCP窗口大小。例如,支持TCP分段的以太网络接口卡可以将4KB的TCP数据块分割成3个以太网包。以太网包的最大尺寸是1518字节(包括报头和拖尾CRC)。
支持TCP分段的设备跟踪某些TCP状态信息(诸如与卸载NIC所分割的数据相关的TCP序列号)。然而,可支持TCP分段的设备并不跟踪与入站业务相关的状态信息或支持TCP确认或流控制所需的任何状态信息。在建立的状态中支持完全TCP卸载的NIC负责处理TCP流控制、负责处理输入TCP确认并产生用于输入数据的出站TCP确认。
可将TCP分段看成是TCP卸载的子集。TCP分段允许协议栈或操作系统传送信息到设备驱动器,该信息是以还没有分割为单独TCP包的TCP数据块的形式。数据块可以大于以太网包的大小。例如,索要分割的数据块可以是4K字节或16K字节。与设备驱动器相关联的网络适配器可以获得TCP数据块,将获得的TCP数据块分为1518字节的以太网包并更新每个递增产生的包中的某些字段。例如,网络适配器可通过逐渐增加每一个包的TCP序列号来更新每个TCP包的对应TCP序列号。在另一个示例中,也可以为每个包更新IP识别(IP ID)字段和标识字段。TCP分段的一个限制是可能仅仅在小于TCP窗口大小的数据块上实现TCP分段。这是由于实现TCP分段的设备对于TCP流控制没有影响,相应地,实现TCP流控制的设备仅仅分割出站数据。
TCP分段设备并不检查输入包,因此,TCP分段对于流控制没有影响。将任何接收确认包传送到主机用于处理。在这点上,不是由TCP分段设备处理用于流控制的确认包。此外,TCP分段设备并不执行拥塞控制或“慢起动”,并且不计算或修改发送回操作系统和/或主系统处理器的任何变量。
TCP分段的另一个限制是TCP分段所跟踪的信息只是对TCP数据的寿命而言恰当的信息。在这点上,例如,TCP分段设备可跟踪TCP分段号,但不跟踪TCP确认(ACK)号。相应地,TCP分段设备仅仅跟踪与对应TCP数据相关的信息的最小子集。这限制了TCP分段设备的能力和/或功能性。TCP分段的另一个限制是TCP分段设备并不将TCP处理信息传送回操作系统和/或主处理器。缺乏反馈限制了TCP处理,否则,可通过操作系统和/或主系统处理器实现TCP处理。
通过将这种系统与参考附图的本发明的剩余部分所阐述的本发明的一些方面比较,对于本领域的技术人员而言,常规和传统方法的其它限制和缺点将变得显而易见。
发明内容
可在例如提供TCP/IP卸载的系统和方法中发现本发明的方面。在本发明的一个实施例中,用于TCP/IP卸载的系统可包括例如主机和TCP/IP卸载引擎(TOE)。该主机可连接到TOE。主机可将与TCP连接相关联的至少一部分TCP连接变量的控制传送到TOE。所述TOE可更新至少一部分TCP连接变量并将更新的TCP连接变量传送或反馈回所述主机。
根据本发明的另一个实施例,提供了用于TCP连接卸载的系统。该系统包括例如主机和可连接到所述主机的网络接口卡(NIC)。对于卸载到所述NIC的特定连接而言,在主机和NIC之间划分状态信息的控制。相应地,可将信息传送到NIC,NIC可更新至少一部分传送的信息。随后,NIC可将至少一部分更新信息传送回主机,其中主机可使用该信息来管理这一和/或另一个连接。
在另一个实施例中,本发明能够可提供用于TCP/IP卸载的方法。该方法可包括以下步骤中的一个或多个:确定将来自主机的特定TCP连接卸载到TOE;将与特定TCP连接相关联的至少一部分连接变量的控制从主机传送到TOE;发送剩余连接变量的快照(没有将所述剩余连接变量的控制传送到TOE);并且使用传送到TOE的连接变量和/或使用快照经由TOE管理特定TCP连接。可将与TCP连接相关联的至少一部分更新连接变量和/或快照变量传送回主机,用于由主机处理。
TCP/IP卸载方法的另一个实施例可包括下面步骤中的一个或多个:确定将建立的TCP连接从主机卸载到TOE;将段可变变量的控制从主机传送到TOE;将段可变变量的快照和连接不变变量发送到TOE;以及基于段可变变量和快照经由TOE独立处理输入TCP包。TOE可更新至少一部分段可变变量和快照并将至少一部分段可变变量和快照传送回主机。在本发明的一个实施例中,主机可处理所有的TCP状态(除了可将其卸载到TOE的的“建立”状态以外)。
本发明还包括处理TCP连接的方法,该方法可包括下面步骤中的一个或多个:建立TCP连接;共享用于主机和TOE之间的TCP连接的控制面;并且将更新的TCP连接变量从TOE传送回主机。相应地,可使用至少一部分更新的TCP连接变量来控制TCP连接和/或另一个TCP连接。
在本发明的另一个实施例中,用于TCP卸载的方法可包括获得来自主机的TCP连接变量并使用获得的TCP连接变量来管理至少一个TCP连接。可更新至少一部分获得的TCP连接变量,并可将至少一部分更新的TCP连接变量传送回主机。TCP连接变量可独立于带宽延迟产品。可由主机使用至少一部分更新的TCP连接变量以处理TCP连接或另一个TCP连接。可使用栈来传送至少主机和TOE之间的TCP连接变量。在这点上,TOE可从栈移去TCP连接变量,并且主机可将TCP连接变量加到栈上。同样,可由TOE将更新的TCP连接变量置于栈上,并且主机可随后从移去更新的TCP连接变量。
本发明还可提供机器可读存储,将具有至少一个代码段的计算机程序存储在该机器可读介质上,用于提供TCP卸载。可由机器执行至少一个代码段,用于使机器执行步骤,该步骤可包括从主机获得TCP连接变量并使用获得的TCP连接变量管理至少一个TCP连接。可更新至少一部分获得的TCP连接变量并将其传送回主机。TCP连接变量可以独立于带宽延迟产品。机器可读存储还可包括代码,用于使用至少一部分更新的TCP连接变量来处理TCP连接或另一个TCP连接。在本发明的另一方面,机器可读存储可包括用于从栈移去TCP连接变量的代码,用于将更新的TCP连接变量加到栈上的代码,以及用于从栈移去连接变量的代码。
通过以下描述和附图,将更加全面地理解本发明的这些和其它优点、方面和新颖性特征以及本发明图示实施例的细节。
附图说明
图1是根据本发明一个实施例的提供TCP/IP卸载的系统的框图;
图2是流程图,示出根据本发明一个实施例的用于TCP/IP卸载的示例性步骤;
图3是流程图,示出根据本发明一个实施例的用于提供TCP/IP卸载的示例性步骤;
图4是流程图,示出根据本发明的一个实施例的可用于TCP卸载的示例性步骤。
具体实施方式
本发明的某些实施例可提供用于TCP卸载的方法,该方法可包括从主机获得TCP连接变量并使用获得的TCP连接变量管理至少一个TCP连接。可以更新至少一部分获得的TCP连接变量并可将至少一些更新的TCP连接变量传送回主机。根据本发明的一个方面,TCP连接变量可以是独立于带宽延迟产品(product)的变量。可由主机使用至少一部分更新的TCP连接变量来处理TCP连接或另一个TCP连接。可使用栈来传送至少主机和TOE之间的TCP连接变量。在这点上,主机可将TCP连接变量推入(push)栈中,TOE可从栈取出(pull)TCP连接变量。同样,可由TOE将更新的TCP连接变量置于栈上,主机随后可从栈取出更新的TCP连接变量。
关于TCP分段,每一个出站TCP块小于TCP分段所使用的允许TCP窗口大小。然而,本发明并不局限在这种考虑中。相应地,在本发明的一个方面中,TOE设备可具有提供比支持TCP分段的设备更进一步的TCP处理和卸载能力。本发明能够的不同方面可以克服TCP分段限制,在所述限制中仅仅可以在小于TCP窗口大小的数据块上执行TCP分段。在这点上,为了克服这种限制,根据本发明的一个方面,由于TOE支持TCP流控制管理,TOE可适用于将大的数据块分割为单独的包。TOE可确认安排了传输以使发送者发送数据永远不会超出TCP窗口。此外,可超出TCP窗口大小来实现根据本发明一个实施例的分包。TOE接收输入接收包(它们是用于出站TCP数据流的确认包)并确认那些出站包。如果确认包使窗口大小增加,那么可由TOE设备根据本发明的一个方面发送更多的包。
虽然TCP分段仅仅是与发射相关的技术,该技术并不限制传送包的TCP处理,根据本发明不同实施例的TOE并非如此有限。在这点上,根据本发明一个实施例的TOE可处理并管理发送和接收包。此外,可由根据本发明的TOE而非TCP分段设备实现更大范围上的TCP处理和管理。例如,使用TOE,可以以将NIC看成TCP连接的所有者的方式将TCP信息从操作系统和/或主系统处理器传送到NIC。然后NIC可管理并更新TCP状态信息,该TCP状态信息可包括,但不局限于TCP段号和确认号。在处理和/或更新TCP状态信息之后,可将处理和/或更新的信息传送回操作系统和/或主系统处理器。然后主机和系统处理器可使用从NIC传送回的信息。需要注意的是,TCP分段并不提供将信息反馈到主系统处理器和/或操作系统。
本发明的某些实施例还可包括增强和高效的传输控制协议/互联网协议(TCP/IP)卸载方案,该方案适用于允许划分TCP/IP卸载引擎(TOE)和主TCP/IP实现之间的TCP处理。主TCP/IP实现可包括一个或多个主TCP/IP应用以及一个或多个主处理器。例如,在本发明的一个方面中,TCP卸载方案可将处于“建立”状态的连接卸载到TOE。换而言之,本发明的方面可包括在“建立”状态期间使用的对应的TCP状态变量的卸载。相应地,TCP/IP卸载调度可将主机软件和TOE间的TCP控制面划开。可将TOE设计为实现TCP控制面的子集或最小子集,其实现可能不复杂,并且可使用更少的存储器。可以以经济的方式实现适用于这种卸载方案的TOE。可以由主机软件处理TCP连接管理的更复杂的方面,并且TCP连接管理的更复杂的方面可提供更好的可靠性和灵活性。
图1是根据本发明的一个实施例的提供TCP/IP卸载的系统的框图。参考图1,系统可包括主机1、主机应用软件12和TOE 20。主机10可包括主CPU30和主存储器40。主存储器40可适用于包括应用缓冲器50。应用缓冲器50可适用于包括传输应用缓冲器(TxBuf)60和接收应用缓冲器(RxBuf)70。TOE 20可包括直接存储器存取(DMA)引擎25和FIFO缓冲器70。
可经由主机接口80将主机10连接到TOE 20。主机接口可包括但不局限于外部组件互连(PCI)总线、PCI-X总线、ISA、SCSI和任何其它合适的总线。可将TOE 20连接到物理通信介质90。物理通信介质90可以是有线介质、无线介质或二者的组合。物理通信介质90可以包括,但不局限于以太网和光纤信道。虽然在主机接口80的另一侧上示出了主机10,可至少部分地将主机10布置在网络接口卡(NIC),网络接口卡包括TOE 20。相应地,在本发明的一个方面中,可以在主机10和TOE 20之间划分TCP状态平面。
在一个实施例中,可通过例如三组不同的变量完整地描述TCP连接。三组变量可以是例如连接不变变量、段不变变量和段可变变量。在TCP连接的寿命期间,连接不变变量可以是恒定的。在TCP连接的寿命期间,段不变变量不可以从TCP段变为TCP段,但可以经常变化。段可变变量可以从TCP段变为TCP段。
连接不变变量可包括例如源IP地址、目的IP地址、IP使用期限(TTL)、IP服务类型(TOS)、源TCP端口号、目的TCP端口号、初始发送序列号、初始接收序列号、发送窗口比例因数和接收窗口比例因数。
段不变变量可包括,但不局限于源MAC地址、下一跳变MAC地址、MAC层封装、有效最大段大小、保活间隔和最大公差和标志(例如内戈尔(Nagle)算法起动和保活起动)。
段可变变量可包括,但不局限于IP包标识符、发送和接收序列变量(诸如第一未确认数据(SND_UNA)的序列号、发送的最大序列号(SND_MAX)、下一发送的序列号(SND_NXT)、已发送的最大序列号(SND_MAX)、最大发送窗口(MAX_WIN)、下一接收的序列号(RCV_NXT)和接收窗口大小(RCV_WND))。附加的示例性段可变变量可包括拥塞窗口变量(诸如拥塞窗口(SND_CWIN))和慢起动阈值(SSTHRESH)往返时间变量(其可包括但不局限于平滑往返时间(RTT)和平滑增量(DELTA))。其它示例性段可变变量可包括用于重传的剩余时间、用于延迟确认的剩余时间、用于保活的剩余时间、用于推入(PUSH)和TCP状态和时间戳的剩余时间。
在操作期间,如果没有卸载TCP连接,那么主机10的主机软件可拥有三组变量(包括连接不变变量、段不变变量和段可变变量)中的至少一些。如果没有卸载TCP连接,则TOE20不可访问这些变量。然而,一旦卸载了变量,可将TOE 20配置为更新与传输和接收相关联的变量并将更新的传输和接收变量传送回主机10。在这点上,TOE可更新独立与TCP延迟带宽产品的变量并将这些更新的变量传送回主机10用于处理。
图2是流程图,其示出根据本发明的一个实施例的用于TCP/IP卸载的示例性步骤。参考图2,如果将连接卸载到TOE 20,那么在步骤202中,主机软件可将段可变变量的控制传送到TOE 20。在一个示例中,可以将一部分主机软件协议控制块或TCP控制块传送到TOE 20。在步骤204中,主机软件可获得剩余变量(诸如连接不变变量和/或段不变变量)的快照并将该快照发送到TOE 20。在一个示例中,可以有TOE 20一再反复使用快照。在步骤206中,主机软件可以将缓冲器附着在主存储器40中。例如,主机软件可以在主存储器40中附着应用缓冲器50并可在应用缓冲器50中建立发射应用缓冲器(TxBuf)60和接收应用缓冲器(RxBuf)70。在步骤208中,TOE 20负责管理整个TCP连接(包括例如分段、确认处理、开窗和拥塞避免)。在步骤210中,可将已经更新的至少一部分变量传送回主机用于处理。
例如,通过控制段可变变量并使用剩余变量的快照,TOE 20可处理和独立处理来自物理通信介质90的输入TCP段,并可经由DMA引擎25将输入TCP段的至少一部分(诸如负载)置于主存储器40中。在这点上,可经由DMA引擎25将输入TCP段负载置于应用缓冲器50的RX应用缓冲器70部分。
在本发明的一个实施例中,虽然TOE 20可适用于管理整个TCP连接,TOE20可对卸载段可变变量进行完整的读—写存取,并且可完整地对卸载段可变变量进行更新。主机软件和主机应用软件12可对段不变变量进行读—写存取。TOE 20可对段不变变量进行读—写存取。如果主机应用软件12改变变量(诸如下一跳变的MAC地址),主机应用软件12可通过例如将消息发送到TOE 20的方式来通知TOE 20。TOE 20然后可更新该变量。可将更新的变量反馈给主机应用软件12,在主机应用软件上这些软件可用于例如TCP处理。相应地,连接不变变量可存在于主机软件和TOE 20中。
图3是流程图,示出了根据本发明一个实施例的用于提供TCP/IP卸载的示例性步骤。参考图3,在步骤302中,主机10可确定主机10所控制的一个或多个连接变量(诸如段不变变量)是否已经改变。例如,主机软件可改变一个或多个变量(诸如下一跳变MAC地址)。如果主机10所控制的一个或多个连接变量没有改变,那么过程可能是完整的。如果主机10所控制的一个或多个连接变量改变,那么在步骤304中,主机软件可将主机10所控制的一个或多个连接变量的改变通知TOE 20。在步骤306中,TOE 20可相应地更新一个或多个变量。在步骤308中,TOE可将更新的变量传送回主机10。
根据本发明的一些实施例可包括以下优点中的一个或多个。一些实施例可能是更可靠的,并且可以在任何时间提供从TOE到主机的连接的上载,以及从主机到TOE的连接的卸载。由于TOE硬件可维持少量状态信息,可以加速选择连接的更新和卸载。可通过对段可变变量的返回控制将卸载连接上载回主机10,该段可变变量与卸载连接对应。随后可通过将与上载的连接对应的段可变变量的控制传送到TOE 20的方式来卸载上载的连接。
图4是流程图,示出根据本发明一个实施例的可用于TCP卸载的示例性步骤。参考图4,在步骤402中,TOE可从主机系统获得或接收独立于带宽延迟产品的变量。在步骤404中,TOE可使用获得的或接收的独立于带宽延迟产品的变量来管理连接。在步骤406中,TOE可更新接收变量(独立于带宽延迟产品)的至少一部分。在步骤408中,可以将独立于带宽的至少一部分更新的变量传送回主机。在步骤410中,主机可使用传送给它的独立于带宽延迟产品的更新的变量,用于TCP处理。
根据本发明的一个方面,可使用栈14来实现独立于带宽延迟产品的变量的传送。可以用硬件、软件或硬件软件的结合来实现栈14。虽然TOE可适用于从栈14取出消息并将更新的信息推入栈14中。主机也可适用于将TCP信息推入栈14中并从栈14取出更新的信息。相应地,参考步骤402,TOE可从栈14取出独立于带宽延迟产品的变量。参考步骤406,在TOE更新了获得的独立于带宽延迟产品的变量之后,可将更新的独立于带宽延迟产品的变量推入栈14中。在这点上,参考步骤408,然后主机可从栈14取出更新的独立于带宽延迟产品的变量。
与TCP分段卸载设备相比,TOE可提供更灵活的TCP处理方法,因为TCP设备可实现在接收侧和发射侧上的TCP处理。附加地,由于TOE可适用于处理接收和发射变量,TOE提供更加灵活和高效的方法,用于支持网络连接的高效建立和拆除。
本发明的某些实施例可更好地抵抗拒绝服务(DoS)攻击或其它攻击,这是由于可由比TOE NIC更加灵活和更加强大的主机处理连接建立。在DoS攻击中,攻击者尝试在目标和受攻击的系统中消耗更多的资源,从而防止目标系统为其它网络设备提供服务。新的攻击的频繁引入可以为具有足够存储器和CPU功率的灵活的主机提供更好的运行连接建立的选择。灵活的主机可能是比特定硬件TOE更好的选择,特定硬件TOE具有有限的代码空间、计算机功率、系统知识和灵活性。此外,接收连接请求的决定经常可能基于例如复杂和动态的直观推断。
本发明的方面也可提供更好的综合系统性能和效率。在处理处于TCP状态机的性能灵敏状态中的连接期间,TOE NIC可能是更高效的。具体地,当TOE NIC仅仅处理处于TCP状态机的性能灵敏状态中的连接时,附加的有限硬件资源可能变为可用的。相应地,TOE NIC可适用于上载不再处于性能灵敏状态中的连接并且卸载处于性能灵敏状态中的连接。这种动作确实可以影响这样的特征形态,诸如硬件TOE效率。本发明的其它方面可能是更加高效的并且可以提供更好的综合全系统性能,这是由于主机可以使用灵活的、变化的、易于更新的、易于升级的和更加复杂的算法来确定卸载或者上载哪个连接。
本发明的一些实施例可以为主机提供与资源利用相关的统计。该统计可包括以下的一个或多个:有效资源;每个卸载连接的带宽的使用;每个卸载连接的帧的数量;每个卸载连接的差错;传输层协议(TLP)(例如TCP)和高层协议(ULP)的状态的改变;使用倾向(例如以摄入(以百分率表示)、减速);以及每个卸载连接的资源消耗。由主机随意决定使用统计信息以帮助驱动上载或卸载决定过程。例如,当卸载其它连接时,主机可使用统计信息来上载一些连接。主机也可考虑其它的标准,例如操作模式、计算或网络负载分布、当前执行的应用以及网络中的任务。这些标准中的一些可以是动态标准。
本发明的某些实施例也可提供从发生故障的TOE NIC到操作中的TOENIC的故障切换支持。故障切换可以包括例如,当从网络拔除网络电缆或者现有网络链路发生任何故障时,将NIC指定为具有故障。这样,即使一个TOE NIC的硬件发生故障,仍然可以通过将与发生故障的TOE NIC相关联的状态信息传送到另一个功能TOE NIC来维持连接。可通过由主机所维持的一部分连接状态信息以及TOE NIC所维持的一部分连接状态信息来进一步增强传送的稳健性。
相应地,本发明可以用硬件、软件或硬件和软件的结合来实现。可以用一个计算机系统中的集中方式或者用分布方式(其中不同的元件散布在若干个互连的计算机系统上)来实现本发明。适用于执行本文所述方法的任何种类的计算机系统和其它装置都是适合的。典型的硬件和软件的结合可以是具有计算机程序的通用计算机,当加载并执行该计算机程序时,其控制计算机系统以使其执行本文所述的方法。
也可将本发明嵌入计算机产品中,该计算机产品包括能执行本文所述方法的所有特征,当在计算机系统中加载该计算机程序时可执行这些方法。本发明内容中的计算机程序可以是用任何语言、代码或符号的指令集的表达式,该指令集用于使具有信息处理能力的系统直接、在以下过程的任意一个之后或者在以下两个过程之后执行特定功能:a)转换为另一种语言,代码或者符号;b)以不同物质形式再现。
虽然已经参考某些实施例描述了本发明,本领域技术人员应该理解在不脱离本发明范围的前提下可以作出各种改变和等价替换。此外,在不脱离该范围的前提下可以作出一些修改以使特定环境或者物质适用于本发明的教学。因此,本发明并不打算局限于所公开的具体实施例,然而本发明将包括落入附属权利要求保护范围中的所有实施例。
Claims (50)
1.一种用于提供TCP/IP卸载的系统,其特征在于,包括:
主机;以及
连接到所述主机的TCP/IP卸载引擎,其中所述主机将至少一部分TCP连接变量的控制传送到所述TOE并且所述TOE将更新的TCP变量提供回给所述主机。
2.根据权利要求1所述的系统,其特征在于:所述主机将段可变TCP连接变量的控制传送到所述TOE,所述TOE将更新的段可变TCP连接变量提供回给所述主机。
3.根据权利要求2所述的方法,其特征在于:所述TCP段可变TCP连接变量还包括:
IP包标识符;
用于重传的剩余时间;
用于延迟确认的剩余时间;
用于保活的剩余时间;
拥塞窗口变量包括:
拥塞窗口;以及
慢起动阈值;
往返时间变量包括:
平滑往返时间;
平滑增量;以及
用于推入的剩余时间;以及
TCP状态和时间戳发送并接收序列变量,所述序列变量包括:
用于第一未确认序列号数据;
用于下一发送的序列号;
已发送的最大序列号;
最大发送窗口;
用于下一接收的序列号;以及
接收窗口大小。
4.根据权利要求1所述的系统,其特征在于,所述主机为所述TOE提供连接不变TCP连接变量和段不变TCP连接变量中的至少一个的快照,所述TOE将更新的连接不变TCP连接变量和段不变TCP连接变量中至少一个传送回所述主机;并且
其中所述TOE使用传送的段可变TCP连接变量和所述连接不变TCP连接变量和所述段不变TCP连接变量中的所述至少一个的所述快照以处理输入和输出TCP段中的至少一个。
5.根据权利要求4所述的系统,其特征在于,所述TOE使用所述传送的段可变TCP连接变量以及连接不变TCP连接变量和段不变TCP连接变量中的至少一个的快照以独立处理输入TCP段。
6.根据权利要求1所述的系统,其特征在于,所述主机为所述TOE提供连接不变TCP连接变量和段不变TCP连接变量的快照。
7.根据权利要求1所述的系统,其特征在于,所述主机为所述TOE提供不是段可变TCP连接变量的TCP连接变量的快照。
8.根据权利要求1所述的系统,其特征在于,所述主机存储由任何TCP连接所使用的至少一个缓冲器、专门用于一个或多个TCP连接的缓冲其和应用缓冲器。
9.根据权利要求1所述的系统,其特征在于,所述TOE管理所述TCP连接。
10.根据权利要求1所述的系统,其特征在于,所述TOE管理分段、确认处理、窗口和拥塞避免中的至少一个。
11.根据权利要求1所述的系统,其特征在于,所述TOE维持对卸载段可变变量进行完整的读-写存取。
12.根据权利要求1所述的系统,其特征在于,所述TOE可完整地对卸载段可变变量进行更新。
13.根据权利要求1所述的系统,其特征在于,所述主机维持对段不变变量进行读写存取。
14.根据权利要求1所述的系统,其特征在于,所述TOE对段不变变量进行只读存取。
15.根据权利要求1所述的系统,其特征在于,
所述主机发送消息到涉及特定TCP连接变量的改变的所述TOE,所述特定连接变量的控制没有传送到所述TOE;并且
所述TOE更新所述特定TCP连接变量。
16.根据权利要求1所述的系统,其特征在于,所述TCP连接是“建立”状态。
17.根据权利要求1所述的系统,其特征在于,所述TCP连接变量是独立于带宽延迟产品的TCP连接变量。
18.根据权利要求1所述的系统,其特征在于,所述主机提供连接建立。
19.根据权利要求18所述的系统,其特征在于,所述系统通过使所述主机可以管理所述连接建立来提供对DoS攻击的抵抗。
20.根据权利要求1所述的系统,其特征在于,所述主机管理除“建立”状态以外的所有TCP状态,所述“建立”状态可被卸载到所述TOE。
21.根据权利要求1所述的系统,其特征在于,所述TOE仅仅处理处于性能灵敏状态的连接。
22.根据权利要求1所述的系统,其特征在于,所述主机在帮助确定卸载哪一条连接和上载哪一条连接的过程中处理资源使用统计。
23.根据权利要求1所述的系统,其特征在于,所述主机确定卸载哪一条连接和上载哪一条连接。
24.根据权利要求1所述的系统,其特征在于,所述TOE和用于所述TOE的设备驱动程序软件中的至少一个确定所要卸载的TCP连接和所要上载的TCP连接中的至少一个。
25.一种用于提供连接卸载的系统,其特征在于,包括:
主机;以及
连接所述主机的网络接口卡,其中,对于卸载到所述网络接口卡的特定连接而言,在所述主机与所述网络接口卡之间划分状态信息的控制,并且所述NIC将用于所述特定连接的至少一部分更新的连接变量上载到所述主机。
26.根据权利要求25所述的系统,其特征在于,所述特定连接采用面向连接的传输层协议。
27.根据权利要求26所述的系统,其特征在于,所述面向连接的传输层协议包括TCP。
28.根据权利要求25所述的系统,其特征在于,所述主机将对应于所述特定连接的段可变变量的控制传送到所述NIC。
29.一种用于提供TCP/IP卸载的方法,其特征在于,包括:
决定将特定TCP连接从主机卸载到TOE;
将所述特定TCP连接的连接变量的控制从所述主机传送到所述TOE,并且将剩余连接变量的快照传送到所述TOE,所述剩余连接变量的控制没有传送到所述TOE;
使用传送到所述TOE的所述至少一部分所述连接变量和至少一部分所述快照经由所述TOE管理所述特定TCP连接;以及
更新至少一部分所述连接变量和一部分所述映象,并将所述更新的至少所述一部分所述连接变量和所述一部分所述快照传送回所述主机。
30.根据权利要求29所述的方法,其特征在于,传送到所述TOE的所述特定TCP连接的所述一个或多个连接变量包括所述特定TCP连接中的至少一个段可变变量。
31.根据权利要求29所述的方法,其特征在于,传送到所述TOE的所述特定TCP连接的所述连接变量缺少所述特定TCP连接的段不变变量。
32.根据权利要求29所述的方法,其特征在于,传送到所述TOE的所述特定TCP连接的所述连接变量缺少所述特定TCP连接的段不变变量和连接不变变量。
33.根据权利要求29所述的方法,其特征在于,还包括:
确定所述主机控制的所述连接变量中的至少一个是否已经改变;
通知所述TOE由所述主机控制并已经改变的所述至少一个连接变量的改变;
根据所述通知的改变在所述TOE中更新所述连接变量。
34.一种用于提供TCP/IP卸载的方法,其特征在于,包括:
决定将建立的TCP连接从主机卸载到TOE;
将段可变变量的控制从所述主机传送到所述TOE;
将段可变变量的快照和连接不变变量发送到所述TOE;
基于所述段可变变量和所述快照经由所述TOE独立处理输入TCP包;以及
更新至少一部分所述发送快照和至少一部分所述段可变变量,并将至少一部分所述更新的至少所述一部分所述发送快照和至少所述一部分所述更新的段可变变量传送回所述主机。
35.一种用于处理TCP连接的方法,其特征在于,包括:
建立所述TCP连接;以及
共享用于主机和TOE之间的所述TCP连接的控制面;并且将更新的TCP连接变量从所述TOE传送回所述主机。
36.根据权利要求35所述的方法,其特征在于,所述控制面板的所述共享包括将与所述TCP连接对应的段可变变量的控制传送到所述TOE。
37.根据权利要求35所述的方法,还包括将所述TCP连接从所述TOE上载到所述主机。
38.根据权利要求37所述的方法,其特征在于,上载所述TCP连接包括将与所述TCP连接对应的段可变变量的控制传送到所述主机。
39.根据权利要求37所述的方法,其特征在于,还包括将所述上载的TCP连接从所述主机卸载到所述TOE。
40.根据权利要求37所述的方法,其特征在于,卸载所述上载的TCP连接包括将与所述上载的TCP连接对应的所述段可变变量的所述控制传送到所述TOE。
41.一种用于TCP卸载的方法,其特征在于,所述方法包括:
获得来自主机的TCP连接变量;
使用所述获得的TCP连接变量来管理至少一个TCP连接;
更新至少一部分所述获得的TCP连接变量;并且
将所述更新的至少一部分所述获得的TCP连接变量传送回所述主机。
42.根据权利要求41所述的方法,其特征在于,所述TCP连接变量独立于带宽延迟产品。
43.根据权利要求41所述的方法,其特征在于,还包括由主机使用至少一部分所述更新的至少所述一部分所述获得的TCP连接变量以处理所述至少所述至少一个TCP连接。
44.根据权利要求41所述的方法,其特征在于,还包括从栈取出所述TCP连接变量。
45.根据权利要求41所述的方法,其特征在于,还包括将所述更新的至少一部分所述获得的TCP连接变量推入栈中。
46.一种机器可读存储,其特征在于,将具有至少一个代码段的计算机程序存储在所述机器可读介质上,用于提供TCP卸载,可由机器执行至少一个代码段,用于使机器执行步骤,包括:
从主机获得TCP连接变量;
使用所述获得的TCP连接变量管理至少一个TCP连接;
更新至少一部分所述获得的TCP连接变量;并且
将所述更新的至少一部分所述获得的TCP连接变量传送回所述主机。
47.根据权利要求46所述的机器可读存储,其特征在于,所述TCP连接变量独立于带宽延迟产品。
48.根据权利要求46所述的机器可读存储,其特征在于,还包括代码,所述代码用于使用至少一部分所述更新的至少所述一部分所述获得的TCP连接变量来处理所述至少所述至少一个TCP连接。
49.根据权利要求46所述的机器可读存储,其特征在于,还包括代码,所述代码用于从栈取出所述TCP连接变量。
50.根据权利要求46所述的机器可读存储,其特征在于,还包括代码,所述代码用于将所述更新的至少一部分所述获得的TCP连接变量加到栈上。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US40716502P | 2002-08-30 | 2002-08-30 | |
US60/407,165 | 2002-08-30 | ||
US40861702P | 2002-09-06 | 2002-09-06 | |
US60/408,617 | 2002-09-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1679015A true CN1679015A (zh) | 2005-10-05 |
CN100363922C CN100363922C (zh) | 2008-01-23 |
Family
ID=31981477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB03820357XA Expired - Fee Related CN100363922C (zh) | 2002-08-30 | 2003-08-29 | 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1552408A4 (zh) |
CN (1) | CN100363922C (zh) |
WO (1) | WO2004021150A2 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101911612B (zh) * | 2008-01-08 | 2012-12-26 | 安讯士有限公司 | 分组丢失得以降低的网络卸载 |
CN104601484A (zh) * | 2015-01-20 | 2015-05-06 | 电子科技大学 | 一种tcp卸载引擎的发送单元 |
CN109714302A (zh) * | 2017-10-25 | 2019-05-03 | 阿里巴巴集团控股有限公司 | 算法的卸载方法、装置和系统 |
WO2020029778A1 (zh) * | 2018-08-10 | 2020-02-13 | 华为技术有限公司 | 拥塞控制方法及相关设备 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549170B2 (en) | 2003-12-19 | 2013-10-01 | Nvidia Corporation | Retransmission system and method for a transport offload engine |
US7493427B2 (en) | 2004-07-14 | 2009-02-17 | International Business Machines Corporation | Apparatus and method for supporting received data processing in an offload of network protocol processing |
US7930422B2 (en) | 2004-07-14 | 2011-04-19 | International Business Machines Corporation | Apparatus and method for supporting memory management in an offload of network protocol processing |
US7533176B2 (en) * | 2004-07-14 | 2009-05-12 | International Business Machines Corporation | Method for supporting connection establishment in an offload of network protocol processing |
CN101253745B (zh) * | 2005-07-18 | 2011-06-22 | 博通以色列研发公司 | 用于透明tcp卸载的方法和系统 |
TWI290799B (en) | 2005-12-16 | 2007-12-01 | Ind Tech Res Inst | Extensible protocol processing system |
EP1885098B1 (en) * | 2006-08-04 | 2011-04-06 | Canon Kabushiki Kaisha | Communication apparatus and communication control method |
US11490296B2 (en) | 2017-06-30 | 2022-11-01 | Apple Inc. | Apparatuses for partially offloading protocol processing |
CN110109852B (zh) * | 2019-04-03 | 2020-11-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 硬件实现tcp_ip协议的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6427171B1 (en) | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US5937169A (en) * | 1997-10-29 | 1999-08-10 | 3Com Corporation | Offload of TCP segmentation to a smart adapter |
KR100645424B1 (ko) * | 2000-08-07 | 2006-11-14 | 삼성전자주식회사 | 모뎀 및 그 제어방법 |
US7496689B2 (en) * | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US6968358B2 (en) * | 2002-07-25 | 2005-11-22 | International Business Machines Corporation | Method and apparatus for network communication card memory management |
-
2003
- 2003-08-29 EP EP03791992A patent/EP1552408A4/en not_active Withdrawn
- 2003-08-29 WO PCT/US2003/027351 patent/WO2004021150A2/en active Application Filing
- 2003-08-29 CN CNB03820357XA patent/CN100363922C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101911612B (zh) * | 2008-01-08 | 2012-12-26 | 安讯士有限公司 | 分组丢失得以降低的网络卸载 |
CN104601484A (zh) * | 2015-01-20 | 2015-05-06 | 电子科技大学 | 一种tcp卸载引擎的发送单元 |
CN109714302A (zh) * | 2017-10-25 | 2019-05-03 | 阿里巴巴集团控股有限公司 | 算法的卸载方法、装置和系统 |
US11171936B2 (en) | 2017-10-25 | 2021-11-09 | Alibaba Group Holding Limited | Method, device, and system for offloading algorithms |
CN109714302B (zh) * | 2017-10-25 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 算法的卸载方法、装置和系统 |
WO2020029778A1 (zh) * | 2018-08-10 | 2020-02-13 | 华为技术有限公司 | 拥塞控制方法及相关设备 |
US11546261B2 (en) | 2018-08-10 | 2023-01-03 | Huawei Technologies Co., Ltd. | Congestion control method and related device |
Also Published As
Publication number | Publication date |
---|---|
EP1552408A4 (en) | 2010-10-06 |
CN100363922C (zh) | 2008-01-23 |
EP1552408A2 (en) | 2005-07-13 |
WO2004021150A3 (en) | 2004-08-12 |
WO2004021150A2 (en) | 2004-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8549152B2 (en) | System and method for TCP/IP offload independent of bandwidth delay product | |
EP1513321B1 (en) | System and method for TCP/IP offload independent of bandwidth delay product | |
US7363572B2 (en) | Editing outbound TCP frames and generating acknowledgements | |
CN1674485A (zh) | 动态提供计算机系统资源的方法和系统 | |
US9923826B2 (en) | Systems and methods for dynamic adaptation of network accelerators | |
US7929442B2 (en) | Method, system, and program for managing congestion in a network controller | |
JP5324424B2 (ja) | インターネットワーキングプロトコルを通じてのデータグラム破損を解決する方法 | |
CN100363922C (zh) | 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 | |
US20050141425A1 (en) | Method, system, and program for managing message transmission through a network | |
CN1151449C (zh) | 允许服务器远程访问未通电的客户计算机系统资产信息的数据处理系统和方法 | |
US7693998B2 (en) | System and method for message-based scalable data transport | |
US20070291782A1 (en) | Acknowledgement filtering | |
CN1595935B (zh) | 支持故障切换事件的网络状态对象的多个卸载 | |
US8578040B2 (en) | Method, system and article for client application control of network transmission loss tolerance | |
US20050180322A1 (en) | TCP time stamp processing in hardware based TCP offload | |
US7069561B1 (en) | Method and system for communication between application programs and a network | |
US20080056263A1 (en) | Efficient transport layer processing of incoming packets | |
US20040003147A1 (en) | System and method for an efficient transport layer transmit interface | |
CN1801769A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080123 Termination date: 20170829 |
|
CF01 | Termination of patent right due to non-payment of annual fee |