CN100568830C - 用于完成处理的方法和系统 - Google Patents
用于完成处理的方法和系统 Download PDFInfo
- Publication number
- CN100568830C CN100568830C CNB200580002049XA CN200580002049A CN100568830C CN 100568830 C CN100568830 C CN 100568830C CN B200580002049X A CNB200580002049X A CN B200580002049XA CN 200580002049 A CN200580002049 A CN 200580002049A CN 100568830 C CN100568830 C CN 100568830C
- Authority
- CN
- China
- Prior art keywords
- finishing
- finish
- tabulation
- tcp
- request
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种方法和系统,用于通过传输控制协议(TCP)接收器(例如在TCP/IP卸载引擎(TOE)中)的完成合并。所述方法包括:处理进入的TCP段;并且执行进入的TCP段的完成处理。
Description
技术领域
本发明一般地涉及传输控制协议(TCP)系统。更具体地,本发明提供了一种方法、系统和计算机程序产品,用于通过TCP接收器(例如在TCP/IP卸载(offload)引擎(TOE)中)的完成合并。
背景技术
在本领域中公知,TCP是数据传送协议,用于使用确认和超时机制来提供可靠的服务。在此程度,TCP向被发送的每个字节分配序号,并且从接收TCP预期肯定的确认(ACK)。如果在超时间隔中未接收到TCP ACK,则重新发送数据。也使用其他更高级的重发方案,这允许在接收到多个(例如三个)重复的ACK(重复的ACK是不改变TCP窗口的左窗边缘的ACK)时开始重发处理。
所述确认机制的使用基于发送专用TCP ACK段或在数据段的TCP首部中背负(piggyback)TCPACK信息。但是,专用TCPACK段或背负的TCPACK信息的处理对于网络是清楚的开销。TCP试图降低这种开销的一种方式是通过使用延迟的TCPACK方法。这种方法使得可以对于每两个(或更多)的所接收的TCP段发送单个TCP ACK。
另外的TCP ACK处理开销源自每个所接收的TCP ACK段或承载新的TCPACK信息的数据段的完成处理。如在本领域中公知,这样的完成处理涉及例如张贴的(posted)消费者请求(例如描述符读取)的读取和处理,以识别是否这个请求已经被完成。TCP的主要问题是,TCP不提供将TCP序号映射到消费者请求的简单方式。在InfiniBand,例如确认段不仅承载字节序号,而且承载消息序号。这使得可以在不需要收集信息来执行ACK序号到消费者请求的映射的情况下执行ACK处理和完成处理。但是,在TCP中,ACK不承载这样的信息。同样,在TCP中,必须收集信息以执行ACK序号到消费者请求的映射。用于收集所需要的信息的一种方式涉及读取和处理消费者请求。因此,对于每个所接收的TCP ACK执行这样的耗时操作消耗网络和处理资源,并且强迫进入的(inbound)TCP段的逻辑处理在处理下一个TCP段之前等待每个所接收的TCP ACK的完成处理结束。因此,所述完成处理开销包括两个部分:完成操作本身的开销;将进入的TCP段处理逻辑与完成处理逻辑的耦合。
因此,需要一种方法、系统和计算机程序产品,用于与完成处理独立地处理进入的TCP段(包括ACK)。这使得进入的TCP段的处理可以继续,而不用等待每个所接收的TCP ACK的完成处理结束。而且,被延迟的、独立的完成处理使得本发明可以执行ACK的合并(即,可以对于多个ACK执行一个完成操作,而不是每个ACK一个完成操作)。同一方法也可以被应用到RDMA读取请求的完成处理。
发明内容
本发明提供了一种用于独立于完成处理而处理进入的TCP段(包括ACK)的方法和系统,具体上,每个被接收的TCP ACK(由数据段专用或承载)不被进入段处理逻辑立即处理,而是使用完成合并列表来预定以处理。通过下述方式来预定用于完成处理的连接:在连接环境中更新TCP ACK信息,并且向所述完成合并列表增加所述连接环境。
本发明的第一方面涉及一种用于完成处理的方法,包括:处理进入的TCP段;并且与进入的TCP段的处理相独立地执行所接收的TCP ACK的完成处理。
本发明的第二方面涉及一种用于完成处理的系统,包括:TCP逻辑,用于处理进入的TCP段;以及用于独立于所述进入的TCP段的处理而执行所接收的TCP ACK的完成处理的系统。
本发明的第三方面提供一种计算机程序产品,用于执行本发明的所述方法。
从下面的本发明的实施例的更具体的说明,本发明的上述和其他特征将会显然。
附图说明
将参见下面的附图来详细地说明本发明的各实施例,附图中,相同的标记表示相同的元件,并且附图中:
图1图解了按照本发明的用于TCP ACK的完成处理的完成合并系统的方框图;
图2图解了按照本发明的完成合并列表的结构。
图3A-3B图解了按照本发明将完成环境加到完成合并列表。
图4图解了按照本发明的用于TCP ACK和远程数据存储器存取(RDMA)读取响应的完成处理的完成合并系统的方框图。
图5图解了RDMA协议的完成排序规则。
图6示意性地图解了RDMA读取操作。
具体实施方式
本发明提供了一种方法、系统和计算机程序产品,用于通过传输控制协议(TCP)接收器的完成合并。
现在参见图1,图解了按照本发明的完成合并系统10的方框图。为本说明假定,读者具有与本领域内的技术人员相当的对TCP的了解。因此,在此不提供TCP的详细说明。
完成合并系统10包括TCP逻辑12、发送/重发处理器14、完成处理器16和完成合并列表18。按照本发明,每个所接收的TCP ACK(由数据段专用或承载)的完成操作不被TCP逻辑12立即处理,而是替代地使用完成合并列表18被预定处理。但是,TCPACK立即被TCP逻辑12处理。
TCP逻辑12包括接收(Rx)TCP逻辑20和发送(Tx)TCP逻辑22。Rx TCP逻辑20处理所接收的TCP段。这包括例如从所接收的TCP段提取TCP ACK信息,诸如TCP数据流的最后确认字节的序号(即LastAckedSN)。这个信息(即LastAckedSN)被作为完成请求24传送到完成处理器16。为了将这个完成信息传送到(即经由完成请求24)完成处理器16,本发明使用完成合并列表18。所述完成信息经由在完成合并列表18中的连接环境传送(LastAckedSN是承载最近的ACKed SN的连接环境的字段)。所述连接环境本身被链接到完成合并列表18,但是只有当所述连接没有待决的完成请求时如此。如果所述连接已经在等待在完成合并列表18中的完成处理(即,所述连接已经具有待决的完成请求),则在连接环境中的信息被更新以承载更近的LastAckedSN。这将RxTCP逻辑20(或所接收的TCP段的处理(handling/processing))与较慢的和突发的完成处理相分离。
TCP逻辑12的Tx TCP逻辑22确定对于给定的连接应当发送什么。TxTCP 22逻辑可以确定执行新的TCP段的发送,或者执行先前发送的TCP段的重发。重发可以由超时或由被Tx TCP逻辑22实现的其他快速恢复方法来引起。Tx TCP 22向发送/重发处理器14传送用于执行发送/重发操作的请求26,所述发送/重发处理器14执行所请求的操作。
完成合并列表18是连接的列表,或者更精确而言是连接环境。连接环境是存储与特定连接相关的数据的数据结构(即包括数据、指针、字段、比特、标志等)。完成合并列表18是通过使用在所述环境中的指针来链接连接环境而实现的单向链接列表。完成合并列表18保存对应于具有要处理的待决完成请求的连接的连接环境。TCPACK的接收例如是可能导致向完成合并列表18增加连接环境的触发器之一(即,TCP ACK是用于预定由完成处理器16进行的完成处理的完成合并列表18中的连接环境的触发器)。每个连接可以在完成合并列表18中仅仅出现一次。如果对应于连接的连接环境已经被链接到完成合并列表18,则所述连接环境被更新以承载最近的信息,并且被保持在它被原始链接的完成合并列表18中的相同位置。
如图2中所示,使用在每个连接环境30中保存的指针28来实现完成合并列表18。在此程度上,每个连接环境30具有字段32,它经由指针28指向在完成合并列表18中的下一个连接环境30。通过来自TCP逻辑12的Rx TCP逻辑20的请求(即完成请求)将连接加到完成合并列表18的尾部36,并且通过完成处理器16从完成合并列表18的首部34去除连接。
再次参见图1,应当注意,为了执行重发操作,发送/重发处理器14需要保证已经完成了对于那个连接的所有在前的完成请求。其原因是所述重发操作一般从TCP数据流的最后未完成字节(或从消费者的最后未完成请求或在消费者的最后未完成请求中)开始。因此,完成操作必须在重发的处理之前。因为通常不立即处理完成请求24,而是由完成处理器16经由连接合并列表18来处理所述完成请求24,所以需要保证给定的连接在通过完成处理器16的完成处理之前不在完成合并列表18中等待。为了保证对于那个连接尽可能快地完成所述完成操作,发送/重发处理器14向完成处理器16发送高优先级完成请求24HP,请求完成处理器16对于所述给定连接尽可能快地执行完成操作(即绕过完成合并列表18)。发送/重发处理器14随后等待这个操作的完成,然后仅仅执行重发操作。
完成处理器16被配置来从完成合并列表18的首部34(图2)逐一地获得(即拉出)连接环境30,并且在每个被拉出的连接环境30中使用完成信息来以本领域内公知的方式执行完成操作。如上所述,完成处理器16也可以从发送/重发处理器14逻辑接收高优先级完成请求24HP,以执行对于指定连接的“紧急”完成操作。在这种情况下,完成处理器16结束当前的完成操作,并且执行由发送/重发处理器14请求的完成操作。
如上所述,使用在每个连接环境30的字段32中保存的指针28在完成合并列表18中链接连接环境30。更精确而言,使用在连接环境30中的Context[Ch#]::NextInAckList字段32在完成合并列表18中链接连接环境30。
连接环境30的Context[Ch#]::NextInAckList字段32在形成完成合并列表18的连接环境30的链中保存下一个连接环境30的连接编号(即,Context[Ch#]::NextInAckList字段32有效地向在所述链中的下一个连接环境30提供指针28)。当向所述链加上新的连接环境30时(例如在接收到新的TCPACK时),所述链的最后连接环境30的Context[Ch#]::NextInAckList字段32被更新以参见新增加的连接环境30。以简单的方式将此示出在图3A和3B中。具体上,在图3A中,将完成合并列表18示出为包括两个链接在一起的连接环境301、302,并且连接环境301的Context[Ch#]::NextInAckList字段321指向(指针281)在完成合并列表18中的最后连接环境(即连接环境302)。当新的连接环境303被加到所述链的尾部36时(例如在接收到新的TCP ACK时),连接环境302的Context[Ch#]::NextInAckList字段322被更新以参见(指针282)新增加的连接环境303,所述连接环境303现在位于完成合并列表18的尾部36。
当新的TCP ACK到达时,TCP逻辑12的Rx TCP逻辑20首先使用连接环境30的Context[Ch#]::LastAckedSN字段38(见例如在图3B中的连接环境303中的Context[Ch#]::LastAckedSN字段383)更新由所接收的TCP段承载的TCP ACK信息。虽然在图3B中未示出,但是每个连接环境30包括Context[Ch#]::LastAckedSN字段38。连接环境30字段Context[Ch#]::LastAckedSN38指示TCP数据流的最后确认的字节的序号。
连接环境30也保持一个比特,用于指示是否连接环境具有有效的完成处理请求。在连接环境30的Context[Ch#]::CompletionReq字段40(参见例如在图3B中的连接环境303中的Context[Ch#]::CompletionReq字段403)中提供这个比特。虽然在图3B中未示出,但是每个连接环境30包括Context[Ch#]::CompletionReq字段40。这个比特也指示是否连接环境30已经被链接到完成合并列表18。如果连接环境30已经链接到完成合并列表18(即Context[Ch#]::CompletionReq置位),则Context[Ch#]::LastAckedSN的更新有效地表示对应于所接收的TCPACK的连接环境30中的ACK信息的合并。
如果连接环境30(例如对应于新的TCP ACK的连接环境)没有任何待决的完成请求,即Context[Ch#]::CompletionReq被清除,那么连接环境30被加到完成合并列表18的尾部36,并且在完成合并列表18中的最后连接环境30的Context[Ch#]::NextInAckList字段被更新以参见新增加的连接环境30(即经由在所述链中的下一个连接环境30的连接编号)。
在完成合并列表18中的完成请求被完成处理器16服务。完成处理器16与发送/重发处理器14和Rx TCP逻辑20异步地(即独立地或者并行地)操作。这使得所述完成处理可以被保持与张贴(posted)要发送请求和进入的TCP通信分离。
完成处理器16将连接环境30从完成合并列表18的首部34出队列,并且使用Context[Ch#]::LastAckedSN字段以本领域内公知的方式来执行完成处理。在处理了所述完成请求后,完成处理器16对于对应的连接环境30将Context[Ch#]::CompletionReq比特清零。因为可能已经在完成处理期间使用新的完成请求更新了连接环境30,所以完成处理器16在将Context[Ch#]::CompletionReq比特清零之前确定是否Context[Ch#]::LastAckedSN字段等于被处理的LastAckedSN。如果Context[Ch#]::LastAckedSN字段不等于被处理的LastAckedSN,则完成处理器16使用更新的LastAckedSN执行完成处理。这是在完成处理期间解决LastAckedSN的更新的一种方式。另一方式会将那个连接放回完成合并列表18的尾部,并且等待随后的服务周期处理其完成。
由完成合并系统10使用完成合并列表18和完成处理器16,与现有技术的完成处理技术相比较,降低了完成处理开销。虽然每个完成请求的处理涉及一个或多个描述符读取操作,它们具有高度依赖于系统配置的处理成本(例如描述符的位置、描述符读取操作的等待时间等),但是本发明的完成合并系统10的使用降低了所需要的完成请求处理操作的数量,并且允许更好地利用所获得的描述符。因此,虽然有执行完成操作所需要的连接环境的部分上的附加读取,但是本发明的完成合并系统10改善了整体的系统性能。由本发明的完成合并方法提供的更大的益处是将完成操作与TCP接收操作相分离。这使得本发明的完成合并系统10可以继续接收新的TCP段,而不管完成处理过程如何慢。
由本发明的完成合并系统10提供的另一个改进是将进入的TCP段的处理与完成处理器16去耦合。这也减少了来自完成处理器16的性能要求,并且降低了完成处理的优先级。完成处理变为自调谐机制:等待完成处理的更多连接、更多的积极完成合并、由完成处理消耗的更少的时间和带宽。
上面呈现的完成合并列表可以被适配在传递进入的RDMA读取响应时处理待决的RDMA读取请求的完成。为本说明假定,读者具有与本领域内的技术人员相当的对RDMA协议及其在RNIC环境中的实现的了解。RDMA协议例如在万维网上在<www.rdmaconsortium.org>被良好文档化并且可获得。
在图4中图解了按照本发明的另一个实施例的完成合并系统100,其能够处理待决的RDMA读取请求的完成。如图所示,完成合并系统100包括TCP逻辑12(包括Rx TCP逻辑20和Tx TCP逻辑22)、发送/重发处理器14、完成处理器16和完成合并列表18,它们如上相对于完成合并系统10的对应部件所述那样运行。另外,完成合并系统100包括RDMA逻辑102,用于处理所接收的RDMA消息。
RDMA协议定义了特殊的完成排序(completion ordering)规则(参见例如图5),包括例如所有的RDMA请求必须以已经由消费者张贴的顺序完成。RDMA具有三种请求:
1)由单个RDMA消息组成的RDMA操作(例如发送、写入)。这些操作用于从本地向远程主机传送数据,并且包括从远程向本地主机发送的单个RDMA消息。
2)由几个(例如2个)RDMA消息组成的RDMA操作(例如读取)。所述读取操作意欲从远程存储器读取数据。这样的操作由两个RDMA消息组成:读取请求和读取响应。读取请求是由请求始发者向远程数据源发送的消息。所述读取请求消息承载用于从远程存储器读取数据、并且建立响应消息所需要的所有信息。由远程主机产生的响应消息是读取响应。所述读取响应消息承载要写入到请求者存储器的数据和所述数据应当被写入的位置的描述。在图6中示意地图解了读取操作。
3)本地RDMA操作(像绑定(Bind)、快速注册(Fast-Register)等),它们不导致发送任何数据(例如TCP段)。
当本地RDMA操作的处理被RDMA网络接口卡(RNIC)完成时,本地RDMA操作被当作已完成。当RNIC可以保证在RDMA消息中的所有TCP段可以被可靠地发送到TCP连接的另一个端点时,发送和写入操作被当作已完成。当RDMA读取响应消息已经成功地被读取始发者接收时,将读取操作当作已完成。
完成排序规则的一部分要求仅仅当接收到RDMA读取响应消息时完成RDMA读取请求。因此,为了支持RDMA协议,完成处理器16需要附加的完成指示:RDMA读取响应104的接收(它有效地表示对应的RDMA读取请求的完成)。因此,当RDMA逻辑102接收到RDMA读取响应104时,它向完成合并列表18张贴完成请求106。因此,完成处理器16使用在完成合并列表18的连接环境30中提供的来自TCP ACK的信息和所接收的RDMA读取响应来执行完成操作。
可以使用如上对于所接收的TCP ACK的完成处理所述的类似的方法,用于在传递进入的RDMA读取响应时对待决的RDMA读取请求的完成处理。在此程度上,在完成合并列表18中链接对应于RDMA读取请求的连接环境30。为了允许已完成的RDMA读取请求的合并,连接环境30在Context[Ch#]::CompletedReadRequestNum字段中承载已完成的RDMA读取请求的数量。
当RDMA逻辑102的接收逻辑传递进入的RDMA读取响应104时,它提高已完成的RDMA读取请求的数量,于是在连接环境30中更新Context[Ch#]::CompletedReadRequestNum字段。如果一个连接还没有链接到完成合并列表18(即,Context[Ch#]::CompletedReadRequestNum等于0,并且Context[Ch#]::CompletionReq被清零),则通过更新在完成合并列表中的最后连接环境30的Context[Ch#]::NextInAckList字段32以指向新增加的连接环境30,从而将所述环境链接到完成合并列表18(参见例如在图3A-3B中图解的处理)。另外,在将新增加的连接环境30链接到完成合并列表时,也应当将Context[Ch#]::CompletionReq比特置位。
几个操作需要完成请求的预先处理。例如,诸如重发请求(上述)和进入的RDMA读取请求之类的操作,可能需要完成请求的预先处理。只有读取队列没有空闲空间放置所述请求时,RDMA读取请求例如才需要预先完成处理。在这种情况下,RDMA逻辑102在处理RDMA读取请求之前首先需要释放在读取队列中的一些空间(下面更详细地说明这个处理)。在两种情况下,完成请求的处理不能被延迟,并且必须在所述请求的处理之前被执行。在那些情况下,执行合并旁路,并且完成处理器16接收独立的请求108以执行给定连接的完成。在这种情况下,与在完成合并列表18中的连接环境30的位置无关地进行完成请求的处理。在完成处理后,可以恢复原始请求(重发、进入的RDMA读取响应)的处理。
可能来自RDMA逻辑124的另一个完成请求是用于对于给定的连接执行“高优先级”完成操作的请求。这个请求类似于由发送/重发逻辑14发送到完成处理器16的完成请求24HP(参见上面的说明)。这是阻塞请求,它表示RDMA逻辑102等待完成处理器16执行这个请求。此请求的原因是接收到RDMA读取请求和在接收队列中缺少空闲空间。RDMA协议限制在给定时刻可能待决(在线上)的进入RDMA读取请求的数量。这个数量定义了读取队列的深度。由于在完成合并列表18中的完成请求(例如所接收的TCPACK)的合并,可能是这样的情况:读取队列还没有被完成处理器16清理(即完成请求仍然在完成合并列表18中),在这种情况下,RDMA逻辑102需要首先释放在读取队列中的一些空间,然后仅仅处理进入的RDMA读取请求。
要明白,可以以硬件、软件或硬件和软件的组合实现在此所述的系统、功能、机构、方法和模块。可以通过被适配执行在此所述的方法的任何类型的计算机系统或其他装置实现它们。硬件和软件的典型组合可以是具有计算机程序的通用计算机系统,所述计算机程序在被装载和执行时,控制所述计算机系统以便它执行在此所述的方法。或者,可以使用专用计算机,它包含用于执行本发明的功能任务的一个或多个的专用硬件。本发明也可以被嵌入在计算机程序产品中,所述计算机程序产品包括使得能够实现在此所述的方法和功能的所有特征,并且当被装载在计算机系统中时能够执行这些方法和功能。在本文上下文中的计算机程序、软件程序、程序、程序产品或软件,意味着一组指令以任何语言、代码或符号的任何表达,所述组指令欲使具有信息处理能力的系统或者直接、或在下述之一或两者之后执行特定功能:(a)转换到另一种语言、代码或符号;并且/或者(b)以不同的材料形式再现。
虽然已经结合以上概述的具体实施例说明了本发明,但是,显然许多替代、修改和改变对于本领域内的技术人员是明显的。因此,如上所述的本发明的实施例意欲是说明性的,而不是限制。可以在不脱离如在权利要求中定义的本发明的精神和范围的情况下进行各种改变。
Claims (22)
1.一种用于完成处理的方法,包括:
处理进入的TCP段;
与进入的TCP段的处理独立地执行所接收的TCP ACK的完成处理;
使用完成合并列表来预定每个所接收的TCP ACK的完成处理;以及
将对应于每个所接收的TCP ACK的完成信息经由完成合并列表传送到完成处理器;
响应于重发操作,选择性地绕过所述完成合并列表,并且将完成信息直接发送到完成处理器用于完成处理。
2.按照权利要求1的方法,还包括:
使用完成合并列表来合并所接收的TCP ACK。
3.按照权利要求1的方法,其中,将对应于每个所接收的TCP ACK的完成信息经由在完成合并列表中的连接环境传送到完成处理器。
4.按照权利要求3的方法,还包括:
将连接环境链接到完成合并列表。
5.按照权利要求4的方法,其中,如果对应于连接环境的连接没有待决的完成请求,则连接环境仅仅被链接到完成合并列表。
6.按照权利要求5的方法,其中,如果对应于连接环境的连接没有待决的完成请求,则更新在连接环境中的信息。
7.按照权利要求6的方法,其中,在连接环境中的更新信息包括最后的确认序号。
8.按照权利要求1的方法,还包括:
在使用完成合并列表接收到RDMA读取响应时,处理RDMA读取请求的完成。
9.按照权利要求8的方法,还包括:
将对应于RDMA读取请求的连接环境链接到完成合并列表。
10.按照权利要求8的方法,还包括:
选择性地绕过完成合并列表,并且将RDMA读取请求直接发送到完成处理器用于完成处理。
11.按照权利要求10的方法,其中,响应于不具有足够的空闲空间来放置RDMA读取请求的读取队列,执行选择性地绕过完成合并列表。
12.一种用于完成处理的系统,包括:
TCP处理器,用于处理进入的TCP段;
用于独立于所述进入的TCP段的处理执行所接收的TCP ACK的完成处理的系统;
完成合并列表,用于预定每个所接收的TCPACK的完成处理;
用于经由完成合并列表接收对应于每个所接收的TCP ACK的完成信息的完成处理器;以及
发送/重发处理器,用于响应于由TCP处理器请求的重发操作,将完成信息直接发送到完成处理器用于完成处理,由此选择性地绕过所述完成合并列表。
13.按照权利要求12的系统,其中,所述完成合并列表合并所接收的TCPACK。
14.按照权利要求12的系统,其中,对应于每个所接收的TCP ACK的完成信息经由在完成合并列表中的连接环境传送到完成处理器。
15.按照权利要求14的系统,其中,所述TCP处理器将连接环境链接到完成合并列表。
16.按照权利要求15的系统,其中,如果对应于连接环境的连接没有待决的完成请求,则所述TCP处理器仅仅将连接环境链接到完成合并列表。
17.按照权利要求16的系统,其中,如果对应于连接环境的连接没有待决的完成请求,则TCP处理器更新在连接环境中的信息。
18.按照权利要求17的系统,其中,在连接环境中的更新信息包括最后的确认序号。
19.按照权利要求12的系统,还包括:
RDMA处理器,用于处理所接收的RDMA消息,并且用于通过将对应于RDMA读取请求的连接环境链接到完成合并列表,从而预定RDMA读取请求用于完成请求。
20.按照权利要求19的系统,还包括:
用于每个RDMA读取请求的完成处理的第二完成处理器,其中,对应于每个RDMA读取请求的完成信息经由在完成合并列表中的连接环境被传送到第二完成处理器。
21.按照权利要求20的系统,其中,所述RDMA处理器被配置来选择性地绕过完成合并列表,并且将RDMA读取请求直接发送到第二完成处理器用于完成处理。
22.按照权利要求21的系统,其中,响应于不具有足够的空闲空间来放置RDMA读取请求的读取队列,选择性地绕过完成合并列表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/752,731 | 2004-01-07 | ||
US10/752,731 US7298749B2 (en) | 2004-01-07 | 2004-01-07 | Completion coalescing by TCP receiver |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1910860A CN1910860A (zh) | 2007-02-07 |
CN100568830C true CN100568830C (zh) | 2009-12-09 |
Family
ID=34711655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200580002049XA Expired - Fee Related CN100568830C (zh) | 2004-01-07 | 2005-01-05 | 用于完成处理的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7298749B2 (zh) |
EP (1) | EP1706961A4 (zh) |
JP (1) | JP4709773B2 (zh) |
KR (1) | KR100992257B1 (zh) |
CN (1) | CN100568830C (zh) |
WO (1) | WO2005067561A2 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483434B2 (en) * | 2003-12-01 | 2009-01-27 | International Business Machines Corporation | Parallel TCP sender implementation |
US7298749B2 (en) * | 2004-01-07 | 2007-11-20 | International Business Machines Corporation | Completion coalescing by TCP receiver |
US7761529B2 (en) * | 2004-06-30 | 2010-07-20 | Intel Corporation | Method, system, and program for managing memory requests by devices |
US20090063747A1 (en) * | 2007-08-28 | 2009-03-05 | Rohati Systems, Inc. | Application network appliances with inter-module communications using a universal serial bus |
US8094560B2 (en) * | 2008-05-19 | 2012-01-10 | Cisco Technology, Inc. | Multi-stage multi-core processing of network packets |
US8667556B2 (en) * | 2008-05-19 | 2014-03-04 | Cisco Technology, Inc. | Method and apparatus for building and managing policies |
US20090288104A1 (en) * | 2008-05-19 | 2009-11-19 | Rohati Systems, Inc. | Extensibility framework of a network element |
US8677453B2 (en) * | 2008-05-19 | 2014-03-18 | Cisco Technology, Inc. | Highly parallel evaluation of XACML policies |
US8341286B1 (en) * | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
US20100070471A1 (en) * | 2008-09-17 | 2010-03-18 | Rohati Systems, Inc. | Transactional application events |
CN104219028B (zh) * | 2013-05-30 | 2018-02-23 | 华为技术有限公司 | 一种提高传输控制协议性能的方法及设备 |
CN103368772B (zh) * | 2013-06-26 | 2016-12-28 | 华为技术有限公司 | 半卸载方法、设备及系统 |
US10055371B2 (en) | 2014-11-03 | 2018-08-21 | Intel Corporation | Apparatus and method for RDMA with commit ACKs |
CN106209325A (zh) * | 2015-04-30 | 2016-12-07 | 中兴通讯股份有限公司 | 一种tcp ack报文处理方法及装置 |
US9965441B2 (en) | 2015-12-10 | 2018-05-08 | Cisco Technology, Inc. | Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics |
CN109067752B (zh) * | 2018-08-15 | 2021-03-26 | 无锡江南计算技术研究所 | 一种利用rdma消息实现兼容tcp/ip协议的方法 |
US11805081B2 (en) * | 2019-03-04 | 2023-10-31 | Intel Corporation | Apparatus and method for buffer management for receive segment coalescing |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
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 |
US6647423B2 (en) * | 1998-06-16 | 2003-11-11 | Intel Corporation | Direct message transfer between distributed processes |
US6424626B1 (en) | 1999-10-29 | 2002-07-23 | Hubbell Incorporated | Method and system for discarding and regenerating acknowledgment packets in ADSL communications |
US6791989B1 (en) * | 1999-12-30 | 2004-09-14 | Agilent Technologies, Inc. | Fibre channel interface controller that performs non-blocking output and input of fibre channel data frames and acknowledgement frames to and from a fibre channel |
US6718370B1 (en) * | 2000-03-31 | 2004-04-06 | Intel Corporation | Completion queue management mechanism and method for checking on multiple completion queues and processing completion events |
WO2002017092A2 (en) * | 2000-08-24 | 2002-02-28 | Sun Microsystems, Inc. | Message sequence numbers and their use in completing messages in memory |
JP2002152308A (ja) * | 2000-11-09 | 2002-05-24 | Nec Corp | データ通信システム、その通信方法及びその通信プログラムを記録した記録媒体 |
US8051212B2 (en) | 2001-04-11 | 2011-11-01 | Mellanox Technologies Ltd. | Network interface adapter with shared data send resources |
WO2002097580A2 (en) | 2001-05-31 | 2002-12-05 | Espeed, Inc. | Securities trading system with multiple levels-of-interest |
US7539204B2 (en) * | 2001-09-26 | 2009-05-26 | Broadcom Corporation | Data and context memory sharing |
US7535913B2 (en) * | 2002-03-06 | 2009-05-19 | Nvidia Corporation | Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols |
US7627693B2 (en) * | 2002-06-11 | 2009-12-01 | Pandya Ashish A | IP storage processor and engine therefor using RDMA |
US7181544B2 (en) * | 2002-09-03 | 2007-02-20 | Intel Corporation | Network protocol engine |
US7016354B2 (en) * | 2002-09-03 | 2006-03-21 | Intel Corporation | Packet-based clock signal |
US20050033988A1 (en) * | 2002-10-18 | 2005-02-10 | Neoscale Systems, Inc. | Method and system for transparent encryption and authentication of file data protocols over internet protocol |
US20050021558A1 (en) * | 2003-06-11 | 2005-01-27 | Beverly Harlan T. | Network protocol off-load engine memory management |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
US20050165985A1 (en) * | 2003-12-29 | 2005-07-28 | Vangal Sriram R. | Network protocol processor |
US7298749B2 (en) * | 2004-01-07 | 2007-11-20 | International Business Machines Corporation | Completion coalescing by TCP receiver |
-
2004
- 2004-01-07 US US10/752,731 patent/US7298749B2/en not_active Expired - Fee Related
-
2005
- 2005-01-05 KR KR1020067013547A patent/KR100992257B1/ko not_active IP Right Cessation
- 2005-01-05 WO PCT/US2005/000152 patent/WO2005067561A2/en active Application Filing
- 2005-01-05 EP EP05704978A patent/EP1706961A4/en not_active Withdrawn
- 2005-01-05 JP JP2006549352A patent/JP4709773B2/ja not_active Expired - Fee Related
- 2005-01-05 CN CNB200580002049XA patent/CN100568830C/zh not_active Expired - Fee Related
-
2007
- 2007-08-15 US US11/839,185 patent/US8131881B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050147039A1 (en) | 2005-07-07 |
WO2005067561A2 (en) | 2005-07-28 |
CN1910860A (zh) | 2007-02-07 |
JP4709773B2 (ja) | 2011-06-22 |
KR20060126691A (ko) | 2006-12-08 |
KR100992257B1 (ko) | 2010-11-05 |
EP1706961A2 (en) | 2006-10-04 |
WO2005067561A3 (en) | 2006-09-08 |
EP1706961A4 (en) | 2011-05-11 |
JP2007518360A (ja) | 2007-07-05 |
US8131881B2 (en) | 2012-03-06 |
US20080037555A1 (en) | 2008-02-14 |
US7298749B2 (en) | 2007-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100568830C (zh) | 用于完成处理的方法和系统 | |
US7051112B2 (en) | System and method for distribution of software | |
CN101321047B (zh) | 协议数据单元再传输的用户终端设备及节点b | |
US7783769B2 (en) | Accelerated TCP (Transport Control Protocol) stack processing | |
US7411959B2 (en) | System and method for handling out-of-order frames | |
US5961659A (en) | Independent simultaneous queueing of message descriptors | |
US5951706A (en) | Method of independent simultaneous queueing of message descriptors | |
CN101536417B (zh) | 消除冗余连接的方法 | |
US20100205502A1 (en) | Enabling memory transactions across a lossy network | |
CN104735077B (zh) | 一种使用环形缓存和环形队列实现udp高效并发的方法 | |
US7818757B1 (en) | Method for guaranteeing processing of messages in a continuous processing system | |
US20100217889A1 (en) | Accelerated block option for trivial file transfer protocol (tftp) | |
US20040083288A1 (en) | Apparatus and method for receive transport protocol termination | |
US20100058355A1 (en) | Firewall data transport broker | |
EP3235210A1 (en) | Methods and first network node for managing a stream control transmission protocol association | |
US11108671B2 (en) | Systems and methods for processing network traffic using dynamic memory | |
EP1229727A3 (en) | Communication apparatus, transmission program, computer readable medium storing a transmission program, transmission method and communication system for reliable transmission image data | |
US8566833B1 (en) | Combined network and application processing in a multiprocessing environment | |
US7539760B1 (en) | System and method for facilitating failover of stateful connections | |
CN103368872A (zh) | 数据包转发系统和方法 | |
CN110913431A (zh) | 数据无线传输方法、装置、计算机设备及存储介质 | |
US20030233466A1 (en) | System and method for efficient message transport by message queuing middleware | |
US7535916B2 (en) | Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications | |
Farber et al. | Thinwire protocol for connecting personal computers to the Internet | |
EP1460804B1 (en) | System and method for handling out-of-order frames (fka reception of out-of-order tcp data with zero copy service) |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091209 Termination date: 20190105 |