TCP-offload-engine based zero-copy sockets
First Claim
1. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for sending data to a remote host using a socket, the method comprising:
- receiving a request from an application to write data to the socket, wherein the data is stored in a source memory buffer in user memory;
initiating a DMA (Direct Memory Access) transfer to transfer the data from the source memory buffer to a target memory buffer in a TCP (Transmission Control Protocol) Offload Engine; and
returning control to the application without waiting for the TCP Offload Engine to send the data to the remote host.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system for sending data to a remote host using a socket. During operation the system receives a request from an application to write data to the socket, wherein the data is stored in a source memory buffer in user memory. Next, the system initiates a DMA (Direct Memory Access) transfer to transfer the data from the source memory buffer to a target memory buffer in a TCP (Transmission Control Protocol) Offload Engine. The system then returns control to the application without waiting for the TCP Offload Engine to send the data to the remote host.
63 Citations
20 Claims
-
1. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for sending data to a remote host using a socket, the method comprising:
-
receiving a request from an application to write data to the socket, wherein the data is stored in a source memory buffer in user memory;
initiating a DMA (Direct Memory Access) transfer to transfer the data from the source memory buffer to a target memory buffer in a TCP (Transmission Control Protocol) Offload Engine; and
returning control to the application without waiting for the TCP Offload Engine to send the data to the remote host. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for receiving data from a remote host using a socket, the method comprising:
-
receiving data from the remote host in a source memory buffer in a TCP (Transmission Control Protocol) Offload Engine;
receiving a request from an application to read the data from the socket and to store the data in a target memory buffer in user memory; and
initiating a DMA (Direct Memory Access) transfer to transfer the data from the source memory buffer in the TCP Offload Engine to the target memory buffer in user memory. - View Dependent Claims (7, 8, 9, 10)
-
-
11. An apparatus for sending data to a remote host using a socket, the apparatus comprising:
-
a receiving mechanism configured to receive a request from an application to write data to the socket, wherein the data is stored in a source memory buffer in user memory;
an initiating mechanism configured to initiate a DMA (Direct Memory Access) transfer to transfer the data from the source memory buffer to a target memory buffer in a TCP (Transmission Control Protocol) Offload Engine; and
a returning mechanism configured to return control to the application without waiting for the TCP Offload Engine to send the data to the remote host. - View Dependent Claims (12, 13, 14, 15)
-
-
16. An apparatus for receiving data from a remote host using a socket, the apparatus comprising:
-
a data-receiving mechanism configured to receive data from the remote host in a source memory buffer in a TCP (Transmission Control Protocol) Offload Engine;
a request-receiving mechanism configured to receive a request from an application to read the data from the socket and to store the data in a target memory buffer in user memory; and
an initiating mechanism configured to initiate a DMA (Direct Memory Access) transfer to transfer the data from the source memory buffer in the TCP Offload Engine to the target memory buffer. - View Dependent Claims (17, 18, 19, 20)
-
Specification