IP Library Granted Patent US 7,269,171
Granted Patent B2
US 7,269,171 · App. 10/254,699 · Granted Sep 11, 2007

Multi-data receive processing according to a data communication protocol

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,269,171
App. No.
10/254,699
Granted
Sep 11, 2007
Kind
B2
Abstract

Embodiments of the present invention provide for multi-data receiving and processing by a network communication protocol. The present invention aggregates multiple data packets destined for the same application. The present invention also provides for header/payload splitting. The present invention also provides for the separate processing of aggregated headers and aggregated payloads. As a result, per-packet processing costs are reduced and data locality is increased.

Claims (56)

1. A network device comprising:

a driver module for communicating with a network, wherein the driver module receives and collects a plurality of data packets destined for a same application, the driver module configured to wait for a predefined condition when collecting multiple data packets for the same application;

a protocol module communicatively coupled to the driver module, wherein the protocol module processes aggregated headers of the plurality of data packets to provide routing and flow control; and

an application communicatively coupled to the protocol module, wherein the application module processes aggregated payloads of the plurality of data packets.

2. The network device according to claim 1 , wherein the driver module aggregates the plurality of data packets.

3. The network device according to claim 1 , wherein the driver module splits the plurality of data packets into headers and payloads.

4. The network device according to claim 1 , wherein the protocol module aggregates the plurality of data packets.

5. The network device according to claim 1 , wherein the protocol module splits the plurality of data packets into headers and payloads.

6. The network device according to claim 1 , wherein the protocol module provides a TCP/IP protocol suite.

7. The network device according to claim 1 , wherein the aggregated headers are buffered in a first contiguous memory block.

8. The network device according to claim 7 , wherein the aggregated payloads are buffered in a second contiguous memory block.

9. The network device according to claim 8 , wherein metadata concerning the aggregated headers are buffered in a third contiguous memory block.

10. The network device according to claim 9 , wherein metadata concerning the aggregated payloads are buffered in a forth contiguous memory block.

11. The network device according to claim 9 , wherein the protocol module fetches the aggregated headers from the first contiguous memory block in one input/output memory management unit utilizing the metadata.

12. The network device according to claim 10 , wherein the application fetches the aggregated payloads from the second contiguous memory block in one input/output memory management unit utilizing the metadata.

13. The network device according to claim 1 , wherein the driver module comprises a network interface card.

14. A method of performing network communication comprising:

collecting and accessing a plurality of received data packets destined for a same application;

aggregating the plurality of received data packets until a predefined condition is satisfied;

splitting the plurality of received data packets into aggregated headers and aggregated payloads;

buffering the aggregate headers in a first contiguous memory block;

buffering the aggregate payloads in a second contiguous memory block; buffering metadata in a third contiguous memory block, wherein the metadata comprises characteristics of the buffered aggregate headers and buffered aggregated payloads;

processing the buffered aggregated headers according to a network communication protocol; and

providing the buffered aggregated payloads to a destination application.

15. The method in accordance with claim 14 , wherein the network communication protocol is a TCP/IP protocol suite.

16. The method in accordance with claim 14 , wherein the network communication protocol comprises a network layer.

17. The method in accordance with claim 16 , wherein the network layer comprises an internet protocol (IP).

18. The method in accordance with claim 14 , wherein the network communication protocol comprises a transport layer.

19. The method in accordance with claim 18 , wherein the transport layer comprises a transmission control protocol (TCP).

20. The method in accordance with claim 14 , wherein accessing the plurality of data packets is provided by a network interface card.

21. The method in accordance with claim 14 , wherein aggregating the data packets; splitting the data packets, buffering the aggregate headers, buffering the aggregate payloads and buffering the metadata is provided by a network interface card.

22. The method in accordance with claim 14 , wherein aggregating the data packets, splitting the data packets, buffering the aggregate headers, buffering the aggregate payloads and buffering the metadata is provided by a protocol module.

23. A mechanism for performing network communication comprising:

a means for processing aggregated headers of a plurality of received data packets according to a protocol, the aggregated headers collected from received data packets destined for a same application until a predefined condition is satisfied; and

a means for providing aggregated payloads of the plurality of received data packets to a destination application, the aggregated payloads collected from received data packets destined for the same application until a predefined condition is satisfied.

24. The mechanism according to claim 23 , wherein the aggregated headers are buffered in a first contiguous memory block.

25. The mechanism according to claim 24 , wherein the means for processing aggregated headers according to a protocol comprises a means for fetching the aggregated headers in a single input/output memory management unit.

26. The mechanism according to claim 25 , wherein the means for processing aggregated headers according to a protocol further comprises a means for processing the aggregated headers according to an internet protocol (IP).

27. The mechanism according to claim 26 , wherein the means for processing aggregated headers according to a protocol further comprises a means for processing the aggregated headers according to an transmission control protocol (TCP).

28. The mechanism according to claim 24 , wherein the aggregated payloads are buffered in a second contiguous memory block.

29. The method of providing network communication according to claim 28 , wherein the means for providing aggregated payload to a destination application comprises:

a means for copying the aggregated payloads to an application buffer in a single input/output memory management unit.

30. A computer-readable medium having computer executable instructions which when executed by a network device causes the network device to implement a multi-data receiving method, the method comprising:

receiving and collecting data packets destined for the same application;

aggregating the data packets in memory until a predefined condition is satisfied;

splitting the data packets into headers and payloads;

buffering aggregated headers in a first contiguous memory block;

buffering aggregated payloads in a second contiguous memory block;

buffering metadata in a third contiguous memory block, wherein the metadata comprises characteristics of the buffered aggregated headers and buffered aggregated payloads;

processing the buffered aggregated headers according to a network communication protocol; and

providing the buffered aggregated payloads to a destination application.

31. The computer-readable medium having computer executable instructions according to claim 30 , wherein the network communication protocol comprises:

a network layer; and

a transport layer.

32. The computer-readable medium having computer executable instructions according to claim 31 , wherein the network layer comprises an internet protocol (IP).

33. The computer-readable medium having computer executable instructions according to claim 31 , wherein the transport layer comprises a transmission control protocol (TCP).

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0843 →