[pyr.syseng.comm] Telebits and uucp g-protocol

csg@pyramid.pyramid.com (Carl S. Gutekunst) (06/12/89)

>>Since the Telebits can do the error-checking and correction themselves why
>>don't all uucico's communicating using modems that agree on some protocol
>>use the f-protocol?
>
>Well, I don't think that the f-protocol is in all versions of UUCP and this
>would reduce the UNIX market.... Also some systems probably can't handle a
>full speed 9.6K or 19.2K serial connection for the time it would take to
>send an entire file.

'f' is a streaming protocol, with no ack packets except at the end of the
file. This makes it perfect for running with the TrailBlazer; you don't need
any protocol in the modem at all. In fact, we were using 'f' over the Trail-
Blazer years before the 'g' spoof existed. And the 'f' protocol allows the
use of XON/XOFF handshaking, so the flow control problems Bill aluded to do
not exist.

But there were other problems. XON/XOFF didn't work very well in the version
2.0 TrailBlazer ROMs, so hardware RTS/CTS handshake had to be used, which is
something very few UNIX computer makers support. And yes, many boxes cannot
take 9600 bps input streamed at them continuously without getting input over-
run. (This is very different from flow control -- it indicates poor design of
the serial I/O controller or interrupt system.)

The biggest problem with 'f' is that it assumes the line is not 8-bit trans-
parent, and does quoting of all control and 8-bit characters. This increases
the size of text files by about 5%, and compressed files by over 40%.

I did some exhaustive performance studies of 'f' versus 'g' protocols using
Pyramid 98xe, Sun 3, ISI Optimum V, and Sequent Balance. There were some in-
teresting 'knees' in the curves I have to go back and look at; for example my
Pyramid 98xe was slower over TrailBlazer links than my Sun 3, but much faster
on a hardwired link. The bottom line, though, was that while the performance
gain of the 'f' protocol was measurable, it wasn't worth it. I had too much
problems with input overrun. And the performance gain wasn't usually enough
to offset the 'f' character quoting overhead.

<csg>