데이터를 전송 또는 수신할때, 필수적으로 따라다니는 두가지 요소가 있다. 물론 더 많은 요소가 있지만, 이 두가지 요소는 없어서는 안되는 요소입니다. 바로
- Error control : error control은 말그대로 전송되는 데이터에 에러가 발생하여 값이 변질되어 전송되었는지를 확인하기 위해서 사용하는 여러가지 기술...
- Flow control : 데이터를 주고 받는 상대편이 받을 준비가 되어 있는지를 판단하여 데이터 전송 흐름을 더욱 원활하게 하기 위한 기술...
Flow control은 두가지 방법이 있는데,
1. 소프트웨어적 방법인 Software Handshaking(XON/XOFF)과
2. 하드웨어적인 방법인 Hardware Handshaking(CTS/RTS)이 있다.
이 두가지 중에는 일반적으로 하드웨어적 방법이 많이 사용된다.
(RTS : Ready to Send, CTS : Clear to Send, Xon : Transmit On, Xoff : Transmit Off)
Xon/Xoff(때로는 X-on/X-off 또는 XON/XOFF라고 표기하기도 한다)는 컴퓨터와 비동기 직렬 접속되어 있는 다른 장치들 간에 데이터 흐름을 제어하기 위한 프로토콜이다.
예를 들어, 컴퓨터는 보통 프린터가 찍을 수 있는 것보다 더 빠르게 데이터를 전송한다. 프린터는 프린터가 컴퓨터의 속도를 따라잡을 수 있을 때까지 데이터를 임시 저장하기 위한 버퍼를 가지고 있다. 만약 프린터가 컴퓨터의 전송속도를 따라잡기 전에 버퍼가 꽉 차게되면, 프린터 내의 작은 마이크로프로세서가 데이터 전송을 중지하라는 신호인 Xoff 신호를 컴퓨터에 보낸다. 그 후 데이터가 충분히 인쇄되고 버퍼의 저장공간에 여유가 생기면, 프린터는 컴퓨터에게 데이터 전송을 다시 재개하라는 의미로 Xon 신호를 보낸다.
여기서 "X"는 "transmitter"의 약자이므로, Xon 또는 Xoff 신호는 transmitter(송신장치)를 켜거나 끄기 위한 것이다. Xon의 실제 신호는 아스키의 Ctrl-Q의 비트 구성과 같으며, Xoff는 Ctrl-S와 같다.
대개 모뎀을 자신의 컴퓨터에 설치할 때, 데이터 흐름제어를 Xon/Xoff로 할 것인지, 또는 CTS/RTS 방식으로 할 것인지를 설정하게 된다. 바이너리 데이터를 보낼 때, Xon/Xoff는 부호화된 글자이므로 인식되지 않을 수도 있다.
<SC16IS752 Flow Control>
1. Software Control
2. Hardware Control
(참고 : http://www.tipssoft.com/bulletin/board.php?bo_table=old_bbs&wr_id=229&page=5 http://terms.co.kr/XonXoff.htm , SystemBase자료)