File Transfers

File transfers are supported in versions 0.1.4 and above with the DDTProtocol.

Tips

USB-to-Serial adapters: These devices are notoriously flaky. When depending on the OS for software flow control, it's almost impossible to get any decent amount of data sent across the radio. With newer versions of D-RATS, you can enable the "D-RATS Does Flow Control" option to alleviate this problem. If you're getting "Negotiation Complete", but no actual data transfer, this is likely your problem. Note that you *must* restart D-RATS after changing the flow control setting before it becomes active.

Performance: Currently, D-RATS uses base64 encoding, which is not as efficient as it could be. Maximum efficiency is about 75% (raw data to encoded ratio). The best performance will be had with larger block sizes. If you have a good signal, set the block size high. If you don't have a strong signal, a high block size will prevent you from getting any whole blocks through, so set the block size down in this case.

Mixing with voice: Because of the effect timing has on the ability to detect failed or missing blocks and retry, interrupting a file transfer can cause problems. Talking on the digital voice side while doing a file transfer will prevent the proper negotiation from happening in a timely manner, and may cause the transfer to time out. Try to avoid talking while sending a file if possible.

Procedure

For the regular unicast file transfers, the expected procedure is this:

  1. Both sides decide that they are ready to transfer
  2. The receiving side goes to File -> Receive File

  3. The sending side goes to File -> Send File

Because D-RATS doesn't yet automatically detect incoming file transfers automatically, following the above procedure will result in the quickest negotiation.

Starting in 0.1.7, D-RATS supports multicast file transfers. This is the case where you have a single sender, but one or more receivers. The recommended procedure for this is as follows:

  1. The sender goes to File -> Multi Send File

  2. The sender can then ask on voice for the receivers to check in
  3. The receivers go to File -> Multi Receive File. Currently, it is recommended that you try to coordinate the receivers in such a way that more than one receiver does not start at the same time.

  4. The sender sees the receivers "check in" in the window and when everyone is listed, clicks the "Start" button
  5. The sender will see the progress of each receiver after the file is sent and will see blocks being resent.
  6. When all the receivers are complete, the sender can close his window

Note: In version 0.1.7, the multicast logic is very fragile and not completely baked. If the receiver sends the "join" message and it is not fully received by the sender, the receiver will not retry, and will not participate in the transfer. Use voice to help coordinate the start and expect this to be improved in a subsequent version.

FileTransfers (last edited 2008-03-10 15:48:25 by localhost)