FTP

최근 수정 시각:

파일:나무위키+유도.png   Foil-screened Twisted Pair에 대한 내용은 연선 케이블 문서를 참조하십시오.


1. 개요2. 세부사항3. 클라이언트

1. 개요[편집]

파일 전송 프로토콜(File Transfer Protocol)의 약자로 TCP/IP 네트워크 상에서 컴퓨터들이 파일을 교환하기 위해 1971년에 최초로 공개된 통신 규약이다. 네트워크에 연결된 컴퓨터끼리 데이터를 원활하게 교환하기 위한 목적으로 개발되었다. 파생형으로 FTP에 TLS 프로토콜이 적용된 FTPS가 있으며, 비슷한 기능을 제공하는 SSH 프로토콜 기반의 SFTP가 있다. SFTP는 FTP라는 키워드를 포함하고 있으며 용도 또한 같으나 FTP와 기술적인 연관성은 없는 완전히 다른 프로토콜임을 주의해야 한다.

FTP는 비밀번호가 평문으로 전송되어 보안성이 매우 떨어지므로 FTPS를 사용하는걸 적극 권장한다. FTPS의 경우 PROT P를 사용하면 데이터 전송까지 암호화되어 높은 보안성을 지니며, PROT C를 사용하면 데이터 전송을 암호화하지 않아 보안성이 떨어지지만 빠른 파일 전송이 가능하다. SFTP의 경우 포트를 하나만 사용하기 때문에 방화벽이 설치된 환경에서 셋팅하기가 쉬워 초보자한테 권장되나, 프로토콜 구조상 PROT P를 사용한 FTPS보다 속도가 느리다는 결함이 있다. FTP와 FTPS는 보통 제어용으로 21번 포트 및 데이터 전송용으로 20번 포트를, 패시브 모드의 경우 50000번대 이상의 포트를 추가적으로 많이 사용하며 FTPS의 경우 990포트를 사용하는 경우도 있다. SFTP는 보통 22번 포트를 사용한다.

2. 세부사항[편집]

네트워크에서 사용하는 프로토콜 중에서는 드물게 제어 채널과 전송 채널이 분리되어 있다. 쉽게 설명하면 전화기 한 대와 팩스 한 대를 가지고 전화기로는 지금 가지고 있는 자료에 대해서 물어보고, 필요한 자료를 요청하면 팩스로 열심히 자료를 전송 받는 형태이다.

FTP를 사용하여 데이터를 주고받기 위해서는 FTP 서버와 FTP 클라이언트가 필요하다. 원래 데이터 교환을 목적으로 개발된 것이기 때문에 안정성과 신뢰성이 보장된다. 그렇기에 회사나 동아리 같은 곳에서 FTP 서버 하나 구축해두면 자료를 공유할 때 상당히 유용한 물건이 된다. 하지만 국내의 경우에는 자료를 공유하기 위한 대안이 많다 보니 있으면 유용하지만 없어도 그만인 수준.

많은 FTP 클라이언트들이 휘황찬란한 GUI 환경을 제공하지만, 본래는 아래 그림과 같이 명령어 입력 방식이다. GUI 환경에서 작동하는 FTP 클라이언트들은 단지 명령어들을 자동으로 전송해 주는 것 뿐이다.

파일:attachment/cmdftp.png[1]

블리자드의 FTP 서버


이런 형태의 FTP 클라이언트는 GUI를 사용하지 못하는 환경에서 아직도 매우 널리 사용된다. 특히 유닉스 계열 서버를 관리하는 관리자들은 telnet/SSH와 함께 필수로 익혀야 하는 기능이다.

웹 브라우저도 FTP를 지원한다. 위의 명령어 입력 방식이 어려울 경우에는 이 방법을 써도 된다. 인터넷 주소창에서 http:// 대신 ftp:// 를 붙이고 FTP 서버 주소를 치면 ID와 비밀번호를 묻는 화면이 뜨고, 그걸 치고 들어가면 브라우저 화면에 FTP 서버의 파일 목록이 링크 형태로 주르륵 뜬다. 이것은 대용량 파일 전송은 웹에서 사용하는 HTTP 프로토콜보다는 파일 전송용으로 나온 FTP 프로토콜이 유리한 점이 많기 때문에 지원하는 것. 엣지에서는 지원하지 않는다.


1990년대에는 대부분의 소프트웨어 업체나 게임 업체 등이 별도의 FTP 서버를 구축하고 익명의 접속을 허용한 후에 자신들이 개발한 프로그램의 셰어웨어나 데모 버전, 패치 등을 공개하곤 하였다. 사실 그 시절에는 지금처럼 인터넷이 발달한 것이 아니었기에 FTP 말고는 불특정 다수에게 효과적으로 자료를 배포할 수 있는 방법이 거의 없었다. 외국의 다른 게임 회사들 대부분은 비슷한 방식으로 FTP 서버를 운용하는 곳이 있고 간혹 예전에 발매했던 추억의 게임들을 FTP에서 무료로 받을 수 있는 경우도 있는 경우도 있으니 찾아보는 것도 나쁘지는 않다. 다만 현재는 자사 웹사이트에 공개하는 게 여러 모로 이득이고, 패치 같은 것은 프로그램 내에 패치 업데이트용 프로그램을 내장시키는 추세라서 FTP에 대해 배우는 곳도 많지 않고, 사장되는 추세이다.

리눅스 배포판과 각종 리눅스의 중요 오픈소스 소프트웨어들은 FTP로 배포되는 경우가 많다. yum이나 apt와 같은 각종 리눅스 저장소도 FTP로 운영되고 있으며, 유명 배포판의 경우에는 전 세계에 저장소 미러링 FTP 서버를 운영하는 경우가 많다. 한국에서는 카이스트, Daum, 네오위즈에서 운영하는 FTP 서버가 유명하다.

3. 클라이언트[편집]

주요 FTP 클라이언트 목록이다.

  • FileZilla - 오픈소스 FTP 클라이언트 및 서버를 지원한다. 가장 널리 알려져있고 그 이름에 걸맞게 강력한 프로그램이다.

  • SmartFTP

  • Sunshine(앱) - PC와 스마트폰, 타블릿의 FTP를 설정해서 파일을 전송하는 앱.

  • Windows 탐색기 - 보통 로컬 파일 열람을 위해 사용되는 프로그램이지만 주소줄에 FTP 주소를 입력하면 FTP 클라이언트처럼 사용이 가능하다. 단 기능은 허접하다. 따로 설치된 클라이언트가 없을 때 잠깐잠깐 사용할 용도로는 좋다.

  • WinSCP

  • WS_FTP

  • Xftp - FTP와 SFTP 프로토콜을 지원하며 사용하기 쉬운 UI 및 Xshell과의 연동 가능. 개인 사용자에 한해 무료이다.

  • 알드라이브 - 이스트소프트에서 개발된 프로그램. 널리 사용되지만 업데이트가 뜸하고 어딘가 문제가 많다.

  • RaiDrive - 주 기능은 클라우드 스토리지를 윈도우 탐색기에 마운트 시켜주는 것이지만, FTP와 SFTP도 지원한다.

[1] 명령 프롬프트에서 ftp라고 쳐서 ftp를 실행한 것