SYN (Synchronous Idle) is ASCII code point 22 (0x16), Unicode U+0016. It is a C0 control character that synchronous modems transmitted continuously during idle periods to keep the receiver's clock locked — without data to carry timing, the link would lose bit synchronization. In IBM BSC, a minimum of two SYN bytes preceded every data block, letting the receiver resync its clock before the SOH or STX marker arrived. This is unrelated to TCP SYN, which shares only the name; the TCP flag lives in the packet header, not in the byte stream. UTF-8 encodes it as the single byte 0x16; Unicode classifies it as Cc (Control) with the alias SYNCHRONOUS IDLE.
unsigned char syn = 0x16; // SYN (Synchronous Idle)unsigned char frame[] = {syn, syn, 0x02, 'A'}; // sync leader then STXsize_t leader = (frame[0]==syn) + (frame[1]==syn); // count SYNs
SYN (ASCII 22) was used in synchronous communication protocols to maintain timing. The sender transmits a steady stream of SYN bytes when there's no data to send, keeping the link synchronized — like a metronome click between musical phrases.
Synchronous serial links rely on the data stream itself for clock recovery. If the sender stops transmitting, the receiver loses sync and can't tell when the next bit starts. SYN bytes fill the silence, keeping the clock locked even during idle periods.
They share the name 'synchronize' but are completely different. TCP SYN is a flag in an IP packet that initiates a connection handshake. ASCII SYN is a byte used for clock synchronization on serial links. Same word, different layers, different eras.
Almost none. Modern serial links use start/stop bits (async) or dedicated clock lines (sync) instead of marker bytes. The SYN character is a relic of synchronous serial protocols like BISYNC. If it appears in your data, treat it as a stray control byte.