XON-XOFF

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

XON/XOFF är en protokollmekanism för programstyrd flödeskontroll vid seriell kommunikation. Den används för att pausa och återuppta sändning av data över en seriell förbindelse, såsom en RS-232-kommunikationslänk.

Beskrivning:

XON

Detta är ett kontrolltecken som betyder att mottagaren nu är redo att acceptera mer data. Det har ASCII-värdet 17, vilket ofta representeras som Ctrl-Q.

XOFF

Detta är ett kontrolltecken som betyder att mottagaren inte kan acceptera mer data för tillfället och sändaren ska stoppa sändning av data. Det har ASCII-värdet 19, vilket ofta representeras som Ctrl-S.

Fungerar det i praktiken:

- När mottagarens buffert närmar sig full kapacitet sänder den ett XOFF-tecken till sändaren för att be den att stoppa sändning av data.  

- När bufferten hos mottagaren har tömts tillräckligt och den är redo att ta emot mer data, sänder den ett XON-tecken till sändaren för att indikera att den nu kan återuppta sändningen av data.

Detta system medför att data inte går förlorad om mottagaren inte kan bearbeta inkommande data tillräckligt snabbt.

Det är värt att notera att XON/XOFF-flödeskontroll endast är en programvarumekanism och involverar ingen hårdvara (till skillnad från hårdvarubaserad flödeskontroll som RTS/CTS). Eftersom det använder speciella tecken för att signalera flödeskontroll, är det viktigt att dessa tecken inte dyker upp i den faktiska datan som överförs, eller så måste det finnas en mekanism för att "escape" dem på något sätt om de gör det.