마법사의 제자 증후군

마법사의 제자 증후군(Sorcerer's Apprentice Syndrome, SAS)은 TFTP 원본 버전의 네트워크 프로토콜 결함이다. 이는 괴테의 1797년 시 "마법사의 제자"(Der Zauberlehrling, 1940년 애니메이션 영화 환타지아의 "마법사의 제자" 부분으로 유명함)의 이름을 따서 명명되었다. 그 이유는 작동 세부 사항이 마법사의 제자에게 닥친 재난과 매우 유사(전송 시 모든 패킷의 복제가 증가)하기 때문이다.

문제는 TFTP 프로토콜 설계자의 실수로 인해 프로토콜 설계 시 고려되지 않은 인터네트워크의 알려진 실패 모드로 인해 발생했다. 실패 모드는 TFTP 메커니즘의 여러 세부 사항과 상호 작용하여 SAS를 생성했다.

 해결책 
SAS에 대한 수정에는 루프를 중단하기 위해 TFTP 사양을 수정하는 것이 포함되었다. 수신된 승인의 첫 번째 인스턴스에서만 다음 데이터 블록이 전송되어야 한다. 특정 데이터 블록에 대한 승인의 추가 복사본은 무시되어 재전송 루프가 중단된다. 새 버전의 프로토콜에서는 블록이 시간 초과 시에만 재전송된다.

또한 이 변경으로 인해 재전송 타이머를 생략하여 수신측(보통 저수준 언어로 작성된 부트스트랩 프로그램)의 구현을 단순화할 수 있다. 패킷이 손실되면 보낸 사람이 보낸 마지막 패킷이 재전송되기 때문이다. 그러나 타이머를 유지하면 손실된 ACK를 보다 효율적으로 처리하는 등의 이점이 있다.

 각주 

분류:네트워크 프로토콜
분류:인터넷 구조
분류:소프트웨어 버그