1 / 50

Chapter 20

Chapter 20. File Transfer Protocol (FTP). CONTENTS. CONNECTIONS COMMUNICATION COMMAND PROCESSING FILE TRANSFER USER INTERFACE ANONYMOUS FTP. 파일 전송 프로토콜( FTP). FTP(File Transfer Protocol) TCP/IP 에 의해 제공되는 표준 기능 FTP 는 두개의 TCP 연결을 필요 제어 연결은 전체 상호 작용적인 FTP 세션 동안 연결

ervin
Download Presentation

Chapter 20

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 20 File TransferProtocol (FTP)

  2. CONTENTS CONNECTIONS COMMUNICATION COMMAND PROCESSING FILE TRANSFER USER INTERFACE ANONYMOUS FTP

  3. 파일 전송 프로토콜(FTP) • FTP(File Transfer Protocol) • TCP/IP에 의해 제공되는 표준 기능 • FTP는 두개의 TCP 연결을 필요 • 제어 연결은 전체 상호 작용적인 FTP 세션 동안 연결 • 데이터 연결은 각 파일 전송동안 연결 상태 유지 Control: well-known port 21 Data: well-known port 20

  4. FTP uses the services of TCP. It needs two TCP connections. The well-known port 21 is used for the control connection and the well-known port 20 for the data connection.

  5. 파일 전송 프로토콜(FTP)

  6. 20.1 CONNECTIONS

  7. 20.1 연결 • 제어 연결 • 서버는 포트 21로 수동적 설정 후 응답을 기다림 • 클라이언트는 임시포트를 사용하여 능동적 설정을 시도 • IP 프로토콜에 의해 사용되는 서비스는 지연 최소화 • 서버 프로세스가 자식 프로세스를 생성한다 • 클라이언트를 서비스할 책임 할당

  8. 20.1 연결 • 제어 연결

  9. 20.1 연결 • 데이터 연결 • 데이터 연결은 포트 20을 사용 • 임시 포트를 사용하여 수동적 설정을 시도 • 클라이언트가 파일을 전송하는 전송 • 서버에 PORT 명령어를 사용하여 포트번호 전송 • 서버는 포트 번호를 수신한 후 능동적 연결 설정 • 자식 프로세스는 클라이언트를 서비스 하도록 함

  10. 20.1 연결 • 데이터 연결

  11. 20.2 COMMUNICATION

  12. 20.2 통신 • 제어 연결 상의 통신 • FTP는 TELNET과 SMTP와 같은 방법을 사용하여 제어 연결상에 통신을 수행한다. • NVT ASCII 글자 조합을 사용한다. • 파일의 형식이나 구조에 대해 무관함 • 각 줄은 두 글자 CR이나 LF로 된 EOL토큰으로 끝남

  13. 20.2 통신 • 제어 연결 상의 통신

  14. 20.2 통신 • 데이터 연결상의 통신 • 클라이언트는 전송될 파일의 종류와 데이터의 구조, 전송모드를 정의 한다.

  15. 20.2 통신 • 파일 종류 • ASCII 파일 : 텍스트 파일을 전송하는 기본 형식 • EBCDIC 파일 : 연결의 한쪽 혹은 양쪽이 EBCDIC 부호화를 사용하는 경우 • 화상 파일 : 이진 파일을 전송하는 방식 • 데이터 구조 • 파일 구조(기본) : 파일은 특정 구조를 갖지 않는다. • 레코드 구조 : 파일은 레코드들로 분할된다. • 페이지 구조 : 파일은 페이지로 분할 된다.

  16. 20.2 통신 • 전송 모드 • 스트림 모드 (기본) : 데이터는 연속된 바이트의 흐름으로 FTP로 부터 TCP로 전달된다. • 블록 모드 : 데이터는 FTP로 부터 TCP로 블록들로 전달된다. • 압축 모드 : 만일 파일의 크기가 크다면 데이터는 압축될 수 있다.

  17. 20.3 COMMAND PROCESSING

  18. 20.3 명령어 처리 • FTP는 제어 프로세스간의 통신을 설정하기 위하여 제어 연결을 사용한다.

  19. Command Argument(s) Description USER User id User information PASS User password Password ACCT Account to be charged Account information REIN Reinitialize QUIT Log out of the system ABOR Abort the previous command 20.3 명령어 처리 • 액세스 명령어

  20. Command Argument(s) Description CWD Directory name Change to another directory CDUP Change to the parent directory DELE File name Delete a file LIST Directory name List subdirectories or files NLIST Directory name List the names of subdirectories at files without other attributes MKD Directory name Create a new directory PWD Display name of current directory RMD Directory name Delete a directory RNFR File name(old file name) Identify a file to be renamed RNTO File name(new file name) Rename the file SMNT File system name Mount a file system 20.3 명령어 처리 • 파일 관리 명령어

  21. Command Argument(s) Description TYPE A(ASCII), E(EBDIC), I(Image), N(Nonprint), or T(TELENT) Define the file type and if necessary the print format STRU F(File), R(Record), or P(Page) Define the organization of the data MODE S(Stream), B(Block), or C(Compressed) Define the transmission mode Command Argument(s) Description PORT 6-digit identifier Client chooses a port PASV Server chooses a port 20.3 명령어 처리 • 데이터 형식 명령어 • 포트 정의 명령어

  22. Command Argument(s) Description RETR File name(s) Retrieve files. File(s) are transferred from server to the client. STOR File name(s) Store files. File(s) are transferred from the client to the server. APPE File name(s) Similar to STOR except if the file exists, data must be appended to it. STOU File name Same as STOR except that the file name will be unique in the directory. However, the existion file should not be overwritten. ALLO File names Allocate storage space for the files at the server. REST File name Position the file marker at a specified data point. STAT File name(s) Return the status of files. 20.3 명령어 처리 • 파일 전송 명령어

  23. Command Argument(s) Description HELP Ask information about the server NOOP Check if server is alive SITE Commands Specify the site-specific commands SYST 서버에 의해 사용되는 운영 체제를 질의한다. 20.3 명령어 처리 • 기타

  24. 20.3 명령어 처리 • 응답 • 모든 FTP 명령은 적어도 하나의 응답을 만들어 낸다. • 세자리 숫자와 텍스트로 이루어 진다. • 숫자는 코드를 정의하고 텍스트는 매개 변수나 추가 설명을 표시 한다.

  25. 20.3 명령어 처리 • 첫번째 숫자(명령의 상태) • 1y^z(긍정적 예비 응답) • 2y^z(긍정적 완료 응답) • 3y^z(긍정적 중간 응답) • 4y^z(임시 부정적 완료 응답) • 5y^z(영구적 부정적 완료 응답)

  26. 20.3 명령어 처리 • 두 번째 숫자(명령의 상태) • x0y : 문법 • x1y : 정보 • x2y : 연결 • x3y : 인증 및 계정 • x4y : 미지정 • x5y : 파일 시스템

  27. 20.3 명령어 처리 Code Description Positive Preliminary Reply 120 Service will be ready shortly 125 Data connection open; data transfer will start shortly 150 File status is OK; data connection will be open shortly • 세번째 숫자(추가정보 제공) • 응답

  28. 20.3 명령어 처리 Positive Completion Reply 200 Command OK 211 System status or help reply 212 Directory status 213 File status 214 Help message 215 Naming the system type(operating system) 220 Service ready 221 Service closing 225 Data connection open 226 Closing data connection 227 Entering passive mode; server sends its IP address and port number 230 User login OK 250 request file action OK

  29. 20.3 명령어 처리 Positive Intermediate Reply 331 User name OK; password is needed 332 Need account for logging 350 The file action is pending; more information needed Transient Negative Completion Reply 425 Cannot open data connection 426 Connection closed; transfer aborted 450 File action not taken; file not available 451 Action aborted; local error 452 Action aborted; insufficient storage

  30. 20.3 명령어 처리

  31. 20.4 FILE TRANSFER

  32. 20.4 파일 전송 • 파일 전송 • 제어 연결에서 전송되는 명령의 제어 하에서 데이터 연결을 통해 수행 된다.

  33. 20.4 파일 전송 Example 1 Figure 20.8 shows an example of using FTP for retrieving a list of items in a directory.

  34. 20.4 파일 전송 • 예제 1

  35. 20.4 파일 전송 • 항목들의 목록을 검색하기 위한 예 • 포트 21에 대한 연결을 생성한 후, FTP 서버는 제어 연결로 220(서비스 준비됨)응답을 송신한다. • 클라이언트는 USER명령을 보낸다. • 서버는 331(사용자이름 OK, 패스워드 요구)을 응답한다. • 클라이언트는 PASS 명령을 보낸다. • 서버는 230(사용자 로그인 OK)을 응답한다. • 클라이언트는 임시 포트로 수동적 설정을 하고 서버에 이 포트 번호를 보내기 위해 PORT 명령을 (제어 연결로) 보낸다. • 서버는 연결을 설정하지 않으나, 클라이언트로부터 받은 임시 포트와 포트 20(서버측) 사이에 데이터 연결을 위한 능동적 설정을 시도하기 위해 스스로 준비 한다.

  36. 20.4 파일 전송 8. 클라이언트는 LIST 메시지를 전송한다. 9. 서버는 125로 응답하고, 데이터 연결을 설정한다. 10. 서버는 데이터 연결로 파일 혹은 디렉토리의 목록을 (파일로서) 전송한다. 모든 목록(파일)이 전송되면, 서버는 제어 연결로 226(데이터 연결 해제)를 응답한다. 11. 클라이언트는 QUIT 명령을 전송한다. 12. 서버는 QUIT 명령을 받은 후, 221(서비스 종료)로 응답하고 제어연결을 해제한다.

  37. 20.4 파일 전송 Example 2 Figure 20.9 shows an example of how an image (binary) file is stored.

  38. 20.4 파일 전송 • 예제 2

  39. 20.4 파일 전송 • 화상(2진) 파일을 저장하는 방법의 예 • 포트 21에 대한 제어 연결이 생성된 후, FTP 서버는 220 (서비스 준비됨)응답을 제어 연결로 보낸다. • 클라이언트는 USER 명령을 보낸다. • 서버는 331(사용자 이름 OK, 패스워드 요구)로 응답한다. • 클라이언트는 PASS 명령을 보낸다. • 서버는 230(사용자 로그인 OK)으로 응답한다. • 클라이언트는 임시 포트로 수동적 설정을 시도하고, 이 포트 번호를 서버에게 보내기 위해 PORT 명령을 (제어 연결) 전송한다. • 서버는 연결을 설정하지 않으나, 클라이언트로부터 받은 임시 포트와 포트 20(서버측) 사이에 데이터 연결을 위한 능동적 설정을 시도하기 위해 스스로 준비 한다.

  40. 20.4 파일 전송 8. 클라이언트는 TYPE 명령을 보낸다. 9. 서버는 응답 200 (명령 OK)으로 응답한다. 10. 클라이언트는 STRU 명령을 보낸다. 11. 서버는 200 (명령 OK)으로 응답한다. 12. 클라이언트는 STRU 명령을 보낸다. 13. 서버는 데이터 연결을 열고 메시지 250을 보낸다. 14. 클라이언트는 데이터 연결로 파일을 전송 한다. 전체 파일이 전송된 후 데이터 연결을 해제한다. 15. 서버는 응답 226을 제어 연결로 전송한다. 16. 클라이언트는 QUIT 명령을 전송한다. 17. 서버는 221 (서비스 종료)로 응답하고 제어 연결을 닫는다.

  41. 20.5 USER INTERFACE

  42. 20.5 사용자 인터페이스 • 사용자 인터페이스 • FTP의 서비스를 받기 위한 사용자 편의적 인터페이스를 제공한다. • 인터페이스가 적절한 입력을 물어본다. • 사용자가 한 라인의 입력 • FTP 인터페이스가 이에 일치하는 FTP 명령으로 반환한다. • FTP의 명령은 축약될 수 있다.

  43. 20.5 사용자 인터페이스 Example 3 We show some of the user interface commands that accomplish the same task as in Example 1.

  44. 20.5 사용자 인터페이스 Solution %ftp challenger.atc.fhda.edu Connected to challenger.atc.fhda.edu 220 Server ready Name:forouzan Password:xxxxxxx ftp >ls /usr/user/report 200 OK

  45. 20.5 사용자 인터페이스 Solution 150 Opening ASCII mode ........... 226 transfer complete ftp >close 221 Goodbye ftp >quit

  46. 20.6 ANONYMOUS FTP

  47. 20.6 익명 FTP • AnonymousFTP • FTP를 사용하기 위해 계정과 패스워드가 필요하다. • 공개된 접근을 하기 위해서는 계정이나 패스워드가 필요하지 않다. • 익명의 접근을 위해서 대부분 “anonymous”의 사용자 이름을 사용한다. • 익명의 접근은 사용자 액세스를 매우 제한한다.

  48. 20.6 익명 FTP Example 4 We show an example of using anonymous FTP. We assume that some public data are available at internic.net.

  49. 20.6 익명 FTP Solution % ftp internic.net Connected to internic.net 220 Server ready Name:anonymous 331 Guest login OK, send “guest” as password Password:guest ftp >pwd 257 ’/’ is current directory

  50. 20.6 익명 FTP Solution ftp >ls 200 OK 150 Opening ASCII mode bin … ftp> close 221 Goodbye ftp> quit

More Related