Trivial File Transfer Protocol

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.

Technické informace

editovat

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í.

Detaily TFTP

editovat
  • 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.

Syntaxe příkazu tftp

editovat

Přenos souboru do a z počítače přes TFTP.

TFTP [-i] cíl [GET | PUT] zdroj [umístění]

Související články

editovat