error correcting protocol