A typical I²C interaction consists of: a start or repeated start condition sent by the transmitter; a slave-address transfer that is 7-bits in length, sent with the most significant bit first; a data direction bit, or read/write bit which signals the operation to happen; a receiver acknowledge bit; and one or more data-byte transfers. Each data-byte transfer is followed by an acknowledge (ACK) or not acknowledge (NACK), depending on the type of communication. Finally, a stop condition is sent. Looking at the waveforms of the SDA and SCL lines, it can be seen that the start condition is met when a transition from a high to a low occurs on the SDA line, while the SCL line is held high. A stop is signaled by a low to high transition on the SDA line, while the SCL line is once again held high. Also, during the address and data transfer interactions, it is essential that the SDA line switches when the SCL line is at a low-state. Otherwise, it might signal a start or stop condition and could cause a start or stop condition to inadvertently occur. To explain in further detail about this statement, the best practice is to hold the SDA line as-is when SCL is high for optimum operation.