RFC 2090 (rfc2090) - Page 3 of 6
TFTP Multicast Option
Alternative Format: Original Text Document
RFC 2090 TFTP Multicast Option February 1997
Data Transfer
After the OACK is received by the client it will send an ACK for
packet zero, as in [2]. With the multicast option being accepted this
ACK will indicate to the server that the client wants the first
packet. In other words the ACKs may now be seen as a request for the
n+1th block of data. This enables each a client to request any block
within the file that it may be missing.
To manage the data transfer the server will maintain a list of
clients. Typically the oldest client on the list, from here on
referred to as the Master Client, will be responsible for sending
ACKs. When the master client is finished, the server will send
another OACK to the next oldest client, telling it to start sending
ACKs. Upon receipt of this OACK the new master client will send an
ACK for the block immediately before the first block required to
complete its download.
Any subsequent clients can start receiving blocks of a file during a
transfer and then request any missing blocks when that client becomes
the master client. When the current master client is finished, the
server will notify the next client with an OACK making it the new
master client. The new master client can start requesting missed
packets. Each client must terminate the transfer by sending an
acknowledgment of the last packet or by sending an error message to
server. This termination can occur even if the client is not the
master client.
Any subsequent OACKs to a client may have an empty multicast address
and port fields, since this information will already be held by that
client. In the event a client fails to respond in a timely manner to
a OACK enabling it as the master client, the server shall select the
next oldest client to be the master client. The server shall
reattempt to send a OACK to the non- responding client when the new
master client is finished. The server may cease communication with a
client after a reasonable number of attempts.
Each transfer will be given a multicast address for use to distribute
the data packets. Since there can be multiple servers on a given
network or a limited number of addresses available to a given server,
it is possible that their might be more than one transfer using a
multicast address. To ensure that a client only accepts the correct
packets, each transfer must use a unique port on the server. The
source IP address and port number will identify the data packets for
the transfer. Thus the server must send the unicast OACK packet to
the client using the same port as will be used for sending the
multicast data packets.
Emberson Experimental