Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site altos86.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!lll-crg!lll-lcc!vecpyr!altos86!jon From: jon@altos86.UUCP (Jonathan Stern) Newsgroups: net.dcom Subject: Re: XON/XOFF Deadlock Message-ID: <176@altos86.UUCP> Date: Mon, 16-Dec-85 12:05:46 EST Article-I.D.: altos86.176 Posted: Mon Dec 16 12:05:46 1985 Date-Received: Wed, 18-Dec-85 05:30:59 EST References: <848@rlgvax.UUCP> Reply-To: jon@gateway.UUCP (Jonathan Stern) Organization: Altos Computer Systems, San Jose, CA Lines: 34 Keywords: XON/XOFF protocol, deadlock, full duplex, tty driver, terminal In article <848@rlgvax.UUCP> dennis@rlgvax.UUCP (Dennis Bednar) writes: >multiplexor(MUX), flow control, out of band data > > >Introduction - Overview > >I recently came across a very interesting situation which can >cause deadlocks over an asynchronous serial computer link when >both machines use the xon/xoff protocol, and the traffic is full-duplex >(both machines can send data to each other at the same time). >The deadlock causes both machines to cease transmission - permanently. >Solution to Problem: > There are two different solutions. The first is to use a dumb > MUX which can always be controlled by the host CPU. The second > solution is to keep the "semi-intelligent" MUX, but the host > should have the ability to send "out-of-band" data to the MUX > in addition to sending normal data, which can be thought of as > "high priority" data. The "out-of-band" data is the XON and > XOFF characters. The MUX sends the "out-of-band" (XON/XOFF) > data to the network, even when the MUX is blocked on sending > to the network (ie XOFF last received from net.) Even this solution *may* not solve the problem. Each machine has presumably XOFFed the other because it was not ready to recieve more data. If one machine is significantly faster than the other or one machine is in a state where it is not unblocking the input data stream it may actually lose the XON and stay deadlocked. The solution here is to process XON/XOFF protocol within the MUX but many machines do not do this. What this underscores is that XON/XOFF is not a practical flow control method for full duplex, high speed, data transfer. I would be very interested to hear how others have attacked this problem. ------- Jonathan Stern Altos Computer Systems -- ucbvax!dual!vecpyr!altos86!jon