일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 머신러닝
- network
- Django
- 자료구조
- 파이썬
- Dynamic Programming
- 프로토콜
- Windows Server
- 자격증
- 기본 정렬
- 네트워크 관리사
- 서브넷마스크
- Machine learning
- 네트워크
- 코딩테스트
- dns
- 딥러닝
- 네트워크 자격증
- 네트워크 관리사 2급
- 패스트캠퍼스
- IPV4
- Protocol
- deep learning
- FTP
- ICQA
- Algorithm
- 밑바닥부터 시작하는 딥러닝
- 알고리즘
- Python
- 실기
- Today
- Total
쳉지로그
[네트워크] FTP (File Transfer Protocol) 본문
FTP(File Tranfser Protocol)
- TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜(출처: 위키백과). 즉, TCP/IP 네트워크(인터넷)상의 장치가 파일을 전송할 때 사용하는 규칙
FTP 동작 원리
- FTP 서비스를 제공하는 서버와 여기에 접속하는 클라이언트 사이에 두 개의 연결이 생성
- 인터넷을 통한 파일 송수신만을 위해 고안된 프로토콜이므로 동작 방식이 직관적이고 단순함
- port 21 : 데이터(파일) 전송을 제어하기 위한 신호를 주고 받음
- port 20 : 실제 데이터(파일) 전송에 사용
FTP 통신
- FTP는 데이터(파일) 전송 시 두 가지 모드(능동 모드, 수동 모드)를 지원
- 능동 모드 데이터 전송 시 서버는 20번 포트를 사용하고, 수동 모드 데이터 전송 시 1024~65535 사이의 랜덤 비특권 포트를 사용함
1) 능동 모드(Active Mode)
1. (클라이언트) FTP서버의 port 21로 접속 시도 후 사용할 두 번째 포트를 서버에 알려줌
2. (서버) ACK로 응답 후
3. (서버) 서버의 port 21는 클라이언트가 알려준 두 번째 포트로 접속 시도
4. (클라이언트) ACK로 응답
* 참고. ACK(acknowledge, 응답문자) : 수신측에서 메세지를 에러없이 정상적으로 수신했거나, 송신해도 된다는 것을 송신측에 알리기 위한 제어용 신호
- 능동 모드의 문제점 : TCP/IP의 특징(클라이언트가 서버에 접속 시도)과 달리 "서버가 클라이언트에 접속을 시도함"
- 클라이언트 PC의 내부적인 환경요인(방화벽)과 외부적인 환경요인(FTP를 제대로 인지하지 못하는 공유기)에 따라 FTP 접속 불가, 혹은 접속 이후 데이터 목록을 받아오지 못하는 에러 발생 가능
- 이를 해결하기 위해 수동 모드 등장
2) 수동 모드(Passive Mode)
1. (클라이언트) FTP서버의 port 21로 접속 시도
2. (서버) 서버가 사용할 두 번째 포트를 알려줌
3. (클라이언트) 다른 포트를 열어 서버가 알려준 포트로 접속 시도
4. (서버) ACK로 응답
- 수동 모드에서는 두 번째 data포트로 20번 포트를 사용하지 않고 1024~65535 사이의 랜덤 비특권 포트를 사용함
FTP 사용방법
1) cmd
> ftp 입력
> open [ ip ] [ port ] 입력
(참고. [port] 입력 생략 시 기본 포트(20, 21)로 접속됨)
> FTP 서버에서 설정한 ID/PW 입력
2) FTP 프로그램(ex. Filezilla)
- 사이트 관리자 메뉴를 통해 자주 접속하는 여러 FTP 접속 정보를 등록해두고, 사용 가능함
- 다운로드 링크
FTPS? SFTP?
1. FTPS
- HTTPS 와 동일한 개념
- 공개키 암호화 방식을 이용해 통신 라인을 거쳐가는 Port 20, 21을 안전하게 암호화
2. SFTP (Port 22)
- SSH의 파일 전송 버전
- SSH 방식을 이용하여 안전하게 암호화된 구간에서 FTP 기능 이용 가능
- 레퍼런스
- https://www.msp360.com/resources/blog/sftp-vs-ftps/
- https://hack-cracker.tistory.com/133
'네트워크 > 기초 용어' 카테고리의 다른 글
[네트워크] 이더넷(Ethernet) (0) | 2021.10.22 |
---|---|
[네트워크] ARP(Address Resolution Protocol) (0) | 2021.10.18 |
[네트워크] MAC 주소(Media Access Control Address) (0) | 2021.10.13 |
[네트워크] TCP/IP (Transmission Control Protocol/Internet Protocol) (0) | 2021.10.13 |
[네트워크] 서브넷 마스크(Subnet Mask) (0) | 2021.10.13 |