TCP provides for the recovery of segments that get lost, are damaged, duplicated or received out of their correct order. TCP is described as a 'reliable' protocol because it attempts to recover from these errors.
The sequencing is handled by labling every segment with a sequence number. These sequence numbers permit TCP to detect dropped segments. TCP also requires that an acknowledge message be returned after transmitting data.
To verify that the segments are not damaged, a CRC check is performed on every segment that is sent, and every segment that is received. Because every packet has a time to live field, and that field is decremented during each forwarding cycle, TCP must re-calculate the CRC value for the segment at each hop. Segments that do not match the CRC check are discarded.