16 장 . 파일 전송
컴퓨터 네트워크
목포해양대해양컴퓨터공학과
1
16-1 파일 전송을 위한 사용자 환경
• 이번 시간의 학습 목표
• FTP 프로그램의 사용법과 익명 FTP의 기능 이해
목포해양대해양컴퓨터공학과
2
개요
• FTP : FTP 클라이언트와 FTP 서버 사이의 파일 송수신 기능을 제공
• FTP 로그인
• 원격 시스템에 접속하려면 FTP 서버에 등록된 로그인 계정과 암호가 필요
• 익명 FTP 로그인
• 다중 사용자를 위한 로그인 계정
• 로그인 계정 : anonymous
• 암호: 관례상 자신의 메일 주소
목포해양대해양컴퓨터공학과
3
익명 FTP 로그인
목포해양대해양컴퓨터공학과
4
FTP 로그인
목포해양대해양컴퓨터공학과
5
사용자 파일 전송 명령
목포해양대해양컴퓨터공학과
6
명령 설명
get 원격시스템에서 파일을 수신 put 원격시스템으로 파일을 송신
ls 원격시스템의 현재 디렉토리 아래에 존재하는 파일 목록 출력
cd 원격시스템의 현재 작업 중인 디렉토리를 이동 lcd 지역시스템의 현재 작업 중인 디렉토리를 이동
bin 8비트 송수신 기능 지정
quit 프로그램 종료
파일 전송 명령 실행 예 (1)
• ls 명령 : 원격 디렉토리 목록을 검색
• README, Book, hong12.Dec00.tar.Z라는 파일 세 개가 존재
목포해양대해양컴퓨터공학과
7
파일 전송 명령 실행 예 (2)
• get 명령 : 임의의 파일을 가져옴
• put 명령 : 원격 시스템으로 파일을 송신
• cd, lcd 명령 : 복사되는 파일의 위치를 조정하여 디렉토리를 이동함
목포해양대해양컴퓨터공학과
8
16-2 FTP 원리
• 이번 시간의 학습 목표
• FTP의 제어 채널과 데이터 채널의 필요성 이해
• FTP 명령과 응답의 동작 원리 이해
목포해양대해양컴퓨터공학과
9
FTP 구조 (1)
• 2 개의 채널 존재
• 제어 채널
• FTP 프로토콜의 명령과
응답 전송
• 데이터 채널
• 복사하려는 파일의 내용 전송
• 구성 요소
• 사용자 인터페이스 모듈
• 명령 송수신 모듈
• 파일 송수신 모듈
• Well-known 포트
목포해양대해양컴퓨터공학과
10
FTP 구조 (2)
• 요소별 기능
• 사용자 인터페이스 모듈
• 사용자 명령을 해석하여 명령 송수신 모듈에 전달
• 명령 송수신 모듈
• 제어 채널 설정(클라이언트가 초기화)
• 사용자 명령을FTP 명령으로 전환하여 제어 채널로 전송
• 파일 송수신 모듈
• 파일 송수신 요구가 발생할 때마다 데이터 채널 설정 (서버가 초기화)
• 데이터 채널을 통하여 파일 복사, 파일 목록 전송 기능 수행
• Well-known 포트
• 제어 채널: TCP 21번
• 데이터 채널: TCP 20번
목포해양대해양컴퓨터공학과
11
데이터 채널의 설정
목포해양대해양컴퓨터공학과
12
FTP 명령과 응답
• 제어 채널을 이용하여 FTP 명령과 응답을 전송
목포해양대해양컴퓨터공학과
13
FTP 명령 (1)
명령 설명
USER <로그인 이름> 서버에 등록된 로그인 이름 전송.
클라이언트가 서버에 제일 먼저 전송하는 명령.
PASS <암호> USER 명령이 성공적으로 수행된 후 사용. 로그인
인증을 위한 암호 전송
QUIT FTP 세션의 종료
CWD <디렉토리> 서버의 현재 디렉토리 변경
CDUP 서버의 현재 디렉토리를 상위로 이동 PWD 서버의 현재 디렉토리 조회
MKD <디렉토리> 서버에서 디렉토리 생성
RMD <디렉토리> 서버에서 디렉토리 삭제
DELE <파일> 서버에서 파일 삭제
LIST <디렉토리> 서버의 디렉토리 목록 조회
목포해양대해양컴퓨터공학과
14
FTP 명령 (2)
명령 설명
TYPE <유형> 전송 데이터 유형 지정
A(ASCII), E(EBCDIC), I(Image) 등
RNFR <원래이름> 파일 이름 변경 시 원래의 파일 이름
RNTO <새로운 이름> 파일 이름 변경 시 새로운 파일 이름
RETR <파일> 서버의 현재 디렉토리에서 파일을 복사해 옴
STOR <파일> 클라이언트의 파일을 서버의 현재 디렉토리로
복사
목포해양대해양컴퓨터공학과
15
FTP 응답
• 3자리 응답 코드와 설명문으로 구성
• 첫 번째 숫자가 2인 경우 : 성공
• 첫 번째 숫자가 5인 경우 : 실패
• 그외는 연속 동작 지원 용도
목포해양대해양컴퓨터공학과
16
FTP 로그인 과정 (1)
목포해양대해양컴퓨터공학과
17
FTP 로그인 과정 (2)
• FTP 로그인 예
• 텔넷 프로그램을 이용한 FTP 로그인 과정
• FTP 서버는uu.ac.kr 호스트라고 가정
• telnet uu.ac.kr 21 명령을 입력
• USER, PASS 명령
• FTP 서버의 현재 디렉토리 이름인/export/faculty/kihyun의 메시지를 서버가 회신함
• FTP 세션을 종료하기 위한QUIT 명령
목포해양대해양컴퓨터공학과
18
FTP 파일 송수신
• FTP 파일 송수신 절차
• 클라이언트에서 데이터 채널 생성
• PORT 명령
• 생성한 포트 번호 전달
• RETR/STOR (파일 송수신 명령) 전달
• 데이터 채널 연결
• 데이터 전송
• 데이터 채널 종료
• 서버에서 응답 코드 전송
목포해양대해양컴퓨터공학과
19
16-3 TFTP
• 이번 시간의 학습 목표
• TFTP의 필요성 이해
• TFTP에서의 데이터 송수신 과정 이해
목포해양대해양컴퓨터공학과
20
TFTP 개요
• Trivial File Transfer Protocol
• 임의의 시스템이 원격시스템으로부터 부팅(booting) 코드를 다운로드할 때 사용하는 프로토콜
• 자체적으로 하드디스크를 보유하지 못한 X-terminal과 같은 장치
• 기존 FTP
• TCP/IP 전체 프로토콜 스택
• 2개의 채널(제어, 데이터)
• 디렉토리/파일 관리
• FTP 기능 대폭 축소하여 경량화
• TCP대신 UDP사용
• 복잡한 디렉토리, 파일 관리 기능 제거
• 오직 하나의 파일 복사
• UDP 69번 포트
목포해양대해양컴퓨터공학과
21
TFTP 명령
명령 설명
RRQ 읽기 요청
인수 : 파일 이름과 모드(ASCII와 이진 파일 구분)
WRQ 쓰기 요청
인수 : 파일 이름과 모드
DATA 클라이언트나 서버가 데이터 블록 전송
ACK 클라이언트나 서버가 DATA에 대한 긍정 응답 전송
ERROR 전송과정에서 오류가 발생했을 때
목포해양대해양컴퓨터공학과
22
세션의 설정과 읽기
• UDP 에는 연결 기능이 없으므로 , 각 데이터
블록을 독립적으로 전송
• RRQ 를 보내면 세션 설정
• DATA 를 이용해 데이터를 전송하면 그대로 유지
• 마지막 DATA 는 512
바이트보다 작은 데이터 블록을 보내면 세션 해제
• 파일을 보내는 서버는 DATA, 클라이언트는 ACK 만 사용
목포해양대해양컴퓨터공학과
23
데이터 쓰기
• WRQ 를 보내면 세션 설정
• 파일을 보내는
클라이언트는 DATA, 서버는 ACK만 사용
목포해양대해양컴퓨터공학과
24
데이터 전송
• 데이터 블록 전송을 하나씩 처리하는 흐름 제어 방식
• 데이터 도착 순서가 바뀔 수 없음
• 데이터가 분실되는 경우
• 송신 측의 타이머 이용
• ACK 가 분실되는 경우
• 송신 측의 타이머 이용
• ACK를 보낸 후 주어진 시간
내에 다음 데이터가 도착해야만 계속 진행
• TFTP 는 NAK 를 지원하지 않음
목포해양대해양컴퓨터공학과
25