Menu

newbie to UFTP - transfers failing w/ high number of NAKs

James
2015-03-12
2015-03-13
  • James

    James - 2015-03-12

    Hello -

    I'm a newbie to UFTP, trying to figure out how things work.

    The server command I'm running is: "uftp.exe -R 600000 C:\dummy_2-38GB.wav" and the client command is: "uftpd.exe -D C:\incoming\". My machines both are Windows and have 1Gbps connections on the same LAN with firewalls turned off (hence my requesting 600 Mbps tx)

    I've had inconsistent results. Sometimes 30-40 passes from the server are run with many many NAKs coming back from the client, constantly. Then nearing the end the client log shows:

    2015/03/12 10:54:47.948607: [F462DA0E:0001]: Sent 7470 NAKs for section 145
    2015/03/12 10:54:48.464219: [F462DA0E:0001]: Sent 8191 NAKs for section 146
    2015/03/12 10:54:48.511093: [F462DA0E:0001]: Sent 7816 NAKs for section 147
    2015/03/12 10:54:48.729837: [F462DA0E:0001]: Sent 7388 NAKs for section 148
    2015/03/12 10:54:50.198550: [F462DA0E:0001]: Transfer timed out
    2015/03/12 10:54:50.198550: [F462DA0E:0001]: starting file close
    2015/03/12 10:54:50.214174: [F462DA0E:0001]: done file close

    And the server indicates that the client aborted the transfer / timed out.

    What's going on? What am I doing wrong? I have yet to see a completed transfer between my two machines.

    Thanks so much for your help!!

     

    Last edit: James 2015-03-12
  • Dennis Bush

    Dennis Bush - 2015-03-12

    James,

    The first thing you'll want to do is increase the UDP buffer size using the -B option on both sides. A value of 2097152 is a good starting point. Also, if you have jumbo frames enabled you'll want to make use of them by passing -b 8192 to the server.

    If you're still having issues, you might need to put bounds on the round trip time using the -r option on the server.

    Regards,
    Dennis

     
  • James

    James - 2015-03-13

    Hi Dennis -

    Thanks so much for getting back to me!

    Based on your suggestion I am now testing the following commands:

    server (Windows Server 2008):
    uftp.exe -B 2097152 -R 600000 -M 172.19.1.111 C:\dummy_2-38GB.wav

    client (Windows Server 2003 (XP UFTP binary)):
    uftpd.exe -B 2097152 -D C:\incoming_UFTP\

    I'm still getting a constant flow of NAKS returned to the server, over many passes (> 10 so far). It doesn't take long for the received temporary file to appear to be as large or larger than the file being sent, however the transfer never seems to complete successfully no matter how long I leave it running.

    I have tried with and without jumbo frames, unfortunately my switching infrastructure here doesn't have it enabled so it doesn't help - in fact when I try the server with jumbo frames enabled here is the result on the server side cli:

    ----- dummy_2-38GB.wav -----
    File ID: 0001 Name: dummy_2-38GB.wav
    sending as: dummy_2-38GB.wav
    Bytes: 2563047504 Blocks: 312873 Sections: 5
    Sending FILEINFO 1.1
    Received FILEINFO_ACK from client 0xAC13016F
    Sending file
    Starting pass 1
    Sending section 0
    Transfer aborted by 0xAC13016F: Transfer timed out
    Transfer status:
    Host: 0xAC13016F Status: Aborted
    Total elapsed time: 0.000 seconds
    Overall throughput: 0.00 KB/s
    uftp: Finishing at Thu Mar 12 15:36:55 2015

    Thanks again for your help!

     
  • James

    James - 2015-03-13

    One note - I see fairly correct network usage on both my client and server machines which confuses me.

    Both have a 1Gbps link to the same switch (tracert shows direct path between the two machines), and since my transfer is suppose to be running at 600Mbps, it was initially encouraging to see both the client and server machines Network Adapter usage to stay approximately 50-60% utilized during transfer.

    That said, however:

    Sending 2.38 GB file at 600 Mbps should take around 35 seconds to complete. My last test is still running after almost 10 minutes time, and the network utilization is still in the 50-60% range on both client and server.

    UPDATE - after approximately 18 minutes and 204 passes my aforementioned test completed, and failed! Here is the server side output:

    Got 1233 NAKs for section 68 from client 0xAC13016F
    Sending DONE 3.1
    Sending DONE 4.1
    Starting pass 204
    Sending section 68
    Sending DONE 1.1
    Sending DONE 2.1
    Sending DONE 3.1
    Sending DONE 4.1
    Sending DONE 5.1
    Sending DONE 6.1
    Sending DONE 7.1
    Sending DONE 8.1
    Sending DONE 9.1
    Sending DONE 10.1
    Sending DONE 11.1
    Sending DONE 12.1
    Sending DONE 13.1
    Sending DONE 14.1
    Sending DONE 15.1
    Sending DONE 16.1
    Sending DONE 17.1
    Sending DONE 18.1
    Sending DONE 19.1
    Sending thread timed out
    No response from 0xAC13016F
    Failed to join sender thread
    Transfer status:
    Host: 0xAC13016F Status: Lost connection
    Total elapsed time: 0.000 seconds
    Overall throughput: 0.00 KB/s
    uftp: Finishing at Thu Mar 12 18:02:41 2015

    C:\uftp_exe_W7-4.6>

     

    Last edit: James 2015-03-13
  • Dennis Bush

    Dennis Bush - 2015-03-13

    It might be interesting to see at what speed NAKs start occurring. Try doing a session at 100Mbps (-R 100000) and see how that goes, and adjust up or down from there to see where the loss is happening. From there, try adjusting the UDP buffer size as well as the disk cache size (-c on the client) to see how that affects things.

    Also, if you increase the logging level (-x option) on both sides to 5, you'll get detailed information on exactly when each packet was sent and received. On the server side, use the -L or -T options to print timestamps for each line.

    Have you tried a transfer with smaller files? You might want to try getting that to work first before passing around gigabyte files.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.