Subject: sxpc critic recants (data included)
From: [email-masked] (Hal N. Brooks)
Date: 18 Nov 1993 10:00:14 GMT
Newsgroups: comp.os.linux.misc

In short, this critic of SXPC must confess that it is useful.

My previous, less formalized observations were made with
respect to sxpc-0.9, but this more objective look made use
of sxpc-1.01, which I believe has benefitted from some
enhancements.

For those who want the executive summary, below (from worst to
best) are what I assess to be the advantages of using various
compression techniques with X11.

                                      V.42bis:  84% speedup
                             Sxpc compression: 109% speedup
                   V.42bis + Term compression: 123% speedup
              Term compression (i.e., txconn): 128% speedup
V.42bis + Term compression + Sxpc compression: 146% speedup
          Term compression + Sxpc compression: 147% speedup
                   V.42bis + Sxpc compression: 148% speedup

In brief, it is counterproductive to use TERM compression along
with V.42bis compression, presumably because they are based on
the same algorithm.  Therefore, if you use TERM compression (without
SXPC), you should see a 2% speedup by disabling V.42bis.

If your modem doesn't have V.42bis compression, then you are well
served by using a combination of SXPC and TERM compression.

If you do have a modem with V.42bis compression, you should see a
speedup of about 9% by using SXPC in conjunction with V.42bis, over
using TERM compression alone.

THE DETAILS:

This analysis assumes that the bottleneck lies in the telephone
(modem-to-modem) connection, and it is therefore beneficial to
reduce the number of bytes carried over that link.

Two tests were run:
                    1) the emacs test consisted of running an
emacs 19.16.1 X client on a remote computer, using the file sxpc.c
as the file to be edited.  Ctrl-L was then hit 5 times to refresh
the screen.        
                    2) the xfig test consisted of running Xfig 2.1.7a
as an X client on a remote computer, initially loading the file
dresser.fig, and pressing each of the 12 edit mode buttons along
the lefthand side before quitting.

The data was collected by doing nothing more than logging in, performing
these operations, and logging out.  Subsequently, the link status report
information provided by the modem was used to determine the number
of bytes transferred.

XFree86-1.3 was in use on the local computer which was running
Linux alpha-0.99pl13h, the remote host was a Sun running SunOS 4.1.3.
Xauth was not run, so as to ease the tedium of collecting the data.
TERM refers to the term108 package, and SXPC refers to sxpc-1.01.

Certain precautions were taken to ensure that results weren't
adversely effected.  First, noise logs were kept on both sides
of the connection and were examined to make sure that no more
than 10 bytes were discarded by TERM.  Characters such as those
from the TERM escape sequence typically find their way into the
noise log.  Second, such things as fortune were eliminated from
.logout (I thought of that only after getting one of those
Dave Berry articles, which I enjoyed nonetheless).

A negligible number (22) of additional characters were typed when
invoking SXPC over TERM.  For SXPC the required sequence transmitted
was "setenv DISPLAY `sxpc remote pollux:0`;tredir 4000 4000" while
for TERM the sequence was limited to "setenv DISPLAY `hostname``txconn`".

The numbers shown below from the modem link status reports include
the following terms, defined by ZyXEL as follows:

 Chars - data characters transmitted between DTE (computer/terminal)
         and modem.

 Octet - Data bytes transmitted between the modems, handled by error
         control protocol, may be compressed data.  Data compression
         efficiency may be seen from the ratio of chars count to
         octets count.

For the executive summary, I considered only the octets sent and
received.  As a baseline, I added the octets sent and received for
each of the 2 tests, with V.42bis disabled, TERM compression disabled,
and using txconn.  Combinations of compression techniques were assessed
using the same numbers, but for the appropriate algorithms in use.

Below are the raw link data reports.  Preceding each is a line indicating
the conditions under which the data were gathered, using the following
abbreviations:

V.42 = V.42 (no modem compression)
V.42b = V.42bis (modem compression)

C = term compression in effect
NC = term compression NOT in effect

T = using txconn
S = using sxpc-1.1

E = emacs test
X = xfig test

So, for instance, a connection in which V.42bis modem compression is
disabled, TERM compression is on, txconn is used, and the test run is
the xfig test would be denoted as "V.42bis/C/T/X".

V.42b/NC/T/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         36663     Chars Received      19686 
   Octets Sent        19985     Octets Received     17884 
   Blocks Sent          986     Blocks Received       928 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          6     T402 Timeouts          28 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/NC/S/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         15918     Chars Received       8931 
   Octets Sent        15980     Octets Received     10916 
   Blocks Sent          715     Blocks Received       712 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          9     T402 Timeouts          41 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/C/T/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         13466     Chars Received      10587 
   Octets Sent        15542     Octets Received     13581 
   Blocks Sent          498     Blocks Received       721 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          1     Retrains Granted        0 
   T401 Timeouts          5     T402 Timeouts          29 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/C/S/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         13131     Chars Received       7972 
   Octets Sent        15450     Octets Received     11051 
   Blocks Sent          549     Blocks Received       740 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          8     T402 Timeouts          43 
   FCS Errors             0     Round Trip Delay       18 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/NC/T/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         64089     Chars Received        155k
   Octets Sent        40312     Octets Received     85552 
   Blocks Sent         2529     Blocks Received      4254 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          6     Retrains Granted        0 
   T401 Timeouts          6     T402 Timeouts          71 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/NC/S/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         27142     Chars Received      71663 
   Octets Sent        30144     Octets Received     64267 
   Blocks Sent         1613     Blocks Received      2476 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          4     Retrains Granted        0 
   T401 Timeouts         20     T402 Timeouts          69 
   FCS Errors             0     Round Trip Delay        0 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/C/T/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         25396     Chars Received      66923 
   Octets Sent        29783     Octets Received     76008 
   Blocks Sent         1065     Blocks Received      2178 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          4     Retrains Granted        0 
   T401 Timeouts         10     T402 Timeouts          62 
   FCS Errors             1     Round Trip Delay       10 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42b/C/S/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         23244     Chars Received      58993 
   Octets Sent        28047     Octets Received     68026 
   Blocks Sent         1139     Blocks Received      2170 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          4     Retrains Granted        0 
   T401 Timeouts          8     T402 Timeouts          67 
   FCS Errors             0     Round Trip Delay       16 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42b

   Disconnect Reason       Carrier Lost

V.42/NC/T/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         36670     Chars Received      19693 
   Octets Sent        39440     Octets Received     23469 
   Blocks Sent          692     Blocks Received       944 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          6     T402 Timeouts          40 
   FCS Errors             0     Round Trip Delay       14 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/NC/S/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         15933     Chars Received       9005 
   Octets Sent        18130     Octets Received     12093 
   Blocks Sent          549     Blocks Received       772 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          8     T402 Timeouts          43 
   FCS Errors             0     Round Trip Delay       16 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/C/T/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         13465     Chars Received      10552 
   Octets Sent        15373     Octets Received     13296 
   Blocks Sent          477     Blocks Received       686 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          9     T402 Timeouts          32 
   FCS Errors             0     Round Trip Delay       14 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/C/S/E:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         13143     Chars Received       7966 
   Octets Sent        15195     Octets Received     10906 
   Blocks Sent          513     Blocks Received       735 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          2     Retrains Granted        0 
   T401 Timeouts          9     T402 Timeouts          67 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/NC/T/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         64795     Chars Received        155k
   Octets Sent        71511     Octets Received       167k
   Blocks Sent         1678     Blocks Received      3102 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          5     Retrains Granted        0 
   T401 Timeouts          6     T402 Timeouts          49 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/NC/S/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         28266     Chars Received      72567 
   Octets Sent        32910     Octets Received     80761 
   Blocks Sent         1161     Blocks Received      2048 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          4     Retrains Granted        0 
   T401 Timeouts          5     T402 Timeouts          49 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/C/T/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         25265     Chars Received      66664 
   Octets Sent        29425     Octets Received     73988 
   Blocks Sent         1040     Blocks Received      1831 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          4     Retrains Granted        0 
   T401 Timeouts         13     T402 Timeouts          42 
   FCS Errors             0     Round Trip Delay       12 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

V.42/C/S/X:
   ZyXEL U-MODEM LINK STATUS REPORT

   Chars Sent         23918     Chars Received      59825 
   Octets Sent        28238     Octets Received     67511 
   Blocks Sent         1080     Blocks Received      1921 
   Blocks Resent          0     Max Outstanding        15 
   Max Block Size       128     Retrains Requested      0 
   Link Duration          4     Retrains Granted        0 
   T401 Timeouts          7     T402 Timeouts          57 
   FCS Errors             0     Round Trip Delay       14 
   Xmitter Underrun       0     Receiver Overrun        0 

   Last Speed/Protocol     CONNECT 9600/ARQ/V42 

   Disconnect Reason       Carrier Lost

It can be noted that for the Chars Sent / Chars Received data, the
presence or absence of V.42bis should make no difference, and as
measured it made very little difference.  The speedups as measured
by the Chars Sent / Chars Received data is somewhat more impressive
than that given in the executive summary, but with the ordering
(SXPC, TERM, SXPC+TERM) preserved.

In short, while the TERM and V.42bis algorithms are the same, and
nothing is gained by employing both, the SXPC algorithm shares
a symbiotic relationship with either V.42bis or TERM compression
and should be used in conjunction with one or the other.

======================================================================
 Hal N. Brooks     Voice: (706) 546-7792     Internet: [email-masked]
======================================================================