인터넷을 통해 파일을 배포하는 서비스는 주로 FTP(File Transfer Protocol, 파일 전송 프로토콜)를 사용합니다. FTP는 TCP/IP를 기반으로 서버와 클라이언트 사이의 파일 전송을 제공합니다. 아주 오래 전에 개발된 프로토콜이지만 지금도 인터넷에서 사용됩니다.
클라이언트가 서버의 특정 포트로 요청하면 서버가 이를 처리하고 클라이언트에게 처리 결과를 제공하는 다른 네트워크 서버와 달리 FTP에는 클라이언트와 서버 사이에 서비스 요청 및 결과 통보를 알리기 위한 명령 포트와 실제로 파일을 전송 포트가 존재합니다.
FTP의 동작 원리도 다소 복잡합니다. 그림에서 일반적인 작동 방식인 액티브 모드를 소개합니다.
<그림 FTP액티브 모드>
FTP 액티브 모드는 인터넷 초창기 FTP가 처음 고안되었을 때는 효과적이었을지 모르나 네트워크 서비스의 보안이 강조되는 지금 사용하기에는 문제가 있습니다. 서버가 클라이언트에 접속을 시도하기 때문에 클라이언트의 방화벽이 서버의 접근을 차단하면 FTP가 정상적으로 동작하지 않기 때문입니다.
이를 해결하기 위한 방법이 그림 7-32의 FTP 패시브 모드입니다.
<그림 FTP 패시브모드>
패시브 모드로 동작하기 위해서는 FTP 서버와 클라이언트 양쪽에서 패시브 모드를 지원해야 합니다. FTP 서버와 클라이언트 대부분이 패시브 모드를 지원합니다.