Linux | FTP_1_개요
FTP (File Transfer Protocol) : TCP/IP 네트워크(인터넷) 상의 장치가 파일을 전송할 때 사용하는 규칙
1. 원리
- FTP는 클라이언트-서버 프로토콜이므로 클라이언트가 요청 시 서버가 파일을 제공함 -> 두 개의 기본 채널이 필요함
1) Command(명령) 채널: 명령을 시작해 어떤 파일에 액세스할 것인지 등과 같은 기본 정보를 전달함
2) Data(전송) 채널: 두 장치 간에 파일 데이터를 전송함
- 연결을 설정하려면 사용자가 FTP 서버 로그인 정보를 제공해야 하는데, 일반적으로는 21번 포트를 기본 통신 모드로 사용함. '포트'란 네트워크를 통한 정보 트랜잭션을 식별하는 데 사용되는 번호를 말함.
2. 연결 모드
1) Active mode : 클라리언트가 data 전송 포트 결정, 클라이언트의 포트가 모두 열려있어야 함
- 명령 포트 : 21번
- 전송 포트 : 20번
- 통신 과정 : 클라이언트가 21번 포트에 접속 -> 클라이언트가 data 포트로 사용할 포트 알려줌 -> 서버 응답 -> 서버의 20번 포트 가 클라이언트가 알려준 포트로 접속 시도 -> 클라이언트가 서버의 요청에 응답
=> 클라이언트가 서버에 접속하는 것이 아니라 서버가 클라이언트에 접속하는 방식
=> 서버가 아닌 클라이언트가 방화벽 등의 보안을 모두 해제해야 하는 불편함이 있음
=> 주로 Passive mode 사용
2) Passive mode
- 지정하지 않을 경우 1024~65535번 사이의 임의의 포트 사용
- 통신 과정 : 클라이언트가 커맨드 포트에 접속 -> 서버가 클라이언트에게 data 포트로 사용할 포트 알려줌 -> 클라이언트가 다른 포트를 열어 서버의 data 포트로 접속 시도 -> 서버가 클라이언트의 요청에 응답