FTP란?
FTP란 File Transfer Protocol의 약자로, 파일 전송 프로토콜을 말한다.
HTTP와 마찬가지로 TCP/IP 모델의 응용 계층(Layer 4)에 속한 프로토콜이며,
네트워크를 통한 클라이언트와 서버 간 파일 전송을 위한 프로토콜이다.
File Transfer
FTP를 통해 파일을 전송할 때는 먼저 클라이언트가 서버의 21번 포트로 연결 요청을 보내고,
21번 포트를 통해 서버와 연결되면 다시 다른 포트로 연결하여 데이터를 주고 받게 된다.
이 때 서버에서 지정한 포트 번호로 클라이언트가 연결해 데이터를 보내면 Active Mode(능동 모드),
클라이언트가 자신의 포트 번호를 보내 서버에서 해당 포트로 데이터를 보내면 Passive Mode(수동 모드)이다.
각각의 과정을 좀 더 자세히 알아보자.
Active Mode
능동 모드에서는 클라이언트가 21번 포트를 통해 서버에 연결을 요청할 때 데이터를 주고 받을 포트 번호를 넘겨준다.
이 때 연결이 성공하면 서버는 클라이언트에게 OK 신호를 보내고, 넘겨받은 포트 번호로 클라이언트에 연결한다.
새로운 포트를 통해 서버와 클라이언트가 다시 연결되면 이 때 파일을 주고 받는다.
하지만 이 방식은 서버가 클라이언트에 연결을 요청하기 때문에, 클라이언트의 방화벽이나 공유기가 클라이언트에 접속하려는 서버를 차단할 수 있어 연결이 안되거나 데이터 전송이 실패할 수 있다.
Passive Mode
수동 모드에서는 클라이언트가 서버의 21번 포트를 통해 연결 요청을 보내면,
서버에서 연결 가능한 포트 번호를 넘겨주게 된다.
클라이언트는 넘겨받은 포트 번호로 서버에 연결한 뒤 데이터를 주고 받는다.
수동 모드는 능동 모드와는 반대로 연결이 실패할 가능성이 적지만,
서버의 모든 포트를 열어놓아야 하기 때문에 보안에 취약하다는 단점이 있다.
'Computer Science > Network' 카테고리의 다른 글
Electronic Mail (SMTP, POP3, IMAP / MIME) (0) | 2020.07.17 |
---|---|
HyperText Transfer Protocol (HTTP) (0) | 2020.07.15 |
OSI Model & TCP/IP Model (0) | 2020.06.30 |