RFC 998 (rfc998) - Page 2 of 21
NETBLT: A bulk data transfer protocol
Alternative Format: Original Text Document
RFC 998 March 1987
The protocol works by opening a connection between two "clients" (the
"sender" and the "receiver"), transferring the data in a series of
large data aggregates called "buffers", and then closing the
connection. Because the amount of data to be transferred can be very
large, the client is not required to provide at once all the data to
the protocol module. Instead, the data is provided by the client in
buffers. The NETBLT layer transfers each buffer as a sequence of
packets; since each buffer is composed of a large number of packets,
the per-buffer interaction between NETBLT and its client is far more
efficient than a per-packet interaction would be.
In its simplest form, a NETBLT transfer works as follows: the
sending client loads a buffer of data and calls down to the NETBLT
layer to transfer it. The NETBLT layer breaks the buffer up into
packets and sends these packets across the network in Internet
datagrams. The receiving NETBLT layer loads these packets into a
matching buffer provided by the receiving client. When the last
packet in the buffer has arrived, the receiving NETBLT checks to see
that all packets in that buffer have been correctly received. If
some packets are missing, the receiving NETBLT requests that they be
resent. When the buffer has been completely transmitted, the
receiving client is notified by its NETBLT layer. The receiving
client disposes of the buffer and provides a new buffer to receive
more data. The receiving NETBLT notifies the sender that the new
buffer is ready, and the sender prepares and sends the next buffer in
the same manner. This continues until all the data has been sent; at
that 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 halts
after a buffer is transmitted, and begins again after confirmation is
received from the receiver of data. NETBLT provides for multiple
buffering, a transfer model in which the sending NETBLT can transmit
new buffers while earlier buffers are waiting for confirmation from
the receiving NETBLT. Multiple buffering makes packet flow
essentially continuous and markedly improves performance.
The remainder of this document describes NETBLT in detail. The next
sections describe the philosophy behind a number of protocol
features: packetization, flow control, transfer reliability, and
connection management. The final sections describe NETBLT's packet
formats.
3. Buffers and Packets
NETBLT is designed to permit transfer of a very large amounts of data
between two clients. During connection setup the sending NETBLT can
inform the receiving NETBLT of the transfer size; the maximum
transfer length 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
Clark, Lambert, & Zhang