파일 전송 프로토콜

Download Report

Transcript 파일 전송 프로토콜

TCP/IP 네트워크
제 27 장 파일 전송 프로토콜
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
1
목 차




개요
FTP 프로토콜
FTP 예
요약
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
2
개요






FTP는 파일 전송을 위한 인터넷 표준
NFS(29장) 차이점
FTP는 로그인할 수 있는 계정이 필요, anonymous
FTP를 허용하는 서버에 로그인이 필요
서로 다른 운영체제, 파일구조, 문자 집합을 사용
하는 호스트들 사이에 작동할 수 있도록 설계
FTP는 제한된 파일 형식과 파일구조를 지원한다.
RFC 959는 FTP 공식 명세서 이다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
3
FTP 프로토콜



2개의 TCP를 사용 기존의 응용과는 다르다.
제어연결 : 전형적인 C/S 방식으로 서버는 포트21
을 수동적 개방을 하고 클라이언트는 TCP 포트 21
에 능동적 개방을 행한다. 이 상태는 C/S 간의 통신
하는 전 시간 내 유지, 최소지연 (3장)
데이터연결 : C/S 파일이 전송 될 때마다 생성
파일 전송을 위해 최대 처리율을 가져야 함(3장)
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
4
파일전송 처리
터미널사용자
파일
시스템
정보통신연구실
사용자
인터페이스
사용자프로토콜
인터페이스
제어접속
사용자프로토콜
인터페이스
데이터접속
(FTP명령)
(FTP응답)
서버 프로토콜
인터페이스
서버 데이터
전송 기능
파일
시스템
성균관 대학교
SungKyunKwan Univ.
5
데이터 표현 형식


FTP 프로토콜은 다양한 옵션들이 제공되며 선택은 4가지 차원으
로 이루어진다.
파일형태


ASCII 파일 형태
디폴트 텍스트 파일은 NVT ASCII 형태로 데이터 연결을 통해 전송된다. 송신
측은 로컬텍스트를 ASCII로 수신측은 ASCII를 로컬 텍스트 파일 형태로 변환
해야 하며 CR, LF가 뒤따른다.

EBCDIC 파일 형태

양쪽 종단이 ECDIC시스템인 경우, 턱스트 전송의 대안적인 방안

이미지 파일 형태(2진파일)

데이터를 연속적인 비트 스트림으로 보낸다. 2진 파일 전송시 사용

로컬 파일 형태

다른 바이트 크기를 갖는 호트간의 2진 파일 전송 방식 바이트당 비트수는 송
신측이 기입.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
6
Cont’d


형식제어

비인쇄(Nonprint)

디폴트 파일은 수직 정보를 갖지 않는다.

Telnet 형식제어

파일은 프린터가 번역할 수 있는 Telnet 수직 형식 제어를 갖는다.

포트란 캐리지 제어

각 줄의 첫 문자가 포트란 형식의 제어 문자이다.
구조

파일구조

디폴트, 파일은 연속적인 바이트 스트림으로 취급

레코드구조

텍스트 파일에서만 사용(ASCII or EBCDIC)

페이지구조

각 페이지는 페이지 번호를 가지고 전송 수신측은 무작위로 페이지
를 저장
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
7
Cont’d

전송모드

스트림 모드

디폴트, 바이트 스트림으로 파일을 전송한다.

블록 모드

파일은 일련의 블록 들로 전송, 하나이상의 헤더바이트가 선행된다.

압축모드


간단한 run-length 코드화는 연속적으로 나타나는 동일한 바이트를 압
축한다. 공백, 이진파일에서의 0바이트 문자열 (거의 사용하지 않음)
일반적인 구현




형태:아스키, 이미지
형식제어:비 인쇄형태
구조:파일구조
전송모드:스트림 모드
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
8
FTP 명령어


명령은 3, 4바이트의 ASCII 대문자로 구성되며 그
중의 몇몇은 옵션인자를 가진다.
클라이언트는 30개 이상의 FTP 명령을 보낼 수 있
다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
9
일반적인 FTP 명령
명
령
ABOR filelist
LIST password
PASS n1,n2,n3,n4,n5,n6
PORT
QUIT
RETR filename
STOR filename
SYST
TYPE type
USER username
정보통신연구실
설
명
이전의 FTP 명령과 데이터 전송을 중지
파일 또는 디렉토리를 리스트
서버상의 패스워드
클라이언트 IP 주소와 포트(n5x256+n6)
서버에서 로그 오프
파일 검색(수신)
파일 저장(송신)
서버가 시스템 타입을 변환
파일 형태를 기술:ASCII A, 이미지는 I
서버상의 사용자명
성균관 대학교
SungKyunKwan Univ.
10
FTP 응답


응답은 ASCII로 된 3 자리 수 숫자 뒤로 옵션 메시
지를 갖는다.
응답코드내의 3자리에서 각 자리는 서로 다른 의
미 를 갖는다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
11
응답 코드의 의미
명 령
설
명
2yz
3yz
4yz
5yz
긍정적인 예비 응답 다른 응답을 수신하기를 기대하라는
응답
긍정적인 완성 응답, 새 명령을 보낼 수 있다.
긍정적인 중간 응답, 명령이 승인, 다른 추가 명령이 필요
순간적 부정 완성 응답 차후에 명령을 재실행 할 수 있다
지속적인 부정 완성 응답 승인, 재시도 되지 않음
x0z
x1z
x2z
x3z
x4z
x5z
문법 에러
정보
연결, 제어연결 또는 데이터 연결을 언급하는 응답
인증과 계정 로그인 또는 계정 명령을 위해 응답한다.
명시되지 않음
파일시스템 상태
1yz
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
12
Cont’d

응답 코드의 3번째자리의 에러 메시지에 대한 의
미를 추가한다. (이에 따른 메시지 문자열이 추가)









125 데이터 접속이 이미 열림; 전송시작
200 명령 OK
214 도움 메시지 (사용자를 위한 것)
331 사용자명 OK, 패스워드가 요구됨
425 데이터 접속을 열 수 없음
452 에러를 기록한 파일
500 문법 에러 (인식되지 않는 명령)
501 문법에러 (유효하지 않는 인수)
502 구현되지 않은 MODE 형태
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
13
Cont’d

보통 FTP는 1줄짜리 응답을 한다.
>> QUIT
221 Goodbye

만일 응답이 여러 줄이면 응답코드 뒤에 공백대신
하이픈, 마지막 줄은 응답코드 뒤에 공백
>> HELP
214The following command …..
|
214
Direct comment to ftp …...
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
14
연결관리

데이터 연결 용도




클라이언트에서 서버로 파일 보내기
서버에서 클라이언트로 파일 보내기
서버에서 클라이언트로 파일 또는 목록 보내기
데이터 연결의 절차




클라이언트는 데이터 연결의 생성을 제어한다.
클라이언트는 호스트상에 임시 포트번호를 선택 이
포트에 대해 수동적 개방
클라이언트는 PORT 명령을 통해 서버에게 이 포트
번호를 보낸다.
서버는 제어연결을 통해 포트번호를 받아 호스트의
해당 포트에 능동적 개방을 지시한다. 서버의 종단
은 항상 포트 20을 사용
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
15
Cont’d
FTP 클라이언트
FTP 서버
•
포트 1173
포트 140.252.13.34.4.150\ r\n
• 포트 21
•
포트 1174
(수동적 개방)
IP addr 140.252.13.34
FTP 제어 접속을 통해 진행되는 PORT 명령
FTP 클라이언트
FTP 서버
•
포트 1173
•
포트 1174
(수동적 개방)
(제어 접속)
• 포트 21
20
• 포트
(능동적 개방)
IP addr 140.252.13.34
FTP 제어 접속을 통해 진행되는 FTP 서버
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
16
FTP 예
연결관리:임시 데이터
포트
svr4 % ftp -d bsdi
-d 옵션은 디버그 출력
Connected to bsdi.
클 제어접속의 active open
220 bsdi FTP server (version 5.60) ready.
Name (bsdi : rstevens) : 클라이언트 프롬프트
--> USER rstevens
331 Password required for rstevens.
Password :
패스워드 입력 (과정생략)
ftp>dir hello.c
-->PORT 140,252,13,34,4,150
200 PORT command successful
-->LIST hello.c
150 Opening ASCII mode data connection for /bin/ls (결과생략)
226 Transfer complete.
Remote : hello.c
56 bytes received in 0.03 seconds(1.8 Kbytes/s)
ftp> quit
--> QUIT
221 Goodbye
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
17
FTP 예의 제어 연결
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
18
FTP 예의 데이터 접속
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
19
연결관리 : 디폴트 데이터 포트

클라이언트가 PORT 명령을 서버에게 보내지 않는
다면 이는 스트림 모드에서 클라이언트에게 문제
가 발생된다.(RFC는 PORT 명령 권장)
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
20
Cont’d






제어연결 클라이언트 포트 1176, 서버 포트 21
클라이언트가 포트 1176에 수동적 개방을 할 때 클라
이언트는 SO_REUSEADDR 기술
서버는 포트 20에서 1176까지 직접열기를 한다. 클라
이언트는 이것을 받아 드린다.
<svr4, 1176, bsdi, 21>
<svr4, 1176, bsdi, 20>
서버는 데이터 접속을 능동적으로 종료 한다.
클라이언트는 제어연결을 통행 LIST 명령을 보냄 이
때 SO_REUSEADDR 옵션 기술
서버 포트는 20에서 1176까지 능동적 개방지시 이때
도 옵션 기술
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
21
2개의 연속적인 LIST 명령
클라이언트는 1176
사용을 받아드림
직접 열기를 한다.
약 1분 후에 진행
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
22
텍스트 파일 전송
새로운 줄을 알리는 (\n)
문자가 (\r\n)으로 변환
전송되기 때문
sun % ftp bsdi
Connected to bsdi.
220 bsdi FTP server (Version 5.60) ready.
생략
ftp> get hello.c
200 PORT command successful
150 Opening ASCII mode data connection for hello.c (38bytes).
226 Transfer complete
서버는 파일이 38byte 라고 알려 준다.
local : hello.c remote:hello.c
42 bytes received in 0.0037 seconds (11 Kbytes/s)
42 바이트 수신
생략
sun % ls -l hello.c
-rw-rw-r-- 1 rstevens 38 Jul 18 08:48 hello.c
파일크기 38바이
트
sun % wc -l hello.c
4 hello.c
파일 줄 수 4줄
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
23
파일 전송 중단 : Telnet 동기 신호


전송중지(C-S) : 제어연결을 통하여 전송을 중지하
고 서버로 ABOR을 전송
수신중지 (C-S) :
ftp>get a.out
--> TYPE I
200 Type set to I.
--> PORT 140,252,13,66,4,99
200 PORT command successful .
--> RETR a.out
150 Opening BINARY mode data connection for a.out (28672 bytes).
^?
Received aborted
waiting for remote to finish abort
426 Transfer aborted. Data connection closed.
226 Abort successful.
1536 bytes received in 1.7 seconds (0.89 Kbytes/s)
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
24
파일 전송 중지 (앞부분)
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
25
파일 전송 중지 (뒷부분)
수신된 6번째
세그먼트
인터럽트 키 입력
서버의 전송이
중지됨을 알림
1537 에서 5120
까지의 전송은
즉 18세그먼트
다음의 전송은
무시됨
이처럼 중지 명령
후에 데이터가 전송
되는 것은 프로세서
가 동시에 입력에 대
한 2개의 연결을 확인
하기 어렵기 때문
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
26
Anonymous FTP

FTP의 흔한 형태 anonymous FTP 서버가 지원 할
때 아무나 서버에 로그인 하여 FTP 를 사용하여 파
일을 전송 받을 수 있다. 방대한 자료를 무료로 이
용할 수 있다.
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
27
Anoymous FTP
SUN % ftp ftp.uu.net
Connected to ftp.uu.net
생략
Name (ftp.uu.net:rstevens):anonymous
생략
ftp>cd published/books
250 CWD command successful
frp>binary
200 Type set to I
frp>get stevens.tcpipiv1.errata.Z
생략
ftp>quit
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
28
요약




FTP 인터넷 표준이며 클라이언트와 서버간의 두개
의 TCP 두개의 C/S 세션이 유지되는 동안 제어연
결과 필요 시 생성 제거 되는 데이터 연결 사용
PORT 명령에서 거론되지 않은 TCP의 2MSL의 상
호 작용
새로운 유닉스 클라이언트는 자동적으로 명령을
전송하여 서버가 8비트를 한 바이트로 처리하는
호스트인 경우 효율적인 2진 모드 사용
anonymous FTP
정보통신연구실
성균관 대학교
SungKyunKwan Univ.
29