Which one of the following is an effective communications error-control technique usually implemented in software?