If I have a constrained link with a theoretical 3s of latency, 300kpbs speed and 400B MTU size for my data, how would I tune uftp given such constraints?
I have tried to use uftp specifying the transmit rate, block size using a fixed size with no congestion control:
./uftp data.txt -R 300 -Y none -m 10 -b 200 -t 10 -I eth0 -C none
However encounter endless client nacks as the latency seems to prevent any meaninful acknowledgement of transmissions:
Got 5755 NAKs for section 0 from client 0x00D2620C
Got 5738 NAKs for section 1 from client 0x00D2620C
Sending DONE 14.1
Starting pass 4
Sending section 0
Got 5738 NAKs for section 1 from client 0x00D2620C
Sending section 1
Got 5461 NAKs for section 0 from client 0x00D2620C
Sending DONE 1.1
Got 5417 NAKs for section 1 from client 0x00D2620C
Sending DONE 2.1
Starting pass 5
Sending section 0
What needs to be tuned to reduce the NACK count? Or is there a better tool alternative?
The filename(s) needs to be specified last after any options, otherwise the options are treated as additional files to send. This is typical for most Linux utilities where it is expected that the options are passed first. Because of this, it's sending at the default rate of 1000 Kbps.
So try using this command line:
./uftp -R 300 -Y none -m 10 -b 200 -t 10 -I eth0 -C none data.txt
Also, you should be able to safely use 300 for the block size if you're not using encryption. Since you know the latency is around 3s, you can set that as the initial GRTT using -r 3
.