기술면접

FTP 모드

우끼우끼몽키 2017. 10. 15. 16:08

FTP는 TCP 기반으로 Command port(21), Data port(20)를 사용한다. (Data Port는 Active Mode 에서만 사용)

 

FTP Active Mode 

Command 포트를 통해 클라이언트가 보내준 정보를 바탕으로, 서버가 클라이언트의 data 포트에 접속하여, 데이터를 송수신. 

  1. 클라이언트는 사용되지 않는 랜덤한 포트 ( n > 1023 )를 통해 FTP 서버의 Command 포트(21)로 접속

  2. 클라이언트는 포트번호에 1을 더한 (n+1) 포트 정보를 전송하며, (n+1)포트로 FTP 서버의 접속을 대기

  3.  FTP 서버는 data 포트(20)를 클라이언트의 (n+1) 포트로 접속

  4. 데이터 송수신  


FTP Passive Mode (PASV)  

클라이언트는 Command 포트 접속과 더불어, 서버의 data 포트로 접속하여 데이터를 송수신. 

  1. 클라이언트는 사용되지 않는 랜덤한 포트 ( n > 1023 )를 통해 FTP 서버의 Command 포트(21)로 접속

  2. 서버는 사용되지 않는 랜덤한 포트( p > 1023 )을 열어두고, 클라이언트에 포트정보를 전송

  3. 클라이언트는 자신의 n+1 포트를 서버의 p포트로 접속

  4. 데이터 송수신  


Active Mode의 접속 문제는 대부분 클라이언트에서 발생한다.

클라이언트의 방화벽은 FTP 서버가 클라이언트의 특정 포트에 접속하는 것을 침입자로 간주하여 차단하는 경우도 있다. 

때문에 클라이언트의 방화벽이 열려있어야 한다. 


Passive Mode는 위의 방화벽 문제를 해결한다. 

서버는 클라이언트의 접속을 위한 포트 전체를 열어 두어야 하기 때문에, 많은 포트가 필요하다.

또한 클라이언트가 서버로 접속하기 때문에, 보안상으로 더 위험하다. 


'기술면접' 카테고리의 다른 글

malloc/free new/delete 차이점  (0) 2017.10.15