TFTP

간단한 파일 전송 프로토콜 (TFTP, Trivial File Transfer Protocol)은 FTP와 마찬가지로 파일을 전송하기 위한 프로토콜이지만, FTP보다 더 단순한 방식으로 파일을 전송한다. 따라서 데이터 전송 과정에서 데이터가 손실될 수 있는 등 불안정하다는 단점을 가지고 있다. 하지만 FTP처럼 복잡한 프로토콜을 사용하지 않기 때문에 구현이 간단하다. 임베디드 시스템에서 운영 체제 업로드로 주로 사용된다.

1981년에 처음 표준화되었다.RFC 783

 사용 예제 
user@host:~$ tftp 192.168.1.1

tftp> get file.txt
 역사 
TFTP는 1980년에 처음 등장하였다.

TFTP가 매우 간단했으므로, 매우 작은 양의 컴퓨터 메모리만을 가지고도 TFTP를 구현할 수 있었다.당시 사람들은 컴퓨터 메모리를 적게 쓰는 일에 큰 관심이 있었다. 따라서, TFTP는 라우터와 같이 자료 저장 장치가 달려 있지 않은 컴퓨터 장치를 시동(부팅)하는 데 많이 쓰였다. TFTP는 오늘날까지도 컴퓨터 네트워크로 물린 호스트 간에 작은 크기의 파일을 주고 받는 데 쓰인다. 네트워크 호스트나 서버를 이용한 네트워크 시동 절차를 밟는 원격 X 윈도 시스템 컴퓨터 터미널이나 다른 신 클라이언트 등이 네트워크 시동을 할 경우에 널리 쓰인다.

TFTP는 더 예전에 나온 프로토콜인 EFTP에 기반을 두고 있다. EFTP는 PARC 유니버설 패킷 프로토콜 모음의 일부였다. TCP/IP 프로토콜 모음을 한창 개발하고 있을 때, 새로운 호스트 타입에서 가장 먼저 구현되곤 하였던 프로토콜이었다. TFTP가 매우 단순했기 때문에 구현하기가 쉬웠기 때문이었다.

RFC 1350이 나오기 이전까지의 초창기 TFTP 버전에는 매우 심각한 프로토콜 결함이 존재한다. 이 결함의 이름은 마법사의 견습생 신드롬이라 었는데, 이것은 판타지아라는 영화의 마법사의 견습생 세그먼트의 이름을 따 이름이 붙은 것이었다.

TFTP는 4.3 BSD에서 처음으로 4.3 BSD에 포함되어 등장하였다. 맥 오에스 X 10.5 버전 이후로 맥 오에스 X에 들어가 있다.

최근 TFTP는 웜에 의해 악용되고는 한다. 블래스터 (컴퓨터 웜) 같은 웜들이 TFTP를 악용한다. 웜을 퍼뜨려 새로운 호스트를 감염시키는 데 TFTP를 이용한다.

 IETF 표준 문서 
 RFC 번호 제목 게시일 저자 Obsolete / Update 정보RFC 783The TFTP Protocol (Revision 1)June 1981K. SollinsObsoleted by - RFC 1350RFC 906Bootstrap Loading using TFTPJune 1984Ross Finlayson -RFC 951Bootstrap ProtocolSep.1985Bill CroftUpdated by RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494RFC 1350The TFTP Protocol (Revision 2)July 1992K. SollinsUpdated by RFC 1782, RFC 1783, RFC 1784, RFC 1785, RFC 2347, RFC 2348, RFC 2349RFC 1782TFTP Option ExtensionMarch 1995G. MalkinObsoleted by - RFC 2347RFC 2131Dynamic Host Configuration ProtocolMarch 1997R. DromsUpdated by RFC 3396, RFC 4361, RFC 5494, RFC 6842RFC 2347TFTP Option ExtensionMay 1998G. Malkin -RFC 2348TFTP Blocksize OptionMay 1998G. Malkin -RFC 2349TFTP Timeout Interval and Transfer Size OptionsMay 1998G. Malkin -RFC 5505Principles of Internet Host ConfigurationMay 2009B. Aboba -RFC 7440TFTP Windowsize OptionJan 2015P. Masotta -

 각주 

분류:네트워크 표준
분류:네트워크 프로토콜
분류:네트워크 파일 전송 프로토콜
분류:네트워크 부팅