FTP(File Transfer Protocol) / TFTP(Trivial File Transfer Protocol) / PXE(Perboot execution Environment)

2025. 1. 22. 12:40Network 공부

네트워크를 통해 파일을 주고 받기 위한 표준 프로토콜이다.

주로 클라이언트와 서버 간 파일 전송을 목적으로 사용되며, TCP / IP 프로토콜 기반으로 작동한다.

 

FPT 특징

1) 표준 프로토콜 : 인터넷에서 파일을 전송하기 위한 표준 프로토콜이다.

2) 클라이언트 - 서버 구조: 클라이언트가 명령을 보내고, 서버가 이를 처리하여 파일 전송 작업을 수행한다.

3) 명령 및 데이터 채널:
명령 채널: 클라이언트와 서버 간의 명령 교환을 위한 채널.
데이터 채널: 실제 파일 전송을 위한 채널.

4) 다양한 전송 모드:
텍스트 모드(ASCII): 텍스트 파일 전송에 적합.
이진 모드(Binary): 이미지, 비디오 등 바이너리 파일 전송에 적합.

5)사용자 인증: 사용자 계정(ID)과 비밀번호를 요구하며, 익명 접속(Anonymous FTP)을 허용하기도 합니다.

 

FTP 동작 방식

FTP 클라인트는 서버의 IP 주소와 포트를 통해 연결을 설정한다

기본적으로 TCP 21번 포트를 사용(제어 연결) 과 데이터 연결 (20 번 포트) 를 분리하여 통신한다.

유저 인증을 통해 접근을 제어 할 수 있다.

- 명령 전송

클라이언트가 서버에 명령( ex: 파일 업로드, 다운로드) 등을 보낸다

 - 파일 전송

데이터 전송은 별도의 데이터 채널에서 통해 이루어진다.

데이터채널은  액티브 모드와 패시브 모드에 따라 작동 방식이 다릅니다.
액티브 모드: 서버가 클라이언트의 포트에 연결하여 데이터 전송.
패시브 모드: 클라이언트가 서버의 지정된 포트로 연결하여 데이터 전송.

 

FTP 장단점

- 장점

대용량 파일 전송에 적합.
서버와 클라이언트 간의 안정적인 연결을 제공.
널리 사용되며, 대부분의 운영 체제에서 기본적으로 지원.

- 단점

보안 취약점:
FTP는 암호화되지 않은 평문으로 데이터를 전송하므로, 민감한 데이터(계정 정보 등)가 유출될 위험이 있음.
이를 보완하기 위해 FTPS(FTP Secure)나 SFTP(SSH File Transfer Protocol)가 사용됩니다.


방화벽 설정이 복잡할 수 있음(특히 액티브 모드).

FTP 의 발전

보안성과 사용 편의성이 강화된 여러 프로토콜의기반이 됨 

SFTP: SSH 기반 파일 전송 프로토콜로 암호화를 지원.
FTPS: SSL/TLS를 통해 보안을 강화한 FTP.
HTTP/HTTPS: 웹을 통해 파일 전송이 가능하며, URL을 통해 쉽게 접근.
Cloud Services: Google Drive, Dropbox와 같은 클라우드 기반 파일 공유 서비스.

 

 

 

 

 

TFTP (Trivial File Transfer Protocol)

UDP 기반 (69번 포트) 의 매우 간단한 파일 전송 프로토콜이다.

파일을 업로드 / 다운로드 하는 기능만 지원하며, 별도의 인증이나 디렉토리 접근 같은 고급 기능이 없다

설정 파일, 펌웨어, 부트 이미지 같은 간단한 파일 전송에 쓰인다. 그래서 OS 에 부담이 적다

 

FTP 에 비해 기능이 제한적이지만, PXE 환경 등에서 부팅 이미지 전송에 많이 활용된다.

보안이나 인증 기능이 거의 없기 때문에 일반적으로 사설망 안에서 사용한다.

 

 

 

 

PXE (Preboot Execution Environment)

" 컴퓨터가 하드디스크나 로컬 미디어 없이 네트워크에서 부팅할 수 잇게 해주는 기술 "

DHCP + TFTP를 결합해 “네트워크만 연결되어 있어도” 클라이언트가 원격 이미지를 다운받아 부팅하도록 만드는 기술

 

- PXE를 지원하는 NIC(네트워크 인터페이스 카드)가 있으면, BIOS(또는 UEFI) 단계에서 네트워크 부팅을 시도한다


- 이 과정에서 DHCP를 통해 IP를 할당받고, 부팅 서버(TFTP 서버) 정보를 확인한 뒤, TFTP로 부트로더/OS 이미지를 가져와 부팅한다.

 

 

 

- PXE 동작원리

PXE 클라이언트(PC) 가 DHCP 를 요청한다. (일반적으로 DHCP 서버가 PXE 옵션 정보를 같이 넘겨 줄 수 있다)

DHCP 서버는 IP 주소와 함께 TFTP 서버 주소와  부트 파일 이름을 클라이언트에게 전달한다

PXE 클라이언트는 TFTP 서버에 접속하여 설정된 부트로더를 다운로드 한다.

부트로더가 실행되면서, 추가적인 커널이나 initrd 이미지 등을 다시 TFTP(혹은 다른 프로토콜)에서 다운로드 하여 실제 OS를 로드한다.

부트로더 :  컴퓨터가 전원을 켜거나 재시작할 때, 가장 먼저 실행되어 운영체제(OS)를 메모리에 로드하고 실행하는 역할을 하는 소프트웨어

 

 

- FTP, TFTP, PXE 관계

PXE 부팅 시에는 대부분 TFTP 프로토콜이 사용된다. (필수적으로)

FTP는 보통 PXE 환경에서 직접 사용되지 않지만, PXE로 부팅한 뒤 OS가 뜬 상태에서 추가 파일을 받거나, 서버 간에 대용량 자료 전송 시 사용할 수 있다.

PXE 부트 과정 자체는 UDP 기반의 TFTP를 통해 부팅에 필요한 최소 이미지를 빠르게 받아오는 것이 핵심이다.

 

 

OSI 7 계층 관점

FTP와 TFTP는 응용 계층(7계층) 프로토콜

FTP는 TCP(4계층)를, TFTP는 UDP(4계층)를 사용

PXE는 DHCP+TFTP 등을 조합하여 네트워크 부팅을 구현하며, 

DHCP (4계층: UDP, 7계층: 응용 레벨에서 동작)

즉,  이 모두가 결국 응용 계층에서 동작

 

 

클라우드 환경에서는 ?

 - FTP

클라우드 환경에서 파일 전송이 필요할 때 사용 될 수 있으나

실제로는 SFTP, S3 and HTTPS 방식이 더 자주 활용된다.

 

TFTP

보안이나 인증이 거의 없기 때문에 내부 네트워크 이외에는 잘 사용되지 않는다.

 

- PXE (네트워크 부팅)

Bare Metal (실제 물리 서버) 클라우드나 온프레미스 데이터센터에서는 대량의 서버를 자동으로 설치, 프로비저닝할 때 PXE 부팅 방식을 사용한다.

예: 랙(Rack) 단위로 새로운 물리 서버를 들여놓았을 때, PXE 부팅으로 OS 이미지를 자동 배포하여 설치/초기 설정 진행.

컨테이너/서버리스 등에서는 PXE가 직접적으로 필요치 않지만, 내부적으로 물리 호스트를 자동 관리할 때 PXE가 활용될 수 있다.

 

Bare Metal Server 는 실제 물리 하드웨어 서버 자체를 의미한다.

Rack 는 서버, 스위치, 스토리지 등 데이터센터 장비를 장착하기 위한 표준화된 금속 프레임

둘 다 데이터센터 인프라에 관련된 개념으로

ex) 베이메탈 서버 여러 대를 렉에 장착해서 대규모 컴퓨팅 환경을 구축할 수 있다. 이는 온프레미스 데이터 센터에서 볼 수 있는 형태이다. 

 

 

1. 클라우드 스토리지 서비스

관련 기술: FTP, SFTP, FTPS, REST API

 

FPT 는 거의 사용되지 않는다.

스토리지 서비스의 대부분은 REST API + HTTPS 가 핵심 통신 방식이다!!

 

적용 서비스: AWS S3, Google Cloud Storage, Azure Blob Storage 등은 데이터를 안전하고 효율적으로 저장 및 관리하기 위한 서비스를 제공합니다.

데이터 업로드와 다운로드 시 SFTP와 같은 파일 전송 프로토콜 및 REST API를 사용.

기술적 바탕:   REST API는 클라우드 스토리지의 주요 인터페이스로 작동.
HTTPS는 데이터 전송 보안을 제공.

SFTP/FTP 게이트웨이를 통해 전통적인 서버 간 파일 전송 작업을 클라우드와 통합할 수 있다 

기여: 사용자와 애플리케이션이 대규모 데이터에 원격으로 액세스 가능.
데이터 동기화 및 백업 솔루션의 근간.

 

2. 컨테이너 및 서버리스 플랫폼

관련 기술: HTTPS, REST API

적용 서비스: AWS Lambda, Google Cloud Functions, Azure Functions 등의  서버리스 컴퓨팅 플랫폼은 클라우드 환경에서 이벤트 기반 파일 전송 및 처리 자동화를 지원.

 

기술적 바탕: 파일이 업로드되거나 수정될 때 이벤트를 발생시키는 기술(S3 이벤트, Pub/Sub 등)은 

파일 전송 기술에서 파생.   REST API는 서버리스 플랫폼이 스토리지와 상호작용하도록 지원.

 

기여: 파일이 업로드되거나 수정될 때 이벤트를 발생시키는 기술(S3 이벤트, Pub/Sub 등)은 파일 전송 기술에서 파생.    REST API는 서버리스 플랫폼이 스토리지와 상호작용하도록 지원.

파일 전송 작업이 특정 이벤트에 따라 실행될 수 있도록 트리거 생성.

서버리스 워크플로우에서 파일 처리 및 전달을 효율적으로 구현.

 

 

 

 

3. 데이터 통합 및 ETL (Extract, Transform, Load)
관련 기술: SFTP, FTPS, HTTPS, API

적용 서비스: AWS Glue, Google Cloud Dataflow, Azure Data Factory 등은 데이터 파이프라인과 통합 워크플로우를 지원. 다양한 데이터 소스에서 데이터를 수집하고 변환하여 저장하는 데 사용.

기술적 바탕: SFTP/FTPS를 통해 레거시 데이터베이스나 온프레미스 환경에서 클라우드로 데이터를 전송.
REST API를 통해 SaaS 애플리케이션 및 클라우드 환경과 통합.

기여: 데이터 파이프라인을 통해 다양한 소스에서 데이터를 원활히 수집하고 클라우드로 통합.
대규모 데이터 분석과 AI/ML 학습 데이터 준비를 지원.

 

4. 콘텐츠 전송 및 CDN
관련 기술: HTTPS, FTP, SFTP

적용 서비스: AWS CloudFront, Azure CDN, Google Cloud CDN 등의 

CDN(Content Delivery Network) 서비스는 클라우드 환경에서 파일(콘텐츠)을 효율적으로 배포.

 

기술적 바탕: HTTP/HTTPS는 콘텐츠 배포와 사용자 접근의 표준.
FTP/SFTP는 콘텐츠를 초기 CDN 배포 서버로 업로드하는 데 사용.

기여:  콘텐츠를 전 세계로 신속하게 배포하는 시스템의 기반.
데이터 전송 지연(latency)을 줄이고 사용자 경험을 개선.

 

 

5. 백업 및 재해 복구 (Backup & Disaster Recovery)

관련 기술: FTP, SFTP, REST API

적용 서비스: AWS Backup, Google Cloud Backup and DR, Azure Backup은 데이터 손실을 방지하기 위한 클라우드 기반 백업 및 복구 솔루션을 제공합니다.

기술적 바탕: SFTP/FTP는 온프레미스에서 클라우드로 데이터 백업을 수행.
REST API는 백업 애플리케이션이 클라우드 스토리지와 상호작용하게 함.

기여: 안정적인 백업 프로세스 구축.
데이터 복구 작업의 자동화 및 가속화.

 

 

6. 협업 및 파일 공유

관련 기술: HTTPS, REST API, SFTP

적용 서비스: Google Drive, Dropbox, Microsoft OneDrive와 같은 클라우드 협업 도구는 파일 저장 및 공유를 지원.

기술적 바탕: HTTPS는 보안 파일 접근 및 전송을 보장.
REST API는 파일 관리 및 공유 워크플로우를 프로그래밍 방식으로 구현 가능.

기여: 협업 플랫폼에서 다중 사용자 파일 접근 및 실시간 동기화 지원.
파일 공유 링크 및 권한 관리 제공.

 

7. IoT (Internet of Things)
관련 기술: HTTPS, FTP/SFTP, REST API
적용 서비스: AWS IoT Core, Google Cloud IoT, Azure IoT Hub는 IoT 디바이스와 클라우드 간 데이터 전송을 지원.

기술적 바탕: REST API는 IoT 디바이스가 센서 데이터를 클라우드로 전송할 수 있게 지원.
FTP/SFTP는 대규모 IoT 배포에서 펌웨어 업데이트 전송 등에 사용.

기여: IoT 데이터의 클라우드 저장 및 분석.
디바이스 관리 및 소프트웨어 배포.

 

8. SaaS 애플리케이션

관련 기술: REST API, HTTPS
적용 서비스: Salesforce, Slack, Zoom과 같은 SaaS 애플리케이션은 클라우드 기반 데이터 전송 및 통합 작업을 지원.


기술적 바탕: HTTPS와 REST API는 외부 시스템 및 애플리케이션과 통합하는 주요 수단.

기여: 애플리케이션 간 데이터 통신 및 작업 자동화.
실시간 데이터 동기화 및 분석.