Broadcast storms are a performance problem that might occur when large numbers of systems start from the network. Trivial File Transfer Protocol (TFTP) Subnet Broadcast option helps solve this problem.
These broadcast storms occur when large numbers of clients request their boot code at the same time. When hundreds of systems are started, the same data must be routed through each hop in the network between each system and the TFTP server.
The TFTP Subnet Broadcast option allows the server to broadcast the boot code to systems on a subnet basis. Using subnet-directed broadcast, Subnet Broadcast data packets are transmitted between routers until they reach the subnet on which the systems reside. The packets transmission is unicast. At this point, the router at the destination subnet broadcasts the data packets to the systems on the subnet. Disinterested hosts on the subnet throw the data packets away. The packets are typically thrown away by the host's IP layer after it determines that no applications are interested in receiving data on the port to which the broadcast was directed. See Figure 1 for an illustration of a subnet-directed broadcast. This solution can drastically reduce the network traffic as well as the time that it takes many systems to start (when starting simultaneously).
The TFTP Subnet Broadcast option enables clients to join a broadcasting file group. It also allows clients to receive all subsequent blocks for a file until the client becomes the master client. A client becomes the master client when it receives an Option Acknowledge (OACK) packet from the TFTP server that indicates that it is the master client. A client must keep track of blocks that it receives. After a client becomes the master client, it can request the blocks that it has not received. The master client requests blocks by sending ACK packets that include the block number of the block before the block that the master client requires. For example, if the client wants block 5, it sends an ACK with a block number of 4.
When a client receives an OACK packet that indicates that it is the master client, the client must send an ACK that requests the first block it requires. From then on, the client must request blocks in ascending, but not necessarily consecutive order. A master client continues to send ACK packets to the server to indicate the next block that it requires. When the master client receives all of the blocks it requires, it sends an ACK with the number of the last block on the file being transferred. After the server receives an ACK with the last block number of the file being transferred, the transfer to the client sending the ACK is considered complete. A client can stop its transfer at any time by sending an ACK for the last block or by sending an Error (ERR) packet. A client can end this transfer regardless of whether it is the master client.
This TFTP Subnet Broadcast option is designed to improve simultaneous transfer of large files to multiple clients on a common subnet. This option does not help with files that require only a few blocks to transfer or single client transfers.