RFC 1936 (rfc1936) - Page 1 of 21
Implementing the Internet Checksum in Hardware
Alternative Format: Original Text Document
Network Working Group J. Touch
Request For Comments: 1936 B. Parham
Category: Informational ISI
April 1996
Implementing the Internet Checksum in Hardware
Status of This Memo
This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.
Abstract
This memo presents a techniques for efficiently implementing the
Internet Checksum in hardware. It includes PLD code for programming a
single, low cost part to perform checksumming at 1.26 Gbps.
Introduction
The Internet Checksum is used in various Internet protocols to check
for data corruption in headers (e.g., IP) [4] and packet bodies (e.g,
UDP, TCP) [5][6]. Efficient software implementation of this checksum
has been addressed in previous RFCs [1][2][3][7].
Efficient software implementations of the Internet Checksum algorithm
are often embedded in data copying operations ([1], Section 2). This
copy operation is increasingly being performed by dedicated direct
memory access (DMA) hardware. As a result, DMA hardware designs are
beginning to incorporate dedicated hardware to compute the Internet
Checksum during the data transfer.
This note presents the architecture of an efficient, pipelined
Internet Checksum mechanism, suitable for inclusion in DMA hardware
[8]. This design can be implemented in a relatively inexpensive
programmable logic device (PLD) (1995 cost of $40), and is capable of
supporting 1.26 Gbps transfer rates, at 26 ns per 32-bit word.
Appendix A provides the pseudocode for such a device. This design has
been implemented in the PC-ATOMIC host interface hardware [8]. We
believe this design is of general use to the Internet community.
Touch & Parham Informational