Transcript TFTP
TFTP
2조
TFTP(Trivial File Transfer
Protocol)
◦
◦
◦
◦
일반 FTP 와 비슷하지만 보다 단순, 간이적인 기능
RFC 1350 에서 공식화.
UDP 방식을 사용 ( 69 PORT )
Embedded System ( 또는 WorkStation )
에서 운영 체제의 업로드용으로 주로 사용.
2
Message
RRQ
WRQ
DATA
ACK
ERROR
• RRQ ( Read request )
• WRQ ( Write request )
• DATA
• ACK ( Acknowledge )
• ERROR
3
4
RRQ(Read request)
클라이언트가 서버로부터 데이터를 읽기 위한
연결을 설정 하는데 사용
5
WRQ(Write request)
클라이언트가 서버에 데이터를 쓰기 위한 연결 요청
6
DATA
데이터 블록을 전송하기 위해 사용
7
ACK( Acknowledge : 확인 응답 )
데이터 블록을 수신하였음을 응답해 준다.
4byte의 길이.
8
ERROR
연결을 설정하지 못했거나 데이터 전송 중에 문제가
발생할 때 사용.
RRQ나 WRQ에 대한 부정 응답으로도 사용.
9
ERROR Number
Number
Meaning
0
Not defiend
1
File not Found
2
Access Violation
3
Disk Full quota
Or disk exceeded
4
Illegal operation
5
Unknown port number
6
File already exists
7
No such user
10
UDP를 사용
TCP방식의 FTP에 비해서 간단한 전송형태.
부트로더(BOOTP) 등과 연동하여 네트워크 부트,
OS설치 등에 사용.
쌍방 연결 설정과 종료를 제공하지 않음.
데이터 블록을 사용자 데이터그램으로 캡슐화.
11
모든 데이터 블록을 전송할 수 있는 연결 필요
RRQ, WRQ, ACK, ERROR 사용
메시지 사용연결 종료를 위해 512 바이트보다
적은 DATA 메시지 사용
12
연결 흐름
13
데이터 전송 과정
연결과 종료 사이에 수행
전송 과정
파일을 데이터 블록으로 나눈다.
ASCII나 2진 파일 형태 전송
흐름 제어와 오류 제어 기능이 없음
14
데이터 흐름 제어
데이터 블록 하나를 DATA 메시지로 전송하고 ACK
메시지를 기다림
응답이 있으면 다음 블록 전송
정지 – 대기 프로토콜 사용
15
데이터 오류 제어
유실 응답 메시지를 재전송
중복된 메시지 검출 및 제거
16
UDP Port
TFTP 는 69번 포트를 사용.
연결을 긴 시간 유지 ( 수 초~ 수 분 )
- 그 동안 해당 포트에 다른 클라이언트가 접속하면
서비스를 사용할 수 없는 문제점 발생.
신뢰성이 부족하므로, 대용량의 파일이나
패킷 손실이 많은 환경에서는 불편하다.
17
PORT 해결책 : 임시 포트
18
RRQ와 WRQ 메시지에 옵션 추가
- 블록 크기와 초기 순서번호 변경
- 옵션이 없으면 항상 512byte( 마지막 블록 제외 )
옵션이 있으면 UDP 데이터그램에 수용될 수 있는 수
OACK(Option Acknowledgement)
- 상대방의 옵션 수용 여부
19
보안에 대한 구체적 고려가 부족
핵심 파일에 대한 접근자 권한 설정
Telnet 과 같은 타 응용 프로그램을 사용
20
간단한 TFTP 환경 구축
- Yum 또는 rpm으로 관련 패키지 설치
21
서버 가동
- TFTP 서비스를 사용하기 위해 환경 설정 파일 수정
22
관련 데몬 재시작 후 파일 준비
23
XP에서 CentOS의 TFTP서버에서 파일을 다운받는다.
서버는 Wireshark 를 켜고 패킷을 관찰한다.
24
마법사 견습생 신드롬
마법사의 초보적 버그라는
의미로, 판타지아라는 영화의
세그먼트 부분을 따서 붙은 이름.
ACK 메시지가 지연되는 경우에 발생
이후의 모든 데이터 블록과 응답이
중복 송/수신
25
Install.log 파일의 크기에 비슷하게 블럭화되어 전송
데이터 전송 블록의 크기
IP 영역에서의 크기
마지막 전송 블록의 크기
UDP 영역에서의 크기
26
27