CS/Network

[Chapter 16] 파일 전송 (파일 전송을 위한 사용자 환경)

devrabbit22 2025. 2. 19. 10:44

일반 사용자는 PC에서 FTP 클라이언트를 실행하여 FTP 서버와 접속을 시도한다. 그리고 FTP 연결이 설정되면 FTP 클라이언트가 제공하는 사용자 명령으로 파일 송수신 기능을 수행한다. FTP 클라이언트에는 많은 명령이 존재하지만, 일반적으로 FTP 서버와 파일을 주고받는 정도의 단순 명령만 사용한다. GUI 환경을 지원하는 FTP 클라이언트는 대부분 파일을 클라이언트에서 서버로, 혹은 반대 방향으로 옮기는 정도로 사용된다.

FTP 로그인

  • FTP(File Transfer Protocol)sms 1970년대 초 인터넷이 보급되던 시기에 개발된 프로그램으로 네트워크 환경에서 가장 많이 이용되는 서비스 중 하나였으며, 원격 시스템과의 파일 송수신 기능을 지원한다.
  • 원격 시스템에 접속하려면 FTP 서버에 등록된 로그인 계정과 암호가 필요하다.
  • FTP 클라이언트를 이용해 FTP 서버에 접속하려면 FTP 서버의 호스트 주소와 포트 번호를 알아야 한다.
  • 포트 번호는 전 세계적으로 공통인 Well-Know 포트를 사용하므로 사용자가 따로 기억할 필요 없이 프로그램에서 자동으로 처리한다.

익명 FTP 로그인

  • FTP 클라이언트로 파일을 송수신 하려면 반드시 FTP 서버에 등록된 계정이 있어야 한다.
  • 일반적으로 다중 사용자에게 파일 서비스를 제공하려고 불특정 다수에게 로그인 계정을 일일이 부여하는 것은 현실적으로 불가능하다. 그러나 이러한 형식으로 FTP 서비스를 제공해야 할 필요가 있는데, 이를 위한 방편으로 익명 FTP(Anonymous FTP) 서비스를 사용한다. 
  • 익명 FTP를 사용하려면 로그인 이름을 anoymous로 입력하고, 로그인 암호는 관례상 전자 메일 주소를 입력한다.
  • 로그인 이성공하면 FTP 사용자 명령으로 파일 송수신 기능을 수행할 수 있다. 

FTP 로그인

% ftp information.korea.co.kr
Connected to information.korea.co.kr.
220 information FTP server (SunOS 5.7) ready.
Name (information.korea.co.kr: hong): hong
331 Password required for hong.
Password:
230 User hong logged in.
ftp>

사용자가 FTP 서버와 연결을 시도하면 서버는 관련 메시지를 출력하고 로그인 이름과 암호 입력을 요구한다. 서버에 등록된 로그인 이름과 암호를 FTP 서버에서 인증하면 FTP 로그인 절차가 완료된다. 마지막 행처럼'ftp>' 프롬포트가 표시되면 아래의 명령을 사용할 수 있다.

사용자 파일 전송 명령

FTP 시스템에서 지원하는 다양한 기능을 유닉스에서는 기본 명령으로 사용한다. PC 기반의 윈도우즈에서 사용하는 FTP 시스템은 GUI 환경을 지원해 표에 제시한 명령어를 몰라도 쉽게 사용할 수 있다. 원격 시스템과 로컬 시스템의 ls 명령은 기본 화면 설정으로 자동 실행되며, 다른 명령들은 마우스 클릭만으로 동작하기 때문이다.

명령 설명
get 원격 시스템에서 파일을 수신한다.
put 원격 시스템으로 파일을 송신한다.
ls 원격 시스템의 현재 디렉토리 아래에 존재하는 파일 목록을 출력한다.
cd 원격 시스템의 현재 작업 중인 디렉토리를 이동한다.
lcd 로컬 시스템의 현재 작업 중인 디렉토리를 이동한다.
bin 8비트 송수신 기능을 지정한다.
quit FTP 프로그램을 종료한다.

FTP 시스템에서는 파일을 송수신하는 get과 put 명령을 주로 사용한다. get 명령은 FTP 서버에서 파일을 가져오고, put 명령은 FTP 서버로 파일을 전송한다. cd(Change Directory)와 lcd(Local Change Directory)멸영은 FTP 서버와 클라이언트에서 현재 작업중인 디렉토리를 이동한다. bin(Binary) 명령은 8비ㅡ 데이터를 전송하며, quit 명령은 FTP 연결을 종료한다.

파일 전송 명령 실행 예시

ftp> ls
200 PORT command successful.
150 ASCII data connection for /bin/ls (210.99.58.181, 32801) (0 bytes).
README
Book
hong12.Dec00.tar.Z
226 ASCII transfer complete.
34 bytes received in 0.04 seconds (0.83 Kbytes/s)
ftp>
  • 로그인 사용자(hong)의 홈 디렉토리 내용을 조회한다.
  • README, Book, hong12.Dec00.tar.Z 파일 3개가 존재한다.
ftp> get README
200 PORT command successful.
150 ASCII data connection for README (210.99.58.181, 32802) (179 bytes).
226 ASCII transfer complete.
local: README remote: README
189 bytes received in 0.021 seconds (8.90 Kbytes/s)
ftp>
  • 임의의 파일을 가져올 때는 get 명령을 사용하고, 복사할 파일의 이름을 인수로 입력한다.
  • README라는 파일을 복사하려고 get README 명령을 입력했다.
  • 복사된 파일은 클라이언트 호스트의 현재 디렉토리에 저장된다.
  • put 명령을 사용해 파일을 원격 시스템으로 전송할 수 있다.
  • 클라이언트 호스트의 현재 디렉토리에 위치한 test 파일을 복사하는 경우라면 사용자가 put test 명령을 입력하여 FTP 서버에 위치한 사용자 hong의 현재 디렉토리 아래로 파일을 복사한다.
  • 복사되는 파일의 위치를 조정하려면 cd와 lcd 명령을 사용해 디렉토리를 이동해야 한다.
  • cd 명령은 원격 시스템에서 디렉토리를 이동할 때, lcd 명령은 로컬 시스템에서 디렉토리를 이동할 때 사용한다.
  • 전송되는 파일이 실행파일처럼 이진 파일 형식이면, get이나 put 명령으로 파일 전송을 하기 전에 bin 명령으로 이진 파일임을 명시적으로 지정해야 한다.

 


Reference

쉽게 배우는 데이터 통신과 컴퓨터 네트워크

https://soso-hyeon.tistory.com/114

 

[쉽게 배우는 데이터 통신과 네트워크] CH16. 파일 전송

01 파일 전송을 위한 사용자 환경1 FTP 로그인FTP: File Transfer Protocol (원격 시스템과의 파일 송수신 기능 지원)원격 시스템에 접속하려면 FTP 서버에 등록된 로그인 계정과 암호가 필요하다. 1.1 익명

soso-hyeon.tistory.com