Transferring control of TCP connections between hierarchy of processing mechanisms
First Claim
1. A system for communicating over a network, the system comprising:
- a processor running a protocol processing stack to establish and control a Transmission Control Protocol TCP connection, the TCP connection having a state and being identified at least in part by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host;
a first offload engine that receives control of the TCP connection from the stack to perform a first task corresponding to the TCP connection; and
a second offload engine that receives the TCP connection from the first offload engine to perform a second task corresponding to the TCP connection,wherein the first and second offload engines are part of the same host.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, a system for communicating over a network is disclosed, the system comprising: a processor running a protocol processing stack to control a TCP connection; a first offload engine that receives control of the TCP connection from the stack to perform a first task corresponding to the TCP connection; and a second offload engine that receives control of the TCP connection from the first offload engine to perform a second task corresponding to the TCP connection. For example, the first offload engine can be protocol software such as an intermediate driver that can handle tasks such as teaming and/or reassembly of out-of-order data segments. As another example, the second offload engine can be a network interface card that provides hardware that accelerates data transfer.
306 Citations
28 Claims
-
1. A system for communicating over a network, the system comprising:
-
a processor running a protocol processing stack to establish and control a Transmission Control Protocol TCP connection, the TCP connection having a state and being identified at least in part by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host; a first offload engine that receives control of the TCP connection from the stack to perform a first task corresponding to the TCP connection; and a second offload engine that receives the TCP connection from the first offload engine to perform a second task corresponding to the TCP connection, wherein the first and second offload engines are part of the same host. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for communicating over a network, the method comprising:
-
establishing a Transmission Control Protocol (TCP) connection, the TCP connection having a state and being identified at least in part by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host; performing, by a first processing mechanism, a first task that corresponds to a TCP connection; transferring control of the TCP connection from the first processing mechanism to a second processing mechanism; performing, by the second processing mechanism, a second task that corresponds to the TCP connection; transferring the TCP connection from the second processing mechanism to a third processing mechanism; and performing, by the third processing mechanism, a third task that corresponds to the TCP connection; wherein control of the TCP connection is held by the first, second or third processing mechanism that controls a block of memory representing the current state of the TCP connection, and the processing mechanisms are part of the same host. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for communicating over a network, the system comprising:
-
a first processing mechanism that establishes a transmission control protocol (TCP) connection, the TCP connection having a state and being identified at least in part by an Internet Protocol (IP) address and TCP port of the host, and an IP address and TCP port of a remote host; a second processing mechanism that receives control of the TCP connection from the first processing mechanism and performs a first task corresponding to the TCP connection; and a third processing mechanism that receives the TCP connection from the second processing mechanism and performs a third task corresponding to the TCP connection; wherein control of the TCP connection is held by the first, second or third processing mechanism that controls a block of memory representing the current state of the TCP connection, and the processing mechanisms are part of the same host. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
Specification