Networks use protocols and handshaking to establish communication between devices. Errors can occur during data transmission, so error detection and correction methods are used. Common error detection techniques include parity checks, checksums, and cyclic redundancy checks, which allow the receiving device to detect if errors occurred. If an error is detected, it can then be corrected through retransmission of data or symbol substitution. Error correction codes also allow for error correction by sending extra redundant data.