FTP

From CS Wiki
File Transfer Protocol

파일을 주고 받기 위해 사용되는 대표적인 프로토콜

  • OSI 계층상에서 7Layer(애플리케이션 계층)에 위치한다.

사용 포트[edit | edit source]

  • 제어 포트: 21번
  • 데이터 전송용 포트
    • 액티브 모드인 경우: 20번
    • 패시브 모드인 경우: 1024번 이상의 임의의 포트

두가지 모드[edit | edit source]

Active Mode Passive Mode
FTP 액티브 모드.png FTP 패시브 모드.png
  1. 클라이언트는 서버의 21번 포트로 접속
  2. 자신이 사용할 두 번째 포트를 서버 알림
  3. 서버는 클라이언트의 요청에 응답
  4. 서버의 20번 데이터 포트는 클라이언트가 알려준 두 번째 포트로의 접속 시도
  5. 클라이언트가 서버의 요청에 응답
  1. 클라이언트는 서버의 21번 포트로 접속
  2. 서버는 통신에 사용할 두 번째 포트를 클라이언트 알림
  3. 클라이언트는 다른 포트를 열어 서버가 알려준 포트로 접속 시도
  4. 서버가 클라이언트의 요청에 응답
  • 디폴트는 active 모드이며, passive 모드로의 변경은 FTP 클라이언트가 결정한다.
  • active 모드의 경우 서버가 클라이언트에 접속을 해야 하는 문제가 있어 클라이언트의 inbound를 열어야 하는 문제
  • passive 모드의 경우 임의의 포트가 사용되어 서버에서 여러 포트의 방화벽을 열어야 하는 문제

FTP 명령어[edit | edit source]

  • ABOR : 현재 전송 중인 파일 전송 중단
  • CWD : 작업 디렉터리 변경
  • DELE : 원격지 파일 삭제
  • LIST : 원격지 파일 목록
  • MDTM : 파일의 수정 시간 확인
  • MKD : 원격 디렉토리 생성
  • MODE : 전송 모드 변경
  • NLST : 원격 디렉터리 목록
  • PASV : Passive모드로 변환
  • PORT : data 포트 열기
  • PWD : 작업 디렉토리 표시
  • QUIT : 연결 종료
  • RETR : 원격지 파일 가져오기
  • RMD : 원격지 디렉터리 제거
  • SIZE : 파일 사이즈 리턴
  • STOR : 원격지 파일 저장
  • USER : 사용자명 전송

FTP 전송 로그[edit | edit source]

보안 고려사항[edit | edit source]

TFTP[edit | edit source]

자체 디스크가 없는 OS에서 부팅에 필요한 데이터를 가져오기 위한 간소화된 FTP