파일 전송 프로토콜 (File Transfer Protocol)
FTP(File Transfer Protocol)는 네트워크 상에서 파일을 전송하기 위한 표준 프로토콜이다.
TCP/IP 네트워크에서 서버와 클라이언트 간 파일을 업로드하거나 다운로드하는 데 사용되며 특히 대용량 파일을 전송하거나 디렉터리 구조를 관리하는 데 적합하다.
FTP의 주요 포트 번호
1. 제어 포트 (Command Port) :
- 21번 포트를 사용하여 클라이언트와 서버 간 명령어를 주고 받는다. (전송 제어)
- 인증과 파일 전송 명령은 21번 포트에서 처리
2. 데이터 포트 (Data Port) :
- 20번 포트를 사용하여 파일데이터를 전송한다.
- 데이터 전송 방법(활성 모드 또는 수동 모드)에 따라 포트 번호가 다르게 동작할 수있다.
FTP의 두 가지 모드
- FTP는 두 가지 모드로 작동하며, 모드에 따라 데이터 전송 방식이 달라진다.
1. 활성 모드 (Active Mode)
- 클라이언트는 서버로 PORT 명령어를 보내면서 데이터 연결에 사용할 포트를 지정한다.
- 서버는 명령을 확인하고, 클라이언트의 요청에 OK 응답을 보낸다.
- 서버는 자신의 데이터 포트(20번)를 사용하여 클라이언트의 지정 포트로 데이터 채널을 생성한다.
- 연결된 데이터 채널을 통해 파일 데이터를 전송한다.
2. 수동 모드 (Passive Mode)
- 클라이언트는 서버로 PASV 명령어를 보내 수동 모드로 전환을 요청한다.
- 서버는 데이터 전송에 사용할 포트를 지정하고, 이 포트를 클라이언트에게 반환한다.
- 클라이언트는 서버가 반환한 포트로 연결을 열고, 데이터 채널을 생성한다.
- 연결된 데이터 채널을 통해 파일 데이터를 전송한다.
3. 두 가지 모드의 주요 차이점 비교
구분 | 활성 모드 (Active Mode) | 수동 모드 (Passive Mode) |
연결 방식 | 서버가 클라이언트에 데이터 연결 시도 | 클라이언트가 서버에 데이터 연결 시도 |
방화벽 문제 | 방화벽 환경에서 작동이 어려움 | 방화벽 환경에서 더 안정적 |
데이터 포트 | 클라이언트가 지정한 포트로 연결 | 서버가 지정한 포트로 연결 |