FTP Active, Passive 모드 차이(하나의 통신에 두 개 이상의 세션이 사용 되는 경우)

네트워크/L4 2025. 5. 12. 15:45

 

[IT 엔지니어를 위한 네트워크 입문] 을 읽고 작성한 글입니다.

하나의 통신에  두 개 이상의 세션이 사용될 때의 고려사항

현대 프로토콜은 하나의 통신에 한 개의 세션만 사용하는게 일반적이지만, 특별한 목적을 위해 두 개 이상의 세션을 만드는 경우가 있다. 서로 다른 두 세션이 하나의 통신을 위해 사용되고 있다는 것을 세션 장비도 파악해야 한다. 

 

프로토콜은 데이터 프로토콜 컨트롤 프로토콜로 구분할 수 있다. 데이터 프로토콜은 데이터를 실어 나르고 컨트롤 프로토콜은 잘 전송되도록 세션을 제어한다. 현대 프로토콜은 하나의 프로토콜에서 헤더나 별도 메세지로 해결하지만, 특별한 목적이나 오래된 프로토콜은 두 프로토콜이 분리되어있다. 가장 대표적인 프로토콜: FTP(File Transfer Protocol)

FTP 프로토콜은 데이터 프로토콜과 컨트롤 프로토콜이 완전히 분리되어 있고 통신 방법이 다른 두 가지 모드를 가지고 있다. Active 방식과 Passive 방식이 있으며 기본적인 구동 방식은 Active 모드이다. (Filezila나 FTP 서비스를 이용할 때 방식 설정에서 Active, Passive 방식이 있어서 뭔 차이인지 궁금했는데 이 책을 통해 차이점을 알 수 있게되었다.)

  • Active 모드 
    • 명령어를 전달하는 컨트롤 프로토콜과 데이터를 전달하는 데이터 프로토콜이 분리, 반대로 동작 
    • 일반적인 클라이언트-서버 동작과 달리 컨트롤 프로토콜은 클라이언트에서 서버로 통신을 시작하지만 데이터 프로토콜은 서버에서 클라이언트 쪽으로 데이터를 푸시한다. 

FTP Active

  1. 클라이언트가 FTP 서버에 접속. 클라이언트는 1023번 이상의 TCP 포트 사용, 서버는 TCP 21번 포트 사용
  2. 클라이언트가 서버에 데이터를 1025번 포트를 사용해 수신하겠다고 알림. (1. "Port 1025")
  3. 서버는 클라이언트에 1025번 포트를 사용해 송신하겠다고 응답 (2. "OK")
  4. 서버에서 데이터를 보냄, 클라이언트에서 응답하고 데이터를 수신 (3. DATA CHANNEL, 4. "OK")
  • Passive 모드
    • Active 모드의 단점을 보완하기 위해 만들어짐 
    • Active 모드의 가장 큰 문제는 컨트롤 프로토콜과 데이터 프로토콜의 방향이 반대. Passive 모드는 두 프로토콜이 분리되어 있는 것은 같지만 클라이언트에서 서버쪽으로 데이터를 요청해 다운받도로고 동작한다. 

FTP Passive

  1. 클라이언트가 FTP 서버에 접속. 클라이언트는 1023번 이상의 TCP 포트 사용, 서버는 TCP 21번 포트 사용 (Active와 동일)
  2. 클라이언트가 Passive 모드를 사용하겠다고 알림 (1. "PASV")
  3. 서버는 클라이언트에 데이터 수신에 사용할 포트를 알림. 2024번 포트를 사용해 수신하겠다고 응답 (2. "OK 2024")
  4. 클라이언트에서 서버에 데이터 요청. 앞에서 알려준 2024번 포트에 요청 (3. DATA CHANNEL)
  5. 데이터 전송 (5. "OK"

Passive 모드에서 클라이언트 쪽에 방화벽이나 세션 장비가 있을 경우, 특별한 적업 없이 동작할 수 있다는 장점이 있지만 서버 쪽에 방화벽이 있으면 데이터 다운로드를 위한 추가 포트를 열어줘야 한다.

 
 
 

'네트워크 > L4' 카테고리의 다른 글

방화벽 이중화시 Active/Active와 Active/Standy 차이  (0) 2025.05.15
방화벽(Firewall)  (0) 2025.05.12
로드 밸런서(L4 스위치, ADC)  (1) 2025.05.11
4계층 장비의 특징  (0) 2025.05.11