home *** CD-ROM | disk | FTP | other *** search
- This document is obsolete, and included only for historical
- purposes.
-
- Michael B. Smith, June, 1994
-
- PS: The presumed author is Matt Dillon.
-
- ==============================================================================
-
- This documents describes changes I made to gio.c to support a larger
- window size.
-
- Documentation of the "g" protocol is sparse. The information I have
- comes from various "public" implementations of UUCICO. AmigaUUCP is
- the only one which supports a window greater than one. The PCMAIL2
- system, distributed recently in comp.sources.misc, has fairly good
- documentation of "g" included in its source, but it only supports a
- window size of 1.
-
- WINDOWSIZE:
- This was changed to 7. Unix systems are shipped with a maximum
- window size of 3, although there are patches for various systems to
- increase it to 7.
-
- RxSeq:
- RxSeq was changed to reflect the last valid packet received.
- This simplified the code in several places.
-
- GetTxBuf():
- This function was changed to dynamically allocate up to 8
- buffers, allowing window sizes up to 7. The old code should work with
- window sizes up to 3.
-
- GetData():
- The acknowledged sequence numbers from the receiver during
- transmits are expected to be in the range ((TxSeq - TxPend) & 7) to
- TxSeq. Acknowledging ((TxSeq - TxPend) & 7), the packet immediately
- preceding the first packet in the current window, implies that none of
- the packets in the current window have been received. My mail
- connection, a 286 based Unix-PC, handles this circumstance by sending
- RR packet after each timeout. Previously, the protocol would loop
- indefinitely in this case. I fixed the code to treat a repeated RR
- acknowledgement as a rejection.
- When a packet gets rejected, the entire window following the
- packet must be retransmitted as well, since the receiver does not
- handle packets out of sequence. In the rejection code, the entire
- window is resent without checking for acknowledgements.
- I eliminated a window size dependent test in the code for
- handling data packet reception. I have never seen the code exercised,
- but the change only allows extra RJ packets to be sent.
-
- RecvdAck():
- Some simplification of the code. Also, I eliminated the message
- which occured when a packet was re-acknowledged.
-