Network interface device for error detection using partial CRCS of variable length message portions
First Claim
Patent Images
1. A method for receiving data by a host and an interface device, the method comprising:
- receiving, by the interface device, a plurality of data portions that form a message when concatenated;
dividing, by the interface device, each of the portions by a divisor to create a portion remainder corresponding to each of the portions;
weighting, by the host, the portion remainders by factors based on dividing a length of the message data following the corresponding portion by the divisor, to form a plurality of weighted portion remainders;
adding, by the host, the weighted portion remainders to form a sum; and
dividing, by the host, the sum by the divisor to determine a remainder for the message.
1 Assignment
0 Petitions
Accused Products
Abstract
A device and method are disclosed for calculating a CRC on a message or block of data that has been divided into portions, by calculating a partial CRC corresponding to each of the portions and then combining the partial CRCs. The device and method are operable for portions that may have different lengths, and which may be received out of order.
-
Citations
48 Claims
-
1. A method for receiving data by a host and an interface device, the method comprising:
-
receiving, by the interface device, a plurality of data portions that form a message when concatenated; dividing, by the interface device, each of the portions by a divisor to create a portion remainder corresponding to each of the portions; weighting, by the host, the portion remainders by factors based on dividing a length of the message data following the corresponding portion by the divisor, to form a plurality of weighted portion remainders; adding, by the host, the weighted portion remainders to form a sum; and dividing, by the host, the sum by the divisor to determine a remainder for the message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for detecting errors, the method comprising:
-
receiving a plurality of portions in a first sequence that, when arranged in a second sequence, form a message; determining whether the first sequence is identical to the second sequence; and choosing, based at least in part upon whether the first sequence is identical to the second sequence, whether to perform a cyclic redundancy check in accordance with a first process or in accordance with a second process. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for detecting errors, the method comprising:
-
receiving a plurality of portions in a first sequence that, when arranged in a second sequence, form a message; performing a cyclic redundancy calculation on each of the portions to obtain a partial remainder corresponding to each of the portions; determining whether the first sequence is identical to said second sequence; and choosing, based upon whether the first sequence is identical to the second sequence, whether to perform a cyclic redundancy check in accordance with a first process or in accordance with a second process. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A method for detecting errors by a first device and a second device, the method comprising:
-
receiving, by the first device, a plurality of portions in a first sequence that, when arranged in a second sequence, form a message; computing, by the first device, a cyclic redundancy calculation on each of the portions, including dividing a numerical value corresponding to each said portion by a divisor to determine a remainder corresponding to each said portion, weighting, by the second device, at least one of the remainders by a factor that is based on dividing a length of at least one portion subsequent to the corresponding portion by the divisor, thereby creating a weighted remainder for the portions; adding, by the second device, the weighted remainders for the portions to obtain a sum of the weighted remainders; dividing, by the second device, the sum by the divisor to obtain a cyclic redundancy remainder of the portions; and comparing, by the second device, the cyclic redundancy remainder of the portions with a cyclic redundancy check accompanying one of the portions to determine whether the message has an error. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A method for detecting errors by a host and an interface device, the method comprising:
-
creating, for a series of numbers each representative of a consecutive order of magnitude, a series of factors each representing a remainder resulting from dividing one of the numbers by a divisor to obtain a remainder; receiving, by the interface device, a plurality of segments in a first sequence that, when arranged in a second sequence, form a message; computing, by the interface device, a cyclic redundancy calculation on at least one of the segments, including dividing a numerical value corresponding to the segment by the divisor to determine a remainder corresponding to the segment; and multiplying, by the host, the segment remainder by a factor corresponding to the order of magnitude of the segment, thereby creating a weighted remainder for the segment. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A method for detecting errors by a host and an interface device, the method comprising:
-
receiving, by the interface device, a plurality of portions in a first sequence that, when arranged in a second sequence, form a message; computing, by the interface device, a cyclic redundancy check on each of the portions, including dividing a numerical value corresponding to each said portion by a divisor to determine a partial remainder corresponding to each said portion; weighting, by the host, the partial remainder corresponding to a first portion of the second sequence by a remainder resulting from dividing by the divisor a degree of the first portion within the message to create a first weighted remainder, adding the first weighted remainder to a remainder corresponding to the second portion to obtain a weighted sum of partial remainders; dividing the sum by said divisor to obtain an overall remainder for the portions; and comparing said overall remainder with a cyclic redundancy check prepended to one of said portions to determine whether said message has an error.
-
Specification