Synchronous serial line
A synchronous serial line is one which is not self-clocking; i.e. the position of the start and end of bits and bytes cannot be determined simply from examining a short stretch of the data stream, which does not have start and end bits like those of an asynchronous serial line.
Although more complex to work with, this allows the data to be packed more densely, making more efficient use of the line. There are two main classes of synchronous serial line protocols; bit-oriented and byte-oriented; the latter handle the data as a stream of bits, without imposing any division into larger units (e.g. bytes).
The bit clocks on each end of a synchronous serial line are also generally independent; thus both the clocks and the byte boundary locations must be periodically 're-synchronized', in order for the line to function. This is done by sending a special sync character or bit pattern (the details differ, depending on the exact protocol in use) every so often.
This is easy to do when the line is idle; when it is constantly busy, the sync pattern has to be inserted in the middle of a data block; any actual data that might look like a sync pattern has to be 'escaped' (perhaps via bit stuffing).