제 27 장 파일 전송 프로토콜.

Slides:



Advertisements
Similar presentations
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
Advertisements

컴퓨터와 인터넷.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
Oozie Web API 기능 테스트 이승엽.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
제8장 네트워킹.
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
PHP입문 Izayoi 김조흔.
DPR-1630&1615 IP공유기 셋팅 방법 고객지원팀 작성자 : 정청석.
FTP (File Transfer Protocol)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
FTP 와 Filezilla 프로그램 사용법
File Transfer Protocol
제 17 장 TCP : 전송 제어 프로토콜 정보통신연구실.
5. 네트워킹 사용자 표시 : users/ rusers/who/w users 지역 호스트 상에 있는 사용자의 간단한 목록 표시
8장. 원격지 시스템 관리하기.
FTP 프로그램 채계화 박재은 박수민.
제 19 장 TFTP 19.1 메시지 19.2 연결 19.3 데이터 전송 19.4 UTP 포트 19.5 TFTP 예제
Chapter 06. UDP 서버/클라이언트.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
WinCE Device Driver 실습 #3
10 장 데이터 링크 제어(Data Link Control)
제 18 장 FTP 18.1 연결 18.2 통신 18.3 명령어 처리 18.4 파일 전송 18.5 사용자 인터페이스
 10장. 인터넷과 통신 명령 익히기.
FTP 프로그램의 활용 FTP 프로그램의 용도 인터넷 공간에 홈페이지 파일을 업로드할 때 필요
Chapter 5 UDP Socket 소켓 프로그래밍.
Trivial File Transfer Protocol (TFTP)
시스템 인터페이스 Lab3 Unix 사용법 실습.
Network Security WireShark를 활용한 프로토콜 분석 I.
설치 환경 □ 운영체제 버전 : CentOS Linux 7.2 □ 리눅스 커널 버전 :
22 장 전송층(Transport Layer)
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
24장. 파일 입출력.
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
Linux/UNIX Programming
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
연습 문제 풀이 헥사 값의 의미 FTP 응답 코드의 의미 분석 (a) D 0A (b)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
8장 쿠키와 세션 한빛미디어(주).
오라클 넷(Oracle Net)의 개념 및 구성
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
MAIL CLIENT 김창우 윤성훈 이경재.
Network 네트워크 이론 및 실습 TCP / IP 4장.
10 장 데이터 링크 제어(Data Link Control)
10 장 데이터 링크 제어(Data Link Control)
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
웹(WWW).
STS 에서 웹 서버 설치 방법.
제 19 장 TCP 대화식 데이터 흐름.
시스템 인터페이스 Lab#5 쉡 실습.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 3. 솔라리스10 설치 후 설정하기 1. 텔넷 ( telnet ) 서비스 사용 SSH ( Secure Shell ) 서비스 사용 FTP ( File Transfer Protocol )서비스 사용 시스템.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
다자간 채팅프로그램 김형도 허영민
채팅 및 파일전송 프로그램 권 경 곤 김 창 년.
제 4 장 Record.
Completion Port기반의 채팅프로그램
Docker Study 6~7.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
소리가 작으면 이어폰 사용 권장!.
20 XMLHttpRequest.
Presentation transcript:

제 27 장 파일 전송 프로토콜

목 차 개요 FTP 프로토콜 FTP 예 요약

개 요 FTP는 파일 전송을 위한 인터넷 표준 NFS(29장) 차이점 FTP는 로그인할 수 있는 계정이 필요, anonymous FTP를 허용하는 서버에 로그인이 필요 서로 다른 운영체제, 파일구조, 문자 집합을 사용하는 호스트들 사이에 작동할 수 있도록 설계 FTP는 제한된 파일 형식과 파일구조를 지원한다. RFC 959는 FTP 공식 명세서 이다.

FTP 프로토콜 2개의 TCP를 사용 기존의 응용과는 다르다. 제어연결 : 전형적인 C/S 방식으로 서버는 포트21을 수동적 개방을 하고 클라이언트는 TCP 포트 21에 능동적 개방을 행한다. 이 상태는 C/S 간의 통신하는 전 시간 내 유지, 최소지연 (3장) 데이터연결 : C/S 파일이 전송 될 때마다 생성 파일 전송을 위해 최대 처리율을 가져야 함(3장)

파일전송 처리 사용자 터미널사용자 인터페이스 서버 프로토콜 제어접속 인터페이스 파일 파일 서버 데이터 시스템 전송 기능 시스템 사용자프로토콜 터미널사용자 서버 데이터 전송 기능 서버 프로토콜 인터페이스 제어접속 (FTP명령) (FTP응답) 파일 시스템 파일 시스템 데이터접속

데이터 표현 형식 파일형태 ASCII 파일 형태 EBCDIC 파일 형태 이미지 파일 형태(2진파일) 로컬 파일 형태 FTP 프로토콜은 다양한 옵션들이 제공되며 선택은 4가지 차원으로 이루어진다. 파일형태 ASCII 파일 형태 디폴트 텍스트 파일은 NVT ASCII 형태로 데이터 연결을 통해 전송된다. 송신측은 로컬텍스트를 ASCII로 수신측은 ASCII를 로컬 텍스트 파일 형태로 변환해야 하며 CR, LF가 뒤따른다. EBCDIC 파일 형태 양쪽 종단이 ECDIC시스템인 경우, 턱스트 전송의 대안적인 방안 이미지 파일 형태(2진파일) 데이터를 연속적인 비트 스트림으로 보낸다. 2진 파일 전송시 사용 로컬 파일 형태 다른 바이트 크기를 갖는 호트간의 2진 파일 전송 방식 바이트당 비트수는 송신측이 기입.

Cont’d 형식제어 구조 비인쇄(Nonprint) Telnet 형식제어 포트란 캐리지 제어 파일구조 레코드구조 페이지구조 디폴트 파일은 수직 정보를 갖지 않는다. Telnet 형식제어 파일은 프린터가 번역할 수 있는 Telnet 수직 형식 제어를 갖는다. 포트란 캐리지 제어 각 줄의 첫문자가 포트란 형식의 제어 문자이다. 구조 파일구조 디폴트, 파일은 연속적인 바이트 스트림으로 취급 레코드구조 텍스트 파일에서만 사용(ASCII or EBCDIC) 페이지구조 각 페이지는 페이지 번호를 가지고 전송 수신측은 무작위로 페이지를 저장

Cont’d 전송모드 일반적인 구현 스트림 모드 블록 모드 압축모드 형태:아스키, 이미지 형식제어:비 인쇄형태 구조:파일구조 디폴트, 바이트 스트림으로 파일을 전송한다. 블록 모드 파일은 일련의 블록 들로 전송, 하나이상의 헤더바이트가 선행된다. 압축모드 간단한 run-length 코드화는 연속적으로 나타나는 동일한 바이트를 압축한다. 공백, 이진파일에서의 0바이트 문자열 (거의 사용하지 않음) 일반적인 구현 형태:아스키, 이미지 형식제어:비 인쇄형태 구조:파일구조 전송모드:스트림 모드

FTP 명령어 명령은 3, 4바이트의 ASCII 대문자로 구성되며 그 중의 몇몇은 옵션인자를 가진다.

일반적인 FTP 명령 명 령 ABOR filelist LIST password PASS n1,n2,n3,n4,n5,n6 명 령 ABOR filelist LIST password PASS n1,n2,n3,n4,n5,n6 PORT QUIT RETR filename STOR filename SYST TYPE type USER username 설 명 이전의 FTP 명령과 데이터 전송을 중지 파일 또는 디렉토리를 리스트 서버상의 패스워드 클라이언트 IP 주소와 포트(n5x256+n6) 서버에서 로그 오프 파일 검색(수신) 파일 저장(송신) 서버가 시스템 타입을 변환 파일 형태를 기술:ASCII A, 이미지는 I 서버상의 사용자명

FTP 응답 응답은 ASCII로 된 3 자리 수 숫자 뒤로 옵션 메시지를 갖는다. 응답코드내의 3자리에서 각 자리는 서로 다른 의미 를 갖는다.

응답 코드의 의미 명 령 설 명 1yz 2yz 3yz 4yz 5yz x0z x1z x2z x3z x4z x5z 명 령 설 명 1yz 2yz 3yz 4yz 5yz x0z x1z x2z x3z x4z x5z 긍정적인 예비 응답 다른 응답을 수신하기를 기대하라는 응답 긍정적인 완성 응답, 새 명령을 보낼 수 있다. 긍정적인 중간 응답, 명령이 승인, 다른 추가 명령이 필요 순간적 부정 완성 응답 차후에 명령을 재실행 할 수 있다 지속적인 부정 완성 응답 승인, 재시도 되지 않음 문법 에러 정보 연결, 제어연결 또는 데이터 연결을 언급하는 응답 인증과 계정 로그인 또는 계정 명령을 위해 응답한다. 명시되지 않음 파일시스템 상태

Cont’d 응답 코드의 3번째자리의 에러 메시지에 대한 의미를 추가한다. (이에 따른 메시지 문자열이 추가) 125 데이터 접속이 이미 열림; 전송시작 200 명령 OK 214 도움 메시지 (사용자를 위한 것) 331 사용자명 OK, 패스워드가 요구됨 425 데이터 접속을 열 수 없음 452 에러를 기록한 파일 500 문법 에러 (인식되지 않는 명령) 501 문법에러 (유효하지 않는 인수) 502 구현되지 않은 MODE 형태

Cont’d 보통 FTP는 1줄짜리 응답을 한다. >> QUIT 221 Goodbye 만일 응답이 여러 줄이면 응답코드 뒤에 공백대신 하이픈, 마지막 줄은 응답코드 뒤에 공백 >> HELP 214- The following command ….. | 214 Direct comment to ftp …...

연결관리 데이터 연결 용도 데이터 연결의 절차 클라이언트에서 서버로 파일 보내기 서버에서 클라이언트로 파일 보내기 서버에서 클라이언트로 파일 또는 목록 보내기 데이터 연결의 절차 클라이언트는 데이터 연결의 생성을 제어한다. 클라이언트는 호스트상에 임시 포트번호를 선택 이 포트에 대해 수동적 개방 클라이언트는 PORT 명령을 통해 서버에게 이 포트번호를 보낸다. 서버는 제어연결을 통해 포트번호를 받아 호스트의 해당 포트에 능동적 개방을 지시한다. 서버의 종단은 항상 포트 20을 사용

FTP 제어 접속을 통해 진행되는 PORT 명령 Cont’d 포트 1173 포트 1174 (수동적 개방) 포트 21 포트 140.252.13.34.4.150\ r\n FTP 제어 접속을 통해 진행되는 PORT 명령 FTP 클라이언트 FTP 서버 IP addr 140.252.13.34 • • • FTP 클라이언트 FTP 서버 포트 1173 포트 1174 (수동적 개방) 포트 21 (제어 접속) • • • • 포트 20 (능동적 개방) IP addr 140.252.13.34 FTP 제어 접속을 통해 진행되는 FTP 서버

FTP 예 연결관리:임시 데이터 포트 svr4 % ftp -d bsdi -d 옵션은 디버그 출력 Connected to bsdi. 클 제어접속의 active open 220 bsdi FTP server (version 5.60) ready. Name (bsdi : rstevens) : 클라이언트 프롬프트 --> USER rstevens 331 Password required for rstevens. Password : 패스워드 입력 (과정생략) ftp>dir hello.c -->PORT 140,252,13,34,4,150 200 PORT command successful -->LIST hello.c 150 Opening ASCII mode data connection for /bin/ls (결과생략) 226 Transfer complete. Remote : hello.c 56 bytes received in 0.03 seconds(1.8 Kbytes/s) ftp> quit --> QUIT 221 Goodbye

FTP 예의 제어 연결

FTP 예의 데이터 접속

연결관리 : 디폴트 데이터 포트 클라이언트가 PORT 명령을 서버에게 보내지 않는다면 이는 스트림 모드에서 클라이언트에게 문제가 발생된다.(RFC는 PORT 명령 권장)

Cont’d 제어연결 클라이언트 포트 1176, 서버 포트 21 클라이언트가 포트 1176에 수동적 개방을 할 때 클라이언트는 SO_REUSEADDR 기술 서버는 포트 20에서 1176까지 직접열기를 한다. 클라이언트는 이것을 받아 드린다. <svr4, 1176, bsdi, 21> <svr4, 1176, bsdi, 20> 서버는 데이터 접속을 능동적으로 종료 한다. 클라이언트는 제어연결을 통행 LIST 명령을 보냄 이때 SO_REUSEADDR 옵션 기술 서버 포트는 20에서 1176까지 능동적 개방지시 이때도 옵션 기술

2개의 연속적인 LIST 명령 직접 열기를 한다. 클라이언트는 1176 사용을 받아드림 약 1분 후에 진행

텍스트 파일 전송 sun % ftp bsdi Connected to bsdi. 문자가 (\r\n)으로 변환 전송되기 때문 sun % ftp bsdi Connected to bsdi. 220 bsdi FTP server (Version 5.60) ready. 생략 ftp> get hello.c 200 PORT command successful 150 Opening ASCII mode data connection for hello.c (38bytes). 226 Transfer complete 서버는 파일이 38byte 라고 알려 준다. local : hello.c remote:hello.c 42 bytes received in 0.0037 seconds (11 Kbytes/s) 42 바이트 수신 sun % ls -l hello.c -rw-rw-r-- 1 rstevens 38 Jul 18 08:48 hello.c 파일크기 38바이트 sun % wc -l hello.c 4 hello.c 파일 줄 수 4줄

전송중지(C-S) : 제어연결을 통하여 전송을 중지하고 서버로 ABOR을 전송 수신중지 (C-S) : 파일 전송 중단 : Telnet 동기 신호 전송중지(C-S) : 제어연결을 통하여 전송을 중지하고 서버로 ABOR을 전송 수신중지 (C-S) : ftp>get a.out --> TYPE I 200 Type set to I. --> PORT 140,252,13,66,4,99 200 PORT command successful . --> RETR a.out 150 Opening BINARY mode data connection for a.out (28672 bytes). ^? Received aborted waiting for remote to finish abort 426 Transfer aborted. Data connection closed. 226 Abort successful. 1536 bytes received in 1.7 seconds (0.89 Kbytes/s)

파일 전송 중지 (앞부분)

파일 전송 중지 (뒷부분) 수신된 6번째 세그먼트 인터럽트 키 입력 서버의 전송이 중지됨을 알림 1537 에서 5120 까지의 전송은 즉 18세그먼트 다음의 전송은 무시됨 이처럼 중지 명령 후에 데이터가 전송 되는 것은 프로세서 가 동시에 입력에 대 한 2개의 연결을 확인 하기 어렵기 때문

Anonymous FTP FTP의 흔한 형태 anonymous FTP 서버가 지원 할 때 아무나 서버에 로그인 하여 FTP 를 사용하여 파일을 전송 받을 수 있다. 방대한 자료를 무료로 이용할 수 있다.

Anoymous FTP SUN % ftp ftp.uu.net Connected to ftp.uu.net 생략 Name (ftp.uu.net:rstevens):anonymous ftp>cd published/books 250 CWD command successful frp>binary 200 Type set to I frp>get stevens.tcpipiv1.errata.Z ftp>quit

요 약 FTP 인터넷 표준이며 클라이언트와 서버간의 두개의 TCP 두개의 C/S 세션이 유지되는 동안 제어연결과 필요 시 생성 제거 되는 데이터 연결 사용 PORT 명령에서 거론되지 않은 TCP의 2MSL의 상호 작용 새로운 유닉스 클라이언트는 자동적으로 명령을 전송하여 서버가 8비트를 한 바이트로 처리하는 호스트인 경우 효율적인 2진 모드 사용 anonymous FTP