A communication protocol that converts noisy (error-prone) data links into communication channels free of transmission errors. Data is broken into frames, each of which is protected by checksum. Frames are retransmitted as many times as needed to accomplish correct transmission. A data link control protocol must prevent data loss caused by mismatched sending/receiving capacities. A flow control procedure, usually a simple sliding window mechanism, provides this function. Data link control protocols must provide transparent data transfer. Bit stuffing or byte stuffing strategies are used to mask control patterns that occur in the text being transmitted. Control frames are used to start/stop logical connections over links. Addressing may be provided to support several virtual connections on the same physical link.