Data buffering and notification system and methods thereof
First Claim
1. A method comprising:
- determining by a second program that a first message received from a network is targeted for a first program at a host device;
storing the first message in a temporary buffer in response to determining that the first message is targeted for the first program, the temporary buffer separate from a network stack at the host device;
intercepting by the second program a first periodic polling request for the first message, the first periodic polling request targeted to the network stack and requesting an indication of whether data sent to the first program from a remote device has been received;
in response to intercepting the first periodic polling request and in response to the second program determining the first periodic polling request is from the first program, retrieving, by the second program, the first message from the temporary buffer and providing the first message to the first program;
intercepting a second periodic polling request from the first program; and
in response to the second periodic polling request, providing an indication that data is not available to the first program based, at least in part, on data stored at the temporary buffer.
3 Assignments
0 Petitions
Accused Products
Abstract
An interceptor program at a computer device intercepts certain externally initiated communications intended for the peer program before those communications are placed on the network stack. Further, the interceptor program stores the received communications in a buffer in application space, rather than kernel space. The interceptor program can then intercept polling requests from the peer program inquiring if data for the peer program is located at the network stack, and provide the buffered communications to the peer program in response. Because the communications are stored in application space, rather than kernel space, the data can be rapidly provided to the peer program, improving the speed with which the program can respond to the client communications.
-
Citations
21 Claims
-
1. A method comprising:
-
determining by a second program that a first message received from a network is targeted for a first program at a host device; storing the first message in a temporary buffer in response to determining that the first message is targeted for the first program, the temporary buffer separate from a network stack at the host device; intercepting by the second program a first periodic polling request for the first message, the first periodic polling request targeted to the network stack and requesting an indication of whether data sent to the first program from a remote device has been received; in response to intercepting the first periodic polling request and in response to the second program determining the first periodic polling request is from the first program, retrieving, by the second program, the first message from the temporary buffer and providing the first message to the first program; intercepting a second periodic polling request from the first program; and in response to the second periodic polling request, providing an indication that data is not available to the first program based, at least in part, on data stored at the temporary buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A non-transitory computer readable medium having stored thereon computer executable instructions that, when executed, cause a processor to perform operations comprising:
-
determining at a network device that a first message received from a network is targeted for a first program at a host device; storing the first message at a temporary buffer at the host device in response to determining that the first message is targeted for the first program; intercepting a first periodic polling request by a second program, the first periodic polling request targeted to a network stack and requesting an indication of whether data sent to the first program from a remote device has been received; in response to intercepting the first periodic polling request and in response to determining the first periodic polling request is from the first program, retrieving, by the second program, the first message from the temporary buffer and providing the first message to the first program; intercepting a second periodic polling request from the first program; and in response to the second periodic polling request, providing an indication that data is not available to the first program based, at least in part, on data stored at the temporary buffer. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. An apparatus comprising:
-
a processor; a memory coupled to the processor, the memory organized into an application space and a kernel space; and a computer readable storage device communicably coupled to the processor, the computer readable storage device storing instructions that, when executed by the processor, cause the processor to perform operations comprising; determining by a second program executable by the processor that a first message received from a network is targeted for a first program executable by the processor, wherein the first program is in the application space, and wherein the second program is, at least in part, in the application space; storing the first message in a temporary buffer in response to determining that the first message is targeted for the first program, the temporary buffer separate from a network stack; intercepting by the second program a first periodic polling request for the first message, the first periodic polling request targeted to the network stack and requesting an indication of whether data sent to the first program from a remote device has been received; and in response to intercepting the first periodic polling request and in response to the second program determining the first periodic polling request is from the first program, retrieving, by the second program, the first message from the temporary buffer and providing the first message to the first program. - View Dependent Claims (21)
-
Specification