This project is a simplified implementation of the TFTP (Trivial File Transfer Protocol) using C and UDP sockets. It enables reliable file transfer between a client and a server using block-based communication, acknowledgments, and retry mechanisms.
The project demonstrates how reliability can be built on top of an unreliable protocol like UDP.
-
π€ Upload files from client to server (PUT / WRQ)
-
π₯ Download files from server to client (GET / RRQ)
-
π¦ Block-based data transfer (512 bytes)
-
π Acknowledgment (ACK) mechanism for reliability
-
β± Timeout and retry handling
-
π Multiple transfer modes:
- Normal (512 bytes)
- Octet (1 byte at a time)
- Netascii (newline conversion)
- C Programming
- UDP Socket Programming
- Linux System Calls