공부/IT

FTP(File Transfer Protocol)란?

콩당콩당Sarah 2015. 1. 16. 17:16

FTP(File Transfer Protocol)


FTP는 TCP/IP 프로토콜을 통해 서버와 클라이언트 간에 파일을 전송하기 위한 프로토콜이다

즉 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었다.


FTPS: FTP 프로토콜과 TLS 프로토콜이 결합한 형태

SFTP: FTP 프로토콜과 SSH 프로토콜이 결합한 형태


FTP와 FTPS는 보통 21번 포트를 사용하고 SFTP는 보통 22번 포트를 쓴다.

FTPS와 SFTP는 보안 전송이라는 특성상 FTP 보다 파일 전송 속도가 느리다.


FTP에는 제어 채널과 전송 채널이 있다전송 채널은 20(FTP-data-port) 포트를 사용하고 제어 채널은 21(FTP-port) 포트를 사용한다


FPT는 다른 서비스들과는 다르게 Active mode와 Passive mode가 존재한다.


1. FTP Active Mode 동작 방식



(1) 클라이언트가 서버의 command(21번) 포트로 접속

(2) 서버 -> 클라이언트 ACK

(3) 서버는 data(20번) 포트를 이용해 클라이언트로 접속 

(4) 클라이언트 -> 서버 ACK


- 문제점: 보통의 TCP/IP는 클라이언트가 서버에 접속을 시도하는 반면 Active mode의 FTP는 

반대로 서버가 클라이언트에 접속을 시도하기 때문에 클라이언트의 네트워크로 

접속이 허용되어 있지 않다면(방화벽 등) 3번째 이후의 작업이 진행되지 않아 FTP 접속은 되지만 

데이터 목록을 받아오지 못하는 에러가 발생한다.


- Active mode의 제어 채널: 클라이언트 -> 서버:21번 포트 

- Active mode의 전송 채널: 서버:20번 포트 -> 클라이언트



2. FTP Passive Mode 동작 방식



(1) 클라이언트가 서버의 command(21번) 포트로 접속

(2) 서버 -> 클라이언트 ACK / data(3267번) 포트를 알려줌

(3) 클라이언트는 data(3267번) 포트를 이용해 서버로 접속 

(4) 서버 -> 클라이언트 ACK


- 문제점: 두번째 data 포트를 20번을 사용하지 않고 동적 포트(1024번 이후)를 랜덤으로 사용한다. 

따라서 이를 이용하면 Active 모드의 문제점은 해결이 되지만 서버의 동적 포트를 

전부 열어두어야 하는 보안상의 문제점이 발생한다.


- Passive mode의 제어 채널: 클라이언트 -> 서버:21번 포트 

- Passive mode의 전송 채널: 클라이언트 -> 서버:임의의 포트




출처: https://mirror.enha.kr/wiki/FTP

  http://mintnlatte.tistory.com/407