Movatterモバイル変換


[0]ホーム

URL:


[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Info page]

EXPERIMENTAL
Network Working Group                                         W. PolitesRequest for Comments: 1986                                    W. WollmanCategory: Experimental                                            D. Woo                                                   The MITRE Corporation                                                               R. Langan                                                         U.S. ARMY CECOM                                                             August 1996Experiments with a Simple File Transfer Protocol for Radio Linksusing 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),RFC1350 [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, dataPolites, 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 isPolites, 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 1996Backoffs   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 aPolites, 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 inRFC 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, seeRFC 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 thePolites, 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 19963.  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 19965.  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.milPolites, Wollman & Woo        Experimental                     [Page 20]

RFC 1986                         ETFTP                       August 19966.  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 NETBLTRFC 998.   * The new packet size is a modification to the NETBLTRFC 998.   * The new packet size is a modification to the NETBLTRFC 998.Polites, Wollman & Woo        Experimental                     [Page 21]

[8]ページ先頭

©2009-2025 Movatter.jp