A computer-implemented method for controlling data communication for a plurality of devices (100, 102, 104, 106, 108, 110, 300) connected in a network, comprising: a second device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) transmitting a request for data to the network; a first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) receiving the request for data from the second device of the plurality of devices (100, 102, 104, 106, 108, 110, 300); and the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) broadcasting to the network the data that was requested by the second device of the plurality of devices (100, 102, 104, 106, 108, 110, 300); characterized in that the method further comprises a third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) receiving the data that was broadcasted by the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300); the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) having a processor that executes computer-executable instructions and determines whether the data is appropriate for the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300); the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) storing the data to a non-transitory computer-readable memory of the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) when the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) has determined that the data is appropriate for the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300), and when the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) determines that there is missing data in the data received via the broadcast from the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300), the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) transmitting a request for only the missing data to the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300), the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) receiving the request for the missing data from the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300), and the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) responding to the request for the missing data by broadcasting only the missing data to the network. a second device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) transmitting a request for data to the network; a first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) receiving the request for data from the second device of the plurality of devices (100, 102, 104, 106, 108, 110, 300); and the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) broadcasting to the network the data that was requested by the second device of the plurality of devices (100, 102, 104, 106, 108, 110, 300); characterized in that the method further comprises a third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) receiving the data that was broadcasted by the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300); the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) having a processor that executes computer-executable instructions and determines whether the data is appropriate for the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300); the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) storing the data to a non-transitory computer-readable memory of the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) when the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) has determined that the data is appropriate for the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300), and when the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) determines that there is missing data in the data received via the broadcast from the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300), the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300) transmitting a request for only the missing data to the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300), the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) receiving the request for the missing data from the third device (104, 300) of the plurality of devices (100, 102, 104, 106, 108, 110, 300), and the first device of the plurality of devices (100, 102, 104, 106, 108, 110, 300) responding to the request for the missing data by broadcasting only the missing data to the network.