CN1703040B - 一种提供智能卸载与加载的系统和方法 - Google Patents
一种提供智能卸载与加载的系统和方法 Download PDFInfo
- Publication number
- CN1703040B CN1703040B CN2004101042277A CN200410104227A CN1703040B CN 1703040 B CN1703040 B CN 1703040B CN 2004101042277 A CN2004101042277 A CN 2004101042277A CN 200410104227 A CN200410104227 A CN 200410104227A CN 1703040 B CN1703040 B CN 1703040B
- Authority
- CN
- China
- Prior art keywords
- transmission data
- stack
- data
- conversion equipment
- module
- 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
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/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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种系统和方法,用于在一个数据通信系统内的计算机应用程序模块和网络接口装置之间进行智能卸载,此方法包括接收来自计算机应用程序模块的数据请求和确定所述接收数据请求是否要求卸载;如果要求卸载,所述接收数据请求沿着第一路径被发送到所述网络接口装置;如果不要求卸载,所述接收数据请求沿着辅助数据路径被发送到主机处理栈式存储器进行处理,然后,执行所述协议处理过程,所述被处理数据请求发送到所述网络接口装置。
Description
技术领域
本发明总体来说是涉及在一个计算机内以通信系统为基础的数据传输。
背景技术
传统的通信系统可以包括一个主机平台,比如一台运行像Oracle、文本传输协议(FTP)、网络浏览器等应用程序的个人计算机(PC)。这种系统还包括一个网络接口装置(NID)和能使系统经由计算机网络传输数据的协议处理模块。为了容纳这些支持应用程序的数据包的传输,传输控制协议(TCP)和其它的相关技术被用来准确地对数据包进行格式化。这种格式化有助于通过一个或多个计算机网络连接到主计算机上的远端设备接收这些数据包。
传输控制协议(TCP)互联网协议(TCP/IP)是一个被用于传统计算机网络的一组协议的例子,比如因特网。在主机平台里增加到数据包的这些协议被一个名为网络协议栈式存储器的软件模块进行特别的处理,网络协议栈式存储器的一般执行就是主机传输控制协议(TCP)的堆栈。
当计算机网络数据率增加以后,TCP栈式存储器成为系统的瓶颈。尤其是,这些TCP堆栈存储器的处理能力不足以容纳更高的网络数据率。
作为消除这一瓶颈的方法,一种卸载TCP栈式存储器,也就是TCP卸载引擎(TOE)能够用来替代主机TCP栈式存储器对数据包进行处理,这个方法释放主机资源来处理应用程序,并且能够利用当今更快的网络获得持续的线速通过量。
然而,传统的通信系统不能确定何时在主机TCP栈式存储器(或者TOE)内它能更高效率地处理数据包,或者说这些数据包在卸载TCP栈式存储器里(或者TOE)何时能更高效的经过处理。换句话说,传统通信系统不能灵活地卸载(或上载)与建立单个TCP连接相关的处理过程。
特别是,会存在与每一个必须由TOE来支持的网络连接相关的固有的硬件成本。当越来越多的单个连接处理过程(亦即连接)卸载到TOE的时候,必须设计更昂贵的TOE才能接收这些额外的连接。另外,如果系统希望卸载比TOE所能接收的更多的连接,基于系统的结构,连接的数量会成为系统的另一限制或瓶颈。
然而,仅卸载所有连接中任一次受支持的部分是有可能的。某些连接可以卸载到TOE,而其它连接在以TCP栈式存储器为基础的主机软件中继续进行处理。但是,任何一个单个连接在一个或者其它地方必须被单独处理。这就需要一种“转换”机构去准确地指引通信量请求到正确的栈式存储器进行处理。
因此,所需要的就是一种转换器,可以灵活和高效地确定最好的一组连接,该组连接能从主机TCP栈式存储器卸载到TOE或者相似的硬件元件内。这样的一个转换器将会减少协议格式化处理的瓶颈,尽管在TOE技术中还存在连接限制,但是最终会增加系统的通过量。
发明内容
与本发明的实施例和扩展描述所阐述的本发明原理相一致,本发明包括一种方法,以确定在一个数据传输系统内一个软件模块(比如主机TCP栈式存储器)和一个网络接口装置(比如TCP卸载引擎TOE)之间何时传输连接。该方法包括接收来自软件模块的数据请求和确定这些所涉及的连接是否被卸载。如果期望或要求卸载,这些接收到的请求沿第一数据路径被发送到网络接口装置(NID),如TOE,反之,接收到的请求沿第二路径被发送到主机协议栈式存储器进行处理。相同连接的随后请求将会如同最初的请求一样沿着同样的路径发送。在本发明中,组织卸载或上载决策处理的不同方法用不同的优点加以叙述。
在本发明中,作为一种释放处理资源的方法,TCP和其他协议在它们的活跃状态期间也可以被卸载/上载到或从一个以TOE为基础的硬件里,仅仅通过在硬件处理栈式存储器中被完成的活跃连接,以在硬件处理栈式存储器和软件处理栈式存储器之间,通过卸载或上载在硬件处理栈式存储器和软件处理栈式存储器之间移动连接的能力,可以允许更多的连接仅通过在所述硬件处理栈式存储器中正被执行的活跃连接而得到支持。
所谓的卸载是指把状态信息处理从一个主机处理栈式存储器中转移到一个硬件处理栈式存储器中。上载则是指把状态信息处理从一个硬件处理栈式存储器中移到一个主机处理栈式存储器中。状态信息包括与任何特殊节点的通信状态相关或者与关联一个通信系统(亦即连接)的活跃通信会话的用户相关的信息。卸载和上载的执行也会影响进一步的请求和相关特殊连接的数据的发送,所以卸载和上载的执行要在连接状态可用的地方进行处理。
根据本发明,提供一种在一个计算机应用程序模块和一个网络接口装置(NID)之间传输数据的装置,所述装置包括:
配置一个转换模块,用于(1)接收来自应用程序模块的数据和(2)评估与传输这些接收数据有关的条件;
配置一个协议栈式存储器,当所述接收数据被评估为第一类型时,接收所述传输数据。;
其中,配置一个NID,当所述接收数据被评估为第二类型时,接收所述传输数据,所述第二类型的传输数据绕过所述协议栈式存储器。
作为进一步的改进,所述数据表示一个传输控制协议连接。
作为进一步的改进,所述数据表示数据包化信息。
作为进一步的改进,所述被评估条件包括状态变量。
作为进一步的改进,所述协议栈式存储器包括一个堆栈部分和一个优化部分。
作为进一步的改进,所述协议栈式存储器接收沿第一路径发送的第一类型的传输数据;
其中,所述NID接收沿第二路径发送的第二类型的数据;并且,
其中,所述配置的优化部分用于确定将来的第一和第二类型数据是沿着第一路径还是沿着第二路径进行传输。
根据本发明,提供一种在应用程序部分和网络之间进行数据传输的装置,包括:
配置一个第一转换器,用于接收来自应用程序部分的数据和评估与传输所述接收数据到所述网络有关的条件;
配置一个第一栈式存储器,用于(1)当所述评估条件代表第一环境时,接收来自所述转换器的传输数据,(2)处理所述被传输数据以产生一个第一输出;
配置一个包括一个第二栈式存储器的迁移部分,用于(1)当所述评估条件代表第二环境时,接收来自所述转换器的所述传输数据,(2)处理所述传输数据以产生一个第二输出;
一个包括一个第三栈式存储器的网络接口装置(NID),可传递地耦合到所述第一栈式存储器和所述迁移部分;
其中,所述配置的迁移部分在所述第二栈式存储器和所述第三栈式存储器之间,根据预定要求动态地移动所述传输数据。
作为进一步的改进,所述数据包括传输控制协议(TCP)连接。
作为进一步的改进,所述条件包括连接计数限制、状态变量、开放请求的状态、指定的TCP端口、IP地址和协议元件中的至少一个。
作为进一步的改进,所述第一栈式存储器以软件为基础。
作为进一步的改进,所述第三栈式存储器以硬件为基础。
作为进一步的改进,所述第一栈式存储器是一个主机TCP栈式存储器;
其中,所述第二栈式存储器是一个互生TCP栈式存储器;其中,所述第三栈式存储器是一个TCP卸载引擎。
作为进一步的改进,所述移植部分包括一个第二转换器。
作为进一步的改进,所述第二栈式存储器包括一个优化模块。
根据本发明,提供一种数据通信系统内在一个计算机应用程序模块和一个网络接口装置之间传输数据的方法,包括:
接收来自所述计算机应用程序模块的数据请求;
确定所述数据是否与一个卸载连接相关;
如果不要求卸载,发送所述接收数据进行第一类型的处理;
如果要求卸载,发送所述接收数据进行第二类型的处理;
运行至少第一和第二类型处理中的一个。
作为进一步的改进,所述第一类型的处理包括处理主机协议堆栈处理。
作为进一步的改进,所述第二类型的处理包括网络接口装置协议堆栈处理。
本发明的进一步特征和优点以及本发明的各种实施例的操作和结构,将在以下结合附图进行详细叙述。
附图说明
作为说明书的组成部分,附图示出了本发明的实施例,结合上述总的描述和以下实施例的详细描述,帮助解释本发明的原理。附图中:
图1是根据本发明第一实施例的一个装置结构的框图;
图2是根据本发明第二实施例的一个装置结构的框图;
图3是根据本发明第三实施例的一个装置结构的框图;
图4是关于操作本发明一个实施例的典型方法的流程图;
图5是一个发明能够在其上运行的典型计算机系统的框图。
具体实施方式
以下本发明的详细叙述要参考附图,其阐明了与本发明一致的典型具体实施例。可能有的其他具体实施例和对具体实施例所做的修改均落在本发明的本质和范围内。因此,以下的详述并不意味着对本发明构成限制,更确切地说,附加的权利要求确定了此发明的范围。
正如以下所叙述的,显而易见,对于本发明所涉及此技术领域的普通技术人员来说可能会在硬件,软件,固件和/或在附图中阐明的实体上以多种不同的实施例进行实施。任何与专用控制硬件相结合的实际软件编码实施本发明,都不对本发明构成限制。这样,叙述本发明的操作和行为应理解为,所述实施例的修改和变化是可能的,在此将会进行详细叙述。
图1是根据本发明第一实施例构造的一个典型计算机系统100的框图,例如,这种计算机系统100可以是为网络通信配置的PC机或者一个个人数字化助手(PDA),计算机系统100也可以包括任何其他的网络,这种网络能使计算机装置运行一种应用程序。
图1中,计算机系统100包括一个传输部分101和一个应用模块102,传输部分101(以下将详细讨论)包括了许多以模块为基础的硬件和/或软件,传输部分101被用来在应用程序模块102和外部网络之间充分地传输所接收的数据。
应用程序模块102可以以任何软件,固件和/或硬件的结合进行实施,并且它是为了主机应用软件程序所配置的,例如Oracle,FTP,网络浏览器,或者如上所述的类似软件。应用程序模块102与在所述传输部分101之内的中央处理器(CPU)104和一个转换装置106耦合,尽管图1中的实施例是在软件中执行的,但所述转换装置106也能在固件和/或硬件中实施。
为了增加计算机系统100的运行效率,计算机系统100能使TCP/IP和其他协议在它们的活跃状态期间被卸载到硬件中,这个决策可以在一个或多个可以用一个或多个元件做出决策的位置做出,转换装置106的详情将会在以下进行详细讨论。CPU104是以标准的冯内门(Von Neuman)计算机结构思路为基础的。在应用模块102,转换装置106和一个协议驱动器如主机TCP栈式存储器112内实施的应用程序由CPU104来执行。
沿着一条双向数据流路径110,转换装置106的一个输出连接到NID上,如网络接口控制器(NIC)108。相似地,转换装置106的另一个输出连接到主机TCP栈式存储器112上,会依次经由双向数据路径114和NIC108相耦合。一条反馈路径116提供一个在主机TCP栈式存储器112,转换装置106和NIC108之间的附加连接。NIC108使得计算机系统100通过网络118发送通信数据。
NIC108包括用来处理被卸载连接的TOE120和为TOE120之间或主机TCP栈式存储器112之间的输入数据包排序的一个转换装置122。,
在图1的典型具体实施例中,举例来说,应用程序模块102可以执行一个FTP应用程序,并相应生成使用TCP/IP协议的数据包。在这个例子中,应用程序模块102将经由转换装置106向主机TCP栈式存储器112提交通信请求,从而激活通信会话。为了使发送的通信数据包通过,一个典型的请求可能会打开与网络118的连接。在通信会话的活跃期间,为了通过NIC108建立与网络118的连接,应用程序模块102将会对转换装置106发出一个开放请求。
在图1的典型实施例中,转换装置106被安排用来评定与传输开放请求相关的系统条件。也就是说,转换装置106确定从模块102所接收到的开放请求是否应该经由数据路径114和通过主机TCP栈式存储器112被发送到NIC108。作为选择,转换装置106确定一个更高效的通信是否能够通过数据路径110直接发送开放请求到NIC108被建立起来。这种二者择一的方法是完全绕过主机TCP栈式存储器112,而且允许在NIC108中与连接处理过程相关的TCP/IP协议被卸载到TOE 120。尽管图1的具体实施例中,在转换装置106中传送决策去卸载所接收到的请求的决定,所述决策由可在一个或者更多位置,利用一个或者更多的附加转换元件如转换装置122做出。
转换装置106做出决策进行基于从应用程序模块102传输过来的请求卸载。依靠转换装置106做出卸载决策的信息包括:指定的TCP部分,IP地址,二级地址和/或其他更高级别的协议元件,在此只列出以上一些信息的名字。
卸载决策也可结合一个数据分析,所述数据与已执行的相似类型的通信量特定连接的数量相关。沿路径110,所述卸载决策也可受到由TOE120支持的连接数量的控制。相似地,所述卸载决策可依赖数据和在主机TCP栈式存储器112内所实施的配置,并经由通路116进行发送。
这样的数据可能包括主机的目的地址,其中,已经过IP碎片的产生,或者可能包括其他连接于一个特定主机的低性能连接指示,其他数据可能表示某一类型的连接是低宽带和没有充分利用TOE资源。另外,其他数据可能表示某一类型的连接会使来自于应用程序的数据以很小的碎片通过,而TOE120对此不起任何作用。
转换装置106能获得来自应用程序模块102的请求的特殊信息。例如,转换装置106能确定应用程序模块102是否要求与一个具有专门IP地址的远程计算机相连。
如此,以相关协议内容和各种其他因素为基础,转换装置106能确定是否沿着路径114发送请求到主机TCP栈式存储器112,再到NIC108或者沿着数据通路110直接发送数据到NIC108。
以这种方式,转换装置106能识别出来自应用程序模块102的请求是一般特性,因此会更高效地通过把它直接发送到NIC108进行堆栈处理来进行处理,而不需利用主机TCP栈式存储器112。另一方面,转换装置106也许不能立刻确定这些请求是否能直接发送到NIC108中。
比如,转换装置106可能不知道是否所产生的连接将会通过足够的通信量来保证其被卸载到TOE120,在这种情况下,作为一种预防措施,转换装置106将会沿着数据路径114把请求发送到主机TCP栈式存储器112,使主机TCP栈式存储器112能准备开始进行TCP/IP协议的处理。无论选择哪条路径,转换装置116将会继续以相同方向按规定路线发送相同连接的进一步请求作为第一请求,更进一步说,NIC108中的转换装置122将被配置以匹配开关116的决策,并且可以把接受到的数据包发送到栈式存储器112,正如同被发出的输出请求一样。
之后(和可选择地),转换装置106和/或主机TCP栈式存储器112能识别出已经改变的数据和协议。这种变化是可能发生的,因为更多的通信量正在穿过连接并且所述连接保证了TOE120的资源。如果这样的变化发生,将会存在一个信号交换以产生一个开放连接(比如活跃状态)的卸载操作。状态信息可以在NIC108内从主机TCP栈式存储器112中迁移到TOE120。卸载之后,所有与此专门连接相关的将来数据包会沿着数据路径110被发送到TOE120。如果数据和协议没有变化,主机TCP栈式存储器112将继续处理数据并沿着数据路径114把已处理过的数据直接发送到NIC108。
这样,在图1的具体实施例中,不仅是转换装置106已被用来帮助做出卸载/上载决策,而且主机TCP栈式存储器112被修改以协助作出决策的处理,这是传统TCP栈式存储器的能力所达不到的。在激活状态,主机TCP栈式存储器112也可以被修改或设计以允许连接的卸载和上载。然而,传统TCP栈式存储器在结构上不能协助此类型的智能卸载和上载以及活跃状态决策的做出,而这些在本发明中是可以达到的。传统TCP栈式存储器在结构上也不允许进行活动连接的卸载和上载。
图2提供了一个根据本发明第二实施例的计算机系统200结构的框图说明,图2包括参考图1来叙述和讨论的许多部件。因此,以上关于它们的叙述适用于此并将不再累述。
图2包括一个传统(即修改的)协议栈式存储器202(与主机TCP栈式存储器112相似),及一个单个优化模块204。优化模块204为协助作出智能卸载决策而配置。这样,正如在图1中所讨论的,在图2的计算机系统200内,转换装置106执行当前的卸载/上载决策,另一方面,优化模块204提供信息量模式细节,以协助转换装置106做出未来的卸载决策。
例如,应用程序模块102可以经由转换装置106发送连接NIC108的请求。在本例中,协议栈式存储器202将执行传统TCP/IP处理过程,并随后经由优化模块204发送被处理过的数据包到NIC108。在计算机系统200中,优化模块204确定是否一个有着相似特性的开放请求将经由协议栈式存储器202被发送到NIC108,或者为了对被卸载协议进行堆栈处理,确定与相同数据流有关的未来的开放请求是否能沿着数据径110更高效的按规定路线被发送到NIC108。
如果优化模块204确定数据请求基于以上所提到的因素能沿着数据路径110更高效的被传输到NIC108,优化模块204将会经由反馈路径206通知转换装置106所有未来的相关开放请求应该沿着数据路径110被发送到NIC108。
这种过程是动态的,即在数据流中的一些数据连接将沿着数据路径110发送。然而,其他数据连接将会根据状态变化和通信网络的通信量经由数据路径114进行发送。图2中所表示的具体实施例的优点是协议栈式存储器202不经修改就支持卸载。其得益于工程学成果和测试结果。
图3是一个根据本发明第三实施例的计算机系统300结构的框图说明。在图3中,正如同在与图2相关的情况一样,许多部件在以上都叙述过并不需要再重复说明。计算机系统300所提供的功能与图2的计算机系统200相似。然而,计算机系统300提供了一个可以容纳卸载的迁移模块301。也就是说,一旦从基本主机TCP栈式存储器112上被卸载,那么这些连接就会在卸载NIC108、一个小型备用TCP协议栈式存储器304和一个优化模块308之间来回的进行迁移。正如图3所布置的,这种系统的优点就是主机协议栈式存储器112不需要被修改。
在图3中,计算机系统300包括一个第二转换装置302,沿着数据路径306与备用TCP协议栈式存储器304连接。备用TCP协议栈式存储器304也连接到CPU104上。在图3中,第二转换装置302选择性地做出两个可能决策之一。第二转换装置302能够确定通过转换装置106从应用程序模块102发送来的请求是否将通过一条路径312被发送到NIC108。然而,作为选择,第二转换装置302能确定在备用TCP协议叠式存储器304中对这些数据进行本地处理。而且,在NIC108中把连接状态卸载/上载到TOE120可以通过一条专门的路径306。
一个备用的优化模块308可以被选择用来支持备用TCP协议栈式存储器304的决策制定过程。相似地,所提供的一条附加反馈路径310能选择性地支持在附加优化模块308和第二转换装置302之间的信号交换。
图3具体实施例的特征是基本主机TCP栈式存储器112和第一模块204能卸载所有的连接或这些连接的任一子集,可确信任一子集是通过路径110进行卸载的优良候选。利用转换装置106卸载这些连接而不考虑任何TOE120的连接计数限制,并且没有主机TCP栈式存储器支持动态的卸载/上载。然后,通过或者直接将通信量发送到TOE120,或者经过备用TCP协议栈式存储器304转发的方式,第二转换装置302可以进行更多有效的调节。
备用TCP协议栈式存储器304可能会比主TCP栈式存储器112稍微快一些,因为它处理的特殊情况较少。进一步说,备用TCP协议栈式存储器304能够保存更详细的统计数字,这些统计数字可以协助确定什么样的连接将会被TOE120处理得最好。当个别连接负荷变化的时候,备用TCP协议栈式存储器304也能支持从TOE120迁出或者是移入的连接状态的路径,致使在TOE120和备用TCP协议栈式存储器304之间连接可以动态地进行迁移。
因为TOE120和备用TCP协议栈式存储器304功能性相似,在有效连接期间加快这两个栈式存储器之间状态移动的实施,进行更快,更高效的卸载/上载运作是可能的。
图4是操作本发明的一个具体实施例的典型方法400的流程图。在方法400中,从一个数据处理系统中的一个计算机应用程序模块接收到数据请求,正如在方块402中所表示的一样。在步骤404中,作出决策,是否所接收到的数据请求与一个卸载或者不卸载连接是否相关。如果所述请求是不卸载连接的一部分,该请求会被发送到主机TCP栈式存储器112在步骤406中进行处理。另一方面,如果要卸载连接,那么要转到步骤408继续进行处理,在此处所述数据请求被发送到NIC108卸载处理协议。
在步骤410中,主机TCP栈式存储器112处理所接收到的数据请求。然后已经过处理的请求被发送到NIC108,如步骤412所示。
如上所述,本发明允许灵活地卸载更多的连接以便能更高效得利用相关的CPU处理能力。因为NIC,TOE硬件价格便宜,但是这些硬件经常存在限制,智能卸载能确保TOE硬件达到它能力最大限度的利用,在本发明中,让主机TCP栈式存储器仅处理那些少量的忙碌连接。这使得价格昂贵的CPU能免于更快地运行与它们有关的应用程序模块。最终,在一个备用TCP栈式存储器和TOE120之间,被请求卸载和上载连接的结果可以优化成一个比传统主机TCP栈式存储器和TOE装置之间的处理更大的范围。以此种方式,一个通信计算机系统能在应用程序模块和远程终端通信设备之间提供更加高效和可靠的通信。
如上面所提到的,本发明可以在硬件中或者作为软件和硬件的组合体实施。因此,本发明可以在一个计算机系统或者其他处理系统的环境中实施。在图5中给出了这样一个计算机系统500的例子。
这种计算机系统500包括一个或更多的处理器,比如一个处理器504。处理器504可以是一个专用的或者通用的数字信号处理器。处理器504与一个通信基础结构506(比如,一条总线或者网络)相连接。相关于这个典型计算机系统的各种软件实施都会进行叙述。看完此叙述后,对于在相关技术领域里的熟练人员来说,如何利用其他计算机系统和/或计算机结构来实施本发明是显而易见的。
同时,计算机系统500包括一个主存储器508,或随机存储器(RAM)更适宜,也可以包括一个辅助存储器510,辅助存储器510可以包括,如一个硬盘驱动器512和/或一个可移动存储驱动器514,可移动存储驱动器514显示了一个软磁盘驱动器,一个磁带驱动器,一个光碟驱动器等。可移动存储驱动器514以一种公知的方式从可移动存储单元518中读取和/或写入可移动存储驱动器518中。可移动存储单元518显示了一个软磁盘驱动器,一个磁带驱动器,一个光碟驱动器等,它们都被可移动存储驱动器514进行读取和写入。值得注意的是,可移动存储单元518包括了一种计算机可用存储介质,此介质已经储存了计算机的软件和/或数据。
在可替代的实施中,辅助存储器510可以包括其他相似的方法,以允许计算机程序或者其他的指令被载入计算机系统500。这样的方法可以包括,比如,一个可移动存储单元522和一个接口520。这样方法的实例可以包括一个程序匣和匣接口(比如影碟游戏装置具有的接口),一个可移动存储芯片(比如一个EPROM或者PROM)和相关的插孔,和其他可移动存储单元522和接口520,该存储单元和接口能允许软件和数据从可移动存储单元522被传输到计算机系统500。
计算机系统500也可以包括一个通信接口524。通信接口524允许软件和数据在计算机系统500和外部装置之间进行传输。通信接口524的实例可以包括一个调制解调器,一个网络接口(例如一个以太网卡),一个通信端口,一个PCMCIA槽和卡等等。软件和经由通信接口524传输的数据是以信号528的形式,它可以是电子的,电磁的,光的或者其他能使通信接口524所接收的信号。这些信号528经由一条通信路径526被提供到通信接口524。通信路径526携带信号528,并可以通过利用金属线和电缆,光纤,电话线,手机链接,RF链接和其他的通信信道进行实施。
在本申请中,术语“计算机可读介质”和“计算机可用介质”总体上都是指媒介,比如可移动存储驱动器514,安装在硬盘驱动器512中的硬盘,和信号528。这些计算机程序产品都是能为计算机系统500提供软件的方式。
计算机程序(也称计算机控制逻辑)被储存在主存储器508和/或辅助存储器510中。计算机程序也可以经由通信接口524被接收。当这样的计算机程序被执行时,它能使计算机系统500实施在此叙述过的本发明。
特别地,当计算机程序被执行时能使处理器504实施本发明的处理过程。从而,这样的计算机程序显示了计算机系统500控制器的特征。作为例子,在本发明的具体实施例中,编码器和/或解码器执行的信号处理块能完成这些处理过程/方法能够被计算机控制逻辑执行。在本发明利用软件实施的地方,软件可以被储存在一个计算机程序产品中,并利用可移动存储驱动器514,硬盘驱动器512或者通信接口524加载到计算机系统500。
以上借助于功能构建模块示出特殊功能的实施和关系,对本发明进行了描述。为了方便叙述,这些功能构建模块的界线在此是随意确定的,只要其特殊的功能和关系能够恰当地执行,可替代的界线就能够被定义。
任何这样的可替代界线都在本发明所要求的本质和范围内。在此技术领域的熟练人员将会认识到这些功能构建模块能够通过摸拟和/或数字化电路,离散的部件,有具体程序的集成电路,固件,执行合适软件的处理器和其它类似物或者任何其中的组合来实施本发明。如此,本发明所涉及的宽度和范围不应该局限于以上叙述的任何典型具体实施例,而应该根据随后的权利要求和它们的等同表达来加以确定。
明确的具体实施例的前述部分将充分揭示本发明的总体本质,在没有使用不恰当的实验方法,没有违反本发明总体思路的情况下,通过应用在此技术领域(包括在此引证进行参考的内容)内的技巧,他人能够容易修改和/或适应各种应用这些特定的具体实施例。因此,基于教学和在此所做出的指导,这样的改造和修改都预定落在所公开的具体实施例的同等表达的范围和含义中。应该理解到在这里所用到的专门术语是为了叙述的目的而不构成限制,这样,熟练的技术人员根据教义和在此所做的指导,结合在此技术领域中所具有一般知识来理解本说明的专门术语。
Claims (7)
1.一种在计算机应用程序模块和网络接口装置之间传输数据的装置,其特征在于,包括:
第一转换装置,用于(1)接收来自所述应用程序模块的传输数据,(2)评估与传输所述传输数据有关的条件,(3)基于所述评估的条件决定是否能够建立更有效的转换,(4)根据所述决定转换所述传输数据;
主机协议栈式存储器,与所述第一转换装置通信连接,当所述传输数据被评估为第一类型时,接收传输数据;
迁移模块,包括第二转换装置、备用协议栈式存储器和备用优化模块,所述第二转换装置与所述第一转换装置通信连接,所述备用协议栈式存储器与所述第二转换装置和所述备用优化模块通信连接,所述备用优化模块用来支持所述备用协议栈式存储器的决策制定;
所述主机协议栈式存储器和所述迁移模块分别与所述网络接口装置通信连接,当所述传输数据被评估为第二类型时,所述网络接口装置接收传输数据,所述第二类型的传输数据绕过所述主机协议栈式存储器;所述第一类型是主机协议堆栈;所述第二类型是网络接口装置协议堆栈。
2.根据权利要求1所述的装置,其特征在于,所述第一类型的传输数据和第二类型的传输数据表示一个传输控制协议连接。
3.根据权利要求1所述的装置,其特征在于,所述第一类型的传输数据和第二类型的传输数据表示传输控制协议数据包。
4.根据权利要求1所述的装置,其特征在于,所述条件包括状态变量。
5.一种可以在应用程序部分和网络之间进行数据传输的装置,其特征在于,包括:
第一转换装置,用于接收来自所述应用程序部分的传输数据和与传输到所述网络的所述传输数据有关的评估条件;
第一栈式存储器,(1)当所述评估条件表示第一类型时,用于接收来自所述转换装置的所述传输数据,和(2)处理所述传输数据以生成第一输出数据;
包括第二栈式存储器的迁移部分,(1)当所述评估条件表示第二类型时,用于接收来自所述转换装置的所述传输数据,和(2)处理所述传输数据以生成第二输出数据;
包括一个第三栈式存储器的网络接口装置,可传递地耦合到所述第一栈式存储器和所述迁移部分并接收所述第一输出数据和第二输出数据;
其中,所述迁移部分,以根据预定要求,在所述第二栈式存储器和所述第三栈式存储器之间动态移动所述传输数据,所述迁移部分还包括一个备用优化模块,所述备用优化模块用来支持所述第二协议栈式存储器的决策制定,所述第二协议栈式存储器,保存更详细的统计数字,所述统计数字用于协助确定适合所述网络接口装置处理的所述传输数据;所述第一类型是主机协议堆栈;所述第二类型是网络接口装置协议堆栈。
6.根据权利要求5所述的装置,其特征在于,所述传输数据表示传输控制协议数据包。
7.一种用于在数据通信系统内的一个计算机应用程序模块和一个网络接口装置之间传输数据的方法,其特征在于,所述方法包括:
接收来自所述计算机应用程序模块的传输数据;
确定所述传输数据是否与一个卸载连接相关;
如果不要求卸载,发送所述传输数据进行第一类型的处理,所述第一类型的处理包括处理主机协议堆栈的处理过程;
如果要求卸载,发送所述传输数据进行第二类型的处理,所述第二类型的处理包括网络接口装置协议堆栈的处理过程;
通过包括一个堆栈部分和一个优化部分的主机协议栈式存储器和包括备用协议栈式存储器和备用优化模块的迁移模块分别执行至少第一和第二类型的处理;
进行所述第一类型的处理和第二类型的处理后的数据传输到所述网络接口装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US53064603P | 2003-12-19 | 2003-12-19 | |
US60/530,646 | 2003-12-19 | ||
US10/975,070 US7636372B2 (en) | 2003-12-19 | 2004-10-28 | Method and system for providing smart offload and upload |
US10/975,070 | 2004-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1703040A CN1703040A (zh) | 2005-11-30 |
CN1703040B true CN1703040B (zh) | 2011-04-13 |
Family
ID=34527146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2004101042277A Expired - Fee Related CN1703040B (zh) | 2003-12-19 | 2004-12-17 | 一种提供智能卸载与加载的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US7636372B2 (zh) |
EP (1) | EP1545088B1 (zh) |
CN (1) | CN1703040B (zh) |
DE (1) | DE602004013414T2 (zh) |
TW (1) | TWI266990B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7864806B2 (en) * | 2004-01-06 | 2011-01-04 | Broadcom Corp. | Method and system for transmission control packet (TCP) segmentation offload |
KR20050101693A (ko) * | 2004-04-19 | 2005-10-25 | 삼성전자주식회사 | 이동 네트워크에서 손상된 라우팅 경로 복구 방법 |
US7580415B2 (en) * | 2005-04-27 | 2009-08-25 | Hewlett-Packard Development Company, L.P. | Aggregation of hybrid network resources operable to support both offloaded and non-offloaded connections |
US7660306B1 (en) | 2006-01-12 | 2010-02-09 | Chelsio Communications, Inc. | Virtualizing the operation of intelligent network interface circuitry |
US7724658B1 (en) | 2005-08-31 | 2010-05-25 | Chelsio Communications, Inc. | Protocol offload transmit traffic management |
US7616563B1 (en) | 2005-08-31 | 2009-11-10 | Chelsio Communications, Inc. | Method to implement an L4-L7 switch using split connections and an offloading NIC |
US20070233886A1 (en) * | 2006-04-04 | 2007-10-04 | Fan Kan F | Method and system for a one bit TCP offload |
US7975036B2 (en) * | 2006-05-11 | 2011-07-05 | The Mitre Corporation | Adaptive cross-layer cross-node optimization |
US20080120426A1 (en) * | 2006-11-17 | 2008-05-22 | International Business Machines Corporation | Selective acceleration of transport control protocol (tcp) connections |
US8862748B2 (en) * | 2007-03-30 | 2014-10-14 | St-Ericsson Sa | Method and system for optimizing power consumption and reducing MIPS requirements for wireless communication |
US8935406B1 (en) * | 2007-04-16 | 2015-01-13 | Chelsio Communications, Inc. | Network adaptor configured for connection establishment offload |
US8060644B1 (en) | 2007-05-11 | 2011-11-15 | Chelsio Communications, Inc. | Intelligent network adaptor with end-to-end flow control |
US8589587B1 (en) | 2007-05-11 | 2013-11-19 | Chelsio Communications, Inc. | Protocol offload in intelligent network adaptor, including application level signalling |
US8107939B2 (en) * | 2007-12-14 | 2012-01-31 | Microsoft Corporation | Software defined radio architecture |
US8327014B2 (en) * | 2008-06-30 | 2012-12-04 | Cisco Technology, Inc. | Multi-layer hardware-based service acceleration (MHSA) |
CN101741870B (zh) * | 2008-11-07 | 2012-11-14 | 英业达股份有限公司 | 因特网小型计算机接口的储存系统 |
TWI470567B (zh) | 2012-02-03 | 2015-01-21 | Univ Nat Chiao Tung | 考慮耗時與耗電的卸載運算量的決策方法與運算系統 |
CN109714302B (zh) * | 2017-10-25 | 2022-06-14 | 阿里巴巴集团控股有限公司 | 算法的卸载方法、装置和系统 |
US10848375B2 (en) | 2018-08-13 | 2020-11-24 | At&T Intellectual Property I, L.P. | Network-assisted raft consensus protocol |
KR102608382B1 (ko) | 2018-10-18 | 2023-12-01 | 삼성전자주식회사 | 데이터를 처리하는 방법 및 이를 수행하는 전자 장치 |
US20220407925A1 (en) * | 2021-06-16 | 2022-12-22 | Avaya Management L.P. | Cloud automation fulfillment enabler |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1458590A (zh) * | 2002-04-30 | 2003-11-26 | 微软公司 | 用网络栈同步和上载已卸载网络栈连接的方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174393B2 (en) * | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US6765901B1 (en) * | 1998-06-11 | 2004-07-20 | Nvidia Corporation | TCP/IP/PPP modem |
US7664883B2 (en) * | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
US7089293B2 (en) | 2000-11-02 | 2006-08-08 | Sun Microsystems, Inc. | Switching system method for discovering and accessing SCSI devices in response to query |
US7379475B2 (en) * | 2002-01-25 | 2008-05-27 | Nvidia Corporation | Communications processor |
US7274706B1 (en) * | 2001-04-24 | 2007-09-25 | Syrus Ziai | Methods and systems for processing network data |
US7496689B2 (en) * | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US7007103B2 (en) * | 2002-04-30 | 2006-02-28 | Microsoft Corporation | Method to offload a network stack |
US7426579B2 (en) * | 2002-09-17 | 2008-09-16 | Broadcom Corporation | System and method for handling frames in multiple stack environments |
US7554993B2 (en) * | 2003-03-27 | 2009-06-30 | Hewlett-Packard Development Company, L.P. | Method and apparatus for performing connection management with multiple stacks |
US20050021680A1 (en) * | 2003-05-12 | 2005-01-27 | Pete Ekis | System and method for interfacing TCP offload engines using an interposed socket library |
US7451197B2 (en) * | 2003-05-30 | 2008-11-11 | Intel Corporation | Method, system, and article of manufacture for network protocols |
US7420931B2 (en) * | 2003-06-05 | 2008-09-02 | Nvidia Corporation | Using TCP/IP offload to accelerate packet filtering |
US7420991B2 (en) * | 2003-07-15 | 2008-09-02 | Qlogic, Corporation | TCP time stamp processing in hardware based TCP offload |
US7512144B2 (en) * | 2003-12-19 | 2009-03-31 | Broadcom Corporation | Method and system for transmission control protocol (TCP) retransmit processing |
-
2004
- 2004-10-28 US US10/975,070 patent/US7636372B2/en active Active
- 2004-11-29 DE DE602004013414T patent/DE602004013414T2/de active Active
- 2004-11-29 EP EP04028279A patent/EP1545088B1/en active Active
- 2004-12-17 TW TW093139274A patent/TWI266990B/zh not_active IP Right Cessation
- 2004-12-17 CN CN2004101042277A patent/CN1703040B/zh not_active Expired - Fee Related
-
2009
- 2009-11-10 US US12/615,632 patent/US8358664B2/en not_active Expired - Fee Related
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 |
---|---|
TW200537296A (en) | 2005-11-16 |
CN1703040A (zh) | 2005-11-30 |
EP1545088B1 (en) | 2008-04-30 |
US20100057941A1 (en) | 2010-03-04 |
US20050135417A1 (en) | 2005-06-23 |
DE602004013414D1 (de) | 2008-06-12 |
US8358664B2 (en) | 2013-01-22 |
TWI266990B (en) | 2006-11-21 |
US7636372B2 (en) | 2009-12-22 |
DE602004013414T2 (de) | 2009-06-04 |
EP1545088A1 (en) | 2005-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1703040B (zh) | 一种提供智能卸载与加载的系统和方法 | |
CN102571756B (zh) | 文件系统会话中的多信道连接 | |
EP1564959B1 (en) | System and method for trivial file transfer protocol including broadcasting function | |
CN103548307B (zh) | 通过计算机网络传输数据的方法和系统 | |
CN101438534B (zh) | 分布式防火墙实现和控制 | |
CN1663197A (zh) | 传输数据的方法和通信站 | |
CN102546800A (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
JP2007531353A (ja) | パケット中継装置 | |
NO20053905L (no) | Fremgangsmate, kommunikasjonsnettverk, nettverksinnretning, kommunikasjonsserver, terminal og programvaremidler for a velge og endre driftsmoduser for pakkesvitsjet taleforbindelse. | |
CN106658625A (zh) | 网络切换方法及装置 | |
CN110505640A (zh) | 设备绑定的处理方法、装置及系统、待配网设备和终端 | |
JP2007081569A (ja) | 無線ネットワーク情報配信方法 | |
CN105847275A (zh) | 一种数据传输通道建立方法、系统和服务器 | |
CN101325457A (zh) | 接收机及其控制方法、发送机、通信系统和通信方法 | |
US7403519B2 (en) | Asymmetric ethernet network data transfer system and method | |
CN101478529A (zh) | 为无线通信优化功耗及降低mips要求的方法和系统 | |
KR101682508B1 (ko) | 라우팅 장치 및 네트워크 장치 | |
CN109995475A (zh) | 一种智能终端的控制方法、装置、存储介质及电子设备 | |
WO2017152738A1 (zh) | 通过云桌面控制终端智能设备的方法、装置及存储介质 | |
CN105991457A (zh) | 交换机、控制设备及其管理方法 | |
KR100366824B1 (ko) | 실시간 원격제어 방법 | |
CN102714630A (zh) | 通信装置、通信系统及通信方法 | |
US20040174885A1 (en) | Method, system and computer program product for processing packets at forwarder interfaces | |
JP2007053667A (ja) | モバイル装置、ホームエージェント装置及びプログラム | |
US7894452B2 (en) | Method and apparatus for the creation of TCP segments by simultaneous use of computing device components |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180511 Address after: Singapore Singapore Patentee after: Avago Technologies Fiber IP Singapore Pte. Ltd. Address before: Irvine, California, USA Patentee before: Zyray Wireless Inc. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110413 Termination date: 20171217 |
|
CF01 | Termination of patent right due to non-payment of annual fee |