Zum Hauptinhalt springen

Incremental cyclic redundancy (CRC) process

Harmonic, Inc.
2023
Online Patent

Titel:
Incremental cyclic redundancy (CRC) process
Autor/in / Beteiligte Person: Harmonic, Inc.
Link:
Veröffentlichung: 2023
Medientyp: Patent
Sonstiges:
  • Nachgewiesen in: USPTO Patent Grants
  • Sprachen: English
  • Patent Number: 11652,571
  • Publication Date: May 16, 2023
  • Appl. No: 16/197124
  • Application Filed: November 20, 2018
  • Assignees: Harmonic, Inc. (San Jose, CA, US)
  • Claim: 1. A non-transitory, computer-readable storage medium storing one or more sequences of instructions for transmitting a data packet over a computer network, which when executed by one or more processors, cause: at an apparatus, receiving the data packet; at the apparatus, performing a cyclic redundancy check (CRC) to obtain a constant time CRC value over the entire data packet in constant time; upon determining that the constant time CRC value indicates that a portion of the data packet changed during transmission, performing a corrective action upon the data packet to produce a corrected data packet, wherein performing said cyclic redundancy check (CRC) over the entire data packet in constant time comprises: performing a first cyclic redundancy check (CRC) on an original header of the data packet to obtain a first result, performing a second cyclic redundancy check (CRC) on a modified header of the data packet to obtain a second result, obtaining a size of a payload of the data packet, performing a XOR operation of the first result and the second result to calculate a third result, generating an intermediate CRC value by performing a third cyclic redundancy check (CRC) on a number of zero values corresponding to the size of the payload of the data packet, wherein the third cyclic redundancy check (CRC) uses the third result as an initial value, and generating the constant time CRC value by performing an XOR operation in the intermediate CRC value and an original CRC value contained in the data packet; and after performing the correction action upon the data packet, the apparatus transmitting the corrected data packet on the computer network.
  • Claim: 2. The non-transitory, computer-readable storage medium of claim 1 , wherein said original header of the data packet and said modified header of the data packet are both an Ethernet header for the data packet.
  • Claim: 3. The non-transitory, computer-readable storage medium of claim 1 , wherein said original header of the data packet and said modified header of the data packet are both an IP header for the data packet.
  • Claim: 4. The non-transitory, computer-readable storage medium of claim 1 , wherein execution of the one or more sequences of instructions further cause: employing the third result in the generation of other constant time CRC values for one or more other data packets having a same size and same header as said data packet.
  • Claim: 5. An apparatus for transmitting a data packet over a computer network, comprising: one or more processors; and one or more non-transitory computer-readable storage mediums storing one or more sequences of instructions, which when executed, cause: at an apparatus, receiving the data packet; at the apparatus, performing a cyclic redundancy check (CRC) to obtain a CRC value over the entire data packet in constant time, wherein performing said cyclic redundancy check (CRC) over the entire data packet in constant time comprises: performing a first cyclic redundancy check (CRC) on an original header of the data packet to obtain a first result, performing a second cyclic redundancy check (CRC) on a modified header of the data packet to obtain a second result, obtaining a size of a payload of the data packet, performing a XOR operation of the first result and the second result to calculate a third result, generating an intermediate CRC value by performing a third cyclic redundancy check (CRC) on a number of zero values corresponding to the size of the payload of the data packet, wherein the third cyclic redundancy check (CRC) uses the third result as an initial value, and generating the constant time CRC value by performing an XOR operation in the intermediate CRC value and an original CRC value contained in the data packet; upon determining that the constant time CRC value indicates that a portion of the data packet changed during transmission, performing a corrective action upon the data packet to produce a corrected data packet; and after performing the correction action upon the data packet, the apparatus transmitting the corrected data packet on the computer network.
  • Claim: 6. The apparatus of claim 5 , wherein said original header of the data packet and said modified header of the data packet are both an Ethernet header for the data packet.
  • Claim: 7. The apparatus of claim 5 , wherein said original header of the data packet and said modified header of the data packet are both an IP header for the data packet.
  • Claim: 8. The apparatus of claim 5 , wherein execution of the one or more sequences of instructions further cause: employing the third result in the generation of other constant time CRC values for one or more other data packets having a same size and same header as said data packet.
  • Claim: 9. A method for transmitting a data packet over a computer network, comprising: at an apparatus, receiving the data packet; at the apparatus, performing a cyclic redundancy check (CRC) to obtain a CRC value over the entire data packet in constant time, wherein performing said cyclic redundancy check (CRC) over the entire data packet in constant time comprises: performing a first cyclic redundancy check (CRC) on an original header of the data packet to obtain a first result, performing a second cyclic redundancy check (CRC) on a modified header of the data packet to obtain a second result, obtaining a size of a payload of the data packet, performing a XOR operation of the first result and the second result to calculate a third result, generating an intermediate CRC value by performing a third cyclic redundancy check (CRC) on a number of zero values corresponding to the size of the payload of the data packet, wherein the third cyclic redundancy check (CRC) uses the third result as an initial value, and generating the constant time CRC value by performing an XOR operation in the intermediate CRC value and an original CRC value contained in the data packet; upon determining that the constant time CRC value indicates that a portion of the data packet changed during transmission, performing a corrective action upon the data packet to produce a corrected data packet; and after performing the correction action upon the data packet, the apparatus transmitting the corrected data packet on the computer network.
  • Claim: 10. The method of claim 9 , wherein said original header of the data packet and said modified header of the data packet are both an Ethernet header for the data packet.
  • Claim: 11. The method of claim 9 , wherein said original header of the data packet and said modified header of the data packet are both an IP header for the data packet.
  • Claim: 12. The method of claim 9 , further comprising: employing the third result in the generation of other constant time CRC values for one or more other data packets having a same size and same header as said data packet.
  • Claim: 13. A non-transitory, computer-readable storage medium storing one or more sequences of instructions for transmitting a data packet over a computer network, which when executed by one or more processors, cause: at an apparatus, receiving the data packet; at the apparatus, performing a cyclic redundancy check (CRC) to obtain a constant time CRC value over the entire data packet in constant time; upon determining that the constant time CRC value indicates that a portion of the data packet changed during transmission, performing a corrective action upon the data packet to produce a corrected data packet, wherein performing said cyclic redundancy check (CRC) over the entire data packet in constant time comprises: generating an intermediate CRC value by performing a first cyclic redundancy check (CRC) on a number of zero values corresponding to the size of the payload of the data packet, wherein an initial value of the first cyclic redundancy check (CRC) is determined using a header of the data packet, and generating the constant time CRC value by using the intermediate CRC value and an original CRC value contained in the data packet; and after performing the correction action upon the data packet, the apparatus transmitting the corrected data packet on the computer network.
  • Claim: 14. An apparatus for transmitting a data packet over a computer network, comprising: one or more processors; and one or more non-transitory computer-readable storage mediums storing one or more sequences of instructions, which when executed, cause: at an apparatus, receiving the data packet; at the apparatus, performing a cyclic redundancy check (CRC) to obtain a CRC value over the entire data packet in constant time, wherein performing said cyclic redundancy check (CRC) over the entire data packet in constant time comprises: generating an intermediate CRC value by performing a first cyclic redundancy check (CRC) on a number of zero values corresponding to the size of the payload of the data packet, wherein an initial value of the first cyclic redundancy check (CRC) is determined using a header of the data packet, and generating the constant time CRC value by using the intermediate CRC value and an original CRC value contained in the data packet; upon determining that the constant time CRC value indicates that a portion of the data packet changed during transmission, performing a corrective action upon the data packet to produce a corrected data packet; and after performing the correction action upon the data packet, the apparatus transmitting the corrected data packet on the computer network.
  • Claim: 15. A method for transmitting a data packet over a computer network, comprising: at an apparatus, receiving the data packet; at the apparatus, performing a cyclic redundancy check (CRC) to obtain a CRC value over the entire data packet in constant time, wherein performing said cyclic redundancy check (CRC) over the entire data packet in constant time comprises: generating an intermediate CRC value by performing a first cyclic redundancy check (CRC) on a number of zero values corresponding to the size of the payload of the data packet, wherein an initial value of the first cyclic redundancy check (CRC) is determined using a header of the data packet, and generating the constant time CRC value by using the intermediate CRC value and an original CRC value contained in the data packet; upon determining that the constant time CRC value indicates that a portion of the data packet changed during transmission, performing a corrective action upon the data packet to produce a corrected data packet; and after performing the correction action upon the data packet, the apparatus transmitting the corrected data packet on the computer network.
  • Patent References Cited: 5251215 October 1993 Dravida ; 20040025105 February 2004 Doubler ; 20060059411 March 2006 Dacosta ; 20090006921 January 2009 Engberg ; 20090154495 June 2009 Ojala ; 20180143872 May 2018 Sun
  • Other References: Kowalk, W. “CRC Cyclic Redundancy Check Analysing and Correcting Errors”. Universität Oldenburg, Aug. 2006. cited by examiner
  • Primary Examiner: Nguyen, Steve N
  • Attorney, Agent or Firm: Brokaw Patent Law PC ; Brokaw, Christopher J.

Klicken Sie ein Format an und speichern Sie dann die Daten oder geben Sie eine Empfänger-Adresse ein und lassen Sie sich per Email zusenden.

oder
oder

Wählen Sie das für Sie passende Zitationsformat und kopieren Sie es dann in die Zwischenablage, lassen es sich per Mail zusenden oder speichern es als PDF-Datei.

oder
oder

Bitte prüfen Sie, ob die Zitation formal korrekt ist, bevor Sie sie in einer Arbeit verwenden. Benutzen Sie gegebenenfalls den "Exportieren"-Dialog, wenn Sie ein Literaturverwaltungsprogramm verwenden und die Zitat-Angaben selbst formatieren wollen.

xs 0 - 576
sm 576 - 768
md 768 - 992
lg 992 - 1200
xl 1200 - 1366
xxl 1366 -