Download presentation
Presentation is loading. Please wait.
Published byRebeka Sipos Modified 6년 전
1
제 18 장 FTP 18.1 연결 18.2 통신 18.3 명령어 처리 18.4 파일 전송 18.5 사용자 인터페이스
18.7 요약
2
파일 전송 프로토콜(FTP) FTP(File Transfer Protocol)
TCP/IP에 의해 제공되는 표준 기능 FTP는 두개의 TCP 연결을 필요 제어 연결은 전체 상호 작용적인 FTP 세션 동안 연결 데이터 연결은 각 파일 전송동안 연결 상태 유지 Control: well-known port 21 Data: well-known port 20
3
파일 전송 프로토콜(FTP)(계속)
4
18.1 연결 제어 연결 서버는 포트 21로 수동적 설정 후 응답을 기다림 클라이언트는 임시포트를 사용하여 능동적 설정을 시도
IP 프로토콜에 의해 사용되는 서비스는 지연 최소화 서버 프로세스가 자식 프로세스를 생성한다 클라이언트를 서비스할 책임 할당
5
18.1 연결(계속)
6
18.1 연결(계속) 데이터 연결 데이터 연결은 포트 20을 사용 임시 포트를 사용하여 수동적 설정을 시도
클라이언트가 파일을 전송하는 전송 서버에 PORT 명령어를 사용하여 포트번호 전송 서버는 포트 번호를 수신한 후 능동적 연결 설정 자식 프로세스는 클라이언트를 서비스 하도록 함
7
18.1 연결(계속)
8
18.2 통신 제어 연결 상의 통신 FTP는 TELNET과 SMTP와 같은 방법을 사용하여 제어 연결상에 통신을 수행한다.
NVT ASCII 글자 조합을 사용한다. 파일의 형식이나 구조에 대해 무관함 각 줄은 두 글자 CR이나 LF로 된 EOL토큰으로 끝남
9
18.2 통신(계속)
10
18.2 통신(계속) 데이터 연결상의 통신 클라이언트는 전송될 파일의 종류와 데이터의 구조, 전송모드를 정의 한다.
11
18.2 통신(계속) 파일 종류 ASCII 파일 : 텍스트 파일을 전송하는 기본 형식
EBCDIC 파일 : 연결의 한쪽 혹은 양쪽이 EBCDIC 부호화를 사용하는 경우 화상 파일 : 이진 파일을 전송하는 방식
12
18.2 통신(계속) 데이터 구조 파일 구조(기본) : 파일은 특정 구조를 갖지 않는다.
레코드 구조 : 파일은 레코드들로 분할된다. 페이지 구조 : 파일은 페이지로 분할 된다.
13
18.2 통신(계속) 전송 모드 스트림 모드 (기본) : 데이터는 연속된 바이트의 흐름으로 FTP로 부터 TCP로 전달된다.
압축 모드 : 만일 파일의 크기가 크다면 데이터는 압축될 수 있다.
14
18.3 명령어 처리 FTP는 제어 프로세스간의 통신을 설정하기 위하여 제어 연결을 사용한다.
15
18.3 명령어 처리(계속) 명령어 액세스 명령어, 파일 관리 명령어, 데이터 형식화 명령어, 포트정의 명령어, 파일 전송 명령어, 기타 Abort the previous command ABOR Log out of the system QUIT Reinitialize REIN Account information Account to be charged ACCT Password User password PASS User information User id USER Description Argument(s) Command
16
18.3 명령어 처리(계속) Mount a file system File system name SMNT
Rename the file File name(new file name) RNTO Identify a file to be renamed File name(old file name) RNFR Delete a directory Directory name RMD Display name of current directory PWD Create a new directory MKD List the names of subdirectories at files without other attributes NLIST List subdirectories or files LIST Delete a file File name DELE Change to the parent directory CDUP Change to another directory CWD Description Argument(s) Command
17
18.3 명령어 처리(계속) Define the transmission mode S(Stream), B(Block), or
C(Compressed) MODE Define the organization of the data F(File), R(Record), or P(Page) STRU Define the file type and if necessary the print format A(ASCII), E(EBDIC), I(Image), N(Nonprint), or T(TELENT) TYPE Description Argument(s) Command Server chooses a port PASV Client chooses a port 6-digit identifier PORT Description Argument(s) Command
18
18.3 명령어 처리(계속) Return the status of files. File name(s) STAT
Position the file marker at a specified data point. File name REST Allocate storage space for the files at the server. File names ALLO Same as STOR except that the file name will be unique in the directory. However, the existion file should not be overwritten. STOU Similar to STOR except if the file exists, data must be appended to it. APPE Store files. File(s) are transferred from the client to the server. STOR Retrieve files. File(s) are transferred from server to the client. RETR Description Argument(s) Command
19
18.3 명령어 처리(계속) 서버에 의해 사용되는 운영 체제를 질의한다. SYST
Specify the site-specific commands Commands SITE Check if server is alive NOOP Ask information about the server HELP Description Argument(s) Command
20
18.3 명령어 처리(계속) 응답 모든 FTP 명령은 적어도 하나의 응답을 만들어 낸다. 세자리 숫자와 텍스트로 이루어 진다.
숫자는 코드를 정의하고 텍스트는 매개 변수나 추가 설명을 표시 한다.
21
18.3 명령어 처리(계속) 첫번째 숫자(명령의 상태) 1yz(긍정적 예비 응답) 2yz(긍정적 완료 응답)
22
18.3 명령어 처리(계속) 두 번째 숫자(명령의 상태) x0y : 문법 x1y : 정보 x2y : 연결
23
Positive Preliminary Reply
18.3 명령어 처리(계속) 세 번째 숫자(추가정보 제공) File status is OK; data connection will be open shortly 150 Data connection open; data transfer will start shortly 125 Service will be ready shortly 120 Positive Preliminary Reply Description Code
24
Positive Completion Reply
18.3 명령어 처리(계속) request file action OK 250 User login OK 230 Entering passive mode; server sends its IP address and port number 227 Closing data connection 226 Data connection open 225 Service closing 221 Service ready 220 Naming the system type(operating system) 215 Help message 214 File status 213 Directory status 212 System status or help reply 211 Command OK 200 Positive Completion Reply
25
18.3 명령어 처리(계속) Action aborted; insufficient storage 452
Action aborted; local error 451 File action not taken; file not available 450 Connection closed; transfer aborted 426 Cannot open data connection 425 Transient Negative Completion Reply The file action is pending; more information needed 350 Need account for logging 332 User name OK; password is needed 331 Positive Intermediate Reply
26
Permanent Negative Completion Reply
18.3 명령어 처리(계속) Permanent Negative Completion Reply 500 Syntax error; unrecognized command 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 504 Command parameter not implemented 530 User not logged in 532 Need account for storing file 550 Action is not done; file unavailable 552 Requested action aborted; exceeded storage allocation 553 Requested action not taken; file name not allowed
27
18.4 파일 전송 파일 전송 제어 연결에서 전송되는 명령의 제어 하에서 데이터 연결을 통해 수행 된다.
28
18.4 파일 전송(계속) 항목들의 목록을 검색하기 위한 예
포트 21에 대한 연결을 생성한 후, FTP 서버는 제어 연결로 220(서비스 준비됨)응답을 송신한다. 클라이언트는 USER명령을 보낸다. 서버는 331(사용자이름 OK, 패스워드 요구)을 응답한다. 클라이언트는 PASS 명령을 보낸다. 서버는 230(사용자 로그인 OK)을 응답한다. 클라이언트는 임시 포트로 수동적 설정을 하고 서버에 이 포트 번호를 보내기 위해 PORT 명령을 (제어 연결로) 보낸다. 서버는 연결을 설정하지 않으나, 클라이언트로부터 받은 임시 포트와 포트 20(서버측) 사이에 데이터 연결을 위한 능동적 설정을 시도하기 위해 스스로 준비 한다.
29
18.4 파일 전송(계속) 8. 클라이언트는 LIST 메시지를 전송한다.
9. 서버는 125로 응답하고, 데이터 연결을 설정한다. 10. 서버는 데이터 연결로 파일 혹은 디렉토리의 목록을 (파일로서) 전송한다. 모든 목록(파일)이 전송되면, 서버는 제어 연결로 226(데이터 연결 해제)를 응답한다. 11. 클라이언트는 QUIT 명령을 전송한다. 12. 서버는 QUIT 명령을 받은 후, 221(서비스 종료)로 응답하고 제어연결을 해제한다.
30
18.4 파일 전송(계속)
31
18.4 파일 전송(계속) 화상(2진) 파일을 저장하는 방법의 예
포트 21에 대한 제어 연결이 생성된 후, FTP 서버는 220 (서비스 준비됨)응답을 제어 연결로 보낸다. 클라이언트는 USER 명령을 보낸다. 서버는 331(사용자 이름 OK, 패스워드 요구)로 응답한다. 클라이언트는 PASS 명령을 보낸다. 서버는 230(사용자 로그인 OK)으로 응답한다. 클라이언트는 임시 포트로 수동적 설정을 시도하고, 이 포트 번호를 서버에게 보내기 위해 PORT 명령을 (제어 연결) 전송한다. 서버는 연결을 설정하지 않으나, 클라이언트로부터 받은 임시 포트와 포트 20(서버측) 사이에 데이터 연결을 위한 능동적 설정을 시도하기 위해 스스로 준비 한다.
32
18.4 파일 전송(계속) 8. 클라이언트는 TYPE 명령을 보낸다. 9. 서버는 응답 200 (명령 OK)으로 응답한다.
10. 클라이언트는 STRU 명령을 보낸다. 11. 서버는 200 (명령 OK)으로 응답한다. 12. 클라이언트는 STRU 명령을 보낸다. 13. 서버는 데이터 연결을 열고 메시지 250을 보낸다. 14. 클라이언트는 데이터 연결로 파일을 전송 한다. 전체 파일이 전송된 후 데이터 연결을 해제한다. 15. 서버는 응답 226을 제어 연결로 전송한다. 16. 클라이언트는 QUIT 명령을 전송한다. 17. 서버는 221 (서비스 종료)로 응답하고 제어 연결을 닫는다.
33
18.4 파일 전송(계속)
34
18.4 사용자 인터페이스 사용자 인터페이스 FTP의 서비스를 받기 위한 사용자 편의적 인터페이스를 제공한다.
인터페이스가 적절한 입력을 물어본다. 사용자가 한 라인의 입력 FTP 인터페이스가 이에 일치하는 FTP 명령으로 반환한다. FTP의 명령은 축약될 수 있다.
35
18.4 사용자 인터페이스 (계속) 유닉스 인터페이스에서 사용되는 명령어 Commands
!, $, account, append, ascii, bell, binary, bye, case, cd, cdup, close, cr, deledte, debug, dir, discount, form, get, glob, hash, help, lcd, ls, macdef, mdelete, mget, mkdir, mls, mode, mput, nmap, ntrans, open, prompt, proxy, sendport, put, pwd, quit, quote, recv, remotehelp, rename, reset, rmdir, runique, send, status, struct, sunique, tenex, trace, type, user, verbose, ?
36
18.6 익명 FTP Anonymous FTP FTP를 사용하기 위해 계정과 패스워드가 필요하다.
공개된 접근을 하기 위해서는 계정이나 패스워드가 필요하지 않다. 익명의 접근을 위해서 대부분 “anonymous”의 사용자 이름을 사용한다. 익명의 접근은 사용자 액세스를 매우 제한한다.
37
18.7 요약
Similar presentations