파일 전송 프로토콜
위키백과, 우리 모두의 백과사전.
(FTP 서버에서 넘어옴)
|
|
이 문서의 내용은 출처가 분명하지 않습니다. 지금 바로 이 문서를 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견은 토론 문서에서 나누어 주세요. |
| OSI/IP 모델 | |
|---|---|
| 7. 응용 계층 | |
| NNTP · SIP · SSI · DNS · FTP · 고퍼 · HTTP · NFS · NTP · SMPP · SMTP · DHCP · SNMP · 텔넷 · (더 보기) | |
| 6. 표현 계층 | |
| MIME · XDR · TLS · SSL | |
| 5. 세션 계층 | |
| 지명 파이프 · NetBIOS · SAP · SIP | |
| 4. 전송 계층 | |
| TCP · UDP · SCTP · DCCP | |
| 3. 네트워크 계층 | |
| IP · ICMP · IPsec · IGMP · IPX · 애플토크 | |
| 2. 데이터 링크 계층 | |
| ARP · CSLIP · SLIP · 이더넷 · 프레임 릴레이 · ITU-T G.hn DLL · L2TP · PPP · PPTP | |
| 1. 물리 계층 | |
|
RS-232 · RS-449 · V.35 · V.34 · I.430 · I.431 · T1 · E1 · POTS · SONET/SDH · OTN · DSL · 802.11a/b/g/n PHY · ITU-T G.hn PHY · 이더넷 · USB · 블루투스 |
|
|
|
파일 전송 프로토콜(File Transfer Protocol, FTP)은 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다. 파일 전송 프로토콜은 TCP/IP 프로토콜 테이블의 응용 계층에 속하며, 역사는 오래 되었지만 지금도 인터넷에서 자주 사용된다.
HTTP와는 달리 연결의 종류는 2가지가 있다:
- 명령 연결: 먼저 제어 포트인 서버 21번 포트로 사용자 인증, 명령을 위한 연결이 만들어지고, 여기를 통해 클라이언트에서 지시하는 명령어가 전달된다.
- 데이터 전송용 연결: 실제의 파일 전송은 필요할 때 새로운 연결이 만들어진다.
- 능동 모드(포토 모드): 서버가 자신의 데이터 포트인 20번 포트에서부터 클라이언트가 지정한 지점으로의 데이터 연결을 만든다. 클라이언트가 지정하는 포트는 주로 1023 보다 큰 번호가 매겨진 포트이다. 클라이언트가 방화벽, NAT(IP 마스킹) 등을 사용하는 환경일 때에 잘 동작하지 않을 수 있는데, 이때 수동 모드를 이용하면 된다.
- 수동 모드: 클라이언트가 서버가 지정한 서버 포트로 연결할 수 있게 한다. 이 때에는 보통 양쪽 포트 모두 1023 보다 큰 포트를 사용한다.
어느 모드에서도 2개의 연결을 만드는 점은 다르지 않다. 하지만 FTP 포트를 변경하게 되고 방화벽이 있는 경우, 방화벽 Inspection 모드 설정에 따라 FTP 통신은 정상적이지만, get 명령이나 ls 명령 등 FTP-DATA포트를 이용한 통신은 정상적으로 이루어지지 않을 수 있다.
목차 |
보안 [편집]
파일 전송 프로토콜은 서버의 파일을 바꾸거나 지울 수 있기 때문에 전송하기 앞서 사용자 이름과 암호를 묻는 인증 과정이 필요하다. 보통 FTP에서는 암호가 암호화되지 않아 위험하기 때문에 원 타임(한 번만 묻는) 암호를 이용한 인증을 이용하며, 아니면 보안을 더욱 철저하게 하려면 아예 SFTP, SCP 등 다른 방법을 사용하여 파일을 전송한다.
FTP 명령어 목록 [편집]
| 명령어 | RFC | 설명 |
|---|---|---|
| ABOR | 현재의 파일 전송 중단. | |
| ACCT | 계정 정보. | |
| ADAT | RFC 2228 | 인증/보안 데이터 |
| ALLO | 파일을 받기 위해 충분한 디스크 공간 할당. | |
| APPE | 이어서 추가. | |
| AUTH | RFC 2228 | 인증/보안 구조 |
| CCC | RFC 2228 | 명령 채널 지우기 |
| CDUP | 부모 디렉터리로 변경. | |
| CONF | RFC 2228 | 기밀 보호 명령 |
| CWD | 작업 디렉터리 변경 | |
| DELE | 파일 삭제 | |
| ENC | RFC 2228 | 개인 정보 보호 채널 |
| EPRT | RFC 2428 | 서버 접속에 필요한 확장 주소 및 포트 지정. |
| EPSV | RFC 2428 | 확장 수동 모드 들어가기. |
| FEAT | RFC 2389 | 서버가 추가한 기능 목록 보기 |
| LANG | RFC 2640 | 언어 탐색 |
| LIST | 지정한 경우 파일이나 디렉터리 정보를 반환. 지정하지 않은 경우 현재 작업 디렉터리 정보 반환. | |
| LPRT | RFC 1639 | 서버 접속에 필요한 긴 주소 및 목록 지정. |
| LPSV | RFC 1639 | 긴 수동 모드 들어가기 |
| MDTM | RFC 3659 | 지정한 파일의 마지막으로 수정한 시간 반환 |
| MIC | RFC 2228 | 무결성 보호 명령 |
| MKD | 디렉터리 만들기 | |
| MLSD | RFC 3659 | 디렉터리의 이름이 지정되면 디렉터리의 내용을 보여줌 |
| MLST | RFC 3659 | 명령 줄에 입력한 데이터만 제공. |
| MODE | 전송 모드 설정 (스트림, 블록, 압축) | |
| NLST | 지정한 디렉터리의 파일 이름 목록 반환. | |
| NOOP | 동작 안 함 (더미 패킷: 대개 회선이 살아있는지를 살피기 위해 쓰임) | |
| OPTS | RFC 2389 | 기능 옵션 선택. |
| PASS | 암호. | |
| PASV | 수동 모드 들어가기. | |
| PBSZ | RFC 2228 | 보호 버퍼 크기 |
| PORT | 서버 접속에 필요한 주소 및 포트 지정. | |
| PROT | RFC 2228 | 데이터 채널 보호 수준. |
| PWD | 작업 디렉터리 인쇄. 호스트 컴퓨터의 현재 디렉터리 반환. | |
| QUIT | 연결 끊기. | |
| REIN | 연결 다시 초기화. | |
| REST | 지정한 지점에서 전송 다시 시작. | |
| RETR | 파일 복사본 전송 | |
| RMD | 디렉터리 제거 | |
| RNFR | 이름 변경 원본 이름 | |
| RNTO | 이름 변경 대상 이름 | |
| SITE | 지정한 명령어를 원격 서버로 송신. | |
| SIZE | RFC 3659 | 파일 크기 반환 |
| SMNT | 파일 구조 마운트. | |
| STAT | 현재 상태 반환. | |
| STOR | 데이터 입력 및 서버 쪽 파일로 저장. | |
| STOU | 파일을 저만의 방식으로 저장. | |
| STRU | 전송 구조 설정. | |
| SYST | 시스템 유형 반환. | |
| TYPE | 전송 모드 설정 (ASCII/바이너리). | |
| USER | 인증 사용자 이름. |
관련 RFC [편집]
같은 목적으로 사용할 수 있는 프로토콜 [편집]
- TFTP
- HTTP/WebDAV
- SCP/SFTP
- Rcp
- rsync
- NFS
- SMB/CIFS(SAMBA)
|
인터넷 프로토콜 스위트 |
|
|---|---|
| 응용 계층 | |
| 전송 계층 | |
| 네트워크 계층 | |
| 데이터 링크 계층 | |
| 물리 계층 | |