Кіріспе
TFTP-ның бастапқы нұсқаларындағы желілік протоколдағы қателік – Sorcerer's Apprentice syndrome (SAS). Бұл қателік Гётенің 1797 жылғы «Der Zauberlehrling» поэмасынан (1940 жылғы «Фантазия» анимациялық фильмінің «Солдат шәкірті» бөлімі арқылы кеңінен танымал болған) аталған, себебі оның жұмыс істеу механизмі сиқыршының шәкіртіне оқитын апатқа ұқсас: мәселе пакеттердің әрқайсысының тоқтаусыз көбейіп, өсіп бара жатуына әкелді. Бұл мәселе интернет желісінің белгілі бір қателік режиміне байланысты туындады, және TFTP протоколын жасаушылардың қателігінен осы қателік режимі протокол жасалған кезде ескерілмеді; осы қателік режимі TFTP механизмдерімен өзара әрекеттесіп, SAS-ты құрады.
Sorcerer's Apprentice syndrome (SAS) is a network protocol flaw in the original versions of TFTP. It was named after Goethe's 1797 poem "Der Zauberlehrling" (popularized by the "Sorcerer's Apprentice" segment of the 1940 animated film Fantasia), because the details of its operation closely resemble the disaster that befalls the sorcerer's apprentice: the problem resulted in an ever growing replication of every packet in the transfer. The problem occurred because of a known failure mode of the internetwork which, through a mistake on the part of the TFTP protocol designers, was not taken into account when the protocol was designed; the failure mode interacted with several details of the mechanisms of TFTP to produce SAS.
Техникалық негіздер
TFTP қарапайым синхронды жұмыс істейді: кез келген уақытта тек бір ғана пакет жолданып тұрады, және екі тараптың бірі алған әрбір пакетке жауап ретінде бір пакет жіберіледі (өткізу аяқталғанға дейін). TFTP спецификациясында кез келген пакет қабылданғанда, алушы тиісті жауап пакетін жіберуге міндетті екені көрсетілген. Осылайша, деректер блогын қабылдау растау жіберуді тудырады, ал растауды қабылдау келесі деректер блогын жіберуді тудырады. TFTP, сенімсіз желіде жұмыс істеуге арналған барлық протоколдар сияқты, тайм-ауттарды да қамтиды. Пакетті жібергеннен кейін, жауап күтіледі, сондықтан таймер іске қосылады. Егер таймер бітіп, жауап келмесе, белгілі бір әрекет орындалады; әдетте бастапқы пакет қайта жіберіледі.
Шешім
SAS-ты түзету үшін TFTP ережесіне өзгеріс енгізіліп, осылайша қайталау айналымы тоқтатылды.