본문 바로가기

OSI Model

27. 파일전송 프로토콜(FTP,SFTP) (7계층 Application Layer 응용 계층)

(7계층 Application Layer 응용 계층)

 

FTP는 File Transfer Protocol 약자이다

HTTP 프로토콜이 일반 문자를 비롯, 사진, 음악/동영상 콘텐츠까지 간편하게 사용할 수 있다는 장점이 있지만, 많은 양의 파일을 일괄적으로 주고 받기에는 결정적으로 속도도 느리고 파일 제어도 번거롭다.

 

이렇게 대량의 파일을 네트워크를 통해 주고 받을 때는 파일 전송 전용 서비스인 Transfer Protocol)를 사용하는 것이 훨씬 유리하다.

 

 

FTP의 동작원리 및 장단점

FTP는 인터넷을 통한 파일 송수신 만을 위해 고안된 서비스(또는 프로토콜)이기 때문에 동작 방식이 대단히 단순하고 직관적이다.

그런 만큼 사용법도 간단하다. 무엇보다 파일을 빠른 속도로 한꺼번에 주고 받을 수 있다는 것이 FTP의 가장 큰 장점이다.

 

 

다만 빠른 파일 전송이 주된 목적이기에 보통의 경우 사진이나 음악, 동영상 등의 멀티미디어 콘텐츠는 내려 받기가 완료된 다음에 확인할 수 있다

(http,https 환경에서는 내려 받으며 재생이 가능하다)

 

또한 기본적으로 명령어 기반의 통신 서비스이기 때문에, 별도의 FTP 클라이언트 프로그램을 사용하지 않으면 사용이 복잡하고 어려울 수 있다.

 

 

FTP의 동작원리는 비교적 간단하다.

FTP 서비스를 제공하는 서버와 여기에 접속하는 클라이언트 사이에 두 개의 연결이 생성된다

 

데이터 전송을 제어하기 위한 신호를 주고받는 21번 포트

다른 하나는 실제 데이터(파일) 전송에 사용된다 20번 포트

 

FTP 클라이언트 프로그램은 여러 파일을 연속으로 송수신해야 하기에, 서버와의 지속적인 응답 메시지 전송을 통해 연결 상태(세션)를 유지한다.

 

 

보안적인 측면

FTP는 평문전송이기 때문에 보안이 취약하다

 

FTP의 보안을 개선한것이 FTPS이다

 

FTPS는 FTP에 없던 암호화 기능을 추가하여 보안을 강화했다

 

SSH프로토콜 기반의 SFTP도 있다

 

SFTP의 경우 보안측면에서는 FTP보다 좋다 (암호화)

 

속도면에서는 FTP보다 느리다

 

FTP와 FTPS는 20번,21번 포트를 사용하지만

SSH와 SFTP는 22번 포트를 사용한다

 

물론 포트 번호는 임의적으로 변경할 수 있다

 

리눅스에서 쓰는 yum이나 apt같은 리눅스 저장소는 FTP로 운영되는 경우가 많다

 

FileZilla라는 프로그램으로 내가 파일을 전송하고자 하는 곳에 연결한 화면이다

 

*FileZilla사이트 (기업이 아닌 개인이 사용하는것은 무료)

https://filezilla-project.org/

 

 

 

먼저 호스트부분에 연결하고자 하는 목적지의 주소를 입력한다

 

그 다음 사용자명과 비밀번호를 입력후 포트번호를 입력하면된다

(연결이 안된다면 주소,사용자명,비밀번호.포트번호를 확인하자)

 

연결이 안되는 대부분의 경우가 포트가 차단되어 있는 경우가 많다

 

파일을 전송하는 방법은 파일을 드래그하거나 복사해서 붙여넣기 하면 된다

 

만약 내가 리눅스나 유닉스를 사용중이다 하면 ftp [목적지 주소]를 입력하면 된다

 

리눅스와 유닉스의 파일 이동 명령어는

파일을 가져오고 싶으면 get [파일이름]

보내고 싶은 파일은 put [파일이름]