Index
Search
1. 응용 계층
1.1. 응용 계층 개요
•
TCP/IP 기본 구조
•
응용 계층
◦
웹 사이트에 접속할 때 필요한 프로토콜과 프로그램(서비스)이 있는 계층
◦
클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 메세지(데이터)로 변환하고 전송 계층으로 전달
◦
클라이언트 - 서비스를 요청하는 측
◦
서버 - 서비스를 제공하는 측
1.2. 응용 계층 프로토콜의 종류
•
프로토콜 예시
◦
HTTP, FTP, POP3, SMTP, TELNET
•
응용 계층 프로토콜은 TCP 및 UDP를 통해 유용한 기능 수행
◦
TCP
▪
FTP, HTTP, TELNET, SMTP, POP3, IMAP
◦
UPD
▪
DHCP, SNMP
•
프로토콜을 사용하기 위해서는 포트 번호가 있어야 함
•
포트란 IP 주소에서 프로그램 상호 구분을 위해 사용하는 번호
2. 웹 서비스
2.1. HTTP 프로토콜
•
웹 서비스
◦
팀 버너스리 - WWW 개발
◦
웹은 TCP/IP 에 의해 동작하며 응용계층의 HTTP 프로토콜 사용
◦
HTML 문서 전송
•
HTTP의 개념
◦
클라이언트가 사이트 정보를 요청하는 것에 대해 서버가 응답하는 방식
◦
클라이언트는 얻고 싶은 정보가 담긴 파일의 URL 등의 요청 정보를 전송
◦
서버는 해당 정보를 받아 데이터를 반환
◦
MIME (Multipurpose Internet Mail Extensions)
•
HTTP의 특징
◦
무상태, 비연결성
▪
모든 요청과 응답은 이전 것들과 상관없이 독립적
▪
해당 요청에 필요한 모든 정보를 처음부터 보내야 함
▪
무상태의 단점을 보완하기 위해 쿠키, 세션 등 사용
◦
불특정 다수를 대상으로 하는 서비스에 적합
•
HTTP 메세지 형식
◦
요청, 응답 메세지로 구분
▪
요청(상태)라인, 헤더, 공백 라인(필수), 메세지 바디
2.2. HTTPS 프로토콜
•
Hyper Text Transfer Protocol over Secure Socket Layer)
•
HTTP의 보안이 강화된 버전
•
SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화
•
기본 포트: 443
•
HTTPS 보안키
◦
대칭키
▪
암호화와 복호화 시 키가 같음
▪
클라이언트와 서버가 모두 공유키를 가짐
▪
DES (Data Encryption Standard)
◦
공개키 (비대칭키)
▪
공개키와 개인키를 함께 사용
▪
암호화 할때는 공개키, 복호화할때는 개인키 (하나는 공개, 하나는 비밀)
▪
RSA
◦
SSL 적용
▪
인증서 필요
▪
인증서에 서비스 정보 및 서버측의 공개키 포함
◦
CA
▪
인증서 발급 기업
▪
브라우저는 CA 리스트를 가짐
▪
CA 존재 확인 후 CA 공개키를 이용해 인증서 복호화
•
HTTPS 동작 방식
◦
대칭키와 공개키 모두 사용
▪
데이터 전송을 위해 대칭키 사용
▪
대칭키를 안전하게 전달하기 위해 공개키 사용
3. 파일 전송 서비스
•
FTP
◦
TCP/IP 통해 파일 전송
◦
가장 일반적인 파일 공유 방법
•
HTTP 프로토콜로 인해 FTP 사용 잘 줄어듬
◦
MIME으로 사진 음악 동양상 공유 가능
◦
클라우드, 웹하드 서비스
3.1. FTP 프로토콜
•
FTP 동작 과정
◦
FTP 서버와 FTP 클라이언트 간 접속
◦
21번/20번 포트 사용
•
능동 모드
◦
프로세스
▪
클라이언트는 FTP 서버의 21번 포트 접속 후 사용할 두번째 포트를 서버에 알려줌
▪
서버는 ACK
▪
서버는 클라이언트가 알려준 두번째 포트에 접속
▪
클라이언트는 ACK로 응답
◦
특징
▪
서버가 클라이언트에 접속 시도
▪
클라이언트 방화벽 및 외부 요인에 따라 FTP 접속 불가능 혹은 에러 발생
•
수동 모드
◦
1024~65535 사이의 랜덤 비특권 포트 사용
◦
프로세스
▪
클라이언트가 FTP 서버의 21번 포트로 접속
▪
서버는 클라이언트가 사용할 두번째 포트 알려줌
▪
클라이언트는 다른 포트를 열어 서버가 알려준 포트로 접속
▪
서버는 ACK로 응답
3.2. SFTP 프로토콜
•
SSH(Secure Shell) FTP
•
신뢰할 수 있는 데이터 흐름을 통해 파일 제어 및 관리
•
SFTP는 하나의 연결만 필요 (연결 안정적)
•
SSH 키의 유효성 검사 및 관리 복잡
•
소프트웨어간 호환성 문제 발생
4. 원격 접속 서비스
4.1. TELNET 프로토콜
•
원격 접속 서비스
◦
클라이언트가 사용 권한을 가진 서버 시스템에 접속하여 작업을 수행하는 서비스
◦
TELNET, SSH
•
TELNET
◦
원격지의 컴퓨터를 이용하는 가상 단말 기능을 실현 하기 위한 프로토콜
◦
모든 플랫폼에서 사용
◦
포트: 23번
◦
사용자 아이디 패스워드 필요
•
TELNET 동작 방식
◦
NVT
▪
터미널과 호스트와의 1:1 대칭적인 관계
▪
터미널 에뮬레이션 프로토콜
▪
Network Virtual Terminal 사용
•
클라이언트와 서버 시스템의 버전이 다른 경우에도 사용할 수 있게 데이터 변환
4.2. SSH 프로토콜
•
정의
◦
기존의 유닉스 시스템 셀은 보안 취약
◦
SSH는 서버에 접속하기 위해 사용되는 인터넷 프로토콜
◦
셀에 암호화가 추가된 버전
◦
강력한 인증 방법과 안전하지 못한 네트워크에서 안전하게 통신할 수 있는 기능 제공
◦
rsh, rcp, rlogin, 등의 서비스를 안전하게 사용할 수 있도록 제공
•
동작 방식
5. 메일 서비스
•
메일 서비스
◦
메일 주소를 이용하여 이메일을 주고받을 수 있는 서비스 제공
◦
TCP/IP 이전에는 대형 컴퓨터(메인 프레임)에서 사용
◦
같은 메인프레임에서만 사용 가능
•
프로토콜
◦
SMTP - 메일을 송신할 때 사용
◦
POP3 - 메일을 전송받을 때 사용
◦
IMAP - 메일을 전송받을 때 사용 (POP3의 비동기성 보완)