При передаче данных по последовательному каналу возможна ситуация, когда быстродействие приемника меньше, чем быстродействие передатчика. При этом возможна ситуация, когда передаваемые по каналу связи данные не могут быть своевременно приняты приемником, что грозит потерей данных. В таком случае возникает необходимость приостановки передачи данных передатчиком по сигналу от приемника. Решение данной задачи получило название управление потоком данных.
Управление потоком предполагает посылку приемником уведомления о невозможности приема данных. Существуют два варианта управления потоком -- аппаратное и программное.
Аппаратное управление потоком (RTS/CTS, Hardware Flow Control) использует два дополнительных управляющих сигнала: RTS и CTS. Сигнал CTS (от приемника к передатчику) позволяет приостановить передачу данных, если приемник не готов к их приему. Передатчик "выпускает" очередной байт только при наличии активного сигнала на линии CTS. Байт, который уже начал передаваться, задержат сигналом CTS невозможно. Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состояние приемника (рис. 1).
Рис. 1.  
Если аппаратный протокол не используется, на стороне передатчика необходимо обеспечить постоянную подачу на вход CTS активного сигнала, в противном случае передатчик будет "молчать".
Программное управление потоком (XON/XOFF, Software Flow Control) предполагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым оно не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13h). Противоположное устройство (передатчик), приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готово к приему данных, оно посылает символ XON (11h), приняв который передатчик возобновляет передачу. Время реакции передатчика на изменение состояния приемника, по сравнению с аппаратным протоколом, увеличивается, по крайней мере, на время передачи символа (XON или XOFF). Следовательно, данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно.
Преимущество программного протокола заключается в отсутствии необходимости передачи управляющих сигналов (уменьшение количества проводов в кабеле). Недостатком, кроме требования наличия буфера и большого времени реакции, является сложность реализации полудуплексного режима обмена.