제임스딘딘의
Tech & Life

개발자의 기록 노트

[네트워크] FTP 프로토콜의 Active/Passvie 모드

제임스-딘딘 2012. 5. 16. 17:21

FTP는 명령어 커넥션과 데이터 커넥션이 다른 포트를 사용함.

데이터 커넥션의 접속 방식에 따라 Active/Passive 2가지 방식이 있다.

 

 

- Active Mode

*데이터 커넥션을 서버에서 클라이언트로 접속하는 방식

클라이언트가 서버의 21번 포트로 접속,

데이터 전송을 위한 별도의 포트를 추가로 하나 생성 후 그 번호를 서버에게 알려줌.

서버는 20번 포트를 클라이언트에게서 넘겨받은 포트로 연결한다.

(이때 클라이언트 네트웤 환경에 방화벽이나 공유기 등에서 그 임의의 포트로 접근하는 것이 막혀있을 경우 데이터 전송을 위한 연결이 이루어지지 않는다. 그래서 접속은 되나 파일 목록 표시가 안됨.)

 

 

- Passive Mode

*데이터 커넥션을 클라이언트에서 서버로 접속하는 방식

클라이언트가 서버의 21번 포트로 접속.

서버가 데이터 전송을 위한 임의의 포트를 클라이언트에게 하나 알려줌.

그럼 클라이언트는 데이터 전송을 위해 서버로부터 받은 그 포트로 접속을 함.

서버에서 그 임의의 포트를 외부에서 접속할 수 있게 오픈(포트포워딩 등) 해 두어야 함.

보통은 포트 1개가 아닌 여러개 (범위)를 오픈해 둔다. 여러 사용자가 동시 접속하는 경우가 있으므로.

 

(편의상 FTP 포트는 21번 포트라고 표시함)