RFC 969 (rfc969) - Page 2 of 15
NETBLT: A bulk data transfer protocol
Alternative Format: Original Text Document
RFC 969 December 1985
NETBLT: A Bulk Data Transfer Protocol
same manner. This continues until all buffers have been sent, at
which time the sender notifies the receiver that the transmission has
been completed. The connection is then closed.
As described above, the NETBLT protocol is "lock-step"; action is
halted after a buffer is transmitted, and begins again after
confirmation is received from the receiver of data. NETBLT provides
for multiple buffering, in which several buffers can be transmitted
concurrently. Multiple buffering makes packet flow essentially
continuous and can improve performance markedly.
The remainder of this document describes NETBLT in detail. The next
sections describe the philosophy behind a number of protocol
features: packetization, flow control, reliability, and connection
management. The final sections describe the protocol format.
3. BUFFERS AND PACKETS
NETBLT is designed to permit transfer of an essentially arbitrary
amount of data between two clients. During connection setup the
sending NETBLT can optionally inform the receiving NETBLT of the
transfer size; the maximum transfer length is imposed by the field
width, and is 2**32 bytes. This limit should permit any practical
application. The transfer size parameter is for the use of the
receiving client; the receiving NETBLT makes no use of it. A NETBLT
receiver accepts data until told by the sender that the transfer is
complete.
The data to be sent must be broken up into buffers by the client.
Each buffer must be the same size, save for the last buffer. During
connection setup, the sending and receiving NETBLTs negotiate the
buffer size, based on limits provided by the clients. Buffer sizes
are in bytes only; the client is responsible for breaking up data
into buffers on byte boundaries.
NETBLT has been designed and should be implemented to work with
buffers of arbitrary size. The only fundamental limitation on buffer
size should be the amount of memory available to the client. Buffers
should be as large as possible since this minimizes the number of
buffer transmissions and therefore improves performance.
NETBLT is designed to require a minimum of its own memory, allowing
the client to allocate as much memory as possible for buffer storage.
In particular, NETBLT does not keep buffer copies for retransmission
purposes. Instead, data to be retransmitted is recopied directly
Clark & Lambert & Zhang