Skip to content

Protocol failure on "busy" server #27

@joeclarkia

Description

@joeclarkia

We are using node-tftp as a TFTP server to send a file to an embedded device. Under "normal" conditions the server and needed file transfer work fine. But in some cases (especially if we do something potentially CPU intensive simultaneously on the server, like generating a graph with Plotly), the transfer will fail.

Looking at wireshark, it appears that the following occurs:

  • the client (Linux tftp) sends acknowledgments in "lock step"
  • at a certain point the server (node-tftp) fails to send the next data segment <-- the anomaly
  • After a brief period of time (100ms) the ack is seen again, and the server sends the next segment, and the client sends the appropriate acks, BUT the server appears to not process any acks after the anomaly occurs, and in fact it starts sending a series of segments, always starting with the first one after the anomaly occurred.

Now, as a UDP-based protocol, I understand that dropped packets (for any reason) are to be expected, but as far as I've read, TFTP should gracefully handle the situation, not in effect fail the transfer. Am I missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions