FTP(file transfer protocol)
서버와 클라이언트 사이에서 TCP/IP를 통해 파일을 송수신하기 위해 고안된 프로토콜
FTP는 TCP/IP 프로토콜 테이블의 응용 계층에 속한다.
clinet: 전송을 시작하는 쪽 (원격에서 혹은 원격으로)
server: 원격 호스트
login & password
FTP process model
control connection: 세션 내내 지속한다.
data connections: 필요할때마다 생성될 수 있다.
FTP client는 TCP를 사용해서 21번port에서 FTP server와 접촉한다.
client가 control connection을 통해 인증받는다.
client는 remote 디렉토리를 탐색하기도하고, control connection을 통해서
명령어를 보낸다.
sever가 file 전송 명령을 받으면, server는 client로 두번째 TCP data연결을 연다(파일용)
한파일을 전송한후, 서버는 data connection을 닫는다.
서버는 다른 파일을 보내기 위해 또다른 TCP data connection을 연다.
control connection: out of band -> data 연결과 별도의 연결로 제어(인증)하는 것을 말한다.
FTP server는 상태를 유지한다: 최근 directory와 이전 인증
USER: username
PASS:password
LIST:현재 디렉토리에서 list를 반환
RETR:file 검색
STOR:remote host로 file 저장
1XX - 긍정적으로 미리 답변
ex) 125 data connection already open, transfer starting
2XX - 긍정적인 완료 답변
3XX - 긍정 중간 답변
ex) 331 Username OK,password required
4XX - 일시적으로 부정적인 완료 답변
ex) 425 Can't open data connection
452 Error writing file
5XX,6XX