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

(2023-10-19)

1. FTP (File Transfer Protocol)

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

   ㅇ [기타참고용어]  :  Anonymous FTP,  TFTP


2. FTP의 특징인터넷 프로토콜 초기부터 사용되기 시작
      - 사용자 인증, 데이타의 전환, 디렉토리 검색 등과 같은 많은 기능 및 선택사항을 제공
   ㅇ 동작 구조 
      - 클라이언트/서버 관계를 이루며 동작
   ㅇ 표준 : RFC 959 에 그 자세한 내용이 기술되어있음


3. FTP의 동작 구분

   ㅇ 2개의 TCP 연결을 생성하며, 서로다른 용도로 사용
      * (하나는 명령어의 전달용 : FTP-CONTROL, 다른 하나는 데이터전송용 : FTP-DATA)

      - ① 제어 연결   : 전체 FTP 세션 동안 상시 연결 유지 (ControlChannel, FTP-CONTROL)
         . 명령과 응답 방식으로 동작
         . 각 한 줄로 이루어지며, 그 끝은 `CR+LF`로 끝남
         . 제어정보 전달용 => 포트 번호 : TCP 21번 (반이중 방식 연결)

      - ② 데이터 연결 : 파일 전송시 마다, 연결 설정되고 바로 폐쇄됨 (DataChannel, FTP-DATA)
         . 전송되는 데이터 형태가 `파일 종류`,`데이터 구조`,`전송 모드` 마다 달라짐
            .. 파일 종류   : ASCII 파일 형태, EBCDIC 파일 형태, 2진 파일 형태(비트 흐름)
            .. 데이터 구분 : 연속적인 바이트 구분, 레코드 구분, 페이지 구분
            .. 전송 모드   : 스트림 모드, 블록 모드, 압축 모드
                (한편, MS 윈도우용 FTP 서버 버젼은 스트림 모드 만 지원)
         . 이들은 클라이언트측에서 정하게 됨
         . 데이터 전달용 => 포트 번호 : TCP 20번 (전이중 방식 연결)
         
  ㅇ 2개의 연결 모드 구분
     - Active 모드  :  (서버쪽에서 클라이언트로 접속 : 클라이언트가 능동적 포트 결정)
        . 클라이언트가 1024번 이상의 임시 포트 N(ControlChannel)으로,
        . 서버의 21번 포트로의 제어 연결 접속하면,
        . 서버자심의 20번 포트(DataChannel)로부터 클라이언트의 N+1 포트로의 데이터 연결 구축
        . (클라이언트측에서 PORT 명령 전송)

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


4. FTP의 명령어 구분 (제어 연결에서)접근제어 명령어
     - 例) 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  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"