summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc1986.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc1986.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc1986.txt')
-rw-r--r--doc/rfc/rfc1986.txt1179
1 files changed, 1179 insertions, 0 deletions
diff --git a/doc/rfc/rfc1986.txt b/doc/rfc/rfc1986.txt
new file mode 100644
index 0000000..98b281a
--- /dev/null
+++ b/doc/rfc/rfc1986.txt
@@ -0,0 +1,1179 @@
+
+
+
+
+
+
+Network Working Group W. Polites
+Request for Comments: 1986 W. Wollman
+Category: Experimental D. Woo
+ The MITRE Corporation
+ R. Langan
+ U.S. ARMY CECOM
+ August 1996
+
+
+ Experiments with a Simple File Transfer Protocol for Radio Links
+ using Enhanced Trivial File Transfer Protocol (ETFTP)
+
+
+Status of this Memo
+
+ This memo defines an Experimental Protocol for the Internet
+ community. This memo does not specify an Internet standard of any
+ kind. Discussion and suggestions for improvement are requested.
+ Distribution of this memo is unlimited.
+
+1. INTRODUCTION SECTION
+
+ This document is a description of the Enhanced Trivial File Transfer
+ Protocol (ETFTP). This protocol is an experimental implementation of
+ the NETwork BLock Transfer Protocol (NETBLT), RFC 998 [1], as a file
+ transfer application program. It uses the User Datagram Protocol
+ (UDP), RFC 768 [2], as its transport layer. The two protocols are
+ layered to create the ETFTP client server application. The ETFTP
+ program is named after Trivial File Transfer Protocol (TFTP), RFC
+ 1350 [3], because the source code from TFTP is used as the building
+ blocks for the ETFTP program. This implementation also builds on but
+ differs from the work done by the National Imagery Transmission
+ Format Standard [4].
+
+ This document is published for discussion and comment on improving
+ the throughput performance of data transfer utilities over Internet
+ Protocol (IP) compliant, half duplex, radio networks.
+
+ There are many file transfer programs available for computer
+ networks. Many of these programs are designed for operations through
+ high-speed, low bit error rate (BER) cabled networks. In tactical
+ radio networks, traditional file transfer protocols, such as File
+ Transfer Protocol (FTP) and TFTP, do not always perform well. This is
+ primarily because tactical half duplex radio networks typically
+ provide slow-speed, long delay, and high BER communication links.
+ ETFTP is designed to allow a user to control transmission parameters
+ to optimize file transfer rates through half-duplex radio links.
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 1]
+
+RFC 1986 ETFTP August 1996
+
+
+ The tactical radio network used to test this application was
+ developed by the Survivable Adaptive Systems (SAS) Advanced
+ Technology Demonstration (ATD). Part of the SAS ATD program was to
+ address the problems associated with extending IP networks across
+ tactical radios. Several tactical radios, such as, SINgle Channel
+ Ground and Airborne Radio Systems (SINCGARS), Enhanced Position
+ Location Reporting Systems (EPLRS), Motorola LST-5C, and High
+ Frequency (HF) radios have been interfaced to the system. This
+ document will discuss results obtained from using ETFTP across a
+ point-to-point LST-5C tactical SATellite COMmunications (SATCOM)
+ link. The network includes a 25 Mhz 486 Personal Computer (PC) called
+ the Army Lightweight Computer Unit (LCU), Cisco 2500 routers,
+ Gracilis PackeTen Network switches, Motorola Sunburst Cryptographic
+ processors, a prototype forward error correction (FEC) device, and
+ Motorola LST-5C tactical Ultra High Frequency (UHF) satellite
+ communications (SATC! OM) radio. Table 1, "Network Trans fer Rates,"
+ describes the equipment network connections and the bandwidth of the
+ physical media interconnecting the devices.
+
+ Table 1: Network Transfer Rates
+
+ +-------------------------------+-------------------------------+
+ | Equipment | Rate (bits per second) |
+ +-------------------------------+-------------------------------+
+ | Host Computer (486 PC) | 10,000,000 Ethernet |
+ +-------------------------------+-------------------------------+
+ | Cisco Router | 10,000,000 Ethernet to |
+ | | 19,200 Serial Line Internet |
+ | | Protocol (SLIP) |
+ +-------------------------------+-------------------------------+
+ | Gracilis PackeTen | 19,200 SLIP to |
+ | | 16,000 Amateur Radio (AX.25) |
+ +-------------------------------+-------------------------------+
+ | FEC | half rate or quarter rate |
+ +-------------------------------+-------------------------------+
+ | Sunburst Crypto | 16,000 |
+ +-------------------------------+-------------------------------+
+ | LST-5C Radio | 16,000 |
+ +-------------------------------+-------------------------------+
+
+ During 1993, the MITRE team collected data for network configurations
+ that were stationary and on-the-move. This network configuration did
+ not include any Forward Error Correction (FEC) at the link layer.
+ Several commercially available implementations of FTP were used to
+ transfer files through a 16 kbps satellite link. FTP relies upon the
+ Transmission Control Protocol (TCP) for reliable communications. For
+ a variety of file sizes, throughput measurements ranged between 80
+ and 400 bps. At times, TCP connections could be opened, however, data
+
+
+
+Polites, Wollman & Woo Experimental [Page 2]
+
+RFC 1986 ETFTP August 1996
+
+
+ transfers would be unsuccessful. This was most likely due to the
+ smaller TCP connection synchronization packets, as compared to the
+ TCP data packets. Because of the high bit error rate of the link,
+ the smaller packets were much more likely to be received without
+ error. In most cases, satellite channel utilization was less than 20
+ percent. Very often a file transfer would fail because FTP
+ implementations would curtail the transfer due t! o the poor
+ conditions of the commu nication link.
+
+ The current focus is to increase the throughput and channel
+ utilization over a point to point, half duplex link. Follow on
+ experiments will evaluate ETFTP's ability to work with multiple hosts
+ in a multicast scenario. Evaluation of the data collected helped to
+ determine that several factors limited data throughput. A brief
+ description of those limiting factors, as well as, solutions that can
+ reduce these networking limitations is provided below.
+
+Link Quality
+
+ The channel quality of a typical narrow-band UHF satellite link does
+ not sufficiently support data communications without the addition of
+ a forward error correction (FEC) capability. From the data
+ collected, it was determined that the UHF satellite link supports, on
+ average, a 10e-3 bit error rate.
+
+ Solution: A narrow-band UHF satellite radio FEC prototype was
+ developed that improves data reliability, without excessively
+ increasing synchronization requirements. The prototype FEC increased
+ synchronization requirements by less than 50 milliseconds (ms). The
+ FEC implementation will improve an average 10e-3 BER channel to an
+ average 10e-5 BER channel.
+
+Delays
+
+ Including satellite propagation delays, the tactical satellite radios
+ require approximately 1.25 seconds for radio synchronization prior to
+ transmitting any data across the communication channel. Therefore,
+ limiting the number of channel accesses required will permit data
+ throughput to increase. This can be achieved by minimizing the number
+ of acknowledgments required during the file transfer. FTP generates
+ many acknowledgments which decreases throughput by increasing the
+ number of satellite channel accesses required.
+
+ To clarify, when a FTP connection request is generated, it is sent
+ via Ethernet to the router and then forwarded to the radio network
+ controller (RNC). The elapsed time is less than 30 ms. The RNC keys
+ the crypto unit and 950 ms later modem/crypto synchronization occurs.
+ After synchronization is achieved, the FTP connection request is
+
+
+
+Polites, Wollman & Woo Experimental [Page 3]
+
+RFC 1986 ETFTP August 1996
+
+
+ transmitted. The transmitting terminal then drops the channel and the
+ modem/crypto synchronization is lost. Assuming that the request was
+ received successfully, the receiving host processes the request and
+ sends an acknowledgment. Again the modem/crypto have to synchronize
+ prior to transmitting the acknowledgment. Propagation delays over a
+ UHF satellite also adds roughly 500 ms to the total round trip delay.
+
+ Solution: When compared to FTP, NETBLT significantly reduces the
+ number of acknowledgments required to complete a file transfer.
+ Therefore, leveraging the features available within an implementation
+ of NETBLT will significantly improve throughput across the narrow-
+ band UHF satellite communication link.
+
+ To reduce the number of channel accesses required, a number of AX.25
+ parameters were modified. These included the value of p for use
+ within the p-persistence link layer protocol, the slot time, the
+ transmit tail time, and the transmit delay time. The p-persistence
+ is a random number threshold between 0 and 255. The slot time is the
+ time to wait prior to attempting to access the channel. The transmit
+ tail increases the amount of time the radio carrier is held on, prior
+ to dropping the channel. Transmit delay is normally equal to the
+ value of the radio synchronization time. By adjusting these
+ parameters to adapt to the tactical satellite environment, improved
+ communication performance can be achieved.
+
+ First, in ETFTP, several packets within a buffer are transmitted
+ within one burst. If the buffer is partitioned into ten packets, each
+ of 1024 bytes, then 10,240 bytes of data is transmitted with each
+ channel access. It is possible to configure ETFTP's burstsize to
+ equal the number of packets per buffer. Second, the transmit tail
+ time was increased to hold the key down on the transmitter long
+ enough to insure all of the packets within the buffer are sent in a
+ single channel access. These two features, together, allow the system
+ to transmit an entire file (example, 100,000 bytes) with only a
+ single channel access by adjusting buffer size. Thirdly, the ETFTP
+ protocol only acknowledges each buffer, not each packet. Thus, a
+ single acknowledgment is sent from the receiving terminal containing
+ a request for the missing packets within each buffer, reducing the
+ number of acknowledgment packets sent. Which in turn, reduced the
+ number of times the channel has to be turned around.
+
+ To reduce channel access time, p-persistence was set to the maximum
+ value and slot time to a minimum value. These settings support
+ operations for a point-to-point communication link between two users.
+ This value of p would not be used if more users were sharing the
+ satellite channel.
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 4]
+
+RFC 1986 ETFTP August 1996
+
+
+Backoffs
+
+ TCP's slow start and backoff algorithms implemented in most TCP
+ packages assume that packet loss is due to network congestion. When
+ operating across a tactical half duplex communication channel
+ dedicated to two users, packet loss is primarily due to poor channel
+ quality, not network congestion. A linear backoff at the transport
+ layer is recommended. In a tactical radio network there are numerous
+ cases where a single host is connected to multiple radios. In a
+ tactical radio network, layer two will handle channel access.
+ Channel access will be adjusted through parameters like p-persistence
+ and slot time. The aggregate effect of the exponential backoff from
+ the transport layer added to the random backoff of the data link
+ layer, will in most cases, cause the radio network to miss many
+ network access opportunities. A linear backoff will reduce the number
+ missed data link network access opportunities
+
+ Solution: Tunable parameters and timers have been modified to
+ resemble those suggested by NETBLT.
+
+Packet Size
+
+ In a tactical environment, channel conditions change rapidly.
+ Continuously transmitting large packets under 10e-3 BER conditions
+ reduces effective throughput.
+
+ Solution: Packet sizes are dynamically adjusted based upon the
+ success of the buffer transfers. If 99 percent of all packets within
+ a buffer are received successfully, packet size can be increased to a
+ negotiated value. If 50 percent or more of all packets within a
+ buffer are not successfully delivered, the packet size can be
+ decreased to a negotiated value.
+
+2. PROTOCOL DESCRIPTION
+
+ Throughout this document the term packet is used to describe a
+ datagram that includes all network overhead. A block is used to
+ describe information, without any network encapsulation.
+
+ The original source files for TFTP, as downloaded from ftp.uu.net,
+ were modified to implement the ETFTP/NETBLT protocol. These same
+ files are listed in "UNIX Network Programming" [5].
+
+ ETFTP was implemented for operations under the Santa Cruz Operations
+ (SCO) UNIX. In the service file, "/etc/services", an addition was
+ made to support "etftp" at a temporary well known port of "1818"
+ using "UDP" protocol. The file, "/etc/inetd.conf", was modified so
+ the "inetd" program could autostart the "etftpd" server when a
+
+
+
+Polites, Wollman & Woo Experimental [Page 5]
+
+RFC 1986 ETFTP August 1996
+
+
+ connection request came in on the well known port.
+
+ As stated earlier, the transport layer for ETFTP is UDP, which will
+ not be discussed further here. This client server application layer
+ protocol is NETBLT, with four notable differences.
+
+ The first change is that this NETBLT protocol is implemented on top
+ of the UDP layer. This allowed the NETBLT concepts to be tested
+ without modifying the operating system's transport or network layers.
+ Table 2, "Four Layer Protocol Model," shows the protocol stack for
+ FTP, TFTP and ETFTP.
+
+ Table 2: Four Layer Protocol Model
+
+ +---------------------------------------------------------------+
+ | PROTOCOL STACK |
+ +---------------+---------------+---------------+---------------+
+ |APPLICATION |FTP |TFTP |ETFTP/NETBLT |
+ +---------------+---------------+---------------+---------------+
+ |TRANSPORT |TCP |UDP |UDP |
+ +---------------+---------------+---------------+---------------+
+ |NETWORK |IP |
+ +---------------+---------------+---------------+---------------+
+ |LINK |Ethernet, SLIP, AX.25 |
+ +---------------+---------------+---------------+---------------+
+
+ The second change is a carryover from TFTP, which allows files to be
+ transferred in netascii or binary modes. A new T bit flag is assigned
+ to the reserved field of the OPEN message type.
+
+ The third change is to re-negotiate the DATA packet size. This change
+ affects the OPEN, NULL-ACK, and CONTROL_OK message types. A new R
+ bit is assigned to the reserved field of the OPEN message type.
+
+ The fourth change is the addition of two new fields to the OPEN
+ message type. The one field is a two byte integer for radio delay in
+ seconds, and the next field is two bytes of padding.
+
+ The ETFTP data encapsulation is shown in Table 3, "ETFTP Data
+ Encapsulation,". The Ethernet, SLIP, and AX.25 headers are mutually
+ exclusive. They are stripped off and added by the appropriate
+ hardware layer.
+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 6]
+
+RFC 1986 ETFTP August 1996
+
+
+ Table 3: ETFTP Data Encapsulation
+
+ +------------+------------+------------+------------+-----------+
+ |Ethernet(14)| | |ETFTP/ | |
+ |SLIP(2) |IP(20) |UDP(8) |NETBLT(24) |DATA(1448) |
+ |AX.25(20) | | | | |
+ +------------+------------+------------+------------+-----------+
+
+2.1 MESSAGE TYPES AND FORMATS
+
+ Here are the ETFTP/NETBLT message types and formats.
+
+ MESSAGES VALUES
+ OPEN 0 Client request to open a new connection
+ RESPONSE 1 Server positive acknowledgment for OPEN
+ KEEPALIVE 2 Reset the timer
+ QUIT 3 Sender normal Close request
+ QUITACK 4 Receiver acknowledgment of QUIT
+ ABORT 5 Abnormal close
+ DATA 6 Sender packet containing data
+ LDATA 7 Sender last data block of a buffer
+ NULL-ACK 8 Sender confirmation of CONTROL_OK changes
+ CONTROL 9 Receiver request to
+ GO 0 Start transmit of next buffer
+ OK 1 Acknowledge complete buffer
+ RESEND 2 Retransmit request
+ REFUSED 10 Server negative acknowledgment of OPEN
+ DONE 11 Receiver acknowledgment of QUIT.
+
+ Packets are "longword-aligned", at four byte word boundaries.
+ Variable length strings are NULL terminated, and padded to the four
+ byte boundary. Fields are listed in network byte order. All the
+ message types share a common 12 byte header. The common fields are:
+
+ Checksum IP compliant checksum
+ Version Current version ID
+ Type NETBLT message type
+ Length Total byte length of packet
+ Local Port My port ID
+ Foreign Port Remote port ID
+ Padding Pad as necessary to 4 byte boundary
+
+ The OPEN and RESPONSE messages are similar and shown in Table 4,
+ "OPEN and RESPONSE Message Types,". The client string field is used
+ to carry the filename to be transferred.
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 7]
+
+RFC 1986 ETFTP August 1996
+
+
+ Table 4: OPEN and RESPONSE Message Types
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Checksum |Version |Type |
+ +---------------+---------------+---------------+---------------+
+ |Length |Local Port |
+ +---------------+---------------+---------------+---------------+
+ |Foreign Port |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+ |Connection ID |
+ +---------------+---------------+---------------+---------------+
+ |Buffer size |
+ +---------------+---------------+---------------+---------------+
+ |Transfer size |
+ +---------------+---------------+---------------+---------------+
+ |DATA Packet size |Burstsize |
+ +---------------+---------------+---------------+---------------+
+ |Burstrate |Death Timer Value |
+ +---------------+---------------+---------------+---------------+
+ |Reserved(MBZ) |R|T|C|M|Maximum # Outstanding Buffers |
+ +---------------+---------------+---------------+---------------+
+ |*Radio Delay |*Padding |
+ +---------------+---------------+---------------+---------------+
+ |Client String . . . |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+
+ Connection ID The unique connection number
+ Buffer size Bytes per buffer
+ Transfer size The length of the file in bytes
+ DATA Packet size Bytes per ETFTP block
+ Burstsize Concatenated packets per burst
+ Burstrate Milliseconds per burst
+ Death Timer Seconds before closing idle links
+ Reserved M bit is mode: 0=read/put, 1=write/get
+ C bit is checksum: 0=header, 1=all
+ *T bit is transfer: 0=netascii, 1=binary
+ *R bit is re-negotiate: 0=off, 1=on
+ Max # Out Buffs Maximum allowed un-acknowledged buffers
+ Radio Delay *Seconds of delay from send to receive
+ Padding *Unused
+ Client String Filename.
+
+ The KEEPALIVE, QUITACK, and DONE messages are identical to the common
+ header, except for the message type values. See Table 5, "KEEPALIVE,
+ QUITACK, and DONE Message Types,".
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 8]
+
+RFC 1986 ETFTP August 1996
+
+
+ Table 5: KEEPALIVE, QUITACK, and DONE Message Types
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Checksum |Version |Type |
+ +---------------+---------------+---------------+---------------+
+ |Length |Local Port |
+ +---------------+---------------+---------------+---------------+
+ |Foreign Port |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+
+
+ The QUIT, ABORT, and REFUSED messages allow a string field to carry
+ the reason for the message. See Table 6, "QUIT, ABORT, and REFUSED
+ Message Types,".
+
+ Table 6: QUIT, ABORT, and REFUSED Message Types
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Checksum |Version |Type |
+ +---------------+---------------+---------------+---------------+
+ |Length |Local Port |
+ +---------------+---------------+---------------+---------------+
+ |Foreign Port |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+ |Reason for QUIT/ABORT/REFUSED . . . |
+ +---------------+---------------+---------------+---------------+
+ |. . . |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+
+ The DATA and LDATA messages make up the bulk of the messages
+ transferred. The last packet of each buffer is flagged as an LDATA
+ message. Each and every packet of the last buffer has the reserved L
+ bit set. The highest consecutive sequence number is used for the
+ acknowledgment of CONTROL messages. It should contain the ID number
+ of the current CONTROL message being processed. Table 7, "DATA and
+ LDATA Message Types,", shows the DATA and LDATA formats.
+
+
+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 9]
+
+RFC 1986 ETFTP August 1996
+
+
+ Table 7: DATA and LDATA Message Types
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Checksum |Version |Type |
+ +---------------+---------------+---------------+---------------+
+ |Length |Local Port |
+ +---------------+---------------+---------------+---------------+
+ |Foreign Port |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+ |Buffer Number |
+ +---------------+---------------+---------------+---------------+
+ |High Consecutive Seq Num Rcvd |Packet Number |
+ +---------------+---------------+---------------+---------------+
+ |Data Area Checksum Value |Reserved (MBZ) |L|
+ +---------------+---------------+---------------+---------------+
+
+ Buffer Number The first buffer number starts at 0
+ Hi Con Seq Num The acknowledgment for CONTROL messages
+ Packet Number The first packet number starts at 0
+ Data Checksum Checksum for data area only
+ Reserved L: the last buffer bit: 0=false, 1=true
+
+ The NULL-ACK message type is sent as a response to a CONTROL_OK
+ message that modifies the current packet size, burstsize, or
+ burstrate. In acknowledging the CONTROL_OK message, the sender is
+ confirming the change request to the new packet size, burstsize, or
+ burstrate. If no modifications are requested, a NULL-ACK message is
+ unnecessary. See Table 8, "NULL-ACK Message Type," for further
+ details.
+
+ Table 8: NULL-ACK Message Type
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Checksum |Version |Type |
+ +---------------+---------------+---------------+---------------+
+ |Length |Local Port |
+ +---------------+---------------+---------------+---------------+
+ |Foreign Port |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+ |High Consecutive Seq Num Rcvd |New Burstsize |
+ +---------------+---------------+---------------+---------------+
+ |New Burstrate |*New DATA Packet size |
+ +---------------+---------------+---------------+---------------+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 10]
+
+RFC 1986 ETFTP August 1996
+
+
+ The CONTROL messages have three subtypes: GO, OK, and RESEND as shown
+ in Tables 9-12. The CONTROL message common header may be followed by
+ any number of longword aligned subtype messages.
+
+ Table 9: CONTROL Message Common Header
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Checksum |Version |Type |
+ +---------------+---------------+---------------+---------------+
+ |Length |Local Port |
+ +---------------+---------------+---------------+---------------+
+ |Foreign Port |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+
+ Table 10: CONTROL_GO Message Subtype
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Subtype |Padding |Sequence Number |
+ +---------------+---------------+---------------+---------------+
+ |Buffer Number |
+ +---------------+---------------+---------------+---------------+
+
+ Table 11: CONTROL_OK Message Subtype
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Subtype |Padding |Sequence Number |
+ +---------------+---------------+---------------+---------------+
+ |Buffer Number |
+ +---------------+---------------+---------------+---------------+
+ |New Offered Burstsize |New Offered Burstrate |
+ +---------------+---------------+---------------+---------------+
+ |Current Control Timer Value |*New DATA Packet size |
+ +---------------+---------------+---------------+---------------+
+
+
+
+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 11]
+
+RFC 1986 ETFTP August 1996
+
+
+ Table 12: CONTROL_RESEND Message Subtype
+
+ 1 2 3
+ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
+ +---------------+---------------+---------------+---------------+
+ |Subtype |Padding |Sequence Number |
+ +---------------+---------------+---------------+---------------+
+ |Buffer Number |
+ +---------------+---------------+---------------+---------------+
+ |Number of Missing Packets |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+ |Packet Number (2 bytes) |. . . |
+ +---------------+---------------+---------------+---------------+
+ |. . . |Longword Alignment Padding |
+ +---------------+---------------+---------------+---------------+
+
+2.2 ETFTP COMMAND SET
+
+ Being built from TFTP source code, ETFTP shares a significant portion
+ of TFTP's design. Like TFTP, ETFTP does NOT support user password
+ validation. The program does not support changing directories (i.e.
+ cd), neither can it list directories, (i.e. ls). All filenames must
+ be given in full paths, as relative paths are not supported. The
+ internal finite state machine was modified to support NETBLT message
+ types.
+
+ The NETBLT protocol is implemented as closely as possible to what is
+ described in RFC 998, with a few exceptions. The client string field
+ in the OPEN message type is used to carry the filename of the file to
+ be transferred. Netascii or binary transfers are both supported. If
+ enabled, new packet sizes, burstsizes, and burstrates are re-
+ negotiated downwards when half or more of the blocks in a buffer
+ require retransmission. If 99% of the packets in a buffer is
+ successfully transferred without any retransmissions, packet size is
+ re-negotiated upwards.
+
+ The interactive commands supported by the client process are similar
+ to TFTP. Here is the ETFTP command set. Optional parameters are in
+ square brackets. Presets are in parentheses.
+
+ ? help, displays command list
+ ascii mode ascii, appends CR-LF per line
+ autoadapt toggles backoff function (on)
+ baudrate baud baud rate (16000 bits/sec)
+ binary mode binary, image transfer
+ blocksize bytes packet size in bytes (512 bytes/block)
+ bufferblock blks buffer size in blocks (128 blocks/buff)
+ burstsize packets burst size in packets (8 blocks/burst)
+
+
+
+Polites, Wollman & Woo Experimental [Page 12]
+
+RFC 1986 ETFTP August 1996
+
+
+ connect host [p] establish connection with host at port p
+ exit ends program
+ get rfile lfile copy remote file to local file
+ help same as ?
+ mode choice set transfer mode (binary)
+ multibuff num number of buffers (2 buffers)
+ put lfile rfile copy local file to remote file
+ quit same as exit
+ radiodelay sec transmission delay in seconds (2 sec)
+ status display network parameters
+ trace toggles debug display (off).
+
+2.3 DATA TRANSFER AND FLOW CONTROL
+
+ This is the scenario between client and server transfers:
+
+ Client sends OPEN for connection, blocksize, buffersize, burstsize,
+ burstrate, transfer mode, and get or put. See M bit of reserved
+ field.
+
+ Server sends a RESPONSE with the agreed parameters.
+
+ Receiver sends a CONTROL_GO request sending of first buffer.
+
+ Sender starts transfer by reading the file into multiple memory
+ buffers. See Figure 1, "File Segmentation,". Each buffer is divided
+ according to the number of bytes/block. Each block becomes a DATA
+ packet, which is concatenated according to the blocks/burst. Bursts
+ are transmitted according to the burstrate. Last data block is
+ flagged as LDATA type.
+
+ +---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
+ | | | 0 | | L | | 4 | | 3 | ---- | 2 | | 1 | | 0 |
+ | | | +---+ +---+ +---+ +---+ +---+ +---+ +---+
+ | | +-| | --> +---+ +---+ +---+ +---+ +---+
+ | | --> | 1 | | L | | 3 | ---- | 2 | | 1 | | 0 |
+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
+ File Multi Buffers Blocks per Burst
+
+ Figure 1. File Segmentation
+
+ Receiver acknowledges buffer as CONTROL_OK or CONTROL_RESEND.
+
+ If blocks are missing, a CONTROL_RESEND packet is transmitted. If
+ half or more of the blocks in a buffer are missing, an adaptive
+ algorithm is used for the next buffer transfer. If no blocks are
+ missing, a CONTROL_OK packet is transmitted.
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 13]
+
+RFC 1986 ETFTP August 1996
+
+
+ Sender re-transmits blocks until receipt of a CONTROL_OK. If the
+ adaptive algorithm is set, then new parameters are offered, in the
+ CONTROL_OK message. The priority of the adaptive algorithm is:
+
+ - Reduce packetsize by half (MIN = 16 bytes/packet)
+ - Reduce burstsize by one (MIN = 1 packet/burst)
+ - Reduce burstrate to actual tighttimer rate
+
+ If new parameters are valid, the sender transmits a NULL-ACK packet,
+ to confirm the changes.
+
+ Receiver sends a CONTROL_GO to request sending next buffer.
+
+ At end of transfer, sender sends a QUIT to close the connection.
+
+ Receiver acknowledges the close request with a DONE packet.
+
+2.4 TUNABLE PARAMETERS
+
+ These parameters directly affect the throughput rate of ETFTP.
+
+ Packetsize The packetsize is the number of 8 bit bytes per
+ packet. This number refers to the user data bytes in a block, (frame),
+ exclusive of any network overhead. The packet size has a valid range
+ from 16 to 1,448 bytes. The Maximum Transfer Unit (MTU) implemented in
+ most commercial network devices is 1,500 bytes. The de-facto industry
+ standard is 576 byte packets.
+
+ Bufferblock The bufferblock is the number of blocks per buffer.
+ Each implementation may have restrictions on available memory, so the
+ buffersize is calculated by multiplying the packetsize times the
+ bufferblocks.
+
+ Baudrate The baudrate is the bits per second transfer rate of
+ the slowest link (i.e., the radios). The baudrate sets the speed of
+ the sending process. The sending process cannot detect the actual
+ speed of the network, so the user must set the correct baudrate.
+
+ Burstsize The burstsize in packets per burst sets how many
+ packets are concatenated and burst for transmission efficiency. The
+ burstsize times the packetsize must not exceed the available memory of
+ any intervening network devices. On the Ethernet portion of the
+ network, all the packets are sent almost instantaneously. It is
+ necessary to wait for the network to drain down its memory buffers,
+ before the next burst is sent. The sending process needs to regulate
+ the rate used to place packets into the network.
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 14]
+
+RFC 1986 ETFTP August 1996
+
+
+ Radiodelay The radiodelay is the time in seconds per burst it
+ takes to synchronize with the radio controllers. Any additional
+ hardware delays should be set here. It is the aggregate delay of the
+ link layer, such as transmitter key-up, FEC, crypto synchronization,
+ and propagation delays.
+
+ These parameters above are used to calculate a burstrate, which is the
+ length of time it takes to transmit one burst. The ov is the overhead
+ of 72 bytes per packet of network encapsulation. A byte is defined as
+ 8 bits. The burstrate value is:
+
+ burstrate = (packetsize+ov)*burstsize*8/baudrate
+
+ In a effort to calculate the round trip time, when data is flowing in
+ one direction for most of the transfer, the OPEN and RESPONSE message
+ types are timed, and the tactical radio delays are estimated. Using
+ only one packet in each direction to estimate the rate of the link is
+ statistically inaccurate. It was decided that the radio delay should
+ be a constant provided by the user interface. However, a default
+ value of 2 seconds is used. The granularity of this value is in
+ seconds because of two reasons. The first reason is that the UNIX
+ supports a sleep function in seconds only. The second reason is that
+ in certain applications, such as deep space probes, a 16-bit integer
+ maximum of 32,767 seconds would suffice.
+
+2.5 DELAYS AND TIMERS
+
+ From these parameters, several timers are derived. The control timer
+ is responsible for measuring the per buffer rate of transfer. The
+ SENDER copy is nicknamed the loosetimer.
+
+ loosetimer = (burstrate+radiodelay)*bufferblock/burstsize
+
+ The RECEIVER copy of the timer is nicknamed the tighttimer, which
+ measures the elapsed time between CONTROL_GO and CONTROL_OK packets.
+ The tighttimer is returned to the SENDER to allow the protocol to
+ adjust for the speed of the network.
+
+ The retransmit timer is responsible for measuring the network receive
+ data function. It is used to set an alarm signal (SIGALRM) to
+ interrupt the network read. The retransmit timer (wait) is initially
+ set to be the greater of twice the round trip or 4 times the
+ radiodelay, plus a constant 5 seconds.
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 15]
+
+RFC 1986 ETFTP August 1996
+
+
+ wait = MAX ( 2*roundtriptime, 4*radiodelay ) + 5 seconds
+
+ and
+
+ alarm timeout = wait.
+
+ Each time the same read times out, a five second backoff is added to
+ the next wait. The backoff is necessary because the initial user
+ supplied radiodelay, or the initial measured round trip time may be
+ incorrect.
+
+ The retransmit timer is set differently for the RECEIVER during a
+ buffer transfer. Before the arrival of the first DATA packet, the
+ original alarm time out is used. Once the DATA packets start
+ arriving, and for the duration of each buffer transfer, the RECEIVER
+ alarm time out is reset to the expected arrival time of the last DATA
+ packet (blockstogo) plus the delay (wait). As each DATA packet is
+ received, the alarm is decremented by one packet interval. This same
+ algorithm is used for receiving missing packets, during a RESEND.
+
+ alarmtimeout = blockstogo*burstrate/burstsize + wait
+
+ The death timer is responsible for measuring the idle time of a
+ connection. In the ETFTP program, the death timer is set to be equal
+ to the accumulated time of ten re-transmissions plus their associated
+ backoffs. As such, the death timer value in the OPEN and RESPONSE
+ message types is un-necessary. In the ETFTP program, this field could
+ be used to transfer the radio delay value instead of creating the two
+ new fields.
+
+ The keepalive timer is responsible for resetting the death timer.
+ This timer will trigger the sending of a KEEPALIVE packet to prevent
+ the remote host from closing a connection due to the expiration of
+ its death timer. Due to the nature of the ETFTP server process, a
+ keepalive timer was not necessary, although it is implemented.
+
+2.6 TEST RESULTS
+
+ The NETBLT protocol has been tested on other high speed networks
+ before, see RFC 1030 [6]. These test results in Tables 13 and 14,
+ "ETFTP Performance," were gathered from files transferred across the
+ network and LST-5C TACSAT radios. The radios were connected together
+ via a coaxial cable to provide a "clean" link. A clean link is
+ defined to a BER of 10e-5. The throughput rates are defined to be the
+ file size divided by the elapsed time resulting in bits per second
+ (bps). The elapsed time is measured from the time of the "get" or
+ "put" command to the completion of the transfer. This is an all
+ inclusive time measurement based on user perspective. It includes the
+
+
+
+Polites, Wollman & Woo Experimental [Page 16]
+
+RFC 1986 ETFTP August 1996
+
+
+ connection time, transfer time, error recovery time, and disconnect
+ time. The user concept of elapsed time is the length of time it takes
+ to copy a file from disk to disk. These results show only the average
+ performances, including the occasional packet re-transmissions. The
+ network configuration was set as:
+
+ ETFTP Parameters:
+
+ Filesize 101,306 bytes
+ Radiodelay 2 seconds
+ Buffersize 16,384-131,072 bytes
+ Packetsize 512-2048 bytes
+ Burstsize 8-16 packets/burst
+
+ Gracilis PackeTen Parameters:
+
+ 0 TX Delay 400 milliseconds
+ 1 P Persist 255 [range 1-255]
+ 2 Slot Time 30 milliseconds
+ 3 TX Tail 300 milliseconds
+ 4 Rcv Buffers 8 2048 bytes/buffer
+ 5 Idle Code Flag
+
+ Radio Parameters:
+
+ Baudrate 16,000 bps
+ Encryption on
+
+
+ Table 13: ETFTP Performance at 8 Packets/Burst in Bits/Second
+
+ +-----------+-----------+-----------+-----------+-----------+
+ |buffersize |packetsize |packetsize |packetsize |packetsize |
+ |(bytes) |2,048 bytes|1,448 bytes|1,024 bytes|512 bytes |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 16,384 | 7,153 | 6,952 | 6,648 | 5,248 |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 32,768 | 7,652 | 7,438 | 7,152 | 4,926 |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 65,536 | 8,072 | 8,752 | 8,416 | 5,368 |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 131,072 | 8,828 | 9,112 | 7,888 | 5,728 |
+ +-----------+-----------+-----------+-----------+-----------+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 17]
+
+RFC 1986 ETFTP August 1996
+
+
+ Table 14: ETFTP Performance at 16 Packets/Burst in Bits/Second
+
+ +-----------+-----------+-----------+-----------+-----------+
+ |buffersize |packetsize |packetsize |packetsize |packetsize |
+ |(bytes) |2,048 bytes|1,448 bytes|1,024 bytes|512 bytes |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 16,384 | 5,544 | 5,045 | 4,801 | 4,570 |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 32,768 | 8,861 | 8,230 | 8,016 | 7,645 |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 65,536 | 9,672 | 9,424 | 9,376 | 8,920 |
+ +-----------+-----------+-----------+-----------+-----------+
+ | 131,072 | 10,432 | 10,168 | 9,578 | 9,124 |
+ +-----------+-----------+-----------+-----------+-----------+
+
+2.7 PERFORMANCE CONSIDERATIONS
+
+ These tests were performed across a tactical radio link with a
+ maximum data rate of 16000 bps. In testing ETFTP, it was found that
+ the delay associated with the half duplex channel turnaround time was
+ the biggest factor in throughput performance. Therefore, every
+ attempt was made to minimize the number of times the channel needed
+ to be turned around. Obviously, the easiest thing to do is to use as
+ big a buffer as necessary to read in a file, as acknowledgments
+ occurred only at the buffer boundaries. This is not always feasible,
+ as available storage on disk could easily exceed available memory.
+ However, the current ETFTP buffersize is set at a maximum of 524,288
+ bytes.
+
+ The larger packetsizes also improved performance. The limit on
+ packetsize is based on the 1500 byte MTU of network store and forward
+ devices. In a high BER environment, a large packetsize could be
+ detrimental to success. By reducing the packetsize, even though it
+ negatively impacts performance, reliability is sustained. When used
+ in conjunction with FEC, both performance and reliability can be
+ maintained at an acceptable level.
+
+ The burstsize translates into how long the radio transmitters are
+ keyed to transmit. In ETFTP, the ideal situation is to have the first
+ packet of a burst arrive in the radio transmit buffer, as the last
+ packet of the previous burst is just finished being sent. In this
+ way, the radio transmitter would never be dropped for the duration of
+ one buffer. In a multi-user radio network, a full buffer transmission
+ would be inconsiderate, as the transmit cycle could last for several
+ minutes, instead of seconds. In measuring voice communications,
+ typical transmit durations are on the order of five to twenty
+ seconds. This means that the buffersize and burstsize could be
+ adjusted to have similar transmission durations.
+
+
+
+Polites, Wollman & Woo Experimental [Page 18]
+
+RFC 1986 ETFTP August 1996
+
+
+3. REFERENCE SECTION
+
+ [1] Clark, D., Lambert, M., and L. Zhang,
+ "NETBLT: A Bulk Data Transfer Protocol", RFC 998, MIT,
+ March 1987.
+
+ [2] Postel, J., "User Datagram Protocol" STD 6, RFC 768,
+ USC/Information Sciences Institute, August 1980.
+
+ [3] Sollins, K., "Trivial File Transfer Protocol", STD 33,
+ RFC 1350, MIT, July 1992.
+
+ [4] MIL-STD-2045-44500, 18 June 1993, "Military Standard Tactical
+ Communications Protocol 2 (TACO 2) fot the National Imagery
+ Transmission Format Standard", Ft. Monmouth, New Jersey.
+
+ [5] Stevens, W. Richard, 1990, "UNIX Network Programming",
+ Prentice-Hall Inc., Englewood, New Jersey, Chapter 12.
+
+ [6] Lambert, M., "On Testing the NETBLT Protocol over
+ Divers Networks", RFC 1030, MIT, November 1987.
+
+4. SECURITY CONSIDERATIONS
+
+ The ETFTP program is a security loophole in any UNIX environment.
+ There is no user/password validation. All the problems associated to
+ TFTP are repeated in ETFTP. The server program must be owned by root
+ and setuid to root in order to work. As an experimental prototype
+ program, the security issue was overlooked. Since this protocol has
+ proven too be a viable solution in tactical radio networks, the
+ security issues will have to be addressed, and corrected.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 19]
+
+RFC 1986 ETFTP August 1996
+
+
+5. AUTHORS' ADDRESSES
+
+ William J. Polites
+ The Mitre Corporation
+ 145 Wyckoff Rd.
+ Eatontown, NJ 07724
+
+ Phone: (908) 544-1414
+ EMail:wpolites@mitre.org
+
+
+ William Wollman
+ The Mitre Corporation
+ 145 Wyckoff Rd.
+ Eatontown, NJ 07724
+
+ Phone: (908) 544-1414
+ EMail:wwollman@mitre.org
+
+
+ David Woo
+ The Mitre Corporation
+ 145 Wyckoff Rd.
+ Eatontown, NJ 07724
+
+ Phone: (908) 544-1414
+ EMail: dwoo@mitre.org
+
+
+ Russ Langan
+ U.S. Army Communications Electronics Command (CECOM)
+ AMSEL-RD-ST-SP
+ ATTN: Russell Langan
+ Fort Monmouth, NJ 07703
+
+ Phone: (908) 427-2064
+ Fax: (908) 427-2822
+ EMail: langanr@doim6.monmouth.army.mil
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 20]
+
+RFC 1986 ETFTP August 1996
+
+
+6. GLOSSARY
+
+ ATD Advanced Technology Demonstration
+ AX.25 Amateur Radio X.25 Protocol
+ BER Bit Error Rate
+ EPLRS Enhanced Position Location Reporting Systems
+ ETFTP Enhanced Trivial File Transfer Protocol
+ FEC Forward Error Correction
+ FTP File Transfer Protocol
+ HF High Frequency
+ LCU Lightweight Computer Unit
+ ms milliseconds
+ MTU Maximum Transfer Unit
+ NETBLT NETwork Block Transfer protocol
+ NITFS National Imagery Transmission Format Standard
+ PC Personal Computer
+ RNC Radio Network Controller
+ SAS Survivable Adaptive Systems
+ SATCOM SATellite COMmunications
+ SCO Santa Cruz Operations
+ SINCGARS SINgle Channel Ground and Airborne Radio Systems
+ SLIP Serial Line Internet Protocol
+ TACO2 Tactical Communications Protocol 2
+ TCP Transmission Control Protocol
+ TFTP Trivial File Transfer Protocol
+ UDP User Datagram Protocol
+ UHF Ultra High Frequency
+
+ * Modification from NETBLT RFC 998.
+ * The new packet size is a modification to the NETBLT RFC 998.
+ * The new packet size is a modification to the NETBLT RFC 998.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Polites, Wollman & Woo Experimental [Page 21]
+