기술(IT)

파일 전송 기술 - FTP(File Transfer Protocol)

2019. 9. 29.
728x90

FTP(File Transfer Protocol)는 컴퓨터 네트워크의 서버와 클라이언드간의 데이터 파일 전송에 사용되는 표준 네트워크 프로토콜이다. FTP 사용자는 일반적으로 사용자 이름과 암호의 형태로 클리어 텍스트 로그인 프로토콜로 자신을 인증할 수 있지만, 서버가 이를 허용하도록 구성된 경우 익명으로 연결할 수 있다. FTP는 클라이언트와 서버 사이의 별도 제어 및 데이터 연결을 사용하는 클라이언트-서버 모델 아키텍처를 기반으로 구축된다. 사용자 이름과 암호를 보호하고 콘텐츠를 암호화하는 보안 전송을 위해 FTP는 SSL/TLS(FTPS)로 보안 되거나 SSH 파일 전송 프로토콜(SFTP)로 대체되는 경우가 많다. 첫 번째 FTP 클라이언트 애플리케이션은 운영체제가 그래픽 사용자 인터페이스를 가지기 전에 개발된 명령줄 프로그램이었으며, 여전히 대부분의 Windows, Unix 및 Linux 운영체제와 함께 배송되고 있다. 그 후 많은 FTP 클라이언트 및 자동화 유틸리티가 데스크톱, 서버, 모바일 장치 및 하드웨어용으로 개발되었으며 FTP는 HTML 편집기와 같은 생산성 애플리케이션에 통합되었다.

통신 및 데이터 전송
FTP는 데이터 연결 방법을 결정하는 능동 또는 수동 방식에서 실행될 수 있다. 두 경우 모두 클라이언트는 대개 권한 없는 임의의 포트 N에서 FTP 서버 명령 포트 21로 TCP 제어 연결을 생성한다. 클라이언트가 방화벽 뒤에 있고 들어오는 TCP 연결을 수용할 수 없는 상황에서는 수동 상태를 사용할 수 있다. 이 상태에서 클라이언트는 제어 연결을 사용하여 PASV 명령을 서버로 전송한 다음 서버에서 서버 IP 주소와 서버 포트 번호를 수신한 다음 클라이언트가 임의 클라이언트 포트에서 서버 IP 주소 및 서버 포트 번호로 데이터 연결을 여는 데 사용한다. 두 모드 모두 IPv6을 지원하기 위해 1998년 9월에 업데이트되었다. 그 때 패시브 모드에 추가 변경이 도입되어 확장 패시브 모드로 업데이트되었다. 활성 모드에서는 클라이언트가 포트 M의 서버로부터 수신되는 데이터 연결을 수신하기 시작한다. 수신하는 포트를 서버에게 알리기 위해 FTP 명령 PORT M을 전송한다. 그런 다음 서버는 FTP 서버 데이터 포트인 포트 20에서 클라이언트로 데이터 채널을 시작한다. 서버는 ASCII의 세 자리 상태 코드로 제어 연결을 통해 선택적인 텍스트 메시지로 응답한다. 예를 들어, 200은 마지막 명령이 성공했음을 의미한다. 숫자는 응답 코드를 나타내며, 선택적 텍스트는 사람이 읽을 수 있는 설명이나 요청을 나타낸다. 제어 연결을 통해 전송되는 인터럽트 메시지를 사용하여 데이터 연결을 통해 파일 데이터의 지속적인 전송을 중단할 수 있다.

네트워크를 통해 데이터를 전송하는 동안 다음 네 가지 데이터 표현을 사용할 수 있다.
바이너리 모드: 송신기는 각 파일 바이트를 송신하고 수신자는 수신하는 대로 바이트를 저장한다.(FTP의 모든 구현에 대해 이미지 모드 지원이 권장된다.)
EBCDIC 모드: EBCD를 사용하는 호스트 간의 일반 텍스트에 사용IC 문자 집합.
ASCII 모드: 텍스트에 사용된다. 필요한 경우 데이터는 송신 전 송신 호스트의 문자 표현에서 "8비트 ASCII"로 변환되고, (필요한 경우) 수신 호스트의 문자 표현으로 변환된다. 따라서 이 모드는 일반 텍스트 이외의 데이터를 포함하는 파일에는 적합하지 않다.
로컬 모드: 동일한 설정을 가진 두 컴퓨터가 데이터를 ASCII로 변환할 필요 없이 독점 형식으로 전송할 수 있도록 허용한다. 텍스트 파일의 경우, 다른 형식 제어와 기록 구조 옵션이 제공된다. 이러한 기능은 텔넷 또는 ASA를 포함하는 파일을 쉽게 사용할 수 있도록 설계되었다.

데이터 전송은 다음 세 가지 모드 중 하나로 수행될 수 있다.
블록 모드: FTP는 데이터를 여러 블록(블록 헤더, 바이트 수 및 데이터 필드)으로 분할한 다음 TCP에 전달한다.
스트림 모드: 데이터가 연속 스트림으로 전송되어 FTP가 어떠한 처리도 하지 못하게 한다. 오히려, 모든 프로세싱은 TCP에 맡겨진다. 데이터가 기록으로 분할되지 않는 한 파일 종료 표시기가 필요하지 않다.
압축 모드: 데이터는 간단한 알고리즘을 사용하여 압축된다.
일부 FTP 소프트웨어는 또한 DEFLATE 기반 압축 모드를 구현하는데, 이를 가능하게 하는 명령 뒤에 Mode Z라고 부르기도 한다. 이 모드는 인터넷 드래프트에서 설명되었지만 표준화되지는 않았다.

LIST

댓글

추천 글