Das TFTP-Protokoll (Trivial File Transfer Protocol) ist ein häufig genutztes Protokoll für die Übertragung von Dateien in Netzwerken. Es ist einfach und verwendet UDP (User Datagram Protocol) als Transportprotokoll.
Grundsätzlich gibt es zwei Arten von TFTP: Lesen (RRQ) und Schreiben (WRQ). Wenn ein Client eine Datei vom Server lesen möchte, sendet er eine Read-Request (RRQ) Nachricht an den Server. Diese Nachricht enthält den Namen der angeforderten Datei und den gewünschten Dateimodus. Der Server antwortet mit einer Data-Nachricht, die die Inhalte der Datei enthält. Die Größe dieser Nachrichten ist auf 512 Byte begrenzt. Wenn die Datei größer ist, erfolgen mehrere Daten-Nachrichten in Folge, bis die gesamte Datei übertragen wurde.
Für das Schreiben einer Datei sendet der Client eine Write-Request (WRQ) Nachricht an den Server, welche auch den Namen der zu schreibenden Datei sowie den Dateimodus enthält. Der Server antwortet mit einer Acknowledge-Nachricht (ACK), die die Startposition der Datei angibt. Der Client sendet dann die Daten in mehreren UDP-Paketen mit einer Größe von bis zu 512 Byte. Nach dem Empfangen jedes Pakets sendet der Server ein ACK zurück, welches die nächste zu schreibende Position bestätigt.
TFTP ist ein einfaches Protokoll, hat jedoch einige Einschränkungen. Es bietet keine Authentifizierung oder Verschlüsselung und kann keine großen Dateien übertragen. Es wird jedoch häufig in Umgebungen wie Netzwerkboot und Firmware-Updates verwendet.