The Ethernet system defines a mechanism for network communications between computers. Ethernet facilitates this communication by delivering packets of data to all hosts on a given network. However, the system cannot guarantee error-free delivery. Instead it adds checksum information to each packet. This reduces the probability that a receiving computer will mistakenly accept a corrupt packet. Although this functionality appears quite useful, the End-to-End argument insists that high-level goals serve as benchmarks for low-level functionality. This argument is quite convincing because low-level functions are most useful when applied to high-level problems.
The Ethernet File Transfer Protocol (EFTP) provides an excellent opportunity for examining the use of checksums in Ethernet communications. EFTP uses Ethernet packets as the underlying transport mechanism. However, EFTP adds optional checksum information beyond that already provided by the Ethernet packets. The use of two separate checksums clearly indicates a duplication of effort. The End-to-End argument provides guidelines for evaluating such duplications.
Despite the optional status of the EFTP checksum information, the End-to-End argument demands its use. The checksums used by the Ethernet packet cannot protect against errors above the serialized packet level. This means that buffer errors, programming errors and other hardware faults might go undetected. Thus, EFTP must use its own high-level checksum to ensure reliability.
While the End-to-End argument clearly requires the EFTP checksum, evaluation of the Ethernet packet checksum is less conclusive. The EFTP checksum alone provides sufficient assurance of valid EFTP messages. Therefore, the packet checksum consumes additional network bandwidth without increasing EFTP reliability. This seems to violate the End-to-End position that functionality needed by high-level services should not appear at lower levels. On the other hand, the packet checksum allows relatively efficient discarding of corrupt network packets. The Ethernet adapters92 ability to verify packet checksums in hardware without interrupting the host machine makes discarding corrupt packets very efficient. Further, packet level checksums allow network devices such as switches and bridges to filter out corrupt packets. Because bridges and switches operate at a lower level than EFTP, they cannot use the EFTP checksums at all.
Use of Ethernet packet checksums represents a performance tradeoff. A small amount of network bandwidth is used to improve other areas of an Ethernet system. If the frequency of Ethernet packet level corruption is high relative to other forms of EFTP message corruption, the benefit is obvious. In this situation, Ethernet hardware will detect most EFTP message transmission problems at very little computational cost to the client. Further, the system can reduce the flow of corrupt packets on multi-segmented Ethernet networks. The End-to-End argument fully supports this type of performance tradeoff.