IP Library Granted Patent US 7,447,789
Granted Patent B2
US 7,447,789 · App. 11/390,551 · Granted Nov 4, 2008

Method and apparatus for buffering data at a transport layer on a client

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,447,789
App. No.
11/390,551
Granted
Nov 4, 2008
Kind
B2
Abstract

One embodiment of the present invention provides a system that buffers data inside of a byte-stream protocol at a transport layer on a client, which is receiving the data from an external source. The system operates by receiving a configuration parameter at the transport layer from an application executing on the client, wherein the configuration parameter specifies a condition upon which data buffered at the transport layer is to be sent to the application. The system then buffers data destined for the application at the transport layer on the client, and sends the buffered data to the application when the condition specified by the configuration parameter is met. Buffering data at the transport layer on the client facilitates more efficient processing of system calls.

Claims (48)

1. A method for buffering data inside of a byte-stream protocol at a transport layer on a client, which is receiving the data from an external source, the method comprising:

receiving a configuration parameter at the transport layer from an application executing on the client, wherein the configuration parameter specifies a condition upon which data buffered at the transport layer is to be sent to the application;

buffering data destined for the application at the transport layer on the client; and

sending the buffered data to the application when the condition specified by the configuration parameter is met, wherein buffering data at the transport layer on the client facilitates more efficient processing of system calls.

2. The method of claim 1 , further comprising:

receiving an accept call for the buffered data from the application, wherein a prior listen call instructs the transport layer to accept a connection from the external source and to send the buffered data to the application; and

holding the buffered data at the transport layer until all of the data expected by the accept call has been buffered at the transport layer.

3. The method of claim 1 , wherein the condition specified by the configuration parameter can include:

a number of bytes to buffer;

a first timeout value, which is specified as an amount of time since a first byte was received; and

a second timeout value, which is specified as an amount of time since the last time buffered data was sent to the application.

4. The method of claim 1 , wherein the byte-stream protocol is the Transmission Control Protocol (TCP).

5. The method of claim 1 , wherein the configuration parameter is specified as a socket option.

6. The method of claim 1 , wherein the client may support multiple simultaneous connections between the client and multiple external sources, and wherein the configuration parameter is specified per connection between the client and external sources.

7. The method of claim 1 , further comprising:

receiving a new configuration parameter; and

replacing the configuration parameter with the new configuration parameter.

8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for buffering data inside of a byte-stream protocol at a transport layer on a client, which is receiving the data from an external source, the method comprising:

receiving a configuration parameter at the transport layer from an application executing on the client, wherein the configuration parameter specifies a condition upon which data buffered at the transport layer is to be sent to the application;

buffering data destined for the application at the transport layer on the client; and

sending the buffered data to the application when the condition specified by the configuration parameter is met, wherein buffering data at the transport layer on the client facilitates more efficient processing of system calls.

9. The computer-readable storage medium of claim 8 , wherein the method further comprises:

receiving an accept call for the buffered data from the application, wherein a prior listen call instructs the transport layer to accept a connection from the external source and to send the buffered data to the application; and

holding the buffered data at the transport layer until all of the data expected by the accept call has been buffered at the transport layer.

10. The computer-readable storage medium of claim 8 , wherein the condition specified by the configuration parameter can include:

a number of bytes to buffer;

a first timeout value, which is specified as an amount of time since a first byte was received; and

a second timeout value, which is specified as an amount of time since the last time buffered data was sent to the application.

11. The computer-readable storage medium of claim 8 , wherein the byte-stream protocol is the Transmission Control Protocol (TCP).

12. The computer-readable storage medium of claim 8 , wherein the configuration parameter is specified as a socket option.

13. The computer-readable storage medium of claim 8 , wherein the client may support multiple simultaneous connections between the client and multiple external sources, and wherein the configuration parameter is specified per connection between the client and external sources.

14. The computer-readable storage medium of claim 8 , wherein the method further comprises:

receiving a new configuration parameter; and

replacing the configuration parameter with the new configuration parameter.

15. An apparatus configured for buffering data inside of a byte-stream protocol at a transport layer on a client, which is receiving the data from an external source, comprising:

a receiving mechanism configured to receive a configuration parameter at the transport layer from an application executing on the client, wherein the configuration parameter specifies a condition upon which data buffered at the transport layer is to be sent to the application;

a buffer mechanism configured to buffer data destined for the application at the transport layer on the client; and

a sending mechanism configured to send the buffered data to the application when the condition specified by the configuration parameter is met, wherein buffering data at the transport layer on the client facilitates more efficient processing of system calls.

16. The apparatus of claim 15 :

wherein the receiving mechanism is further configured to receive an accept call for the buffered data from the application, wherein a prior listen call instructs the transport layer to accept a connection from the external source and to send the buffered data to the application; and

wherein the sending mechanism is further configured to hold the buffered data at the transport layer until all of the data expected by the accept call has been buffered at the transport layer.

17. The apparatus of claim 15 , wherein the condition specified by the configuration parameter can include:

a number of bytes to buffer;

a first timeout value, which is specified as an amount of time since a first byte was received; and

a second timeout value, which is specified as an amount of time since the last time buffered data was sent to the application.

18. The apparatus of claim 15 , wherein the byte-stream protocol is the Transmission Control Protocol (TCP).

19. The apparatus of claim 15 , wherein the configuration parameter is specified as a socket option.

20. The apparatus of claim 15 , wherein the client may support multiple simultaneous connections between the client and multiple external sources, and wherein the configuration parameter is specified per connection between the client and external sources.

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 037303/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2006
From: CURTIS, BRUCE W.; JOHNSON, DARRIN P.; CHU, HSIAO-KENG J.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 017734/0314 →