TFTP
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
TFTP(Trivial File Transfer Protocol)는 1980년에 처음 등장한 간단한 파일 전송 프로토콜이다. TFTP는 소량의 컴퓨터 메모리로 구현 가능하여, 라우터와 같이 자료 저장 장치가 없는 장치의 부팅에 주로 사용되었다. TFTP는 UDP를 전송 프로토콜로 사용하며, 파일 전송은 클라이언트가 서버에 읽기 또는 쓰기 요청을 보내는 것으로 시작된다. TFTP는 보안 기능이 없어 파일 전송 시 주의가 필요하며, IETF에서 표준 문서를 통해 관리된다.
더 읽어볼만한 페이지
- 파일 전송 프로토콜 - UUCP
UUCP는 유닉스 시스템 간 파일 복사, 원격 명령 실행, 이메일 및 유즈넷 뉴스 전송을 위한 프로토콜 및 프로그램 모음으로, 초기 인터넷 확장에 중요한 역할을 했으나 TCP/IP 기반 서비스 보편화로 사용이 감소했다. - 파일 전송 프로토콜 - 제로넷
제로넷은 중앙 서버 없이 P2P 방식으로 운영되어 검열에 저항성을 가지며 사용자가 직접 콘텐츠를 공유할 수 있는 분산 네트워크 플랫폼으로, 웹사이트 개발이 가능하고 제로넷-컨서번시 포크를 통해 기능 추가 및 새로운 P2P 네트워크로의 마이그레이션이 진행 중이다. - 인터넷 표준 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다. - 인터넷 표준 - IPv6
IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다. - 인터넷 프로토콜 - IPTV
IPTV는 인터넷 프로토콜을 사용하여 실시간 방송, VOD 등 다양한 콘텐츠를 제공하는 텔레비전 서비스이며, 고속통신망과의 통합, 양방향 서비스 등의 장점을 가지지만 망 사업자 제한 등의 제한 사항도 존재한다. - 인터넷 프로토콜 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
TFTP | |
---|---|
개요 | |
이름 | 한국어: 간단 파일 전송 프로토콜 영어: Trivial File Transfer Protocol |
약자 | TFTP |
종류 | 파일 전송 |
개발자 | Karen R. Sollins 박사 |
최초 발표일 | 1981년 6월 |
기반 | 없음 |
영향 | 없음 |
OSI 모델 계층 | 해당 사항 없음 |
포트 번호 | 69/UDP |
RFC | RFC 1350 |
하드웨어 | 해당 사항 없음 |
2. 역사
TFTP는 1980년에 처음 등장하였다. TFTP는 매우 간단한 설계 덕분에 적은 양의 컴퓨터 메모리만으로도 구현할 수 있었다.[26] 이러한 특징으로 인해, TFTP는 라우터와 같이 자료 저장 장치가 없는 컴퓨터 장치를 시동(부팅)하는 데 널리 사용되었다. 오늘날에도 TFTP는 컴퓨터 네트워크로 연결된 호스트 간에 작은 크기의 파일을 주고받는 데 사용되며, 네트워크 호스트나 서버를 이용한 네트워크 시동 절차를 밟는 원격 X 윈도 시스템 컴퓨터 터미널이나 다른 신 클라이언트 등에서 네트워크 시동을 할 때 널리 쓰인다.
TFTP는 UDP를 전송 계층 프로토콜로 사용하며, 클라이언트-서버 모델로 동작한다. 파일을 읽고 쓰는 기능만 제공하며, 파일 목록 조회, 삭제, 이름 변경 등의 기능은 없다. 사용자 인증 기능이 없어 보안에 취약하다.[2]
TFTP는 EFTP라는 이전 프로토콜을 기반으로 하며, EFTP는 PARC 유니버설 패킷 프로토콜 모음의 일부였다. TFTP는 TCP/IP 프로토콜 모음 개발 시기에 새로운 호스트 타입에서 가장 먼저 구현되곤 했던 프로토콜이었는데, 이는 TFTP가 매우 단순하여 구현하기 쉬웠기 때문이다. 1980년 IEN 133에서 처음 정의되었다.[2]
1981년 6월, TFTP 프로토콜 (개정 2)는 RFC 783으로 발표되었고, 1992년 7월 RFC 1350으로 업데이트되면서 마법사의 제자 증후군을 포함한 여러 문제점이 해결되었다. 여기서 '마법사의 제자 증후군'은 판타지아 영화의 마법사의 견습생 세그먼트에서 이름을 따온 것이다. 1995년 3월 TFTP 옵션 확장 RFC 1782는 1998년 5월 RFC 2347에 의해 업데이트되었으며, TFTP의 원래 사양과 일치하는 메커니즘을 사용하여 전송 전에 파일 전송 옵션을 협상하기 위한 프레임워크를 설정하는 옵션 협상 메커니즘을 정의했다.
TFTP는 4.3 BSD에 처음 포함되어 등장하였으며, 맥 오에스 X 10.5 버전 이후로 맥 오에스 X에 포함되었다.
최근 TFTP는 블래스터 (컴퓨터 웜)과 같은 웜에 의해 악용되기도 한다. 웜은 TFTP를 이용하여 새로운 호스트를 감염시킨다.
3. 기술적 특징
TFTP는 netascii, octet, mail의 세 가지 전송 모드를 정의한다.[3]3. 1. 전송 절차
TFTP 전송은 클라이언트가 서버에 특정 파일을 읽거나 쓰는 요청을 보내면서 시작된다. 이 요청에는 RFC 2347에 따라 협상된 전송 매개변수를 선택적으로 포함할 수 있다.[3] 서버가 요청을 승인하면 파일은 기본적으로 512바이트 고정 길이 블록 또는 RFC 2348에 정의된 블록 크기 옵션에 지정된 크기로 전송된다.[3]
데이터 전송은 DATA 패킷과 ACK 패킷을 번갈아 주고받는 방식으로 이루어진다. IP 단편화를 막기 위해 각 데이터 블록은 일반적으로 단일 IP 패킷 내에서 전송되며, 다음 블록을 보내기 전에 ACK 패킷으로 확인 응답을 받아야 한다. 512바이트 미만의 데이터 패킷(또는 합의된 블록 크기 옵션)은 전송 완료를 알린다.[3]
패킷 손실 시 재전송 절차가 수행된다. 전송 측은 데이터 전송 후 ACK 패킷 수신이 시간 초과되면 바로 이전 데이터 블록을 재전송한다. 수신 측은 ACK 패킷 전송 후 다음 데이터 블록 수신이 시간 초과되면 바로 이전 ACK 패킷을 재전송한다. 이러한 록스텝(Lockstep) 확인 응답은 이전의 모든 패킷이 올바르게 수신되었음을 보장한다. 전송 측은 재전송을 위해 하나의 패킷만 보관하면 된다. TFTP에서 전송에 참여하는 양쪽 장치는 송신자이자 수신자가 될 수 있다. 한쪽은 데이터를 보내고 ACK를 받으며, 다른 쪽은 ACK를 보내고 데이터를 받는다.[15]
TFTP는 UDP를 전송 계층 프로토콜로 사용한다. 전송 요청은 항상 포트 69번을 대상으로 시작되지만, 데이터 전송 포트는 전송 초기화 과정에서 송신자와 수신자가 독립적으로 선택한다. 포트 번호는 일반적으로 임시 포트 범위에서 네트워크 스택의 매개변수에 따라 무작위로 선택된다.[4]
전송 절차는 다음과 같다.
# 시작 호스트 A는 파일 이름, 전송 모드, 선택적인 협상 옵션(RFC 2347)을 포함하는 RRQ (읽기 요청) 또는 WRQ (쓰기 요청) 패킷을 포트 69번의 호스트 S로 보낸다.[4]
# S는 WRQ에 대해서는 ACK 패킷으로, RRQ에 대해서는 DATA 패킷으로 응답한다. 옵션이 사용된 경우 옵션 ACK로 응답한다. 패킷은 임의로 할당된 임시 포트에서 전송되며, 이후 호스트 S로의 모든 패킷은 이 포트를 사용해야 한다.[4]
# 소스 호스트는 번호가 매겨진 DATA 패킷을 대상 호스트로 보낸다. 마지막 패킷을 제외한 모든 패킷에는 전체 크기의 데이터 블록(기본 512바이트)이 포함된다. 대상 호스트는 모든 DATA 패킷에 대해 번호가 매겨진 ACK 패킷으로 응답한다.[4]
# 마지막 DATA 패킷은 마지막 패킷임을 알리기 위해 전체 크기보다 작은 데이터 블록을 포함해야 한다. 전송 파일 크기가 블록 크기의 정확한 배수이면 소스는 0바이트 데이터가 포함된 마지막 DATA 패킷을 보낸다.[4]
# 수신기는 각 DATA에 연결된 번호가 매겨진 ACK로 응답한다. 발신자는 첫 번째 수신 ACK에 다음 블록의 DATA로 응답한다.[4]
# ACK가 수신되지 않으면 재전송 타이머가 DATA 패킷을 다시 보낸다.[4]
4. 보안 고려 사항
TFTP는 로그인이나 접근 제어 메커니즘을 포함하지 않는다. 따라서 인증, 접근 제어, 기밀성 또는 무결성 검사가 필요한 파일 전송에는 TFTP 사용에 주의해야 한다. 이러한 보안 서비스는 TFTP 실행 계층의 상위 또는 하위에서 제공될 수 있다.[1] TFTP 서버 프로세스에 부여된 권한에 주의하여 서버의 파일 시스템 보안을 위반하지 않도록 해야 한다.[1]
일반적으로 TFTP는 공개 읽기 권한이 있는 파일만 전송할 수 있도록 제어 기능과 함께 설치되며, 파일 목록, 삭제, 이름 변경 및 쓰기는 허용되지 않는다.[1] 내재된 프로토콜의 제한 사항으로 인해 책임 문제가 발생할 수 있는 경우에는 TFTP 파일 전송을 권장하지 않는다.[1] [2]
5. IETF 표준 문서
RFC 번호 | 제목 | 게시일 | 저자 | 폐기 및 업데이트 정보 |
---|---|---|---|---|
RFC 783 | TFTP 프로토콜 (개정 1) | 1981년 6월 | K. Sollins | RFC 1350에 의해 폐지됨 |
RFC 906 | TFTP를 사용한 부트스트랩 로딩 | 1984년 6월 | Ross Finlayson | |
RFC 951 | 부트스트랩 프로토콜 | 1985년 9월 | Bill Croft | RFC 1395, RFC 1497, RFC 1532, RFC 1542, RFC 5494에 의해 갱신됨 |
RFC 1350 | TFTP 프로토콜 (개정 2) | 1992년 7월 | K. Sollins | RFC 1782, RFC 1783, RFC 1784, RFC 1785, RFC 2347, RFC 2348, RFC 2349에 의해 갱신됨 |
RFC 1782 | TFTP 옵션 확장 | 1995년 3월 | G. Malkin | RFC 2347에 의해 폐지됨 |
RFC 2131 | 동적 호스트 구성 프로토콜 | 1997년 3월 | R. Droms | RFC 3396, RFC 4361, RFC 5494, RFC 6842에 의해 갱신됨 |
RFC 2347 | TFTP 옵션 확장 | 1998년 5월 | G. Malkin | |
RFC 2348 | TFTP 블록 크기 옵션 | 1998년 5월 | G. Malkin | |
RFC 2349 | TFTP 타임아웃 간격 및 전송 크기 옵션 | 1998년 5월 | G. Malkin | |
RFC 5505 | 인터넷 호스트 구성 원리 | 2009년 5월 | B. Aboba | |
RFC 7440 | TFTP 윈도우 크기 옵션 | 2015년 1월 | P. Masotta | |
참조
[1]
RFC
RFC 783
[2]
IETF
The TFTP Protocol
http://www.rfc-edito[...]
IETF
2010-05-01
[3]
RFC
RFC 1350
[4]
IETF
The TFTP Protocol (Revision 2)
IETF
2010-05-01
[5]
웹사이트
Preboot Execution Environment (PXE) Specification - Version 2.1
https://web.archive.[...]
Intel Corporation
2014-02-08
[6]
웹사이트
Unified Extensible Firmware Interface Specification
http://www.uefi.org/[...]
UEFI
2014-04-04
[7]
웹사이트
UEFI PXE Boot Performance Analysis
https://web.archive.[...]
Intel Corporation
2014-04-04
[8]
RFC
RFC 2348
[9]
RFC
RFC 5505
[10]
웹사이트
Extending TFTP
https://www.compupha[...]
CompuPhase
2018-12-12
[11]
RFC
RFC 7440
[12]
RFC
RFC 7440
[13]
RFC
RFC 783
[14]
IETF
The TFTP Protocol
http://www.rfc-edito[...]
IETF
2010-05-01
[15]
RFC
RFC 1350
[16]
IETF
The TFTP Protocol (Revision 2)
IETF
2010-05-01
[17]
웹사이트
Preboot Execution Environment (PXE) Specification - Version 2.1
https://web.archive.[...]
Intel Corporation
2014-02-08
[18]
웹사이트
Unified Extensible Firmware Interface Specification
http://www.uefi.org/[...]
UEFI
2014-04-04
[19]
웹사이트
UEFI PXE Boot Performance Analysis
https://web.archive.[...]
Intel Corporation
2014-04-04
[20]
RFC
RFC 2348
[21]
RFC
RFC 5505
[22]
웹사이트
Extending TFTP
https://www.compupha[...]
CompuPhase
2018-12-12
[23]
RFC
RFC 7440
[24]
RFC
RFC 7440
[25]
RFC
RFC 783
[26]
문서
당시 사람들은 컴퓨터 메모리를 적게 쓰는 일에 큰 관심이 있었다.
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com