IP Library Granted Patent US 7,568,013
Granted Patent B1
US 7,568,013 · App. 11/196,079 · Granted Jul 28, 2009

Multiple message send routine for network packets

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,568,013
App. No.
11/196,079
Granted
Jul 28, 2009
Kind
B1
Abstract

A method for sending a plurality of messages to a plurality of recipients including obtaining the plurality of messages for the plurality of recipients, grouping the plurality of messages into a data structure, generating a system call from a user-level application to a kernel, wherein the system call includes a reference to the data structure, and for each message in the plurality of messages in the data structure: extracting a selected message from the plurality of messages in the data structure using the reference to the data structure, and sending the selected message to one of the plurality of recipients.

Claims (42)

1. A method for sending a plurality of messages via a network to a plurality of recipients comprising the following computer-implemented steps:

obtaining the plurality of messages for the plurality of recipients;

grouping, by a user-level application, the plurality of messages into a data structure;

generating a system call from the user-level application to a kernel of the system, wherein the system call comprises a reference to the data structure; and

for each message in the plurality of messages in the data structure:

extracting, by the kernel, a selected message from the plurality of messages in the data structure using the reference to the data structure; and

sending, by the kernel, the selected message via the network to one of the plurality of recipients.

2. The method of claim 1 , wherein the plurality of messages comprises a message header and a message body.

3. The method of claim 2 , wherein the message header comprises a socket descriptor.

4. The method of claim 2 , wherein the message body indirectly references a plurality of message buffers.

5. The method of claim 1 , wherein a first message in the plurality of messages comprises a first message body, a second message in the plurality of message comprises a second message body, and the first message body is different from the second message body.

6. The method of claim 1 , wherein a first message in the plurality of messages comprises a first message body, a second message in the plurality of message references the first message body.

7. The method of claim 1 , wherein the system call comprises a count corresponding to a number of messages in the data structure and a flag.

8. The method of claim 1 , wherein the data structure is a vector.

9. The method of claim 1 , wherein the selected message comprises a field storing a length of the selected message, and wherein the field storing the length of the selected message is used to extract the selected message.

10. The method of claim 1 , wherein the plurality of messages comprises a message header and a message body, wherein the message header comprises a socket descriptor, and wherein the message body indirectly references a plurality of message buffers, wherein each of the plurality of message buffers comprises a data portion of the message body of a corresponding message of the plurality of messages.

11. A computer system having a processor for sending a plurality of messages via a network to a plurality of recipients comprising:

a user-level application for:

obtaining a plurality of messages for the plurality of recipients;

grouping the plurality of messages into a data structure; and

generating a system call to a kernel of the system, wherein the system call comprises a reference to the data structure; and

the kernel for:

receiving the system call; and

for each message in the plurality of messages in the data structure:

extracting a selected message from the data structure using the reference to the data structure, and

sending the selected message via the network to one of the plurality of recipients.

12. The system of claim 11 , wherein the plurality of messages comprises a message header and a message body.

13. The system of claim 12 , wherein the message header comprises a socket descriptor.

14. The system of claim 12 , wherein the message body indirectly references a plurality of message buffers.

15. The system of claim 11 , wherein a first message in the plurality of messages comprises a first message body, a second message in the plurality of message references the first message body.

16. The system of claim 11 , wherein a first message in the plurality of messages comprises a first message body, a second message in the plurality of message comprises a second message body, and the first message body is the same as the second message body.

17. The system of claim 11 , wherein the system call comprises a count corresponding to a number of messages in the data structure and a flag.

18. The system of claim 11 , wherein the system call further comprises a socket for receiving the plurality of messages for the user-level application.

19. The system of claim 11 , wherein the data structure is a vector.

20. The system of claim 11 , wherein the selected message comprises a field storing a length of the selected message, and wherein the field storing the length of the selected message is used to extract the selected message.

21. A computer readable storage medium having computer readable program code embodied therein for causing a computer system to execute a method for sending a plurality of messages via a network to a plurality of recipients comprising:

obtaining the plurality of messages to the plurality of recipients;

grouping, by the user-level application, the plurality of messages into a data structure;

generating a system call from the user-level application to a kernel of the system, wherein the system call comprises a reference to the data structure; and

for each message in the plurality of messages in the data structure:

extracting, by the kernel, a selected message from the plurality of messages in the data structure using the reference to the data structure; and

sending, by the kernel, the selected message via the network to one of the plurality of recipients.

Assignments (2)
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 037304/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2005
From: MEHTA, ASHISH KISHORCHANDRA; MASPUTRA, CAHYA ADIANSYAH; SPEER, MICHAEL FRANCIS
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016861/0439 →