CN101090338A - 用于对确认进行过滤的方法、***和设备 - Google Patents
用于对确认进行过滤的方法、***和设备 Download PDFInfo
- Publication number
- CN101090338A CN101090338A CNA2007101091347A CN200710109134A CN101090338A CN 101090338 A CN101090338 A CN 101090338A CN A2007101091347 A CNA2007101091347 A CN A2007101091347A CN 200710109134 A CN200710109134 A CN 200710109134A CN 101090338 A CN101090338 A CN 101090338A
- Authority
- CN
- China
- Prior art keywords
- affirmation
- data
- protocol stack
- transmit
- remote equipment
- 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.)
- Pending
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
- 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]
- 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
- 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/166—IP fragmentation; TCP segmentation
-
- 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1838—Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
-
- 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1858—Transmission or retransmission of more than one copy of acknowledgement message
-
- 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
- H04L2001/0092—Error control systems characterised by the topology of the transmission link
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种用于管理通信连接的解决方案,其中过滤了一个或多个确认。特别地,可以获得用于转发到远端设备的数据,并且可以传送该数据的至少一部分以便在远端设备上处理。随后,接收对该至少一部分数据的确认,并且确定是否要基于优化配置来转发该确认。本发明可以包括若干检查以确保正确转发任意应当被转发以便进行进一步处理的确认。在一个实施例中,本发明在网络适配器上实现,并且使得该网络适配器接收的对大型发送数据分组的大量确认能够被过滤并且不被提供给协议栈。
Description
技术领域
本发明一般地涉及通信管理,并且更特别地,涉及一种用于过滤针对通信连接而接收的确认的解决方案。
背景技术
随着网络接口速度的增加,用以在网络接口上实现通信所需的处理量正在成为性能瓶颈。例如,传输控制协议(TCP)栈需要大量处理以实现TCP通信。为了解决TCP栈的处理需求,已经提出了两种方法。
在第一种方法中,TCP处理从协议栈完全卸载到网络接口卡(NIC)。在这种方法中,NIC能够使用远程直接存储器访问(RDMA)来发送数据,而不需要计算设备上的处理单元。这种方法需要在NIC上的固件和/或硬件中实现TCP栈,使得难以调试、维护、升级等。更进一步,通信连接的两端都必须支持RDMA以成功地进行通信。
在第二种方法中,TCP栈继续在主处理器上执行,而部分处理任务被卸载到NIC。例如,NIC可以执行TCP校验和。更进一步,当发送数据时,TCP栈可以使用TCP分段(segmentation)卸载(TSO)或“TCP大型发送”。在这种情况下,TCP栈为NIC提供大于能够在单个分组中发送的数据分组的数据分组用于传输(例如64千字节)。NIC将数据分割成多个所需大小的分组(例如1500字节)用于传输。通过管理大型数据分组,减小了TCP栈的协议开销。为了解决对接收数据的处理需求,只提出了有限的策略,诸如每TCP连接复用和排队以及TCP/网际协议(IP)报头分离,由此启动诸如操作***旁路和零复制操作之类的功能。
考虑到前述问题,需要克服现有技术中的一种或多种缺陷。
发明内容
本发明提供了一种用于管理通信连接的解决方案,其中过滤一个或多个确认。特别地,可以获得用于转发到远端设备的数据,并且可以传送该数据的至少一部分以便在远端设备上处理。随后,接收对该至少一部分数据的确认,并且确定是否要基于优化配置来转发该确认。本发明可以包括若干检查以确保正确转发任意应当被转发以便进行进一步处理的确认。在一个实施例中,本发明在网络适配器上实现,并且使得该网络适配器接收的对大型发送数据分组的大量确认能够被过滤并且不被提供给协议栈。
本发明的第一个方面提供了一种管理通信连接的方法,该方法包括:获得用于转发到远端设备的数据;传送该数据的至少一部分以便在该远端设备上处理;接收对该至少一部分数据的确认;以及确定是否要基于优化配置来转发该确认。
本发明的第二个方面提供了一种用于管理通信连接的***,该***包括:用于获得用于转发到远端设备的数据的***;用于传送该数据的至少一部分以便在该远端设备上处理的***;用于接收对该至少一部分数据的确认的***;以及用于确定是否要基于优化配置来转发该确认的***。
本发明的第三个方面提供了存储在计算机可读介质上的计算机程序,当其被执行时,使得计算机***能够管理通信连接,该计算机程序包括用于使得计算机***能够执行以下操作的程序代码:获得用于转发到远端设备的数据;传送该数据的至少一部分以便在该远端设备上处理;接收对该至少一部分数据的确认;以及确定是否要基于优化配置来转发该确认。
本发明的第四个方面提供了一种网络适配器,包括:用于获得用于转发到远端设备的数据的装置;用于传送该数据的至少一部分以便在该远端设备上处理的装置;用于接收对该至少一部分数据的确认的装置;以及用于确定是否要基于优化配置来转发该确认的装置。
本发明的第五个方面提供了一种产生用于管理通信连接的***的方法,该方法包括提供一种计算机***,该计算机***可操作为:获得用于转发到远端设备的数据;传送该数据的至少一部分以便在该远端设备上处理;接收对该至少一部分数据的确认;以及确定是否要基于优化配置来转发该确认。
本发明的第六个方面提供了一种用于管理通信连接的业务方法,该业务方法包括管理执行这里描述的处理的计算机***;以及基于该管理来接收付费。
本发明的示例性方面设计为解决这里描述的一个或多个问题和/或没有讨论的一个或多个其他问题。
附图说明
结合描述本发明的各种实施例的附图,根据下面对本发明各方面的详细描述,可以更容易地理解本发明的这些及其他特征,其中:
图1示出了根据本发明实施例的用于管理通信连接的示例性环境。
图2示出了根据本发明实施例的用于传送大型数据分组的示例性数据流程图。
图3示出了根据本发明实施例的用于确定是否要转发确认用于由协议栈处理的示例性处理。
注意,附图不是按比例的。附图仅用于描述本发明的典型方面,因此不应当被认为是对本发明范围的限制。在附图中,同样的编号表示附图之间同样的单元。
具体实施方式
正如上面所表明的,本发明提供了一种用于管理通信连接的解决方案,其中过滤一个或多个确认。特别地,可以获得用于转发到远端设备的数据,并且可以传送该数据的至少一部分以便在远端设备上处理。随后,接收对该至少一部分数据的确认,并且确定是否要基于优化配置来转发该确认。本发明可以包括若干检查以确保正确转发任意应当被转发以便进行进一步处理的确认。在一个实施例中,本发明在网络适配器上实现,并且使得该网络适配器接收的对大型发送数据分组的大量确认能够被过滤并且不被提供给协议栈。如这里所使用的,除非另有说明,否则术语“组”(set)的意思是一个或多个(也就是至少一个)并且短语“任意解决方案”的意思是任意现在已知的或以后将开发的解决方案。
转到附图,图1示出了根据本发明实施例的用于管理通信连接的示例性环境10。在此,环境10包括计算机***12,其可以执行这里描述的处理以便管理通信连接。特别地,将计算机***12示出为包括计算设备14,该计算设备包括协议栈30和网络适配器24,其使得计算设备14可操作为通过执行这里描述的处理来管理与远端设备18的通信连接。
将计算设备14示出为包括处理器20、存储器22A、网络适配器24和总线26。此外,将计算设备14示出为与存储设备22B通信。如本领域中所已知的,一般而言,处理器20执行存储在存储器22A和/或存储设备22B中的诸如协议栈30之类的程序代码。当执行程序代码时,处理器20能够对存储器22A、存储设备22B和/或网络适配器24读取和/或写入诸如连接数据50之类的数据。总线26在计算设备14中的每个组件之间提供了通信链路。尽管没有示出,但应当理解,计算设备14可以包括能够使用任意类型的通信链路在用户16(例如个人)和/或远端设备18(例如另一个计算机***)与计算设备14之间进行数据传送的其他类型的I/O接口和/或I/O设备。
在任意情况下,计算设备14可以包括能够执行在其上安装的程序代码的任意通用计算产品。但是,应当理解,计算设备14只是可以执行这里描述的处理的各种可能的等同计算设备的代表。在此,在其他实施例中,协议栈30和网络适配器24提供的功能可以通过计算产品来实现,该计算产品包括通用和/或专用硬件和/或程序代码的任意组合。在每个实施例中,可以分别使用标准程序设计和工程技术来创建程序代码和硬件。
类似地,计算机***12只是对用于实现本发明的各种类型的计算机***的例示。例如,在一个实施例中,计算机***12包括两个或更多的计算设备,其通过诸如网络、共享存储器等任意类型的通信链路进行通信以执行这里描述的处理。例如,这里描述的由网络适配器24实现的功能中的一些或全部可以在与计算设备14分离地实现的设备中实现。此外,当执行这里描述的处理时,计算机***12中的一个或多个计算设备可以使用任意类型的通信链路与计算机***12外部的一个或多个其他计算设备进行通信。在任一情况下,通信链路可以包括各种类型的有线和/或无线链路的任意组合;可以包括一种或多种类型的网络的任意组合;和/或利用各种类型的传输技术和协议的任意组合。
正如这里所讨论的,协议栈30和网络适配器24使得计算机***12能够管理通信连接。在此,将协议栈30示出为包括发送模块32、接收模块34和优化模块36,而将网络适配器24示出为包括配置模块40、分段模块42和过滤模块44。这里进一步讨论这些模块中的每个模块的操作。但是,应当理解,图1中示出的各个模块中的一些可以独立实现、组合、和/或存储在一个或多个独立计算设备的存储器中,这些独立计算设备包括在计算机***12中。此外,应当理解,可以不实现这些模块和/或功能中的一些,或者可以包括附加的模块和/或功能作为计算机***12的一部分。
不管怎样,本发明提供了一种用于管理通信连接的解决方案,其中网络适配器24可以过滤一个或多个作为通信连接的一部分而接收的确认,而不是转发所有确认用于由协议栈30处理。一般而言,发送模块32从发送应用接收数据,将这些数据分解成分组用于传输,将用于通信协议的数据添加到每个分组中,并将每个分组提供给网络适配器24。网络适配器24通过网络发送分组用于由例如远端设备18之类的目的地设备处理。类似地,在从例如远端设备18接收分组时,网络适配器24提供该分组用于由协议栈30处理。接收模块34移除并处理用于通信协议的数据,能够对来自于多个分组的数据进行组合(如果需要的话),并将该数据转发到目的地应用用于处理。
协议栈30和/或网络适配器24可以同时管理用于多个应用/远端设备18组合的通信连接。在此,协议栈30和/或网络适配器24可以管理用于每个通信连接的连接数据50。连接数据50可以使用任意解决方案(例如一个或多个文件、数据库中的记录等等)来存储,并且可以包括针对相应应用的标识符、窗口大小、寻址/路由信息、历史信息等等。另外,连接数据50可以包括一个或多个队列用于处理针对通信连接的消息(分组)。例如,连接数据50可以包括发送队列,发送模块32向其中添加要发送的消息并且网络适配器24从其中移除并发送消息。类似地,连接数据50可以包括接收队列,网络适配器24向其中添加接收到的消息并且接收模块34从其中移除并处理消息。
此外,连接数据50可以包括关于一个或多个优化配置的数据。在此,优化模块36可以管理存储在连接数据50中的优化配置数据。特别地,优化模块36可以获得一个或多个期望的优化设置,并且将这些优化设置存储为连接数据50中的优化配置数据。优化模块36可以使用任意解决方案来获得优化设置。例如,优化模块36可以生成用户界面用于显示给用户16,其使得用户16能够选择一组期望的优化设置。类似地,优化模块36可以定义应用程序接口(API)等,其使得另一个应用/***能够选择一组期望的优化设置。此外,优化模块36可以监控通信连接上的通信并且可以基于该通信来动态地调整相应的优化配置。在任意情况下,配置模块40可以读取连接数据50(例如优化配置数据)并基于连接数据50来调整网络适配器24的操作。
在此处所描述的示例性实施例中,协议栈30处理传输控制协议(TCP)消息,例如协议栈30包括TCP栈。在这种情况下,连接数据50可以包括分段卸载设置,用于指出协议栈30是否提供大型数据分组用于后续由网络适配器24进行分段和发送。尽管为进行例示而主要参考分段卸载而描述了本发明,但应当理解,本发明可以独立于分段卸载功能而实现和使用。在任意情况下,图2示出了根据本发明实施例的用于传送大型数据分组52的示例性数据流程图。参考图1和图2,当网络适配器24针对协议栈30而执行分段卸载时,协议栈30将为网络适配器24提供大型数据分组52。分段模块42会将该大型数据分组52分割成大量较小的数据分组54A-54E,其中每个都符合对消息中所允许的字节数目的限制。网络适配器24发送每个数据分组54A-54E用于在远端设备18上处理。
网络适配器24可以使用任意解决方案来发送数据分组54A-54E。例如,正如所示出的,网络适配器24可以发送诸如数据分组54A之类的数据分组并在发送下一个数据分组54B之前等待接收作为对数据分组54A的响应的确认(ACK)56A。但是,应当理解,这个数据流程只是示例性的。在此,网络适配器24可以顺序地发送数据分组54A-54E,而不用等待接收任意相应的确认56A-56E。当接收到确认56A-56E时,网络适配器24可以处理确认56A-56E并确定任意数据分组54A-54E是否需要重传。另外,对于诸如TCP通信连接之类的一些通信协议,远端设备18可以不发送确认56A-56E作为对每个数据分组54A-54E的响应。例如,远端设备18可以每隔一个从网络适配器24接收的数据分组54A-54E才发送一次确认56A-56E。在此,网络适配器24可以实现相应的用于处理更少的确认56A-56E的功能。
不管怎样,当传送针对单个大型数据分组52的数据分组54A-54E时,网络适配器24可以接收大量确认56A-56E。在这种情况下,过滤模块44可以基于包括在连接数据50中的优化配置来确定是否要将确认56A-56E转发到协议栈30,而不是对每个确认56A-56E都进行转发。特别地,连接数据50可以包括过滤设置,用于指出网络适配器24是否应当丢弃(例如不转发到协议栈30)任意针对通信连接而接收的确认56A-56E。配置模块40可以读取连接数据50中的过滤设置并相应地调整对确认56A-56E的处理。
当针对通信连接而对确认56A-56E进行过滤时,过滤模块44可以确定是否要将确认56A-56E转发到协议栈30并相应地处理确认56A-56E。例如,过滤模块44可以转发确认56A-56E用于由协议栈30处理,丢弃确认56A-56E等等。图3示出了根据本发明实施例的用于确定是否要转发确认56A-56E用于由协议栈30处理的示例性处理,其可以由过滤模块44(图1)实现。参考图1和图3,在处理P1中,过滤模块44接收对以前由网络适配器24发送的数据分组的确认。在判决P2中,过滤模块44确定是否应当过滤确认。例如,过滤模块44可以确定针对通信连接的确认过滤是否为激活(例如通过检查过滤设置)。如果不为激活,那么在处理P8中,过滤模块44可以转发确认用于由协议栈30处理。
应当理解,过滤模块44还可以确定一个或多个其他优化当前是否对通信连接激活以确定是否应当在判定P2中过滤确认。例如,过滤模块44可以确定分段卸载是否为激活(例如通过检查分段卸载设置)。当不为激活时,协议栈30可以期望接收所有确认。另外,通信连接可以实现选择性的确认,其中在数据分组丢失或接收时次序混乱时,只有某些数据分组需要重传。在这种情况下,协议栈30可能需要处理每个确认以便确定是否有任意数据分组需要重传。在任一情况下,过滤模块44可以转发所有确认用于由协议栈30处理。但是,应当理解,这只是示例性的,并且即使在分段卸载非激活或没有实现以及/或者实现了选择性的确认时过滤模块44仍可以过滤确认。
如果可以过滤确认,则在判决P3中,过滤模块44可以确定确认是否包括由协议栈30处理所需的任意数据。例如,作为对由协议栈30产生的请求的响应,确认可以包括所传送的响应数据用于由协议栈30处理。类似地,确认可以包括一个或多个标记(例如URG、PSH、RST、SYN、FIN)。此外,确认可以包括通信连接上的数据,诸如小于以前窗口大小的窗口大小。但是,在TCP通信中,这种情况很少并且不被推荐,因此可以被过滤模块44忽略。在这些情况中的一种或多种情况下,过滤模块44可以转发包括用于由协议栈30处理的数据的确认。
假设确认过滤为激活并且已经接收到一个纯确认(例如不包括其他数据),那么过滤模块44可以基于其以前的确认处理来确定是否要转发该确认用于由协议栈30处理。例如,过滤模块44可以基于以前转发的确认来确定是否要转发确认。特别地,发送单个大型数据分组52(图2)可能需要大量数据分组54A-54E(图2)。另外,远端设备18可能直到数据分组54A-54E被指定给的应用程序已经读取一些或全部数据分组54A-54E后才发送确认(例如,如在一些基于Unix的操作***的TCP实现中)。结果,对于协议栈30,整个大型数据分组52的传输时间可能会超过超时周期,等等。
在此,过滤模块44可以周期性地将确认转发到协议栈30以确保协议栈30不会由于感知到与远端设备18无通信而开始重发分组。在一个实施例中,过滤模块使用门限确认数目(例如增量)以在转发另一个确认用于由协议栈30处理之前进行过滤。在此,优化模块36可以将门限数目存储在连接数据50中,过滤模块44可以从其中获得设置。作为选择,过滤模块44可以使用一个固定数目。在任一情况下,可以将门限数目设置为在转发另一个确认用于由协议栈30处理之前过滤五个到十个确认。
在任意情况下,作为处理P8的一部分,过滤模块44可以存储转发到协议栈30的上一个确认的确认编号。在判决P4中,过滤模块44可以将当前确认的确认编号与所存储的上一个转发的确认的确认编号与门限数目(DELTA1)之和进行比较。如果确认编号大于或等于该和,那么过滤模块44可以转发该确认用于由协议栈30处理。应当理解,这只是示例性的,并且过滤模块44可以实现任意用于确定何时超过门限确认数目的解决方案(例如计数器)。
过滤模块44还可以基于要传送的数据分组的总数来确定是否要转发确认用于在远端设备18上处理。特别地,过滤模块44应当转发接收到的用于由协议栈30处理的上一个确认56E(图2)以确保协议栈30不会基于丢失的确认56E而重传数据。例如,当处理TCP大型发送时,分段模块42可以存储传送大型数据分组52(图2)所需的上一个数据分组54E(图2)的序列号。
在判决P5中,过滤模块44可以确定当前确认是否在对具有比上一个数据分组的序列号小的序列号的数据分组进行确认。如果该确认大于或等于上一个数据分组的序列号,那么过滤模块44可以转发该确认用于由处理P8中的协议栈处理。但是,对于一些协议,可能不会针对每个数据分组而接收确认。例如,在TCP中,可能每隔一个数据分组才接收一次确认。在这种情况下,过滤模块44可以使用优化模块36可以存储在连接数据50中的第二个门限数目(DELTA2)。特别地,过滤模块44可以将第二门限数目与当前确认的序列号之和与上一个数据分组的序列号进行比较,并转发在上一个数据分组的门限数目内的确认。在一个实施例中,第二门限数目在1和2的范围内。但是,应当理解,第二门限可以基于期望确认的频繁程度来选择。例如,如果期望得到针对每个数据分组的确认,那么第二门限可以设置为零。
过滤模块44还可以基于以前的确认来确定是否要转发确认。例如,在TCP中,远端设备17可以通过发送两个连续的复制确认来请求重传和/或向协议栈30通报新窗口大小。在此,过滤模块44可以将当前确认的序列号与以前的确认的序列号进行比较。如果两个序列号不同,那么过滤模块44可以在处理P7中丢弃确认。丢弃确认可以包括不转发用于由协议栈处理的确认。此外,丢弃可以包括从存储器移除确认、将确认存储一个指定的时间段/确认数目、将确认转发到另一个***等等。否则,在处理P9中,过滤模块44可以转发确认的两个副本用于由协议栈30处理。不管怎样,当过滤模块44将以前的确认的序列号与当前确认的序列号进行比较时,在处理P7-P9中的每个处理中,过滤模块44可以存储当前确认的序列号用于处理后续确认。
在处理P9中,协议栈30必须接收确认的两个副本以确保它被作为复制确认而处理。但是,过滤模块44可能已经在处理P8中转发了以前的确认。在此,在处理P9中,过滤模块44可以转发确认的第一副本用于由协议栈30处理,然后比较以前转发的确认的序列号以确定是否要发送确认的第二副本。特别地,如果以前转发的确认的序列号等于当前确认的序列号,那么不需要第二副本。否则,过滤模块44可以转发第二副本用于由协议栈30处理。
正如这里所描述的,协议栈30可以动态地管理针对通信连接的优化配置。在此,协议栈30可以选择针对通信连接启用和/或禁用确认过滤。例如,协议栈30可以针对新通信连接禁用确认过滤(例如在TCP连接的慢启动阶段期间)。另外,协议栈30可以针对拥塞(导致较长的往返延迟)、具有不稳定的往返延迟、需要大量重传等的通信连接禁用确认过滤。另外,协议栈30可以基于通信连接的一个或多个属性来调整被过滤的确认数目。例如,协议栈30可以针对具有相对稳定但较长的往返延迟的通信连接减少过滤的确认数目。
尽管在这里示出和描述为一种用于管理通信连接的方法和***,但应当理解,本发明还提供了各种替代性实施例。例如,在一个实施例中,本发明提供了一种存储在计算机可读介质上的计算机程序,当其执行时,使得计算机***能够管理通信连接。在此,计算机可读介质包括实现这里描述的处理的程序代码,诸如协议栈30(图1)和/或网络适配器24的一个或多个模块40、42、44。应当理解,术语“计算机可读介质”包括程序代码的一个或多个任意类型的有形介质表示(例如物理实施例)。特别地,计算机可读介质可以包括如下程序代码,这些程序代码具体体现在一个或多个便携式存储产品上,在计算设备的一个或多个数据存储部分上,其中该数据存储部分诸如存储器22A(图1)和/或存储***22B(图1),作为通过网络传播的数据信号(例如在对计算机程序进行有线/无线电子分发期间),在纸上(例如能够扫描并转换成电子数据),等等。
在另一个实施例中,本发明提供了一种生成用于管理通信连接的***的方法。在这种情况下,可以获得(例如创建、维护、使其可用等)一个计算机***,诸如计算机***12(图1),并且可以获得(例如创建、购买、使用、修改等)用于执行这里描述的处理的一个或多个程序/***并将其部署到该计算机***。在此,该部署可以包括下述一个或多个步骤:(1)从计算机可读介质将程序代码安装在诸如计算设备14(图1)之类的计算设备上;(2)为计算机***添加一个或多个计算设备;以及(3)合并和/或修改计算机***的一个或多个现有设备,使得计算机***能够执行这里描述的处理。
在另一个实施例中,本发明提供了一种在定制、广告和/或收费的基础上执行这里描述的处理的业务方法。也就是说,诸如集成解决方案提供商之类的服务提供商能够管理通信连接,正如这里所描述的。在这种情况下,服务提供商可以管理(例如创建、维护、支持等)计算机***,诸如计算机***12(图1),该计算机***为一个或多个客户执行这里所描述的处理。作为回报,服务提供商可以接收来自于已签订定制和/或收费协议的客户的付费,可以接收来自于对一个或多个第三方发放广告的销售的付费等。
正如在这里所使用的,应当理解,术语“程序代码”意思是用任意语言、代码或符号表示的一组指令的任意表达,其可使得具有信息处理能力的计算设备直接执行或在对下述方式进行任意组合之后执行特定的功能:(a)转化成另一种语言、代码或符号;(b)以不同的材料形式再现;和/或(c)解压缩。在此,程序代码可以具体体现为一种或多种类型的计算机程序中的一些或全部,诸如应用/软件程序,组件软件/函数库,操作***,特定计算、存储和/或I/O设备的基本I/O***/驱动程序,等等。
已经为了说明和描述的目的而提出了对本发明各个方面的前述描述。其并非旨在穷举或将本发明限制为所公开的精确形式,显然,很多修改和变更都是可能的。这些修改和变更对本领域的普通技术人员来说是很明显的,并且包括在由所附权利要求限定的本发明的范围之内。
Claims (16)
1.一种管理通信连接的方法,所述方法包括:
获得用于转发到远端设备的数据;
传送所述数据的至少一部分以便在所述远端设备上处理;
接收对所述至少一部分数据的确认;以及
确定是否要基于优化配置来转发所述确认。
2.根据权利要求1所述的方法,所述优化配置包括:
过滤设置,用于指出是否应当丢弃任意确认;以及
分段卸载设置,用于指出协议栈是否提供大型数据分组。
3.根据权利要求2所述的方法,进一步包括当出现以下至少一种情况时转发所述确认:所述过滤设置非激活或所述分段卸载设置非激活。
4.根据权利要求1所述的方法,所述确定进一步基于所述确认,所述方法进一步包括转发包括需要由协议栈处理的数据的确认。
5.根据权利要求1所述的方法,所述确定进一步基于所述确认以及以前的确认,所述方法进一步包括在所述确认包括与所述以前的确认的序列号相同的序列号时转发所述确认的至少一个副本。
6.根据权利要求1所述的方法,所述确定进一步基于以前转发的确认,所述方法进一步包括转发作为在所述以前转发的确认后经过门限数目的确认之后的一个确认。
7.根据权利要求1所述的方法,所述确定进一步基于用于传送所述数据的分组总数,所述方法进一步包括转发作为对在所述分组总数的门限数目之内的分组的响应而接收的确认。
8.一种用于管理通信连接的***,所述***包括:
用于获得用于转发到远端设备的数据的***;
用于传送所述数据的至少一部分以便在所述远端设备上处理的***;
用于接收对所述至少一部分数据的确认的***;以及
用于确定是否要基于优化配置来转发所述确认的***。
9.根据权利要求8所述的***,所述优化配置包括:
过滤设置,用于指出是否应当丢弃任意确认;以及
分段卸载设置,用于指出协议栈是否提供大型数据分组。
10.根据权利要求8所述的***,进一步包括用于转发所述确认的***。
11.根据权利要求8所述的***,进一步包括协议栈,其中所述协议栈提供用于转发到所述远端设备的数据。
12.根据权利要求11所述的***,其中所述协议栈基于所述通信连接的至少一个属性来动态地管理所述优化配置。
13.根据权利要求11所述的***,所述协议栈包括传输控制协议(TCP)栈。
14.一种网络适配器,包括:
用于获得用于转发到远端设备的数据的装置;
用于传送所述数据的至少一部分以便在所述远端设备上处理的装置;
用于接收对所述至少一部分数据的确认的装置;以及
用于确定是否要基于优化配置来转发所述确认的装置。
15.根据权利要求14所述的网络适配器,进一步包括用于转发所述确认的装置。
16.根据权利要求14所述的网络适配器,进一步包括获得所述优化配置的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/424,043 | 2006-06-14 | ||
US11/424,043 US20070291782A1 (en) | 2006-06-14 | 2006-06-14 | Acknowledgement filtering |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101090338A true CN101090338A (zh) | 2007-12-19 |
Family
ID=38861484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101091347A Pending CN101090338A (zh) | 2006-06-14 | 2007-06-13 | 用于对确认进行过滤的方法、***和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070291782A1 (zh) |
CN (1) | CN101090338A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970118A (zh) * | 2012-12-04 | 2013-03-13 | 福建星网锐捷网络有限公司 | 一种tcp ack报文处理方法、装置及无线网络设备 |
WO2013139165A1 (zh) * | 2012-03-21 | 2013-09-26 | 华为技术有限公司 | 确认包的处理方法、设备及*** |
CN103546258A (zh) * | 2013-10-29 | 2014-01-29 | 华为技术有限公司 | 一种数据传输方法及装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7793032B2 (en) * | 2007-07-11 | 2010-09-07 | Commex Technologies, Ltd. | Systems and methods for efficient handling of data traffic and processing within a processing device |
JP4513036B2 (ja) * | 2008-04-04 | 2010-07-28 | ソニー株式会社 | 送信装置および方法、並びにプログラム |
WO2010047044A1 (ja) * | 2008-10-24 | 2010-04-29 | 日本電気株式会社 | パケットロス頻度計測システム、パケットロス頻度計測方法およびプログラム |
CN102368768B (zh) * | 2011-10-12 | 2014-04-02 | 北京星网锐捷网络技术有限公司 | 认证方法、设备、***及认证服务器 |
CN102946387B (zh) * | 2012-11-01 | 2016-12-21 | 惠州Tcl移动通信有限公司 | 一种防御拒接服务攻击的方法 |
US9461905B2 (en) * | 2013-05-02 | 2016-10-04 | Raytheon Company | Method for indirect link characterization and quality measurement of a digital network |
US20200236140A1 (en) * | 2019-04-16 | 2020-07-23 | Intel Corporation | Transport layer security offload to a network interface |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6788704B1 (en) * | 1999-08-05 | 2004-09-07 | Intel Corporation | Network adapter with TCP windowing support |
US6424626B1 (en) * | 1999-10-29 | 2002-07-23 | Hubbell Incorporated | Method and system for discarding and regenerating acknowledgment packets in ADSL communications |
US6957374B1 (en) * | 2002-01-31 | 2005-10-18 | The United States Of America As Represented By The National Security Agency | Method of acknowledging receipt of data packets |
-
2006
- 2006-06-14 US US11/424,043 patent/US20070291782A1/en not_active Abandoned
-
2007
- 2007-06-13 CN CNA2007101091347A patent/CN101090338A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013139165A1 (zh) * | 2012-03-21 | 2013-09-26 | 华为技术有限公司 | 确认包的处理方法、设备及*** |
CN104137495A (zh) * | 2012-03-21 | 2014-11-05 | 华为技术有限公司 | 确认包的处理方法、设备及*** |
US9602410B2 (en) | 2012-03-21 | 2017-03-21 | Huawei Technologies Co., Ltd. | Method, device, and system for processing acknowledgement packet |
CN104137495B (zh) * | 2012-03-21 | 2017-10-27 | 华为技术有限公司 | 确认包的处理方法、设备及*** |
CN102970118A (zh) * | 2012-12-04 | 2013-03-13 | 福建星网锐捷网络有限公司 | 一种tcp ack报文处理方法、装置及无线网络设备 |
CN102970118B (zh) * | 2012-12-04 | 2015-06-17 | 福建星网锐捷网络有限公司 | 一种tcp ack报文处理方法、装置及无线网络设备 |
CN103546258A (zh) * | 2013-10-29 | 2014-01-29 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN103546258B (zh) * | 2013-10-29 | 2017-01-18 | 华为技术有限公司 | 一种数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20070291782A1 (en) | 2007-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101090338A (zh) | 用于对确认进行过滤的方法、***和设备 | |
CN101023631B (zh) | 用于在网络环境中交换获知信息的***和方法 | |
JP5286346B2 (ja) | プロセス制御システムおよびアプリケーション情報を通信する方法 | |
US9178665B2 (en) | Communication apparatus, communication system, absent packet detecting method and absent packet detecting program | |
AU747484B2 (en) | Reduced packet header in wireless communications network | |
US9258230B2 (en) | In flight TCP window adjustment to improve network performance | |
US20070127521A1 (en) | Interface between network data bus application and avionics data bus | |
CA2604898C (en) | System and method of message traffic optimization | |
US6760766B1 (en) | Data transmission method and device | |
EP1039718A2 (en) | Data communication method terminal equipment, interconnecting installation, data communication system and recording medium | |
US7395344B2 (en) | Method for ACARS application communication over an IP network | |
EP2978171B1 (en) | Communication method, communication device, and communication program | |
CN102332968A (zh) | 通信设备、通信方法及计算机程序 | |
CN101674235B (zh) | 数据传输方法和设备 | |
US7535916B2 (en) | Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications | |
KR20020042180A (ko) | 이동통신 시스템의 소켓 자동 관리 방법 | |
EP1225741B1 (en) | High speed interconnection for embedded systems within a computer network | |
WO2002003147A2 (en) | Method for detecting invalid packets by rewriting transaction identifiers | |
GB2433006A (en) | Transmitting ACARS messages over an IP network | |
GB2398214A (en) | Deferred acknowledgment communications | |
EP1742414B1 (en) | Peer-to-peer multicast gateway | |
KR101039508B1 (ko) | 데이터 전송을 감시하기 위한 방법 및 장치 | |
CN105991629A (zh) | Tcp连接建立方法及装置 | |
CN115580588B (zh) | 一种高效的数据传输方法和*** | |
CN100583878C (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20071219 |