when one end of a data link is unable to accept any more data (or approaching that point), it sends xoff to the other end. the other end receives the xoff code, and suspends transmission. once the first end is ready to accept data again, it sends xon, and the other end resumes transmission.