Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

My TFTP client only seems to be getting responses from the TFTP server to its RRQ (download requests) if I watch the traffic in wireshark.

If I shut down wireshark (running on the TFTP server), the server does not respond to the RRQs from the client.

I cannot verify whether the RRQs are reaching the TFTP server or what (I'm just using Tftp32d), but I see the RRQ packets in wireshark...

So, what is different from the perspective of the TFTP server when I'm observing the transfer in wireshark?

share|improve this question

migrated from Sep 9 '11 at 1:46

This question came from our site for professional and enthusiast programmers.

when running wireshark, the nic is running in promiscuous mode, maybe that's what caused the difference. there might be another server in your environment that had same IP? – andycjw Sep 8 '11 at 8:19
I am writing the TFTP client code... don't close this question on the premise that I'm asking how to use software – vicatcu Sep 8 '11 at 14:05
@andycjw interesting point, so when wireshark is running my network card is configured differently and Tftp32d "inherits" that configuration... What's different about the traffic I'm generating that causes it to get through to the server only if the NIC is in promiscuous mode? – vicatcu Sep 8 '11 at 14:08
I can confirm that wireshark running on a third party machine (not involved in the transaction) sees the client packets, but the TFTP server remains unresponsive. – vicatcu Sep 8 '11 at 17:13
So, it turns out that if I just retry more times (10 is the magic number apparently, I was using 5), Tftpd32 eventually does establish the connection and all is well with the world. Why the heck is the connection established with zero retries when I'm watching in wireshark? – vicatcu Sep 8 '11 at 19:30

When you're running wireshark, the NIC will be running in promiscuous mode, meaning all network packet will be received, even if it's not addressed to your NIC mac address.

My suggestion would be to isolate your TFTP server and TFTP client in an individual LAN setup to test it out. My guess would be that there might be another server running in the same network segment, with possible same IP address that received your TFTP client RRQ request preemptively, but not doing anything with it.

When you run wireshark, all packet is received on the TFTP server, and therefore it was able to do a response to client request packet, it wouldn't have received the packet if it's not running in promiscuous mode.

p.s.: I can't add comment to the original post, that's why I am posting it here.

share|improve this answer

I had the same problem and wanted to share my experience. Promiscuous mode allows client RRQ packets with protocol problems to reach the destination (TFTP server). In my case there was a problem in ARP and the Ethernet header of the RRQ was using all zero's for the destination MAC. With promiscuous mode on, the packets were being received by the TFTP server, but when turned off the packets were dropped because the MAC did not match.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.