나를 기록하다
article thumbnail
반응형

모두의 네트워크

응용 계층의 역할

우리가 웹 페이지를 볼 때는 크롬과 같은 웹 브라우저를 이용하고, 메일을 보내고 받을 대는 Gmail 같은 메일 프로그램을 사용한다. 이렇게 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 도와준다. 이러한 애플리케이션은 서비스를 요청하는 측(사용자 측)에서 사용하는 애플리케이션으로 분류할 수 있다.

서비스: 네트워크나 애플리케이션이 제공하는 기능이나 동작, 정보 등

 

일반적으로 서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다.

웹 브라우저나 메일 프로그램은 사용자 측에서 사용하는 애플리케이션이니 클라이언트가 된다. 반면에 서비스를 제공하는 측인 서버에는 웹 서버 프로그램과 메일 서버 프로그램 등이 있다. 그리고 이러한 애플리케이션은 응용 계층에서 동작한다.

 

여기서 응용 계층은 5계층의 세션 계층과 6계층의 표현 계층을 포함한다.

응용 계층(응용 계층 + 표현 계층 + 세션 계층)

응용 계층에서는 사용자 측(클라이언트)의 요청을 전달하기 위해 통신 대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다.

 

또한 클라이언트 측 애플리케이션(웹 브라우저, 메일 프로그램 등)이 서버 측 애플리케이션(웹 서버 프로그램, 메일 서버 프로그램 등)과 통신하려면 응용 계층의 프로토콜을 사용해야 한다.

클라이언트와 서버

 

아래 표와 같이 웹 사이트를 볼 때는 HTTP, 파일을 전송할 때는 FTP, 메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3라는 프로토콜을 사용한다. 또한 네트워크에서 컴퓨터나 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것을 이름 해석(name resolution)이라고 하는데, 이를 위해 DNS를 사용한다.

주요 응용 계층 프로토콜
HTTP(HyperText Transfer Protocol; 하이퍼텍스트 전송 프로토콜): 웹 사이트 접속
FTP(File Transfer Protocol; 파일 전송 프로토콜): 파일 전송
SMTP(Simple Mail Transfer Protocol; 전자 우편 전송 프로토콜): 메일 송신
POP3(Post Office Protocol version; 포스트 오피스 프로토콜): 메일 수신
DNS(Domain Name System; 도메인 이름 시스템): 이름 해석

 

응용 계층은 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할을 한다. 그리고 응용 계층에서 보내려는 데이터는 하위 계층인 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층 순서로 처리된다.

OSI 모델의 계층에서 사용되는 프로토콜과 기술


웹 서버의 구조(웹 사이트 접속)

WWW란?

World Wide Web(월드 와이드 웹)의 약어로, 줄여서 W3나 웹(Web)이라고 불린다. WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다.

HTML, URL, 마크업 언어
HTML: HyperText Markup Language(하이퍼텍스트 마크업 언어)의 약어
URL: Uniform Resource Locator의 약어
마크업 언어: 문장의 일부를 태그로 감싸고 문장을 꾸미기 위한 형식

 

HTML은 웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어이다. 제목이나 목록과 같은 문장 구조를 지정하거나 이미지 파일을 보여 줄 때도 태그를 사용한다. 또한 HTML은 하이퍼텍스트를 작성하는 마크업 언어로 하이퍼텍스트로는 문자와 이미지를 표시하거나 하이퍼링크를 사용할 수 있다. 하이퍼링크는 보통 링크라고 부르는데 웹 사이트에서 아이콘이나 버튼 등에 있는 링크를 클릭하면 다른 사이트로 이동할 수 있다. 이동한 사이트에서는 html 파일이나 이미지 파일이 웹 서버에서 전송된다.

웹 서버에서 웹 브라우저로 전송되는 html 파일과 이미지 파일


HTTP란?

클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 한다. 그림과 같이 클라이언트에서 HTTP 요청(request)을 보내고 서버에서 HTTP 응답(response)을 반환한다.

HTTP 요청과 HTTP 응답

클라이언트가 데이터를 요청할 때는 "GET"이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다. 그러면 서버는 응답으로 요청을 정상적으로 처리했다는 "OK"라는 정보를 반환하고 payment.html을 클라이언트에게 보낸다.

요청과 응답
요청(request): 데이터나 작업 처리를 요청하는 메시지
응답(response): 상대에게 보낸 데이터나 처리 요청에 대한 응답

 

HTTP/1.0, HTTP/1.1, HTTP/2.0

HTTP 버전별 특징
HTTP 1.0 - 요청을 보낼 때마다 연결했다가 끊는 작업 반복
HTTP 1.1 - Keapalive라는 기능이 추가되어 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조이다. 또한 요청도 순서대로 처리하는 특징이 있다.
HTTP 2.0 - HTTP 1.1 버전의 요청을 순서대로 응답을 반환하는 특징(이전 요청이 길어지면 다음 요청의 처리가 느려짐)을 보완하여 콘텐츠를 빠르게 표시할 수 있다.

DNS 서버의 구조(이름 해석)

응용 계층에는 이름 해석을 통해 도메인 이름을 IP 주소로 변환하는 역할을 하는 DNS가 있다.

도메인 이름이란?

컴퓨터(서버)에는 IP 주소가 있어서 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다.

예를 들어 그림과 같이 웹 브라우저의 주소 창에 URL을 직접 입력하면 웹 사이트가 보인다.

주소창에 URL 입력

하지만 여기서 IP 주소가 아닌 https://www.acmicpc.net을 입력했는데도 웹 사이트가 보인다.

이유는 DNS는 URL을 IP 주소로 변환하는 서비스(시스템)이기 때문이다.

 

IP 주소는 168.126.63.1와 같이 숫자로 구성되어 있는데 사람들이 쉽게 기억할 수 없다. 이런 이유로 IP 주소가 아닌 https://www.acmicpc.net과 같은 주소를 사용하여 접속하도록 돕는 것을 DNS의 이름 해석(name resolution)이라고 한다.

https://www.acmicpc.net에 접속하면 DNS 서버가 이 웹 사이트 서버의 IP 주소를 알려준다.

https://www.acmicpc.net과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라고 하고, 도메인 이름 앞에 있는 www는 호스트 이름(서버 이름)이라고 한다.

 

 

DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있다. 요청한 첫 번째 DNS 서버가 도메인의 IP 주소를 모르는 경우에는 다른 DNS 서버에 질의하여 IP 주소를 반환한다.


메일 서버의 구조(SMTP와 POP3)

응용 계층에는 메일을 송수신하기 위한 프로토콜이 존재한다.

메일의 송수신 구조

메일을 보내는 데 사용되는 프로토콜은 SMTP고, 메일을 받는 데 사용되는 프로토콜은 POP3이다.

SMTP는 포트 번호로 25번을 사용하고, POP3는 110번을 사용한다.

 

메일 송수신에는 SMTP와 POP3 프로토콜이 사용된다

  1. SMTP를 사용하여 클라이언트(컴퓨터) 1에서 메일 프로그램을 이용해서 메일 서버 1로 메일을 보낸다.
  2. SMTP를 사용하여 메일 서버 1에서 메일 서버 2로 메일을 보낸다.
  3. POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와 클라이언트(컴퓨터) 2로 메일 데이터를 보낸다.

SMTP에 의한 메일 송신과 메일 전송

컴퓨터와 메일 서버 간에 일어나는 메일 교환


POP3에 의한 메일 수신

메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있다. 메일 서버 2는 POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와서 클라이언트(컴퓨터) 2로 전송한다.

 

메일 서버 2에 클라이언트(컴퓨터) 1의 메일이 도착하면 클라이언트(컴퓨터) 2는 메일 서버 2의 메일 박스에 있는 메일을 받아 가야 하지만 메일을 수신할 때는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다.

메일 서버와 클라이언트(컴퓨터) 간에 일어나는 메일 교환

반응형
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...