AEA PK-232 Technical Reference Manual page 73

Data controller
Hide thumbs Also See for PK-232:
Table of Contents

Advertisement

PK-232 TECHNICAL MANUAL
APPENDIX B – KISS TNC Specification
so buffer memory may be safely "overbooked". When the occasional "bump" occurs, the TNC must
drop the packet gracefully, i.e., ignore it without crashing or losing packets already queued. The
higher level protocol is expected to recover by "backing off" and retransmitting the packet at a lat-
er time, just as it does whenever a packet is lost in the network for any other reason. As long as
this occurs infrequently, the performance degradation is slight; therefore the TNC should provide
as much packet buffering as possible, limited only by available RAM.
Individual packets at least 1024 bytes long should be allowed. As with buffer queues, it is recom-
mended that no artificial limits be placed on packet size. For example, the K3MC code running on a
TNC-2 with 32K of RAM can send and receive 30K byte packets, although this is admittedly rather
extreme. Large packets reduce protocol overhead on good channels. They are essential for good
performance when operating on high speed modems such as the new WA4DSY 56 kbps design.
6. Persistence
The P and SlotTime parameters are used to implement true p-persistent CSMA. This works as fol-
lows:
Whenever the host queues data for transmission, the TNC begins monitoring the carrier detect sig-
nal from the modem. It waits indefinitely for this signal to go inactive. When the channel clears,
the TNC generates a random number between 0 and 1. If this number is less than or equal to the
parameter p, the TNC keys the transmitter, waits .01 × TXDELAY seconds, and transmits all
queued frames. The TNC then unkeys the transmitter and goes back to the idle state. If the ran-
dom number is greater than p, the TNC delays .01 × SlotTime seconds and repeats the procedure
beginning with the sampling of the carrier detect signal. (If the carrier detect signal has gone ac-
tive in the meantime, the TNC again waits for it to clear before continuing). Note that p = 1 means
"transmit as soon as the channel clears"; in this case the p-persistence algorithm degenerates into
the 1-persistent CSMA generally used by conventional AX.25 TNCs.
p-persistence causes the TNC to wait for an exponentially-distributed random interval after sensing
that the channel has gone clear before attempting to transmit. With proper tuning of the parame-
ters p and SlotTime, several stations with traffic to send are much less likely to collide with each
other when they all see the channel go clear. One transmits first and the others see it in time to
prevent a collision, and the channel To conform to the literature, here p takes on values between 0
to 1. However, fractions are difficult to use in a fixed point microprocessor so the KISS TNC ac-
tually works with P values that are rescaled to the range 0 to 255. To avoid confusion, we will use
lower-case p to mean the former (0-1) and upper-case P whenever we mean the latter (0-255). re-
mains stable under heavy load.
We believe that optimum p and SlotTime values could be computed automatically. This could be
done by noting the channel occupancy and the length of the frames on the channel. We are pro-
ceeding with a simulation of the p-persistence algorithm described here that we hope will allow us
to construct an automatic algorithm for p and SlotTime selection.
We added p-persistence to the KISS TNC because it was a convenient opportunity to do so. How-
ever, it is not inherently associated with KISS nor with new protocols such as TCP/IP. Rather, per-
sistence is a channel access protocol that can yield dramatic performance improvements regardless
of the higher level protocol in use; we urge it be added to every TNC, whether or not it supports
KISS.
7. Implementation History
The original idea for a simplified host/TNC protocol is due to Brian Lloyd, WB6RQN. Phil Karn,
KA9Q, organized the specification and submitted an initial version on 6 August 1986. As of this
writing, the following KISS TNC implementations exist:
PK232TM Rev. A 5/87
B-4
Page 73

Advertisement

Table of Contents
loading

Table of Contents