Data communication execution thread
First Claim
1. A network communication method for receiving multiple data packets in the form of a current sequence of separate data packets transmitted across a network, each of the data packets of the current sequence being destined for a same application and comprising a header and a data payload, the method for receiving comprising the operations of:
- a) defining a TCP/IP protocol suite consisting of a network access layer, an internet layer, and a transport layer;
b) providing a receive thread of execution for implementing only the network access layer and the internet layer;
c) providing a drainer thread separate from the receive thread for implementing only the transport layer;
d) executing the receive thread for receiving the multiple data packets in the form of the current sequence of separate data packets destined for the same application, the executing of the receive thread comprising performing the operations of;
(i) receiving the multiple data packets in the form of the current sequence of separate data packets;
(ii) aggregating the separate data packets of the current sequence;
(iii) splitting each data packets of the current sequence to load the header of each packet into a header buffer and to load the data payload of each packet into a payload buffer;
(iv) copying the data payload of each packet from the payload buffer into an application buffer corresponding to the same application to which the sequence of separate data packets is destined; and
e) executing the drainer thread to process the split data packet headers and to copy the data payload of each split data packet to the same destination application.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide for reliable receipt of data packets by a network device. The present invention also provides a receive thread for receiving data packets. The present invention also provides a drainer thread for processing packets according to an applicable protocol. As a result, the network device is capable of receiving and processing data packets at an increased rate.
7 Citations
4 Claims
-
1. A network communication method for receiving multiple data packets in the form of a current sequence of separate data packets transmitted across a network, each of the data packets of the current sequence being destined for a same application and comprising a header and a data payload, the method for receiving comprising the operations of:
-
a) defining a TCP/IP protocol suite consisting of a network access layer, an internet layer, and a transport layer; b) providing a receive thread of execution for implementing only the network access layer and the internet layer; c) providing a drainer thread separate from the receive thread for implementing only the transport layer; d) executing the receive thread for receiving the multiple data packets in the form of the current sequence of separate data packets destined for the same application, the executing of the receive thread comprising performing the operations of; (i) receiving the multiple data packets in the form of the current sequence of separate data packets; (ii) aggregating the separate data packets of the current sequence; (iii) splitting each data packets of the current sequence to load the header of each packet into a header buffer and to load the data payload of each packet into a payload buffer; (iv) copying the data payload of each packet from the payload buffer into an application buffer corresponding to the same application to which the sequence of separate data packets is destined; and e) executing the drainer thread to process the split data packet headers and to copy the data payload of each split data packet to the same destination application. - View Dependent Claims (2, 3)
-
-
4. A network communication method for receiving multiple data packets in the form of sequences of separate data packets, each of the separate data packets of a first sequence being destined for a first same application, each of the separate data packets of a second sequence being destined for a second same application, each of the separate data packets comprising a header and a data payload, the method for receiving comprising the operations of:
-
a) defining a TCP/IP protocol suite consisting of a network access layer, an internet layer, and a transport layer, the transport layer being configured to copy data packet payloads to a selected one of the first and second same applications; b) providing a receive thread of execution for implementing only the network access layer and the internet layer; c) providing a drainer thread separate from the receive thread for implementing only the transport layer; d) executing the receive thread for receiving the first sequence of separate data packets destined for the same first application, the executing of the receive thread comprising performing the operations of; (i) receiving the multiple data packets in the form of the first sequence of separate data packets; (ii) aggregating the separate data packets of the first sequence; and (iii) splitting the aggregated data packets of the first sequence to load the header of each packet into a header buffer and to load the data payload of each packet into a payload buffer; (iv) copying the data payload of each packet from the payload buffer into an application buffer corresponding to the first same application to which the first sequence of separate data packets is destined; and (v) handing-off the receiving thread to the drainer thread to enable executing the receiving thread again for receiving the second sequence of separate data packets destined for the second same application; e) executing the drainer thread to process the split data packet headers of the first sequence and to copy the data payload of each split data packet to the first same application; and f) while the drainer thread is executing, executing the receive thread again to receive the second sequence of data packets, and then again executing the drainer thread to process the split data packet headers of the second sequence and to copy the data payload of each split data packet of the second sequence to the second same application.
-
Specification