A receiving host in a TCP/IP network sends an acknowledgment indicating a
received data packet is corrupt. The sending host will begin transmitting
with a new field set in the IP header called a check-TCP-checksum bit,
thereby requesting that all routers in the TCP/IP network perform a
checksum on the entire received packet. Routers in the TCP/IP network
will perform a complete checksum on an entire packet with the
check-TCP-checksum bit set, and not just on the IP header. The routers
continuously monitor the ratio of corrupt packets received on a
particular port that fail the entire packet checksum to the total number
of packets received on that port. If the ratio of corrupt-to-received
packets exceeds a corruption threshold, the router assumes that the
associated link is causing data corruption and issues a routing update
indicating that the link is bad and should be avoided. Once the
retransmission rate between the sender and receiver drops below a
threshold level, the bad link has been detected and avoided within the
TCP/IP network and the check-TCP-checksum option in the IP header is no
longer set in data packets transmitted to the receiver host.