1. 응용 계층의 역할
* 응용계층
- 애플리케이션 : 운영 체제에서 실행되는 모든 소프트웨어를 의미한다. 인터넷 익스플로러 같은 웹브라우저부터 Outlook과 같은 메일프로그램 등을 포함한다.
- 클라이언트 : 서비스를 요청하는 측을 의미한다. 웹 브라우저나 메일프로그램 등을 의미한다.
- 서버 : 서비스를 제공하는 측을 의미한다. 웹 서버 프로그램과 메일 서버 프로그램 등을 의미한다.
- 위와 같은 애플리케이션들이 응용 계층에서 동작한다. 참고로 이 장에서의 응용 계층은 세션 계층과 표현 계층을 포함하는 것으로 생각한다.
- 응용계층은 사용자 측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달한다.
- 클라이언트 측 애플리케이션(웹 브라우저, FTP, 메일프로그램 등)이 서버측 애플리케이션(웹 서버 프로그램, FTP 서버 프로그램, 메일 서버 프로그램 등)과 각각 통신하려면 응용 계층의 프로토콜을 사용해야 한다.
프로토콜 | 내용 |
HTTP | 웹 사이트 접속 |
DNS | 이름 해석 |
FTP | 파일 전송 |
SMTP | 메일 송신 |
POP3 | 메일 수신 |
- 위 프로토콜이 가장 대표적인 응용계층의 프로토콜이다.
OSI모델과 프로토콜 | |||||||
응용 계층 | HTTP | DNS | FTP | SMTP | POP3 | 기타 | |
전송 계층 | TCP | UDP | |||||
네트워크 계층 | IP 등 | ||||||
데이터 링크 계층 | 이더넷 | ||||||
물리 계층 | 전기 신호 변환 |
- 지금까지 나온 프로토콜을 정리하면 위와 같다.
2. 웹 서버의 구조
* WWW
- WWW : World Wide Web의 약자로 W3이나 웹(Web)이라고도 한다. 이는 인터넷을 통한 상호 연결된 웹페이지 시스템을 의미한다.
- WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다.
- HTML : 웹 페이지의 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어이다. 작성된 내용을 바탕으로 우리가 웹페이지를 볼 수 있다. 하이퍼텍스트는 문자와 이미지를 표시하거나 하이퍼 링크를 사용할 수 있다. (Hyper Text Markup Language)
* HTTP
- 클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP통신을 한다. 다음 그림과 같이 클라이언트가 HTTP요청을 보내고 서버에서 HTTP응답을 반환한다.
- 참고로 FTP(파일 전송 프로토콜)의 통신 포트는 제어 용도로는 21번을, 데이터 전송 용도로는 20번 포트를 사용한다.
- 위는 클라이언트가 index.html을 요청하고 받는 상황이다. 클라이언트가 데이터를 요청할 때는 "GET"이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다.
- 서버는 응답으로 요청을 정상적으로 처리했다는 정보를 반환하고 index.html을 클라이언트에게 보낸다.
- HTTP/2나 HTTP/1.1 버전을 현재 사용한다. 예전에는 HTTP/1.0버전을 사용하였는데, 이는 클라이언트가 요청을 보낼 때 마다 연결과 끊는 작업을 반복하였다. 연결수립을 이루고 나면 요청과 응답을 하나씩 보내고 연결을 끊는다. 그리고 다시 연결을 수립하고 요청과 응답을 하나씩 보내고 연결을 끊었다.
- HTTP/1.1 버전에서는 keepalive라는 기능이 추가되었다. 연결이 한 번 수립되면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는다.
- HTTP/2 버전은 1.1버전의 단점이었던 요청을 보낸 순서대로 응답하여 시간이 딜레이 된다는 것을 해결하였다. 2버전은 요청을 보낸 순서대로 응답하지 않아도 돼어 콘텐츠를 훨씬 빠르게 표시할 수 있게되었다.
3. DNS 서버의 구조
* 도메인 이름
- 기본적으로 컴퓨터(서버)에는 IP 주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있었다. 그러나 우리는 IP 주소를 입력하지 않고 URL을 입력하여 웹사이트로 접속한다.
- DNS : URL을 IP 주소로 변환하는 서비스(시스템)을 의미한다.
- 이름 해석 : IP주소가 아닌 "http://www.haesoo9410.tistory.com"과 같은 주소를 사용하여 접속하도록 돕는 것
- 도메인 이름 : "www.haesoo9410.tistory.com"과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름
- 호스트 이름 : 도메인 이름 앞에 있는 www를 의미한다. 서버 이름이라고도 부른다.
- 브라우저에 URL을 입력하면 다음과 같은 과정이 일어난다.
- 처음에는 웹 사이트의 IP주소를 모르므로 먼저 DNS 서버에 요청하게 되는 것이다. 그러나 요청한 첫 번째 DNS 서버가 도메인의 IP주소를 모를 수도 있다. 이럴 때는 그 DNS 서버가 다른 DNS 서버에 요청을 보낸다.
- DNS서버는 전 세계에 흩어져 있으므로 연계하며 동작한다.
4. 메일 서버의 구조
* 메일의 송수신 구조
- 메일을 송수신하려면 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램간 통신을 해야한다. 여기서 사용되는 프로토콜은 SMTP와 POP3가 있다.
- SMTP : 메일을 보내는 데 사용되는 프로토콜이며 포트 번호로 25번을 사용한다.
- POP3 : 메일을 받는 데 사용되는 프로토콜이며 포트 번호로 110번을 사용한다.
- 메일을 보내는 흐름을 간단히 알아보자. 먼저 사용자는 메일 서비스를 제공하는 포털이나 회사의 메일 서버를 사용한다. 즉 메일을 보낼 때는 그 메일 서버에 메일을 보낸다.
* SMTP와 메일 송신 및 전송
- 위에서 알아본 송신 과정을 좀 더 깊게 알아보자.
- 위와 같이 컴퓨터 1에서 메일 서버 1로 메일을 SMTP를 사용하여 보낸다. 그리고 다시 메일 서버 1은 SMTP를 사용하여 메일 서버 2로 메일을 전송한다.
* POP3에 의한 메일 수신
- 메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있다. 이제 메일 서버 2가 POP3을 사용하여 메일 박스의 메일을 컴퓨터 2로 전송할 차례이다.
- 메일을 수신할 때에는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다. 110번 포트를 사용한 POP3 프로토콜의 흐름은 다음과 같다.
참고
'Computer Science > Network' 카테고리의 다른 글
<네트워크> 무선 랜 (0) | 2021.04.29 |
---|---|
<네트워크> OSI모델의 흐름 (0) | 2021.04.27 |
<네트워크> 전송 계층 (0) | 2021.04.22 |
<네트워크> 네트워크 계층(2) (0) | 2021.04.17 |
<네트워크> 네트워크 계층(1) (0) | 2021.04.15 |