일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- softeer
- 정보처리산업기사
- BFS
- 회고
- 1과목
- C++
- 코틀린
- SW봉사
- MYSQL
- 파이썬
- java
- programmers
- 코딩교육봉사
- 알고리즘
- kotlin
- 백준알고리즘
- 코딩봉사
- 백준
- 시나공
- 스프링
- SQL
- CJ UNIT
- 문제풀이
- 공부일지
- 프로그래머스
- 데이터베이스
- 백준 알고리즘
- 자바
- python
- 소프티어
- Today
- Total
JIE0025
[FTP] 파일전송 프로토콜 (File Transfer Protocol) 본문
✅ FTP란 ?
File Transfer Protocol의 약자
원격으로 파일전송을 위한 프로토콜이다.
하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.
20번 포트는 데이터 전송을 위해
21번 포트는 명령의 응답 / 제어정보를 위해 사용된다.
FTP는 암호화를 하지 않고, 평문으로 전송하기 때문에 외부에 노출될 위험이 있다.
따라서 다른 프로토콜의 사용을 권장한다.
SFTP (22/TCP) Secure File Transfer Protocol -- SSH 기반으로 데이터 암호화 제공
FTPS(990/TCP)
✅ FTP 전송모드
전송모드 2가지가 있다.
(Defalut) Active Mode : 능동모드 -- 클라이언트가 요청
Passive Mode : 수동모드 -- 서버가 요청
Active Mode
위의 내용을 다시 가져왔다.
- 능동모드 -- 클라이언트가 요청
- 20번 포트는 데이터 전송을 위해
- 21번 포트는 명령의 응답 / 제어정보를 위해 사용된다.
클라이언트가 서버의 21번 포트로 접속후
명령을 송수신하기위한 제어채널을 생성한다.
사용자가 ls 명령을 입력하면
1) 클라이언트는 데이터를 전송할 포트 (1024 이상의 포트, 여기에선 5151) 를 포함해 서버에 알려준다.
2) 서버는 ACK(OK부분) 을 응답한다.
3) 서버의 20번 포트는 클라이언트가 알려준 5151 포트로 접속한다.
4) 마지막으로 클라이언트는 ACK 응답한다.
Passive Mode
- 수동모드 -- 서버가 요청
- 20번 포트는 데이터 전송을 위해
- 21번 포트는 명령의 응답 / 제어정보를 위해 사용된다.
클라이언트는 서버의 21번 포트로 접속후 제어 채널을 생성한다.
1) 이후 사용자가 명령어 입력시 클라이언트는 Passive Mode 로 연결하기 위해 PASV명령어를 전송한다.
2) 서버에선 서버가 사용할 포트번호를 알려준다. (1024 이상 --- 3267)
3) 클라이언트는 서버가 알려준 포트번호로 접속시도한다. --> 데이터 채널을 생성한다.
4) 서버는 ACK응답한다 데이터를 송신한후 데이터 채널 연결을 종료한다.
* 서버가 포트번호를 알려주기 때문에 해당 대역의 방화벽 포트를 열어둬야한다.
* 20번 포트를 사용하지 않고, 서버가 지정한 임의의 비특권포트가 사용된다.
비유로 더 쉽게 이해해보자.
철수는 오래된 희귀 영화를 소장하고 있다.
이 영화는 요즘 스트리밍 사이트에서도 볼 수 없는 작품이라, 친구 길동이와 영희도 보고 싶어 한다.
길동: "철수야, 그 영화 파일 좀 보내줘!"
영희: "이메일로 보내기엔 너무 크지 않아?"
철수는 파일 크기가 너무 커서 이메일이나 메신저로 보내기가 어렵다는 걸 깨달았다.
클라우드 저장소에 올릴 수도 있지만, 친구들이 다운로드하는 데 시간이 걸릴 것 같았다.
💡 철수의 해결책: “FTP 서버를 이용해보자!”
철수 : FTP 서버를 열다
철수는 자신의 컴퓨터를 FTP 서버로 만들기로 했다.
✅ 설정 과정
- FTP 서버 설치: 철수는 Windows에서 FileZilla Server 또는 Linux에서 vsftpd를 설치했다.
- 계정 생성: 친구들이 접속할 수 있도록 길동이와 영희의 FTP 계정을 만들었다.
>> 계정을 만들지 않으면 익명 Anonymous 허용옵션을 켜야하는데, 보안에 취약하다 - 폴더 공유 설정: 영화 파일이 있는 폴더를 FTP 공유 폴더로 설정했다.
- 네트워크 설정: 외부에서도 접속할 수 있도록 포트(21번) 개방 및 공인 IP 확인.
철수: "이제 내 컴퓨터가 FTP 서버 역할을 할 수 있다~!"
길동과 영희 : FTP로 접속
철수는 친구들에게 FTP 접속 정보를 보냈다.
📌 FTP 접속 정보
- 서버 주소: ftp://철수의공인IP
- 포트: 21 (철수가 알려준 정보로 연결했으므로 수동모드 Passive Mode )
- 계정 정보:
- 길동: gildong / password123
- 영희: younghee / password456
길동과 영희는 자신의 컴퓨터에서 FTP 클라이언트(FileZilla, WinSCP 등)를 실행하고, 철수의 FTP 서버에 접속했다.
영화 다운로드 성공!
✅ 길동의 FTP 다운로드 과정
- FTP 클라이언트 실행
- 철수의 FTP 서버에 로그인
- 영화 파일이 있는 폴더로 이동
- 파일을 다운로드하여 자신의 컴퓨터에 저장
영희도 같은 방식으로 접속하여 영화를 다운로드했다.
FTP는 왜 아직도 많이 사용될까?
간편한 사용법과 효율성 때문에
여러개의 파일을 한꺼번에 업로드 / 대용량 파일을 빠르게 전송해야할 때 유용하다.
대용량 파일 전송에 적합하기 때문에
클라우드서비스가 나오기 전까지 백업파일은 FTP를 통해 이루어졌는데
서버에 직접접속해 대용량데이터를 관리할 수 있다는 점이 매우 편리하다.
>> 실시간 API요청은 속도나 성능 부담이 생길 수 있는데
주기적으로 데이터를 / 대용량 전송해야하는 배치작업의 경우엔 FTP 를 사용할 수 있다는 것이다!
https://peemangit.tistory.com/66
FTP (File Transfer Protocol) 란?
1. FTP (File Transfer Protocol) 란?하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 기능이다.20번 포트는 데이터 전송을 위해 사용되고, 21번 포트는 명령과 응답
peemangit.tistory.com
https://blog.naver.com/jhbd10004/223620854393?trackingCode=rss
FTP 뜻 서버 파일 전송의 기본 여전히 강력한 이유
FTP(파일 전송 프로토콜) 뜻에 대해서 알아보고 관련 정보를 드리려고 합니다. FTP는 인터넷의 초기...
blog.naver.com
'Infra > Network' 카테고리의 다른 글
포트(Port) 란 무엇이고 왜 있는걸까? (1) | 2024.12.06 |
---|