현대 웹에서 클라이언트와 통신을 위해서는 여러 세션을 유지하도록 하지 않는 이상 보통 하나의 세션을 가지고 통신합니다.
웹 같은 경우 HTTP 프로토콜로 서버와 웹으로 통신하나 세션에 대해서는 하위 계층인 TCP 프로토콜에서 세션 테이블을 통해 세션을 관리합니다.
이와 반대인 FTP( File Transfer Protocol)인 경우 프로토콜의 구조가 분리되어 있습니다.
바로 데이터 프로토콜과 컨트롤 프로토콜입니다.
데이터 프로토콜을 사용하여 서버와 클라이언트 간에 데이터 채널을 통해 데이터를 전송하는 것에 목적을 두었다면
컨트롤 프로토콜은 데이터의 전송을 위해 준비를 하고 신뢰성을 목적으로 둔 프로토콜입니다.
그렇기에 통신 방법이 다른 두 가지 모드를 가지고 있습니다.
우선 Active 모드를 간단히 살펴보겠습니다.
FTP의 기본적인 방식은 Active 모드입니다. Active 모드는 명령어를 전달하는 컨트롤 프로토콜과 데이터를 전달하는 데이터 프로토콜이 분리되어 있고 방향도 반대로 동작합니다.
방향이 반대라는 말은 각 프로토콜의 방향이 역이라는 것입니다.
클라이언트는 FTP 서버에 접속하여 다른 포트로 데이터를 전달받는다고 서버에 알리고
서버는 그 정보를 통해 다른 포트로 클라이언트에게 데이터를 전달하는 과정으로 이루어집니다.
Active 모드를 사용하는 경우 중간에 방화벽이나 로드 밸런서가 존재하는 경우 하나의 세션만으로 통신하지 않기 때문에 반대 방향의 아웃바운드 요청에 대해서도 열어주어야 합니다.
* NAT 환경인 경우 ALG 기능을 동작시켜야 합니다.
Passive 모드는 Active 모드의 가장 큰 단점인 프로토콜의 역방향을 보완하기 위해 만들어졌습니다.
클라이언트가 서버에게 Passive 모드를 사용하겠다고 전송합니다
서버는 클라이언트에게 데이터 수신에 사용할 포트를 전달함으로 써 클라이언트가 특정 포트로 데이터 전송을 요청하도록 할 수 있습니다.
Passive 모드에서 세션, 방화벽은 특별한 작업 없이도 동작하지만 서버 쪽에서 방화벽이 있으면 데이터 다운로드를 위한 추가 포트를 열어주어야 합니다.
보통 FTP 서버에서 Passive 모드에서 사용하는 데이터 포트의 범위를 설정할 수 있습니다.
'느리게 변하는 지식 > Network' 카테고리의 다른 글
DNS 주요 레코드 (0) | 2023.02.12 |
---|---|
NAT 그리고 PAT (0) | 2023.02.11 |
라우팅, 스위칭 (0) | 2023.02.09 |
STP (0) | 2023.01.15 |
VLAN (0) | 2023.01.12 |
댓글