Trivial File Transfer Protocol (TFTP) je velice jednoduchý protokol pro přenos souborů, obsahující jen základní funkce protokolu FTP. Jeho specifikace byla poprvé uveřejněna v roce 1980.
TFTP je určen pro přenos souborů v případech, kdy je běžný protokol FTP nevhodný pro svou komplikovanost. Typickým případem je bootování bezdiskových počítačů ze sítě (viz také BOOTP), kdy se celý přenosový protokol musí vejít do omezeného množství paměti, která je k dispozici na bezdiskovém stroji.
TFTP je založen na části protokolu EFTP, což je část univerzálního balíku PARC.
Původní verze TFTP před RFC 1350 obsahovala závažnou chybu (tzv. Sorcerer’s apprentice syndrome), která za jistých okolností způsobila množení dat přenášených po síti.
Jelikož TFTP funguje nad nespojovaným protokolem UDP, musí obsahovat vlastní řízení spojení. Koncepce sezení je jednoduchá: v jednom spojení lze přenést jen jediný soubor, při komunikaci se na síti pohybuje vždy jen jediný paket (po odeslání jednoho paketu program čeká na jeho potvrzení a teprve poté posílá další). Kvůli tomuto zjednodušení poskytuje protokol na linkách s velkou latencí jen malou přenosovou rychlost. TFTP používá portu 69 (FTP používá spojovaný protokol TCP a port 21).
Oproti FTP má různá omezení a odlišnosti:
- Nelze procházet adresáře.
- Neumožňuje přihlášení uživatele ani zadání hesla.
- Je používaný pro čtení nebo zápis dat na vzdálený server.
- Podporuje tři odlišné přenosové módy: netascii (pro text v ASCII s úpravami z protokolu Telnet), octet (pro syrová binární 8bitová data) a mail (pro zaslání e-mailové zprávy; tento mód by se už neměl používat).
- Maximální velikost přenášeného souboru je 32 MB.
Kvůli nedostatečnému zabezpečení je nebezpečné používat tento protokol k výměně dat přes internet, používá se výhradně v lokálních sítích, kde nehrozí takové nebezpečí zcizení nebo poškození dat.
Další vylepšení byly později implementovány do RFC 2347, ale protokol zůstává zpětně kompatibilní.
- Klient si při vytváření spojení zvolí číslo spojení (transmit identifikator – TID). Toto číslo je stálé během celé doby trvání spojení a toto spojení identifikuje (neboť použitý protokol UDP je bezestavový). TID se může volit náhodně, pravděpodobnost, že dva klienti vyberou v jednu dobu dvě shodná čísla je velmi malá. Každému paketu jsou přiřazena dvě TID (zdrojové a cílové). Tato TID se v UDP protokolu (nebo v jiném datagramovém protokolu) použijí jako zdrojový a cílový port.
- Klient si zvolí svoje zdrojové TID a zašle ho s požadavkem na standardní TID (69 dekadicky) serveru. Tudíž uživatel A pošle z portu X paket RRQ (žádost o čtení) nebo WRQ (žádost o zápis) uživateli (serveru) B na port 69 (obvykle). Tento paket obsahuje jméno souboru, cestu a použitý přenosový mód.
- Po zaslání požadavku musí následovat kladná odpověď serveru B z portu Y na port X uživatele A, kterou může být buď potvrzovací paket (při zápisu), nebo první datový paket (při čtení). Posílá se maximálně 512 bajtů dat v jednom paketu, kratší paket znamená konec souboru.
Přenos souboru do a z počítače přes TFTP.
TFTP [-i] cíl [GET | PUT] zdroj [umístění]
- Karen R. Sollins, The TFTP Protocol (IEN 133, January, 1980)
- Karen R. Sollins, TFTP Protocol (revision 2) (RFC 783, June, 1981)
- Karen R. Sollins, TFTP Protocol (revision 2) (RFC 1350, July, 1992)
- R. Finlayson, Bootstrap loading using TFTP (RFC 906, June, 1984)
- Gary Malkin, A. Harkin, TFTP Option Negotiation Analysis (RFC 1785, March 1995)
- Gary Malkin, A. Harkin, TFTP Option Extension (RFC 2347, May 1998)
- Gary Malkin, A. Harkin, TFTP Blocksize Option (RFC 2348, May 1998)
- Gary Malkin, A. Harkin, TFTP Timeout Interval and Transfer Size Options (RFC 2349, May 1998)
- Tftp Manual on Unix
- Weird Solutions Free TFTP servers and clients for Unix and Windows
- Whitehorn TFTP Server free multithreaded TFTP server
- FREE TFTP Server by Solarwinds Archivováno 27. 1. 2006 na Wayback Machine.
- Advanced TFTP server and client
- Multithreaded TFTP Server for Windows
- Tftpd32 - TFTP server and client, includes DHCP, SNTP and Syslog servers.
- TFTP Protokol (druhá revize): http://doktor.euweb.cz/… Archivováno 8. 6. 2009 na Wayback Machine.
- TFTP - Trivial File Transfer Protocol (pdf): http://www.kiv.zcu.cz/…