응용 계층: OSI 모델의 7계층
응용 계층은 애플리케이션이 동작하는 계층이다.
역할: 클라이언트의 요청을 전달하기 위해 통신 대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달
서비스를 요청하는 측: 클라이언트
서비스를 제공하는 측: 서버
클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 계층의 프로토콜을 사용해야 함.
- 응용 계층의 프로토콜(대표적인 5가지)
HTTP : HyperText Transfer Protocol / 웹 사이트 접속
FTP : File Transfer Protocol / 파일 전송
SMTP : Simple Mail Transfer Protocol / 메일 송신
POP3 : Post Office Protocol version / 메일 수신
DNS : Domain Name System / 이름 해석(컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것)
<정리 - 각 계층 별 프로토콜과 기술>
응용계층 - HTTP, DNS, FTP, SMTP, POP3, 기타 프로토콜
전송계층 - TCP, UDP
네트워크계층 - IP 등
데이터링크계층 - 이더넷
물리계층 - 전기신호 변환
- WWW란?
World Wide Wep의 약어.
WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다.
HTML : HyperText Markup Language, 웹페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어.
- HTTP란?
HTTP : 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 함. 클라이언트에서 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환.
클라이언트가 데이터를 요청할 때는 "GET"이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송함. 서버는 응답으로 요청을 정상적으로 처리했다는 "OK"라는 정보를 반환하고 index.html을 클라이언트에게 보냄.
클라이언트 --- GET/index.html HTTP/1.1 (HTTP 요청) ---> 서버
클라이언트 <--- HTTP/1.1 200 OK (HTTP 응답) --- 서버
현재는 HTTP/2나 HTTP/1.1 버전을 사용하지만 예전 HTTP/1.0 버전에서는 요청을 보낼 때마다 연결했다 끊는 작업을 반복했음. 그러다가 HTTP/1.1 버전부터 keepalive 기능이 추가됨. 연결을 한번 수립하면 데이터 교환을 마칠 때까지 유지하고 데이터 교환을 모두 끝내면 연결을 끊는 구조.
최근에는 HTTP/1.1 버전의 단점을 보완해서 빠르게 컨텐츠를 표시할 수 있는 프로토콜인 HTTP/2 버전을 사용할 수 있게 되었음. 1.1버전에선 요청을 보낸 순서대로 응답을 반환하는데, 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어짐. 2버전에서는 응답을 순서대로 반환하지 않아도 되기때문에 빠르게 컨텐츠를 표시할 수 있음.
- 응용계층의 DNS
컴퓨터(서버)에는 IP 주소가 있어서 인터넷을 통해 웹서버에 접속하여 웹사이트를 볼 수 있음. 그런데 우리는 실제로 컴퓨터(서버)에 접속할 때 IP 주소가 아닌 http://www.~~~.co.kr을 을 입력한다. DNS는 URL을 IP 주소로 변환하는 서비스이다. 이때 IP주소가 아닌 URL과 같은 주소를 사용하여 접속하도록 돕는 것을 DNS의 이름 해석(name resolution)이라고 함. http://www.~~~.co.kr에 접속하게 되면 DNS 서버가 이 웹사이트 서버의 IP 주소를 알려주는 것이다.
www.~~~.co.kr 과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라 하고, 도메인 이름 앞에 있는 www는 호스트 이름(서버 이름)이라고 한다.
그런데 요청한 첫번재 DNS 서버가 도메인의 IP 주소를 모르는 경우도 존재한다. 이럴땐 다시 DNS 서버1이 DNS 서버2에 요청한다. DNS 서버는 전 세계에 흩어져있고 모두 계층적으로 연결되어 있다.
- 메일의 송수신 구조
메일 송신시 사용되는 프로토콜 : SMTP -> 포트 25번
메일 수신시 사용되는 프로토콜 : POP3 -> 포트 110번
컴퓨터 1에서 컴퓨터2로 메일 전송하는 과정을 살펴보자.
- 1단계 : 컴퓨터1 -> 메일 서버1
컴퓨터 1은 특정 메일 서버1을 사용하는데, 메일 서비스를 제공하는 포털사이트나 회사의 메일 서버를 사용하는 경우가 많다. 포털사이트에 가입하거나 회사에서 메일 주소를 받으면 메일 서버를 사용할 수 있게 된다. 메일을 보낼 때는 메일 서비스를 제공하는 포털사이트나 회사의 메일 서버에 메일을 보내는 것. 컴퓨터1의 메일 프로그램은 SMTP를 사용하여 메일 서버1로 메일을 보냄. 컴퓨터 1과 메일 서버1의 통신은 다음과 같다.
1. 세션 시작을 통지한다.
2. 송신자의 메일 주소를 통지한다.
3. 목적지 메일 주소를 통지한다.
4. 메일 본문 전송을 통지한다.
5. 메일 본문을 송신한다.
6. 세션 종료를 통지한다.
- 2단계 : 메일 서버1 -> 메일 서버2
SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일 전송
- 3단계 : 메일 서버2 -> 컴퓨터2
메일 서버에는 메일 박스라는 메일을 보관해주는 기능이 존재하는데 메일 서버2는 POP3를 사용하여 메일 서버2의 메일 박스에서 메일을 가져와서 컴퓨터2로 전송하게 된다. 컴퓨터2가 메일 서버2의 메일을 받아갈 때는 사용자 이름과 비밀 번호를 이용한 사용자 인증이 필요하다. 과정은 다음과 같다.
1. 세션 시작을 통지한다.
2. 컴퓨터2는 수신자의 사용자 이름을 통지한다. 메일 서버2에 "OK"라는 확인 응답을 반환.
3. 컴퓨터2는 수신자의 비밀번호를 통지한다. 메일 서버2에 "비밀번호 확인"이라는 확인 응답을 반환.
4. 컴퓨터2는 자신의 메일이 있는지 확인한다. 메일 서버2에 "있음"라는 확인 응답을 반환.
5. 컴퓨터2는 메일 박스에 보관된 이메일을 전송받음
6. 세션 종료를 통지한다.
댓글