FTP(File Transfer Protocol)는 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에서 제공하는 표준 메커니즘이다.
호스트 간 다른 파일 이름 규칙, 텍스트 및 데이터 표현 방식, 디렉토리 구조가 다른 문제를 FTP로 해결이 가능하다.
FTP는 TCP를 사용한다.
두 개의 TCP 연결이 필요하다.
Well known Port 21번은 FTP의 Control Connection에 사용된다.
20번 Port는 FTP의 Data Connection에 사용된다.
Passive open이란? : 연결요청을 수용하기 위해 수동적으로 포트를 열고 있는 상태.
Active open이란? : 연결요청을 위해 능동적으로 포트를 열고 있는 상태.
클라이언트가 임시 포트를 통해 passive open을 실행한다.
클라이언트가 PORT 명령을 통해 해당 임시 포트 번호를 서버에 전송한다.
서버는 포트 번호를 수신하고 20번 포트와 전달받은 임시 포트 번호를 사용하여 Active open 실행한다.
FTP는 TELNET 및 SMTP와 동일한 접근 방식을 사용한다.
커뮤니케이션은 command와 response를 통해 이루어진다.
Data Connection을 통해 파일을 전송한다.
클라이언트는 전송할 파일 유형, 데이터 구조, 전송 모드를 정의해야 한다.
FTP는 Control Connection을 사용하여 클라이언트 제어 프로세스와 서버 제어 프로세스 간의 통신을 설정한다.
통신하는 동안 명령은 클라이언트에서 서버로 전송되고, 응답은 서버에서 클라이언트로 전송된다.
Access Commands
File management commands
data formatiting commands
Port defining commands
File transfer commands
Miscellaneous commands
Response
파일 전송은 Control Connection을 통해 전송된 후, Data Connection을 통해 발생한다.
서버에서 클라이언트로 파일을 복사(다운로드)
클라이언트에서 서버로 파일을 복사(업로드)
디렉터리 및 파일 이름 목록이 서버에서 클라이언트로 전송
FTP 프로토콜의 모든 기능이 필요하지 않아 단순히 파일을 복사해야 하는 경우
즉, 파일을 빠르게 복사하는 프로토콜이다.
FTP와 달리, UDP를 사용하며 69번 포트 번호를 사용한다.
RRQ(Read Request) : 파일 읽기 요청
WRQ(Write Request) : 파일 쓰기 요청
TFTP는 보안에 문제가 되지 않는 기본 파일 전송에 유용하다.
DHCP와 함께 사용된다.
적은 양의 메모리만 필요로 하며, UDP 및 IP 서비스만 사용한다.
전원이 켜진 기기는 DHCP 클라이언트를 사용하여 DHCP 서버에서 구성 파일의 이름을 가져온다.