Trivial File Transfer Protocol (TFTP) Chapter 21 Trivial File Transfer Protocol (TFTP)
CONTENTS MESSAGES CONNECTION DATA TRANSFER UDP PORTS TFTP EXAMPLE TFTP OPTIONS SECURITY APPLICATIONS
TFTP(Trivial File Transfer Protocol) 사용자 인증을 제공하지 않는 프로토콜 자체 디스크를 지니지 않은 워크스테이션 부팅 서버에서 클라이언트로 파일 복사 파일 읽기 기능 제공 클라이언트에서 서버로 파일 복사 파일 쓰기 기능 제공 69번 포트 사용 UDP(User Datagram Protocol) 이용
TFTP uses the services of UDP on the well-known port 69.
21.1 MESSAGES
21.1 메시지 메시지의 종류
21.1 메시지 Mode: netascii or octet RRQ(Read request) 클라이언트가 서버로부터 데이터를 읽기 위한 연결을 설정 하는데 사용 Mode: netascii or octet
21.1 메시지 RRQ(Read request) RRQ 메시지 필드 OpCode : 두 바이트 동작 코드, 값 1 File name : 가변 길이의 문자열 ASCII 코드로 부호화 1 바이트 필드에 의해 종료점 표시(All 0’s) Mode : 전송 모드를 정의 ASCII – netascii 2진 파일 - octet
21.1 메시지 WRQ(Write request) 클라이언트가 서버에 데이터를 쓰기 위한 연결 설정
21.1 메시지 DATA 데이터 블록을 전송하기 위해 사용 DATA 형식
21.1 메시지 DATA DATA 메시지 필드 OpCode : 두 바이트 동작 코드, 값 3 Block number : 블록의 순서 번호를 표시 마지막을 제외한 모든 블록이 512 바이트 마지막 블록 : 0 ~ 511 바이트 마지막 블록은 End-of-File 지시자로 사용 NVT ASCII, 2진 8진수 사용
21.1 메시지 ACK(확인 응답) 데이터 블록을 수신하였음을 응답 4바이트의 길이를 가짐
21.1 메시지 ACK(확인 응답) ACK 메시지 필드 WRQ에 대한 응답으로도 사용 OpCode : 두 바이트 동작 코드, 값 4 Block number : 수신된 블록 번호를 표시 WRQ에 대한 응답으로도 사용 서버측에서 ACK로 응답하면 수신할 준비가 되어 있음을 의미
21.1 메시지 ERROR 연결을 설정하지 못하거나 데이터 전송 중에 문제가 발생할 때 사용 RRQ나 WRQ에 대한 부정 응답으로도 사용
21.1 메시지 ERROR ERROR 메시지 필드 OpCode : 두 바이트 동작 코드, 값 5 Error number : 오류의 종류를 정의 Error data : 오류 데이터를 포함
Disk full or quota on disk exceeded 21.1 메시지 ERROR Error Number number Meaning Not defined 1 File not found 2 Access violation 3 Disk full or quota on disk exceeded 4 Illegal operation 5 Unknown port number 6 File already exists 7 No such user
21.2 CONNECTION
21.2 연결 TFTP 연결 UDP 사용 TFTP 고려 사항 연결 설정과 종료를 제공하지 않음 데이터 블록을 사용자 데이터그램으로 캡슐화 TFTP 고려 사항 모든 데이터 블록을 전송할 수 있는 연결 필요 RRQ, WRQ, ACK, ERROR 메시지 사용 연결 종료를 위해 512 바이트보다 적은 DATA 메시지 사용
21.2 연결 연결 설정
21.2 연결 연결 설정 읽기 클라이언트 서버 RRQ 메시지 전송 : 파일 이름과 전송 모드 첫번째 블록을 포함하는 DATA 메시지 전송 응답 문제 발생시 ERROR 메시지 전송, 부정 응답
21.2 연결 연결 설정 쓰기 연결 종료 클라이언트 서버 512 바이트보다 적은 데이터의 마지막 블록을 전송 WRQ 메시지 전송 : 파일 이름과 전송 모드 서버 블록 번호가 0인 ACK 메시지 전송 응답 문제 발생시 ERROR 메시지 전송, 부정 응답 연결 종료 512 바이트보다 적은 데이터의 마지막 블록을 전송
21.3 DATA TRANSFER
21.3 데이터 전송 데이터 전송 연결과 종료 사이에 수행 신뢰성 없는 UDP 사용 전송 과정 파일을 데이터 블록으로 나눔 마지막 블록을 제외한 블록은 512 바이트의 크기 마지막 블록은 0 ~ 511 바이트의 크기 ASCII나 2진 파일 형태 전송 흐름 제어와 오류 제어 기능이 없음 연속적 데이터 블록의 전송을 위해 TFTP가 흐름 제어와 오류 제어 메커니즘 생성
21.3 데이터 전송 흐름 제어 데이터 블록 하나를 DATA 메시지로 전송하고 ACK 메시지를 기다림 응답이 있으면 다음 블록 전송 정지 – 대기 프로토콜 사용 파일 읽기 클라이언트 : RRQ 메시지 전송 서버 : DATA 메시지에 첫번째 블록을 실어 응답 파일 저장 클라이언트 : WRQ 메시지 전송 서버 : ACK 메시지로 응답
21.3 데이터 전송 오류 제어 메시지 손상, 메시지 유실, 응답 메시지 유실, 메시지 중복의 경우에 필요 손상된 메시지 TFTP의 DATA 메시지에는 검사합 기능이 없음 수신자가 UDP 사용자 데이터그램의 검사합 필드를 이용해 검출 유실 메시지 타임아웃 이후 블록을 재 전송
21.3 데이터 전송 오류 제어 유실 응답 메시지 중복된 메시지 수신자의 타이머가 먼저 끝났을 경우 수신자가 응답을 재 전송 송신자의 타이머가 먼저 끝났을 경우 송신자가 데이터를 재 전송 중복된 메시지 수신자가 블록 번호를 보고 검출 수신자가 중복된 블록을 제거
21.3 데이터 전송 마법사의 초보 버그 ACK 메시지가 지연되는 경우에 발생 이후의 모든 데이터 블록과 응답이 중복 송/수신
21.4 UDP PORTS
21.4 UDP 포트 UDP 포트 문제점 해결책 연결을 긴 시간동안 유지(수 초 ~ 수 분) TFTP 서버가 포트 69를 클라이언트와 통신할 경우 다른 클라이언트가 서비스를 사용하지 못함 해결책 초기 연결에는 알려진 포트 사용, 이후 임시 포트 사용
21.4 UDP 포트 TFTP에 의해 사용되는 UDP 포트 번호
21.5 TFTP EXAMPLE
21.5 TFTP 예제
21.6 TFTP OPTIONS
21.6 TFTP 옵션 TFTP 옵션 RRQ와 WRQ 메시지에 옵션을 추가하도록 허용 블록의 크기와 초기 순서 번호를 협상 옵션이 없을 경우 : 마지막 블록을 제외하면 항상 512 바이트 옵션이 있을 경우 : UDP 사용자 데이터 그램에 수용될 수 있는 어떤 수의 바이트 OACK(Option Acknowledgement) 상대편이 옵션을 수용할 것인지의 여부를 결정
21.7 SECURITY
21.7 보안 TFTP 보안 보안에 대한 고려가 없음 보안 요구 사항 핵심 파일에 대한 접근 불허 Telnet과 같은 응용 프로그램을 사용
21.7 보안 보안을 제공하기 위해 TELNET을 TFTP와 함께 사용
21.8 APPLICATIONS
21.8 응용 TFTP 응용 기본 파일 전송에 유용 적은 양의 메모리 요구 UDP와 IP 서비스 요구 브리지 또는 라우터 초기화에 사용할 수 있음 BOOTP 또는 DHCP 프로토콜과 함께 사용
21.8 응용 BOOTP와 TFT의 공동 사용