home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / uucp / auucp+-1.02 / fuucp_plus_src.lzh / uucico / gio.notes < prev    next >
Encoding:
Text File  |  1990-11-21  |  2.0 KB  |  46 lines

  1. This documents describes changes I made to gio.c to support a larger
  2. window size.
  3.  
  4. Documentation of the "g" protocol is sparse.  The information I have
  5. comes from various "public" implementations of UUCICO.  AmigaUUCP is
  6. the only one which supports a window greater than one. The PCMAIL2
  7. system, distributed recently in comp.sources.misc, has fairly good
  8. documentation of "g" included in its source, but it only supports a
  9. window size of 1.
  10.  
  11. WINDOWSIZE:
  12.     This was changed to 7.  Unix systems are shipped with a maximum
  13. window size of 3, although there are patches for various systems to
  14. increase it to 7.
  15.  
  16. RxSeq:
  17.     RxSeq was changed to reflect the last valid packet received.
  18. This simplified the code in several places.
  19.  
  20. GetTxBuf():
  21.     This function was changed to dynamically allocate up to 8
  22. buffers, allowing window sizes up to 7.  The old code should work with
  23. window sizes up to 3.
  24.  
  25. GetData():
  26.     The acknowledged sequence numbers from the receiver during
  27. transmits are expected to be in the range ((TxSeq - TxPend) & 7) to
  28. TxSeq.  Acknowledging ((TxSeq - TxPend) & 7), the packet immediately
  29. preceding the first packet in the current window, implies that none of
  30. the packets in the current window have been received.  My mail
  31. connection, a 286 based Unix-PC, handles this circumstance by sending
  32. RR packet after each timeout.  Previously, the protocol would loop
  33. indefinitely in this case.  I fixed the code to treat a repeated RR
  34. acknowledgement as a rejection.
  35.     When a packet gets rejected, the entire window following the
  36. packet must be retransmitted as well, since the receiver does not
  37. handle packets out of sequence.  In the rejection code, the entire
  38. window is resent without checking for acknowledgements.
  39.     I eliminated a window size dependent test in the code for
  40. handling data packet reception.  I have never seen the code exercised,
  41. but the change only allows extra RJ packets to be sent.
  42.  
  43. RecvdAck():
  44.     Some simplification of the code.  Also, I eliminated the message
  45. which occured when a packet was re-acknowledged.
  46.