[comp.dcom.modems] Hardware flow control and Compression

csquared@ccwf.cc.utexas.edu (Randy Clarke) (05/21/91)

(A humble request to the net.modem.gurus)

     We're currently trying to set up some v.42bis modems on our Xyplex
terminal server at work.  The problem we've run into is this:  Apparently,
compression only works if RTS/CTS flow control is available.  As it stands
now, the Xyplex does not support this form of flow control (No pin outs
on the RJ-45 connector).   My question is this:  Why doesn't compression
work with standard XON/XOFF software control?  From what I've read, it
has something to do with setting up a sychronous connection between the
two modems.  Could someone please explain what kind of handshaking takes
place to make hardware flow control necessary or at least point me to
a FAQ file which explains v.42bis compression in some detail.
 

     Thanks,
       Randal C. Clarke

       Zycor/Landmark Inc.              rcc@zycor.lgc.com 
       220 Foremost Dr                  clarker@cs.utexas.edu
       Austin, TX 78745                 csquared@cc.utexas.edu
       Phone: (512) 282-6699

gandrews@netcom.COM (Greg Andrews) (05/21/91)

In article <49273@ut-emx.uucp> csquared@ccwf.cc.utexas.edu (Randy Clarke) writes:
>(A humble request to the net.modem.gurus)
>
>     We're currently trying to set up some v.42bis modems on our Xyplex
>terminal server at work.  The problem we've run into is this:  Apparently,
>compression only works if RTS/CTS flow control is available.  
>

With all the modems that I'm familiar with, that is not true.  Compression
does not require hardware flow control.  Matter of fact, compression doesn't
require ANY flow control, in and of itself.  The real inter-relationship is
a bit different.  To illustrate:

  a) Modem compression requires that data be pumped into the modem faster
     than the modem could pump it out (if compression weren't active).  In
     other words, the RS232 port speed should be faster than the modem-to-
     modem connection speed.  Otherwise, compression wouldn't give you any
     boost in throughput.

  b) Since real world conditions control the data transfer process, some data
     may not be as compressible as other data.  Also, the modems may encounter
     impairments in the phone line.  Both of these conditions may cause the
     modems to transmit data slower than expected.

  c) If the modems can't transmit as fast as expected, they may need to tell
     the computers to pause while the modems 'catch up'.  The method where
     the modems tell the computer to pause is Flow Control.  Flow control is
     NOT required when the port speed is faster than the connection speed,
     but it is STRONGLY recommended.  The modems don't care which method of
     flow control you decide to use - as long as it works.

So you see that compression relies upon a faster RS232 port speed, and a faster
port speed works best with flow control.  However none of those require one
particular method of flow control over another, as long as the chosen method
works correctly with the computer.

However, there is another consideration here.  It is not directly related to
compression, so I didn't include it in my three point summary above.  That
other consideration is Data Transparency.

Data Transparency is the idea that the modems (or any device) will pass your
data through without altering it, and without mis-interpreting it.  Using
XON/XOFF flow control in the modems is not the most transparent mode, because
the modems will place special meaning on the XON and XOFF characters.  If an
XON appears in the middle of your data, the modem will probably swallow it
because the modem was told that XONs and XOFFs are flow control commands and
not data characters.  Imagine what an XOFF character would do.  The modem
will stop returning the other system's data!

If the data that is exchanged between your systems will never pass XON or XOFF
as data, then that's not a problem.  XON and XOFF would appear only as flow
control commands, so it's safe for the modems to react to them as such.
However, if XON or XOFF bytes would appear as part of the data (as they do
in the XMODEM, YMODEM, or UUCP "g" file transfer protocols), then XON/XOFF
flow control will cause trouble.

Hardware flow control has the advantage of leaving the modems in a completely
transparent state.  They don't use characters as start/stop commands, so they
won't mis-interpret any of the data the computers send through them.

To summarize, Compression doesn't *require* hardware flow control, but it's
the recommended way to go.

>       Randal C. Clarke

-- 
 .------------------------------------------------------------------------.
 |  Greg Andrews   |       UUCP: {apple,amdahl,claris}!netcom!gandrews    |
 |                 |   Internet: gandrews@netcom.COM                      |
 `------------------------------------------------------------------------'

tnixon@hayes.uucp (05/21/91)

In article <49273@ut-emx.uucp>, csquared@ccwf.cc.utexas.edu (Randy
Clarke) writes: 

>      We're currently trying to set up some v.42bis modems on our Xyplex
> terminal server at work.  The problem we've run into is this:  Apparently,
> compression only works if RTS/CTS flow control is available.  As it stands
> now, the Xyplex does not support this form of flow control (No pin outs
> on the RJ-45 connector).   My question is this:  Why doesn't compression
> work with standard XON/XOFF software control?  From what I've read, it
> has something to do with setting up a sychronous connection between the
> two modems.  Could someone please explain what kind of handshaking takes
> place to make hardware flow control necessary or at least point me to
> a FAQ file which explains v.42bis compression in some detail.

There's no reason why data compression wouldn't work with XON/XOFF 
flow control instead of RTS/CTS, or even with no flow control at all 
(although you'd risk losing data in that case).  The reason RTS/CTS 
is _preferred_ (but not _mandatory_) is that it is fully transparent 
to the type of data you're sending -- you can send the XON and XOFF 
characters as data, without them interfering with the local flow 
control mechanism.  But so long as you never transfer XON or XOFF as 
data (meaning, you use file transfer protocols such as Kermit or 
ZMODEM that transparentize these characters), then there's no reason 
why you can't use XON/XOFF flow control with modems that have error 
control and data compression.

If the particular modems you have happen to not support XON/XOFF 
flow control while V.42bis is being used, then that is a flaw in the 
design of THOSE modems.  All Hayes V.42bis modems, and the vast 
majority of V.42bis modems from other manufacturers, DO support 
XON/XOFF protocol along with V.42bis data compression.

	-- Toby

-- 
Toby Nixon, Principal Engineer    | Voice   +1-404-840-9200  Telex 151243420
Hayes Microcomputer Products Inc. | Fax     +1-404-447-0178  CIS   70271,404
P.O. Box 105203                   | UUCP uunet!hayes!tnixon  AT&T    !tnixon
Atlanta, Georgia  30348  USA      | Internet       hayes!tnixon@uunet.uu.net

root@zswamp.uucp (Geoffrey Welsh) (05/23/91)

In a letter to All, Randy Clarke (csquared@ccwf.cc.utexas.edu ) wrote:

 >The problem we've run into is this:  Apparently,
 >compression only works if RTS/CTS flow control is available.  

   Umm, that's a bit misleading.  It implies that turning off flow control 
also switches data compression off, which *might* be the case but in all 
probability isn't.

   Flow control allows you to speak to the modem at speeds exceeding the 
actual link speed without fear of overrunning the modem's buffers.  This is 
important if you expect the modem to compress your data and achieve higher 
throughput, since the modem can't transmit data any faster than you send it to 
the modem in the first place.

   So even if a 9600 bps modem with data compression is able to send your 
ASCII text at 1700 CPS, a computer stuck at 9600 bps to ensure integrity will 
never see more than 960 CPS (minus some overhead).

 >My question is this:  Why doesn't compression work with
 >standard XON/XOFF software control?

   Unless you have really oddball modems, it should.  I've done it with 
several brands.

 >From what I've read, it has something to do with setting
 >up a sychronous connection between the two modems.

   Most error-correction protocols (which serve as foundations for data 
compression protocols) don't use synchronous framing (i.e. they strip start 
and stop bits), giving you an incidental 20% boost in performance *before* 
data compression... *IF* you are talking to your modem at a speed higher than 
the reported physical connect speed.

   First of all, tell your modem *not* to adjust "DTE rate" (its RS-232 port 
speed) when it makes a connection, and tell your software not to adjust to 
the reported connect speed.  Now configure your RS-232 port to operate at the 
modem's highest supported RS-232 speed (for newer USRobotics Couriers and most 
V.32bis, that's 38,400 bps; for most 9600+ bps modems, 19,200 bps; for 2400 
bps modems, that's usually 9600 bps).

   This is known as 'locking your port speed'.

   Now simply configure your host computer and your modem to use the same 
type of handshaking (RTS/CTS hardware, XON/XOFF software, or ENQ/ACK 
software)... I suspect that you have this correct already.
 

--  
Geoffrey Welsh - Operator, Izot's Swamp BBS (FidoNet 1:221/171)
root@zswamp.uucp or ..uunet!watmath!xenitec!zswamp!root
602-66 Mooregate Crescent, Kitchener, ON, N2M 5E6 Canada (519)741-9553
"He who claims to know everything can't possibly know much" -me