Transmission modes can be serial or parallel. Serial transmission sends data bits at different times one after another, while parallel transmission sends multiple bits simultaneously using different data lines. Transmissions can be synchronous, synchronizing at a block level rather than a byte level and allowing for faster transmission rates, or asynchronous, synchronizing once per byte. Synchronous transmissions use sync bytes or strings to allow receivers to establish synchronization and error detection and control bytes to frame the data. Character and bit stuffing techniques insert extra symbols into the data if framing symbols or stuffed symbols appear in the data to ensure proper synchronization and decoding.