I have a codebase in C that parses network packets, and it seems to work with UDP just fine. Except for (the first packet of) TFTP. Is the Ubuntu tftp client (which is actually the BSD netkit TFTP client) faulty in this respect? I have noticed, for example, that when you send the same file, it always sends the same checksum (even though, over different runs, the source port is different, as one would expect, and the UDP checksum is supposed to incorporate the UDP source port).
Am I making the wrong assumptions? Is TFTP different when it comes to UDP header checksums? I know it's not necessarily a programming question, but it's holding up my programming, that's for sure.