FTP
위키백과 ― 우리 모두의 백과사전.
인터넷 프로토콜 스위트 | |
---|---|
응용 계층 | FTP, HTTP, HTTPS, IMAP, IRC, NNTP, POP3, SMTP, SIP, SNMP, SSH, UUCP, DNS... |
전송 계층 | TCP, UDP, SCTP, DCCP, ... |
네트워크 계층 | IP, IPv4, IPv6, ICMP, ARP, IGMP, ... |
데이터링크 계층 | 이더넷, FDDI, PPP, ... |
물리적 계층 | RS-232, EIA-422, RS-449, EIA-485... |
FTP (File Transfer Protocol)는 TCP/IP 프로토콜 아래에서 서버-클라이언트 파일 전송을 하기 위한 프로토콜이다. TCP/IP 프로토콜 테이블의 응용계층에 속하는 프로토콜이다. 역사는 오래되었지만 지금도 인터넷에서 자주 사용되는 프로토콜이다.
HTTP와는 달리 명령과 데이터 전송용의 2개의 커넥션를 확립하는 특징이 있다. 우선 컨트롤 포트인 서버 21번 포트로 사용자 인증, 명령을 위한 커넥션이 만들어지고, 여기를 통해 클라이언트에서 지시하는 명령어가 전달된다. 실제의 파일 전송은 필요할 때 새로운 커넥션이 만들어진다. 이 전송용 커넥션에는 액티브 모드, 패시브 모드라고 하는 2 종류의 방식이 있다.
액티브 모드(혹은 포토 모드)에서는 서버측이 자신의 데이터 포트인 20번 포트에서부터 클라이언트가 지정한 지점으로의 데이터 커넥션을 만든다. 클라이언트가 지정하는 포트는 주로 1023이상의 번호가 매겨진 포트이다.
패시브 모드에서는 클라이언트가 서버가 원하는 포트로의 커넥션을 만든다. 이 때에는 보통 양쪽 포트 모두 1023이상의 포트를 사용한다.
액티브 모드에서는 클라이언트가 파이어월, NAT(IP 마스킹) 등을 사용하는 환경일 때에 잘 동작하지 않을 수 있다. 그런 경우엔 패시브 모드로 이용하면 사용할 수 있기도 하다.
어느 모드에서도 2개의 커넥션은 만드는 점은 다르지 않다. 서버 측에 파이어 월이 있는 경우, 데이터 커넥션에 어느 포트 번호를 사용할지를 설정해 파이어 월과 문제는 없는지 확인할 필요가 있다. 패시브 모드를 사용하고 있을 때에 클라이언트측의 파이어 월은 신경쓸 필요가 없다.
[편집] 보안
FTP는 서버측의 파일을 변경 또는 삭제할 수 있기때문에 전송전에 사용자이름과 패스워드를 확인하는 인증과정이 필요하다. 보통 FTP에서는 패스워드가 암호화되지 않고 위험하기 때문에 원 타임 패스워드를 이용한 인증을 이용하거나, 보안을 더욱 철저하게 하기 위해서는 아예 SFTP, SCP등 다른 방법을 사용하여 파일을 전송한다.
[편집] 관련 RFC
[편집] 같은 목적으로 사용할 수 있는 프로토콜
- TFTP
- HTTP/WebDAV
- SCP/SFTP
- Rcp
- rsync
- NFS
- SMB/CIFS(SAMBA)
분류: 인터넷 표준 | 인터넷 프로토콜 | 파일 전송 프로토콜