Patent ID: 7475154

Claim:
A method for Transmission Control Protocol (TCP) splicing, comprising: initiating by a proxy a TCP splice between first and second socket connections in order to service a request; returning control of the first and second socket connections to the proxy in response to a completion event associated with the TCP splice; generating the completion event in response to a transfer of a specified amount of data between the first and second socket connections during the TCP splice, in response to an expiration of a timeout value during the TCP splice, or in response to an occurrence of an exception during the TCP splice; associating a completion port with the TCP splice initiated by the proxy; associating a unique completion key with each TCP splice initiated by the proxy, placing the TCP splice in a splice queue with all other pending TCP splices initiated by the proxy, and generating a completion event upon completion of any of the TCP splices in the splice queue; identifying the completed TCP splice using its associated completion key; and monitoring the completion port to determine whether the completion event associated with the TCP splice has been generated; wherein the proxy can service a subsequent request on at least one of the first and second socket connections after regaining control; and wherein a same completion port is associated with all TCP splices initiated by the proxy.