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