home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / wkermit.zip / kwchangedoc.txt < prev    next >
Text File  |  1985-11-11  |  4KB  |  96 lines

  1.  
  2.                                                        December 6, 1985
  3.  
  4.               CHANGES TO THE KERMIT WINDOWING DEFINITION
  5.  
  6. DECEMBER 6, 1985 DRAFT                                  ["KWINDOW5.TXT]
  7. ----------------------
  8.  
  9.   There is one change in the draft KERMIT WINDOWING PROTOCOL definition
  10.   between the draft dated November 11, 1985 and the draft dated December 6,
  11.   1985.
  12.  
  13. An additional heuristic is added to section 4.4 "Error Handling on Both
  14. Sides".
  15.  
  16. Here is the additional text:
  17.  
  18. ***       TIMEOUT AVOIDANCE HEURISTIC
  19. Section
  20. added
  21. through   An additional heuristic will prevent most timeouts due to lost
  22. stars     ACKs or NAKs.  The sender re-sends the earliest packet (the packet
  23. below     blocking the window) if the following conditions are true:
  24.  
  25.              1. The Sender's window is blocked.
  26.              2. The Retry Count for the earliest packet is zero.
  27.              3. An ACK (or optionally also NAK) for any later packet
  28.                 has been received.
  29.  
  30.           This heuristic takes advantage of the fact that ACKs and NAKs
  31.           should normally be received in order.  Receipt of a later ACK
  32.           implies that the earliest ACK was lost.  Therefore, we can
  33.           anticipate that a timeout is likely to occur and avoid it by
  34.           resending (once) the packet blocking the window.  The packet is
  35.           only sent once (i.e. if the retry count is zero) to avoid
  36. ***       complicating error recovery.
  37.  
  38.  
  39. NOVEMBER 11, 1985 DRAFT                                 ["KWINDOW4.TXT"]
  40. -----------------------
  41.  
  42.   There are two changes in the draft KERMIT WINDOWING PROTOCOL definition
  43.   between the draft dated July 19, 1985 and the draft dated November 11,
  44.   1985.
  45.  
  46. (** in the left margin indicates text changed from July 19 version.)
  47.  
  48.   They are:
  49.  
  50.   A)  In section "4.3 The Sender's Handling of Confirmations",
  51.  
  52.       "...When the sender receives a NAK, the table boundaries are checked.
  53.           A  NAK  inside the table boundary indicates that the sender must
  54.           re-send  the packet. The sender  first tests the packet's retry
  55.           counter against the retry threshold. If the threshold has been
  56.           reached, then the transfer  is stopped (by going to the Abort
  57.           state). Otherwise, the retry counter is incremented and the
  58.           packet re-sent.
  59.  
  60. **        A NAK outside  of  the  table boundary causes the sender to send
  61. **        the  earliest  unACKed  packet, or if all have been ACKed, the
  62. **        next packet.  The retry counter is tested and incremented as
  63. **        above."
  64.  
  65.  
  66.   COMMENT: This section previously said that a NAK outside the table
  67.            boundaries would be ignored.  This change was made to
  68.            accomodate the timeout condition where the receiver is sending a
  69.            NAK for WINDOW_HIGH +1 (the next packet) which can happen if
  70.            an ACK is lost.  This change handles the scenario where:
  71.              1) An ACK is lost
  72.              2) Sender's window is blocked
  73.              3) The Receiver times out and sends NAK for next packet
  74.              4) Sender gets NAK for packet not yet sent
  75.  
  76.  
  77.   B)  In section "5.3 Receiver User Interrupt",
  78.  
  79.      "... Whenever the receiver checks for input from the data  communications
  80.           line, it  also  should check for user input.  If that indicates that
  81.           the file transfer should be stopped, the receiver sets an "interrupt
  82.           indication" of X (for "stop this file transfer") or of Z (for  "stop
  83.           the batch  of  file  transfers").   When the receiver later sends an
  84.           ACK, it places an X or Z in the data field.
  85.  
  86.           When the sender gets this ACK, it goes to  the  Send_Eof  state  and
  87.           sends the  End_of_File packet with the Discard indication, as above.
  88. **        The sequence number of the End_of_File packet is the (sequence
  89. **        number of the ACK with Discard) + 1. ..."
  90.  
  91.  
  92.   COMMENT: The July 19 draft made no mention of what the sequence
  93.            number of the EOF packet should be under this condition.  This
  94.            addition defines the EOF packet sequence number.
  95.  
  96.