마법사의 제자 증후군

마법사의 제자 증후군(Sorcerer's Apprentice Syndrome, SAS)은 TFTP 원본 버전의 네트워크 프로토콜 결함이다. 이는 괴테의 1797년 시 "마법사의 제자"(Der Zauberlehrling, 1940년 애니메이션 영화 환타지아의 "마법사의 제자" 부분으로 유명함)의 이름을 따서 명명되었다. 그 이유는 작동 세부 사항이 마법사의 제자에게 닥친 재난과 매우 유사(전송 시 모든 패킷의 복제가 증가)하기 때문이다.
문제는 TFTP 프로토콜 설계자의 실수로 인해 프로토콜 설계 시 고려되지 않은 인터네트워크의 알려진 실패 모드로 인해 발생했다. 실패 모드는 TFTP 메커니즘의 여러 세부 사항과 상호 작용하여 SAS를 생성했다.
해결책
[편집]SAS에 대한 수정에는 루프를 중단하기 위해 TFTP 사양을 수정하는 것이 포함되었다.[1] 수신된 승인의 첫 번째 인스턴스에서만 다음 데이터 블록이 전송되어야 한다. 특정 데이터 블록에 대한 승인의 추가 복사본은 무시되어 재전송 루프가 중단된다. 새 버전의 프로토콜에서는 블록이 시간 초과 시에만 재전송된다.
또한 이 변경으로 인해 재전송 타이머를 생략하여 수신측(보통 저수준 언어로 작성된 부트스트랩 프로그램)의 구현을 단순화할 수 있다. 패킷이 손실되면 보낸 사람이 보낸 마지막 패킷이 재전송되기 때문이다. 그러나 타이머를 유지하면 손실된 ACK를 보다 효율적으로 처리하는 등의 이점이 있다.
각주
[편집]- ↑ Braden, Robert, ed. (October 1989). "Sorcerer's Apprentice Syndrome" (rfc). Requirements for Internet Hosts -- Application and Support. IETF. pp. 43–45. sec. 4.2.3.1. RFC 1123. https://tools.ietf.org/html/rfc1123#section-4.2.3.1. Retrieved 2012-10-05.