2010. 9. 27. 15:47

FTP 이란? File Transfer Protocol



1. FTP 란 무엇인가? 

 우리가 자주 사용하지만 막상 인식을 하지는 잘 못하는 프로토콜이다.

웹상에서 파일을 PC로 다운받거나 또는 업로드를 할 때에 FTP 를 사용하게 됨에도 불구하고 말이다.

FTP 는 말 그대로 파일을 전송하기 위한 TCP/IP 프로토콜이다. 마치 HTTP 가 웹을 해석하고 전달하기 위한 프로토콜인 것처럼 FTP 는 파일을 주고 받기 위해서 필요한 프로토콜인 것이다.

FTP 는 서버와 클라이언트로 나눠진다. 
FTP 서버는 항상 TCP Port 21 로 listen 하고 있어서 서버 자신에게로 오는 ftp 클라이언트들의 요청을 받아 들일 준비를 늘 하고 있는 녀석이다. 

FTP 클라이언트는 많은 방법으로 FTP서버에 접속할 수 있다 그 상세한 방법은 아래에서 살펴보자.


2. FTP 사용방법은? 

FTP를 사용하는 방법은 여러가지가 있다. 즉 자신이 알고 있는 방법으로 사용하면 된다. 그 어느 것을 사용하더라도 거의 문제가 없다. 

(1) IE ( 인터넷익스플로러) 를 사용하는 방법 

IE 의 주소창의 주소들을 보면 http://~~ 라고 표시될 것이다.  여기서 http 대신에 ftp 로 바꿔서 쓰면 ftp 로 서버에 접속이 가능하게 된다.

(2) FTP 전용 클라이언트를 사용하는 방법 

FTP 클라이언트 소프트웨어를 PC에 설치해서 서버에 접속하는 방법이 있다.  흔히들 사용하는 프로그램으로는 알FTP 라든가 아니면 Filezilla 같은 프로그램을 설치해서 원하는 서버에 접속해서 파일을 주고 받을 ( 업 / 다운 로드) 수가 있다. 

FTP 클라이언트 프로그램들은 많이 있으니 기호에 맞게 설치해서 사용하면 무리가 없을 것이다. 

(3) command 창을 이용하는 방법 

윈도우에서는 아직 남아잇는 까만창 ( cmd = command ) 을 이용해서 CLI ( command line interface ) 방식으로 FTP 서버로 접속할 수 있다. 
바로 위의 (1) 과 (2) 의 방법은 GUI ( Graphic User Interface ) 방식으로 마우스의 사용이 절대적으로 필요한 반면에,  이 방법은 마치 리눅스나 유닉스처럼 명령어 키보드 만으로 FTP 사용이 가능하고,  FTP 의 명령어들을 알고 있어야 한다.  

처음사용자는 어렵겠지만 나중에 익숙해지면 오히려 이 방식이 더 파워풀하고 강력할 것이다. 


3. FTP의 장점은? 
순수하게 FTP 로 전송하는 프로토콜만 사용하면 오히려 웹속에 숨어있는 링크를 클릭해서 FTP 로 오게 만들어지고, 그것을 클릭하고 나서 기다리고 전달되는 것보다는 오히려 FTP클라이언트 프로그램을 통해서 파일을 옴기는 것이 훨씬 더 속도가 빠르고 효율적이 될 수도 있다는 것을 알아야 한다. 
( 물론 IE 속에 FTP 를 사용할 수 있도록 하는 프로그램이 숨겨져 있다는 것에서는 같지만  FTP전용프로그램보다는 속도가 떨어질 것이다. ) 

4. 그럼 SFTP 란 ? 
SFTP 란 Secure FTP 즉 보안이 강화된 FTP 라고 보면 되겠다. SSH ( Secure Shell ) 을 통해서 파일을 전송하는 프로토콜이다. 리눅스를 설치하게 되면 SSH 는 기본적으로 설치가 되고 보통 SSH 는 터미널로 리눅스에 원격으로 접속하는 프로토콜인데 SSH 를 통해서 FTP 를 구현한 것이다.

파일질라 같은 FTP클라이언트는 SFTP 까지 지원을 한다. 

5.그럼 TFTP 란 ?
TFTP 란 Trivial FTP 를 뜻하고 FTP 나 SFTP 와 다르게 UDP 를 사용한다. UDP 는 전송 도중에 데이터가 유실될 가능성이 높고,  사용자에게 디렉토리를 보여주지 않을 때 주로 사용한다. 

아무래도 장비들의 펌웨어 업그레이드 같은 때에 이런 TFTP 가 예전에 자주 사용되었다. 


사용법은 어떤 방법을 사용해도 무관하다. 사용자가 편하게 사용하는 방법을 통해서 사용하면 될 것이다. 
하지만 서버관리자라면 터미널 상에서 FTP 를 사용하는 것이 더 익숙하고 편하게 느껴질 것이다. 

SSH 상에서 FTP 를 접속하게 되면 커서의 모양이 꺽쇠모양 ( > ) 으로 바뀌게 되고 FTP 상태인 것이 표시된다.
여기서 FTP 명령어들을 확인하려면 help 만 치면 FTP 에서 사용가능한 명령어 들이 나오게 된다. 


중요한 명령어는 일단 리눅스에 올라가 잇는 FTP 로 접속했을 때 현재 접속한 디렉토리의 파일들을 보고자 한다면
ls -l 이란 명령어를 통해서 확인하고

bin  또는 ascii 라는 명령어를 통해서 바이너리방식으로 전송할 것인지 아스키방식으로 전송할 것인지 결정

hash 란 명령어를 통해서 파일 전송시 진행정도를 ########  표시를 나타낼 지의 여부 ( 토글 )

모든 작업을 끝내고 FTP 를 종료시 bye 명령어를 통해서 FTP 서버와 연결을 끊음.

prompt 명령어로 파일 전송시 확인 ( y / n ) 여부 물어보도록 할 것인지 말 것인지 ( 토글 )

mget 명령어로 여러개의 파일을 하나의 명령어로 다운로드

mput 명령어로 여러개의 파일을 하나의 명령어로 업로드

이런 정도만 안다면 충분히 FTP 를 사용함에 있어 부족함은 없을 것이다. ^^