FTP, ftp   File Transfer Protocol   화일전송프로토콜

(2015-12-26)
1. FTP

  ㅇ 로컬 유닉스 시스템과 원격 유닉스 시스템 사이에서 화일을 복사하는 프로토콜


2. FTP 특징인터넷 프로토콜 초기부터 사용되기 시작
   ㅇ 사용자 인증, 데이타의 전환, 디렉토리 검색 등과 같은 많은 기능 및
      선택사항을 제공
   ㅇ 표준 RFC 959 에 그 자세한 내용이 기술되어있음

   ㅇ 기타관련용어 :  Anonymous FTP,  TFTP


3. FTP의 동작방식

   ㅇ 동작 구조 
      - 클라이언트/서버 관계를 이루며 동작

   ㅇ 2개의 TCP 연결 종류
      - (하나는 명령어의 전달용, 다른 하나는 데이터의 전송용)

      ① 제어 연결   : 전체 FTP 세션 동안 상시 연결 유지 (ControlChannel)
         . 명령과 응답 방식으로 동작
         . 각 한 줄로 이루어지며, 그 끝은 `CR+LF`로 끝남
      ② 데이터 연결 : 파일 전송시 마다, 연결 설정되고 바로 폐쇄됨 (DataChannel)
         . 전송되는 데이터 형태가 `파일 종류`,`데이터 구조`,`전송 모드` 마다 달라짐
            .. 파일 종류   : ASCII 파일 형태, EBCDIC 파일 형태, 2진 파일 형태(비트 흐름)
            .. 데이터 구조 : 연속적인 바이트 구분, 레코드 구분, 페이지 구분
            .. 전송 모드   : 스트림 모드, 블록 모드, 압축 모드
                (한편, MS 윈도우용 FTP 서버 버젼은 스트림 모드 만 지원)
         . 이들은 클라이언트측에서 정하게 됨
         
      * 포트 번호
         . 제어정보 전달 => TCP 21번 (반이중 방식 연결)
         . 데이타 전달 => TCP 20번 (전이중 방식 연결)

  ㅇ 연결 모드 구분
     - Active 모드  (서버쪽에서 클라이언트로 접속 : 클라이언트가 능동적 포트 결정)
        . 클라이언트가 1024번 이상의 임시 포트 N(ControlChannel)에서 서버의 21번 포트로의
          제어 연결 접속하면,
        . 서버는 20번 포트(DataChannel)에서 클라이언트의 N+1 포트로의 데이터 연결 구축
        . (클라이언트측에서 PORT 명령 전송)
     - Passive 모드 (클라이언트쪽에서 서버로 접속 : 클라이언트에게 수동적 포트로 주어짐)
        . 클라이언트가 1024번 이상의 임시 포트 N(ControlChannel)로 서버의 21번 포트제어 연결 접속하면,
        . 서버가 1024번 이상의 정해진 포트 번호(DataChannel)를 클라이언트에 알려주고,
        . 클라이언트는 N+1 포트(DataChannel)에서 서버가 알려준 해당 포트로의 데이터 연결
        . (클라이언트측에서 PASV 명령 전송)  


4. 제어 연결에서 명령어 구분접근제어 명령어
     - 例) USER, PASS, ACCT, REIN, QUIT, ABOR
  ㅇ 파일 관리 명령어
     - 例) CWD, CDUP, DELE, LIST, NLIST, MKD, PWD, RMD, RNFR, RNTO, SMNT
  ㅇ 전송 데이터 형태 정의 명령어
     - 例) TYPE(A, E,I, N, T), STRU(F, R, P), MODE(S, B, C)
  ㅇ 포트 정의 명령어
     - 例) PORT, PASV
  ㅇ 파일 전송제어 명령어
     - 例) RETR(파일 읽기 : 서버클라이언트), STOR(파일 저장 : 클라이언트서버),
           APPE, STOU, ALLO, REST, STAT 
  ㅇ 기타 부가적인 명령어
     - 例) HELP, NOOP, SITE, SYST

  ※ [참고_웹] ☞ FTP: File Transfer Protocol (FTP 실제 동작 이해에 도움)


5. FTP 보안 강화

  ㅇ FTPS (FTP over SSL/TLS secured channel)
     - 응용계층 FTP와 전송계층 TCP 사이에 보안 소켓계층(SSL)을 추가하여 사용하는 형태
        . SSH 보안 채널 위에서 동작하는 구형 FTP 프로토콜
        . FTPS 포트 : 990 (ControlChannel), 989 (DataChannel)

  ㅇ SFTP (SSH File Transfer Protocol)
     - SSH 프로토콜 일부인 SSH 응용요소로써, 쌍방향 파일 전송을 위한 인터페이스 명령어 
       세트를 사용하는 형태
        . FTP와는 완전히 다르고, 독립된 파일 전송 어플리케이션로써 SFTP
        . SFTP 포트 : SSH가 22번 사용


[FTP] 1. FTP 2. Anonymous FTP 3. TFTP,tftp

 
        최근수정     요약목록     참고문헌