일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ContentCachingRequestWrapper
- Connection Draining
- ChatGPT
- oracle
- 네트워크 io
- RequestBody로깅
- Routing Policies
- hikari cp
- 자연변수
- 람다 캡쳐링
- UNION 열
- aws
- 코딩삽질일기
- 아파치 드루이드
- 자바로그
- afterCompletion
- Cross-Zone Load Balancing
- jpa
- queryDsl #JPA #hibernate
- SSR #CSR
- 슬로우 쿼리
- Application-Based Cookie
- superset-oracle
- Duration-Based Cookie
- reflection API
- ReactAdmin
- CannotGetJdbcConnectionException
- Route53
- 스프링
- querydsl-sql
- Today
- Total
Forest Gump?
FTP PASSIVE/ ACTIVE MODE 본문
ftp프로토콜에는 모드가 2개 존재하는데, Active Mode 와 Passive Mode 이에 해당한다.
보통 ftp url : 20 port는 데이터를 전송하는데 사용하고, :21 번 port는 접속에 사용된다.
그럼 두가지 모드의 가장 큰 차이점은,
Active Mode 의 경우 서버쪽에서 클라이언트의 포트로 접속을 한다는 것이고,
Passive Mode의 경우 클라이언트에서 서버쪽으로 접속을 한다는 것이다.
아래에서 좀 더 자세하게 설명을 하겠다.
Active Mode
클라이언트에서 서버로 접속하여 제어 채널을 생성하는데, 21 번 tcp 프로토콜로 연결하게 된다.
제어 채널이 생성 시에 데이터 채널이 생성되는데, 데이터를 전송할 때 서버에서 클라이언트로 접속해서
데이터를 보낸다. 만약에 데이터가 전송이 안된다면, 클라이언트의 방화벽이 막고 있는 경우가 큰데
위 사진과 같은 경우가 해당된다.
Passive Mode
Active모드와 같이 클라이언트에서 서버로 접속하여 제어 채널을 생성하며 , 21번 포트의 tcp 프로토콜로 연결한다.
제어채널이 연결되면, 데이터 채널이 바로 연결되는 것이 아닌 ,PASV 명령을 클라이언트에서 서버로 전송한다.
PASV 명령을 받은 서버는 자신이 사용할 포트를 결정 ( 1024번 이후 65535범위의 임의 포트) 하고 데이터 채널을 생성한다.
+ Client PC 상에서는 OUTPUT 방향으로 1024~65534 범위를 모두 허용시켜주어야 한다. / 물론 데이터 채널 포트 범위를 지정하면, 지정한 범위의 포트번호만 허용해 주면 된다.