Network Working Group J. McQuillan
Request for Comments: 528 BBN-NET
NIC: 17164 20 June 1973
SOFTWARE CHECKSUMMING IN THE IMP AND NETWORK RELIABILITY
1. A Changing View of Network Reliability
Our idea of the Network has evolved as the Network itself has grown. Initially, it was thought that the only components in the network design that were prone to errors were the communications circuits, and the modem interfaces in the IMPs are equipped with a CRC checksum to detect "almost all" such errors. The rest of the system, including Host interfaces, IMP processors, memories, and interfaces, were all considered to be error-free. We have had to re-evaluate this position in the light of our experience. In operating the network we are faced with the problem of having to perform remote diagnosis on failures which cannot easily be classified or understood. Some examples of such problems include reports from Host personnel of lost RFNMs and lost Host-Host protocol allocate messages, inexplicable behavior in the IMP of a transient nature, and, finally, the problem of crashes -- the total failure of an IMP, perhaps affecting adjacent IMPs. These circumstances are infrequent and are therefore difficult to correlate with other failures or with particular attempted remedies. Indeed, it is often impossible to distinguish a software failure from a hardware failure.
McQuillan [Page 1]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973
One of the earliest problems of this kind was discovered in 1971. The Harvard IMP was sometimes crashing in an unknown manner so that all the other IMPs were affected. It was finally determined that its memory was faulty and sometimes the routing messages read out from memory by the modem output interfaces were all zeroes. The adjacent IMPs interpreted such an erroneous message as stating that the Harvard IMP had zero delay to all destinations -- that it was the best route to everywhere! Once this information propagated to the other IMPs, the whole network was in a shambles. The solution to this problem was to generate a software checksum for each routing message before it was sent from one IMP, and to check it after it was received at the other IMP. This software checksum, in addition to the hardware checksum of the circuit, checks the modem interfaces and memories at each IMP, and protects the IMPs from erroneous routing information. The overhead in computing these checksums is not great since the messages are only exchanged every 2/3 of a second.
McQuillan [Page 2]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973
A partial list of the hardware problems that were uncovered by software checksums, and subsequently fixed, includes:
2. An End-to-End Software Checksum on Packets
This last experience, and the earlier checksum on routing messages, proved the value of a software checksum on all inter-IMP transmissions. We have decided to extend the checksum to detect intra-IMP failures as well, and make software checksums on all network transmissions a permanent feature of the IMP system. We can obtain an end-to-end software checksum on packets, without any time gaps, as follows:
McQuillan [Page 3]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973
+--------+ +--------+ +---------+
| IMP 2|--------|3 IMP 4|--------|5 IMP |
| 1 | | | | 6 |
+---|----+ +--------+ +----|----+
| |
+---|----+ +----|----+
| | | |
| Host | | Host |
+--------+ +---------+
* A checksum is computed at the source IMP for each packet as it is received from the source Host. (interface 1)
McQuillan [Page 4]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973 3. Checksumming to Improve the Reliability of RoutingWe mentioned earlier the catastrophic effects that follow for the Network as a whole when a single IMP begins to propagate incorrect routing information. The experience described above involved a specific memory failure which has not recurred in the last two years, but the problem is easily understood to be of a general nature. In fact, we recently had another network-wide failure that was traced to a hardware error that resulted in erroneous routing messages, after we had installed a software checksum on all inter-IMP transmissions. The problem we had were due to a single broken instruction in the part of the IMP program that builds the routing message. As a result, the routing messages from that IMP were random data, and the neighboring IMPs interpreted these messages as routing update information. When this happened, traffic flow through the Network was completely disrupted and no useful work could be done until the failed IMP was halted.
McQuillan [Page 5]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973
* The routing program is incorrect for hardware or software reasons.
McQuillan [Page 6]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973 4. TIP ModificationsThe hardware difficulties which we began to experience during the first few months of 1973 had two effects on Host-to-Host communication. First, the intermittent modem interface failures, of the type seen at Belvoir, Aberdeen, and ETAC, meant that messages were occasionally lost by the network. This loss is reported to the transmitting Host by the "Incomplete Transmission" message generated by the source IMP; the Host must then decide whether to retransmit or to take some other action. Second, the higher than normal incidence of machine failures meant that the network sometimes "partitioned" so that there was no path between the two communicating Hosts. (It should be noted that, contrary to the original design, two sites are currently connected to the network by only a single path; other similar connections are planned. For any such sites, any failure along the single path will be seen as a partition.) Since a TIP acts as a Host for its users, its resilience when these types of failures occur has a major effect on user satisfaction.
McQuillan [Page 7]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973 5. Future PlansWe have been considering some of the issues of network reliability discussed above in connection with the development of the new High Speed Modular IMP. This design effort and the experiences with the current IMP system are, of course, linked together, and we have already decided on several approaches to be taken in the new line of IMPs:
McQuillan [Page 8]
RFC 528 SOFTWARE CHECKSUMMING IN THE IMP 20 June 1973
[This RFC was put into machine readable form for entry]