**Софтверската контрола на проток** што се користи во податочните линкови за компјутери, посебно R2-232 серијалот. Таа користи специјални кодови, пренесени во врска, преку примарниот комуникациски канал. Овие кодови генерално се нарекуваат XOFF и XON. Затоа, софтверската контрола на проток понекогаш се нарекува "XON/XOFF контрола на проток". Ова е во контраст на контролата на протокот преку посветени сигнали надвор од врска - "хардверска контрола на проток" - како на пример R2-232 RTS/CTS.

Застапеност
-----------

За системите што го користат ASCII карактерниот код, XOFF е генерално претставен со употреба на знак или бајт со децимална вредност 19; XON со вредност 17.

Стандардот ASCII не резервира никакви контролни знаци за употреба специфично како XON / XOFF. Сепак, тој обезбедува четири генерички знаци на „контрола на уредот" (DC1 до DC4). Teletype Model 33 ASR усвоиле два од нив, DC3 и DC1, за употреба како XOFF и XON, соодветно. Оваа употреба е копирана од други, и сега може да се смета де факто за стандард. Еквивалентите на тастатурата Ctrl + Ѕ за XOFF и Ctrl + Q за XON, исто така, произлегуваат од оваа употреба.

Претстави XOFF / XON во ASCII| Код | Значење | ASCII | DEC | Hex | Тастатура |
| --- | --- | --- | --- | --- | --- |
| XOFF | Паузa на пренесувањето | DC3 | 19 | 13 | Ctrl + S |
| XON | Продолжување на пренесувањетп | DC1 | 17 | 11 | Ctrl + Q |

Механизам
---------

Кога едниот крај на податочната врска не може да прифати повеќе податоци (или се приближува до таа точка), тој испраќа XOFF на другиот крај. Другиот крај го прима кодот XOFF и го прекинува преносот. Откако првиот крај е подготвен да прифати податоци повторно, тој испраќа XON, а другиот крај продолжува со преносот.

На пример, замислете компјутер да испраќа податоци до бавен печатач. Бидејќи компјутерот е побрз во испраќањето податоци отколку што печатачот може да ги отпечати, печатачот заостанува и се приближува до ситуација кога би бил презаситен од податоците. Печатачот реагира на оваа ситуација испраќајќи XOFF на компјутерот, кој привремено престанува да испраќа податоци. Кога печатачот е повторно подготвен да прима повеќе податоци, тој испраќа XON на компјутерот, кој започнува повторно да испраќа податоци.

XOFF/XON може да се користи во двете насоки, на пример, два телепечатачи поврзани едни со други.

Споредба со хардверска контрола на проток
-----------------------------------------

Главната предност на контролата на протокот на софтвер е намалувањето на бројот на електрични спроводници помеѓу испраќачот и приемникот. Со оглед на заедничката основа, потребни се само два сигнали, едниот да се испрати, а другиот да се прими. Контролата на проток на хардвер бара дополнителни жици помеѓу двата уреди. Исто така, потребна е специфична хардверска имплементација, која имаше позначителни трошоци во претходните денови на компјутери (т.е. 1960-тите и 70-тите години на минатиот век).

Сепак, контролата на протокот на софтвер не е без проблеми. Испраќањето на XOFF бара барем еден знак за пренесување и може да се чека во редица зад веќе пренесените податоци сè уште во тампон. Хардвер сигналите може да се тврдат скоро моментално и да не се во функција.

Како што имплицира името „софтверска контрола на проток", контролата на проток со овој метод обично се спроведува во софтвер (или барем на повисоко ниво на фирмвер), што може да предизвика дополнителни одложувања на одговорот на XOFF. Контролата на проток на хардвер е обично под директна контрола на UART-от што пренесува, што е во состојба веднаш да го прекине преносот, без интервенција на повисоки нивоа.

Конечно, бидејќи кодовите XOFF/XON се испраќаат во опсег, тие не можат да се појават во податоците што се пренесуваат без да бидат погрешни за командите за контрола на проток. Какви било податоци што содржат кодови XOFF XON, мора да бидат кодирани на некој начин за правилно пренесување, со соодветни главни режими. Ова често се прави со некаква секвенца на бегство. За уредите за печатење кои директно ги толкуваат кодовите ASCII, ова не е голем проблем, бидејќи кодовите XON и XOFF користат кодови на ASCII со „контрола на уредот".

Апликации
---------

Контролата на проток на софтвер се користи за многу од уредите со мала брзина, особено постарите печатачи и неми терминали, за да се покаже дека тие привремено не можат да прифатат повеќе податоци. Типично, ова се должи на комбинацијата на ограничена стапка на излез и сите тампони што се полни. Некои терминални контролни пакети, како што е termcap, користат „баласт" (кратки одложувања со употреба на грануларност во милисекунди ) за да и се овозможи на таквата опрема доволно време да ги изврши бараните дејства без потреба да се тврди XOFF.

XOFF/XON сè уште понекогаш се користат рачно од компјутерските оператори, за пауза и рестартирање на излезот, што во спротивно би се движел надвор на екранот премногу брзо.

Софтверот за терминален емулатор генерално ја спроведува поддршката XOFF/XON како основна функција. Ова генерално ја вклучува системската конзола на современите машини Unix и Linux, како и GUI емулаторите како xterm и конзолата Win32 .

Робустен XON е техника за рестартирање на комуникацијата, само во случај да биде запрена од случајно примен XOFF. Единицата за примање испраќа периодични XON карактери кога може да прима податоци, а линијата е во мирување. Една обична употреба е од сериски печатачи (како HP LaserJet II) за да се наведе дека се онлајн и подготвени да примаат податоци. XON се испраќа на секои 1 до 30 секунди во зависност од дизајнот на фирмверот на печатачот.

Поврзано
--------

* Контрола на проток на Етернет

Наводи
------

1. ↑  „The Termcap Library - Describe Padding". *www.gnu.org*.

* „HP LaserJet IIP and IIP Plus Printers - Control Panel Keys and Menus". Hewlett-Packard. Архивирано од изворникот на 9 мај 2006.