Trivial File Transfer Protocol (TFTP)은 간단한 파일 전송을 위해 설계된 네트워크 프로토콜이다. 주로 UDP(사용자 데이터그램 프로토콜) 포트 69를 이용하여 동작한다. RFC 1350(1988)에서 최초 정의되었으며, 이후 RFC 2347(1998) – 옵션 확장, RFC 2348(1998) – 블록 크기 옵션, RFC 2349(1998) – 전송 크기 옵션, RFC 7440(2015) – 전송 모드 옵션 등으로 기능이 확장되었다.
주요 특징
- 경량성: 복잡한 인증·암호화 메커니즘을 제공하지 않으며, 최소한의 손쉬운 구현을 목표로 한다. 따라서 부팅 이미지 전송, 라우터/스위치의 펌웨어 업그레이드, 임베디드 시스템 간 파일 교환 등에 활용된다.
- 전송 방식: 클라이언트와 서버 간에 고정 크기(기본 512바이트) 데이터 블록을 순차적으로 교환한다. 각 블록에 대한 ACK(확인 응답)를 통해 전송 성공 여부를 확인한다.
- 옵션 지원: 블록 크기, 전송 크기, 전송 모드(예: octet, netascii) 등을 협상할 수 있는 옵션을 제공한다.
- 보안 제한: 인증·암호화 기능이 없으며, 파일 전송 중 데이터가 평문으로 전송된다. 따라서 보안이 요구되는 환경에서는 IPSec, DTLS 등 외부 보안 메커니즘과 함께 사용하거나, 보다 보안성이 강화된 FTP, SFTP, SCP 등을 대체한다.
사용 사례
- 네트워크 장비의 부팅 이미지(Netboot) 전송
- 임베디드 시스템 간 펌웨어 배포
- 방화벽·라우터 설정 백업 파일 전송 (내부 신뢰 구역에서)
구현 및 표준
- 대부분의 운영체제(예: Unix/Linux, Windows)와 네트워크 장비에서 TFTP 서버·클라이언트 프로그램이 기본 제공된다.
- 표준 인터페이스는 RFC 시리즈에 명시된 바와 같이 오류 코드(예: 파일 없음, 접근 거부, 디스크 풀)와 재전송 메커니즘을 포함한다.
제한점
- 파일 전송 중 오류 검출은 제한적이며, 대용량 파일 전송 시 성능이 낮을 수 있다.
- 전송 중 패킷 손실에 민감해 재전송 횟수가 증가하면 전체 전송 시간이 크게 늘어날 수 있다.
요약: TFTP는 단순하고 빠른 파일 전송을 목적으로 설계된 프로토콜이며, 인증·암호화 기능이 없으므로 보안이 중요한 환경에서는 적절한 보완 조치를 필요로 한다.