IP Library Granted Patent US 8,201,070
Granted Patent B2
US 8,201,070 · App. 12/252,061 · Granted Jun 12, 2012

System and method for pre-calculating checksums

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 8,201,070
App. No.
12/252,061
Granted
Jun 12, 2012
Kind
B2
Abstract

In a packet transmission system that uses checksums, partial checksum calculations may be performed during periods of processor underutilization while the data is awaiting final output processing for transport. A system wide checksum service process may coordinate checksum calculations across multiple network protocol layers. The checksum calculations for the buffered data may be performed according to a priority assigned to the buffered data. For example, buffered data whose transmission is imminent may have a higher priority than buffered data that will be transmitted at a later time. Applications that generate data for transmission may register those portions with the service for checksum calculation. To simplify the process, a metadata structure may be created for the data portion, and used to manage the checksum calculations.

Claims (66)

1. A method comprising:

storing a first portion of data to await output processing for transmission in a packet;

determining that a resource utilization is below a predetermined threshold while the first portion of data is awaiting output processing;

performing a checksum calculation on the first portion of data in response to determining that the resource utilization is below the predetermined threshold;

storing results of the checksum calculation; and

assigning different checksum priorities to different data portions based on time-to-output values for the different data portions.

2. The method of claim 1 , further comprising:

beginning output processing to formulate a packet carrying the first portion of data, wherein the output processing includes the following:

retrieving the stored results of the checksum calculation;

using the retrieved results in a further checksum calculation; and

finalizing and transmitting the packet.

3. The method of claim 1 , further comprising maintaining a plurality of checksum calculation queues corresponding to the different priorities.

4. The method of claim 1 , further comprising adjusting each of the assigned priorities as a transmission time for the first portion of data approaches.

5. The method of claim 1 , further comprising:

managing checksum calculations across multiple network layers in a layered network protocol, wherein checksum calculations for data at a first network layer are performed at a higher priority than checksum calculations for data at a second network layer.

6. The method of claim 1 , further comprising:

completing the checksum calculation on the first portion of data,

wherein the step of completing the checksum calculation includes a step of retrieving cached checksum information that was used in a previous packet.

7. The method of claim 1 , further comprising:

managing checksum calculations at an application stage, a transport buffer stage and transport output stage, wherein partial checksum calculations are performed at the application stage and transport buffer stage at a lower priority than checksum calculations performed at the transport output stage.

8. A computer-readable medium, storing computer-executable instructions that, when executed, cause an apparatus to:

store a first portion of data to await output processing for transmission in a packet;

determine that a resource utilization is below a predetermined threshold while the first portion of data is awaiting output processing;

perform a checksum calculation on the first portion of data in response to determining that the resource utilization is below the predetermined threshold;

store results of the checksum calculation; and

assign different checksum priorities to different data portions based on time-to-output values for the different data portions.

9. The computer-readable medium of claim 8 , further storing computer-executable instructions that, when executed, cause the apparatus to:

begin output processing to formulate a packet carrying the first portion of data, wherein the output processing includes the following:

retrieving the stored results of the checksum calculation;

using the retrieved results in a further checksum calculation; and

finalizing and transmitting the packet.

10. The computer-readable medium of claim 8 , further storing computer-executable instructions that, when executed, cause the apparatus to:

maintain a plurality of checksum calculation queues corresponding to the different priorities.

11. The computer-readable medium of claim 8 , further storing computer-executable instructions that, when executed, cause the apparatus to:

adjust each of the assigned priorities as a transmission time for the first portion of data approaches.

12. The computer-readable medium of claim 8 , further storing computer-executable instructions that, when executed, cause the apparatus to:

manage checksum calculations across multiple network layers in a layered network protocol, wherein checksum calculations for data at a first network layer are performed at a higher priority than checksum calculations for data at a second network layer.

13. The computer-readable medium of claim 8 , further storing computer-executable instructions that, when executed, cause the apparatus to:

complete the checksum calculation on the first portion of data,

wherein completing the checksum calculation includes retrieving cached checksum information that was used in a previous packet.

14. The computer-readable medium of claim 8 , further storing computer-executable instructions that, when executed, cause the apparatus to:

manage checksum calculations at an application stage, a transport buffer stage and transport output stage, wherein partial checksum calculations are performed at the application stage and transport buffer stage at a lower priority than checksum calculations performed at the transport output stage.

15. An apparatus, comprising:

a processor; and

memory storing instructions that, when executed by the processor, cause the apparatus to:

store a first portion of data to await output processing for transmission in a packet;

determine that a resource utilization is below a predetermined threshold while the first portion of data is awaiting output processing;

perform a checksum calculation on the first portion of data in response to determining that the resource utilization is below the predetermined threshold;

store results of the checksum calculation; and

assign different checksum priorities to different data portions based on time-to-output values for the different data portions.

16. The apparatus of claim 15 , wherein the instructions, when executed by the processor, cause the apparatus to:

begin output processing to formulate a packet carrying the first portion of data, wherein the output processing includes the following:

retrieving the stored results of the checksum calculation;

using the retrieved results in a further checksum calculation; and

finalizing and transmitting the packet.

17. The apparatus of claim 15 , wherein the instructions, when executed by the processor, cause the apparatus to:

maintain a plurality of checksum calculation queues corresponding to the different priorities.

18. The apparatus of claim 15 , wherein the instructions, when executed by the processor, cause the apparatus to:

adjust each assigned priority as a transmission time for the first portion of data approaches.

19. The apparatus of claim 15 , wherein the instructions, when executed by the processor, cause the apparatus to:

manage checksum calculations across multiple network layers in a layered network protocol, wherein checksum calculations for data at a first network layer are performed at a higher priority than checksum calculations for data at a second network layer.

20. The apparatus of claim 15 , wherein the instructions, when executed by the processor, cause the apparatus to:

complete the checksum calculation on the first portion of data,

wherein completing the checksum calculation includes retrieving cached checksum information that was used in a previous packet.

21. The apparatus of claim 15 , wherein the instructions, when executed by the processor, cause the apparatus to:

manage checksum calculations at an application stage, a transport buffer stage and transport output stage, wherein partial checksum calculations are performed at the application stage and transport buffer stage at a lower priority than checksum calculations performed at the transport output stage.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2016
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 040812/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2008
From: MOLTCHANOV, VLADIMIR; BALANDIN, SERGEY
To: NOKIA CORPORATION
Reel/Frame 021776/0789 →