IP Library › Granted Patent US 7,430,623
Granted Patent B2
US 7,430,623 · App. 10/361,742 · Granted Sep 30, 2008

System and method for buffering data received from a network

Assignee: Hewlett-Packard Development Company, L.P.
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,430,623
App. No.
10/361,742
Granted
Sep 30, 2008
Kind
B2
Abstract

A system for buffering data received from a network comprises a network socket, a plurality of buffers, a buffer pointer pool, receive logic, and packet delivery logic. The buffer pointer pool has a plurality of entries respectively pointing to the buffers. The receive logic is configured to pull an entry from the pool and to perform a bulk read of the network socket. The entry points to one of the buffers, and the receive logic is further configured to store data from the bulk read to the one buffer based on the entry. The packet delivery logic is configured to read, based on the entry, the one buffer and to locate a missing packet sequence in response to a determination, by the packet delivery logic, that the one buffer is storing an incomplete packet sequence. The packet delivery logic is further configured to form a complete packet sequence based on the incomplete packet sequence and the missing packet sequence.

Claims (11)

1. A system for buffering data from a network, comprising:

a network socket; and

a receive logic configured to perform a bulk read of the network socket and to store data, comprising a first data packet, from the bulk read into one of a plurality of buffers without determining whether the first data packet is complete before performing a scan of the one buffer, the receive logic further configured to perform the scan of the one buffer and to identify, based on the scan, the first data packet stored in the one buffer being a partial packet, the receive logic further configured to write the first data packet to a second one of the buffers in response to an identification of the first data packet being a partial packet.

2. The system of claim 1 , wherein the data from the bulk read defines a plurality of data packets, each of the plurality of data packets having an end of buffer indicator that is indicative of whether a complete data packet follows in the one buffer.

3. The system of claim 1 , further comprising a packet delivery logic configured to locate a missing packet sequence in response to a determination, by the packet delivery logic, that the one buffer is storing an incomplete packet sequence, the packet delivery logic further configured to form a complete packet sequence by combining the incomplete packet sequence and the missing packet sequence.

4. The system of claim 1 , further comprising a packet delivery logic, wherein the receive logic is configured to run on a first operating system thread, and wherein the packet delivery logic is configured to run on a second operating system thread.

5. The system of claim 1 , wherein the receive logic is further configured to identify a packet preceding the first data packet in the one buffer, the logic configured to adjust an end of buffer indicator of the preceding packet.

6. The system of claim 2 , wherein the receive logic is configured to adjust the end of buffer indicator to point to a starting address of the one buffer.

7. The system of claim 1 , further comprising a buffer pointer pool having a plurality of entries pointing respectively to the buffers, the receive logic configured to pull, from the pool, one of the entries pointing to the one buffer, the receive logic further configured to store the data from the bulk read to the one buffer based on the one entry.

8. The system of claim 7 , wherein the receive logic is configured to insert the one entry into a queue, and wherein a packet delivery logic is configured to pull the one entry from the queue and to read the one buffer based on the one entry.

9. The system of claim 1 , wherein the data further comprises a second data packet, and wherein the one buffer stores a header portion and a data portion of the second data packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2003
From: WALLS, JEFFREY JOEL; HAMILTON, MICHAEL T.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 013704/0557 →
Continuity (1)
Related Publication 20040156379A1 · Aug 12, 2004