본문 바로가기
컴퓨터 네트워크

컴퓨터 네트워크 42장 - 파일 전송 -

by ChocoPeanut 2017. 5. 23.

컴퓨터 네트워크 42

- 파일 전송 -

 

파일 전송을 위한 사용자 환경으로 대표적인 예시가 FTP 프로그램이다. FTP인터넷에 연결된 호스트 간의 파일 복사 기능을 제공하여 원격 시스템과의 파일 송수신 기능을 지원한다. FTPFile Transfer Protocol의 약자로 사용자는 클라이언트 프로그램을 이용하여 ftp 서버에 접속을 하여 파일을 다운로드 또는 파일 업로드 과정을 수행할 수 있다. FTP 프로그램을 사용하기 위해서는 서버에 등록된 계정과 암호로 로그인을 할 필요가 있다. 일반적으로 다중 사용자에게 파일 서비스를 제공하려고 불특정 다수에게 로그인 계정을 일일이 부여하는 것은 현실적으로 불가능하므로 익명 FTP를 이용하여 공개 소프트웨어 배포와 같은 기능을 수행할 수 있다.


UNIX 환경에서는 ftp 클라이언트 프로그램을 실행 후 기본 명령을 사용하여 작동하고 Windows 환경에서는 GUI 환경을 지원한다. FTP 시스템에서는 파일을 송수신하는 getput 명령을 주로 사용한다. get은 원격 시스템에서 파일을 수신하는 명령이고 put은 원격 시스템으로 파일을 송신하는 명령이다.


FTP는 일반 응용 프로그램과 달리 클라이언트와 서버 사이에 제어 채널데이터 채널이라는 두 가지 연결이 존재한다. 제어 채널은 FTP 프로토콜의 명령과 응답을 전송하고 데이터 채널은 복사하려는 파일의 내용을 전송한다. 구성 요소로 사용자 인터페이스 모듈, 명령 송수신 모듈, 파일 송수신 모듈, Well-known 포트가 있다. 사용자 인터페이스 모듈은 사용자 명령을 해석하여 명령 송수신 모듈에 전달하고 명령 송수신 모듈은 제어 채널을 설정하고 사용자 명령을 FTP명령으로 전환하여 제어 채널로 전송한다. 파일 송수신 모듈은 파일 송수신 요구가 발생할 때마다 데이터 채널을 설정하여 파일 복사, 파일 목록 전송 기능을 수행한다. 제어 채널의 경우에는 클라이언트가 초기화를 하고 데이터 채널의 경우에는 서버가 초기화를 진행한다. Well_known 포트는 제어 채널은 TCP 21번이고 데이터 채널은 TCP 20번이다.



데이터 채널 설정은 우선 송수신을 위해 포트를 생성하고 이 포트 번호를 서버에 전송한다. 다음으로 파일 송수신 명령을 전송하게 된다. 그 후 클라이언트는 대기하고 있다가 서버가 연결 설정 요구를 하게 되면 파일을 데이터 송신하게 된다. 상세히 보게 되면 클라이언트에서 데이터 채널을 생성하게 되면 PORT 명령을 통해 생성한 포트 번호를 전달하게 되고 RETR/STOR 명령을 통해 파일 송수신 명령을 전달하게 된다. 이 후 데이터 채널을 연결하고 데이터를 전송하고 채널을 종료시킨다. 이에 대해 서버에서 응답 코드를 전송하게 된다.



임의의 시스템이 원격시스템으로부터 부팅 코드를 다운로드할 때 사용하는 프로토콜이 있는데 TFTP이다. TFTPTrivial File Transfer Protocol로 자체적으로 하드디스크를 보유하지 못한 X-terminal과 같은 장비에서 사용하기 위해서 존재한다. 기존의 FTP의 기능을 대폭 축소하여 경량화 하였는데 TCP대신 UDP를 사용하고 복잡한 디렉토리, 파일 관리 기능을 제거한 형태이다. 또한 오직 하나의 파일만 복사할 수 있게 된다.




출처 - 데이터 통신과 컴퓨터 네트워크