FTP란 무엇인가요?
FTP란 무엇인가요? FTP는 TCP/IP 프로토콜 그룹의 프로토콜 중 하나이며 English File Transfer Protocol의 약어입니다. 이 프로토콜은 일련의 사양 문서로 구성됩니다. 파일의 즐거움을 향상시키고 원격 컴퓨터의 간접적인 사용을 제공하며 저장 매체를 사용자에게 투명하게 만들고 데이터를 안정적이고 효율적으로 전송하는 것이 목표입니다. . 간단히 말해서 FTP는 두 컴퓨터 사이에서 파일을 복사하는 것입니다. 이를 "다운로드" 파일이라고 합니다. 자신의 컴퓨터에서 원격 컴퓨터로 파일을 복사하는 경우 이를 "업로드" 파일이라고 합니다. TCP/IP 프로토콜에서 FTP 표준 명령 TCP 포트 번호는 21이고, 포트 모드 데이터 포트는 20입니다. FTP 프로토콜의 임무는 두 컴퓨터의 위치, 연결 방법 또는 동일한 운영 체제를 사용하는지 여부에 관계없이 한 컴퓨터에서 다른 컴퓨터로 파일을 전송하는 것입니다. 두 대의 컴퓨터가 ftp 프로토콜을 통해 통신하고 인터넷에 액세스할 수 있다고 가정하면 ftp 명령을 사용하여 파일을 전송할 수 있습니다. 각 운영 체제의 사용에는 약간의 차이가 있지만 각 프로토콜의 기본 명령 구조는 동일합니다.
FTP 전송에는 ASCII 전송 모드와 바이너리 데이터 전송 모드의 두 가지 모드가 있습니다.
1. ASCII 전송 방법: 사용자가 복사하는 파일에 간단한 ASCII 텍스트가 포함되어 있다고 가정합니다. 원격 시스템이 UNIX를 실행하지 않는 경우 일반적으로 ftp는 파일을 쉽게 해석할 수 있도록 파일이 전송될 때 파일 내용을 자동으로 조정합니다. 다른 컴퓨터에 텍스트 파일이 저장되는 형식입니다.
그러나 사용자가 전송하는 파일에는 프로그램, 데이터베이스, 워드 프로세싱 파일 또는 압축 파일이 포함되어 있지 않은 경우가 많습니다(워드 프로세싱 파일에는 대부분 텍스트가 포함되어 있지만, 페이지 크기, 글꼴 등을 나타내는 인쇄되지 않는 문자가 포함되어 있습니다. 텍스트가 아닌 파일을 복사하기 전에 바이너리 명령을 사용하여 ftp에게 해당 파일을 그대로 복사하고 처리하지 않도록 지시하십시오. 이는 아래에서 설명하는 바이너리 전송이기도 합니다.
2. 바이너리 전송 모드: 바이너리 전송에서는 원본과 복사본이 비트 단위로 1:1로 일치하도록 파일의 비트 순서가 저장됩니다. 대상 시스템에 비트 시퀀스가 포함된 파일도 의미가 없습니다. 예를 들어 Macintosh는 실행 파일을 바이너리 모드로 Windows 시스템에 전송하지만 이 파일을 다른 시스템에서는 실행할 수 없습니다.
ASCII 모드에서 바이너리 파일을 전송하면 필요하지 않더라도 계속 번역됩니다. 이로 인해 전송 속도가 약간 느려지고 데이터가 손상되어 파일을 사용할 수 없게 될 수도 있습니다. (대부분의 컴퓨터에서 ASCII 모드는 일반적으로 ASCII 문자 조합이 사용되지 않기 때문에 각 문자의 첫 번째 중요한 비트가 의미가 없다고 가정합니다. 바이너리 파일을 전송하는 경우 모든 비트가 중요합니다.) 마찬가지로 바이너리 모드는 텍스트 파일과 데이터 파일 모두에 유효합니다.
5. FTP 작동 방식
FTP는 두 가지 모드를 지원합니다. 하나는 표준(즉, PORT 모드, 활성 모드)이고 다른 하나는 수동(즉, PASV, 패시브 모드). 표준 모드 FTP 클라이언트는 PORT 명령을 FTP 서버로 보냅니다. 수동 모드 FTP 클라이언트는 PASV 명령을 FTP 서버로 보냅니다.
다음은 이 두 가지 방법의 작동 원리를 소개합니다.
포트 모드 FTP 클라이언트는 먼저 FTP 서버의 TCP 21 포트와 연결을 설정하고 이 채널을 통해 명령을 보냅니다. 클라이언트는 데이터를 수신할 때 이 채널에서 PORT 명령을 보내야 합니다. PORT 명령에는 클라이언트가 데이터를 수신하는 데 사용하는 포트가 포함되어 있습니다. 데이터 전송 시 서버는 자체 TCP 20 포트를 통해 클라이언트가 지정한 포트에 접속하여 데이터를 전송한다. FTP 서버는 데이터를 전송하기 위해 클라이언트와 새로운 연결을 설정해야 합니다.
Passive 모드는 제어 채널을 설정할 때 Standard 모드와 유사하지만 연결 설정 후 Port 명령을 보내지 않고 Pasv 명령을 보냅니다. Pasv 명령을 받은 후 FTP 서버는 고급 포트(포트 번호가 1024보다 큼)를 무작위로 열고 클라이언트에게 이 포트에서 데이터를 전송하라는 요청을 알립니다. 클라이언트는 FTP 서버의 이 포트에 연결합니다. 그런 다음 FTP 서버는 이 포트를 통해 데이터를 전송합니다. 이번에는 FTP 서버가 더 이상 클라이언트와 새로운 연결을 설정할 필요가 없습니다.
많은 방화벽은 설정 시 외부에서 시작된 연결을 허용하지 않으므로 방화벽 뒤에 있거나 인트라넷에 있는 많은 FTP 서버는 클라이언트가 FTP 서버를 통해 FTP 서버를 열 수 없기 때문에 PASV 모드를 지원하지 않습니다. 방화벽 내부 네트워크의 많은 클라이언트가 PORT 모드를 사용하여 FTP 서버에 로그인할 수 없어 내부 네트워크의 클라이언트와 새로운 연결을 설정할 수 없습니다.