5

I am using HPA's tftp server for PXE boot. When I try downloading an image from my tftp server using curl, the transfer rate is less than 3 MB/s, even on my 1Gb network.

curl -o initrd.gz tftp://192.168.0.4:69/boot/debian/initrd.gz

Is this an inherent limitation of the tftp protocol, or can this be configured?

Martin Vegter
  • 69
  • 66
  • 195
  • 326

2 Answers2

7
  • Try to increase the maximum block size on the server (e.g. --blocksize 1468).
  • Check with server in debug mode, see if there are retransmits.
  • Check if you really have Gb connection end-to-end.
  • Test on a different client node.
  • Check if there is some other problem not related to tftp - try iperf, tcpdump, ethtool ...
Raphael Ahrens
  • 9,701
  • 5
  • 37
  • 52
Zrin
  • 341
  • 2
  • 7
  • 2
    setting `--blocksize 1468` on the server alone did not help. I had to specify the block size on the client as well, i.e. `curl --tftp-blksize 1468`. Then I get around `6.5 MB/s`. This still does not seem very impressive. With ftp, I get over `100 MB/s` on the same machines. – Martin Vegter Mar 29 '14 at 11:29
2

TFTP is inherently slow, because it waits for an ACK from the other end after transmitting every block. If your client supports it, you may get more performance by using a TFTP server which supports the RFC 7440 extension. The upstream version of HPA's tftp server does not, but apparrently there are some patches to add it.

krzys_h
  • 21
  • 1