Computer Science/[ Network ]

[ Network ] 08. FTP(File Transfer Protocol)

kim.svadoz 2020. 10. 7. 14:20
반응형

FTP

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번 포트를 사용한다.

세부사항

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

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

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

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

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

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

반응형