모두의 네트워크 정리 - 응용 계층

mainsain·2022년 3월 10일
0

CS

목록 보기
11/20

응용 계층의 역할

OSI 모델의 응용 계층의 역할에 대해서 알아보자.


응용 계층의 역할

웹 페이지를 볼 때는 크롬같은 웹 브라우저를 사용하고, 메일을 보내고 받을 때는 Outlook 같은 메일 프로그램을 사용할 건데, 이처럼 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 도와준다.

이러한 애플리케이션은 서비스를 요청하는 측(클라이언트)(사용자 측)과 서비스를 제공하는 측(서버)이 있다.
웹 브라우저나 메일 프로그램은 사용자 측에서 사용하는 애플리케이션이니 클라이언트가 된다.

반면 서비스를 제공하는 측인 서버에는 웹 서버 프로그램과 메일 서버 프로그램 등이 있다. 이러한 애플리케이션은 응용 계층에서 동작한다.
이제 설명할 응용 계층은 5계층의 세션 계층과 6계층의 표현 계층을 포함하는 것으로 생각할 것.

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

그림과 같이 서버 측 애플리케이션과 통신하려면 응용 계층의 프로토콜이 필요하다.

프로토콜내용
HTTP웹 사이트 접속
DNS이름 해석
FTP파일 전송
SMTP메일 송신
POP3메일 수신

네트워크에서 컴퓨터나 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것을 이름 해석이라고 하는데, DNS를 사용한다.
// 더 많은데 대표적인 프로토콜만 소개.
응용 계층은 각각의 애플리케이션에 대응되는 데이터를 전송하는 역할을 한다. 위 그림으로 정리.


정리

  • 서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고 한다.
  • 클라이언트에서 사용하는 애플리케이션과 서버에서 사용하는 서버 프로그램 간의 통신은 응용 계층의 프로토콜을 사용한다.
  • 응용 계층의 주요 프로토콜에는 HTTP, FTP, DNS, SMTP, POP3 등이 있다.

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

응용 계층에는 웹 페이지를 접속하기 위한 프로토콜이 있다. 이번엔 웹 페이지에 접속하는 구조에 대해 설명한다.


WWW란?

먼저 인터넷에서 핵심적인 역할을 하는 WWW는 줄여서 W3, 웹(Web)이라고도 부른다. WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다.

HTML

웹 페이지에서 문장 구조나 문자를 꾸미는 태그를 사용하여 작성하는 마크업 언어이다.
또한 하이퍼텍스트를 작성하는 마크업 언어라고도 한다. 하이퍼텍스트로는 문자나 이미지를 표시하거나 하이퍼링크를 사용할 수 있는데, 하이퍼링크는 보통 링크라고 부르고 클릭하면 다른 사이트로 이동이 가능하다.

문서와 이미지를 별도로 요청하는데, 가끔 글이 먼저 보이고 사진이 나중에 보일 때가 있다.


HTTP란?

클라이언트(웹 브라우저)는 웹 사이트를 보기 위해 서버(웹 서버 프로그램)의 80번 포트를 사용하여 HTTP 통신을 한다.그림과 같이 클라이언트에서 HTTP 요청을 보내고 서버에서 HTTP 응답을 반환한다.
클라이언트가 데이터를 요청할 때는 "GET"이라고 하는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다. 그러면 서버는 응답으로 요청을 정상적으로 처리했다는 "OK"라는 정보를 반환하고 index.html을 클라이언트에게 보낸다.

지금은 HTTP/2나 HTTP/1.1 버전을 사용하지만 예전의 HTTP/1.0 버전에서는 요청을 보낼 때마다 연결 - 끊는 작업을 반복했었다.
그러다 HTTP/1.1 버전에서는 keepalive라는 기능이 추가되었다.
그림과 같이 연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝나면 연결을 끊는 구조이다.
keepalive는 요청도 순서대로 처리하는 특징이 있다. 그래서 이전 요청을 처리하는 데 시간이 길어지면 다음 요청에 대한 처리가 늦어진다. 그래서 나온 것이 HTTP/2 버전이다.
그림을 보면 (2)요청이 제일 먼저 도착하고, (1)요청이 제일 늦게 도착했는데, 요청을 보낸 순서대로 응답하지 않아도 괜찮다는 것. 따라서 콘텐츠를 빠르게 표시할 수 있다.


정리

  • HTML은 하이퍼텍스트를 작성하는 마크업 언어(문장의 일부를 태그로 감싸고 문장을 꾸미는 형식)로 '태그'를 사용하여 문장구조나 이미지 파일을 표시한다.

  • HTML로 작성된 웹페이지는 웹 브라우저로 볼수 있다.

  • 하이퍼텍스트로는 문장이나 이미지를 표시하거나 하이퍼링크를 사용할 수 있다.

  • 일반적으로 웹 브라우저는 웹 서버(웹 서버 프로그램)의 80번 포트를 통해 HTTP 통신을 한다.

  • 웹 브라우저에서는 HTTP 요청을 보내고 웹 서버에서는 HTTP 응답을 반환한다.

  • HTTP/1.1버전은 keepalive 기능이 있어서 데이터를 교환하는 동안에는 연결을 유지하고 데이터 교환이 끝나면 연결을 끊는다.

  • HTTP/2버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.


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

응용 계층에는 이름 해석을 통해 도메인 이름을 IP 주소로 변환하는 역할을 하는 DNS가 있다. 이번엔 DNS의 구조에 대해 알아보자.


도메인 이름이란?

기본적으로 컴퓨터(서버)에는 IP 주소가 있어서 인터넷을 통해 웹 서버로 접속하여 웹 사이트를 볼 수 있다. http://www.naver.com 을 입력했는데, 컴퓨터(서버)에 접속하려면 IP 주소를 입력해야 하는데 여기에선 IP 주소가 아닌데도 웹 사이트가 보인다.

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

IP 주소는 222.235.64.222 처럼 숫자로 구성되어 있는데, 기억하기 어렵기에 네이버같은 주소를 사용하여 접속하도록 돕는 것을 DNS의 이름 해석이라고 한다.
www.naver.com과 같이 컴퓨터나 네트워크를 식별하기 위해 붙여진 이름을 도메인 이름이라 하고, 도메인 이름 앞에 있는 www는 호스트 이름(서버 이름)이라고 한다.

DNS 서버와의 통신 흐름.
1. 컴퓨터에서 "이 도메인 이름의 IP 주소는 무엇인가요?" 질문
2. DNS 서버는 해당 요청에 해당하는 도메인 이름의 IP 주소를 알려 준다.
3. 컴퓨터는 IP 주소로 서버에 접속한다.

그러나 첫 번째 DNS 서버가 도메인의 IP 주소를 모르는 경우도 있다.
그러면 그림과 같이 DNS 서버 1이 DNS 서버 2에 요청한다.
DNS 서버는 전 세계에 흩어져 있고 모두 계층적으로 연결되어 있다.


정리

  • DNS 서버는 '이름 해석'을 사용하여 도메인 이름을 IP 주소로 변환한다.

  • URL에는 호스트이름과 도메인이름이 있는데 예를들어 www.naver.com 에서 naver.com 은 도메인 이름이고 www는 호스트 이름이다.

  • 요청받은 DNS 서버가 해당 도메인 이름의 IP주소를 모르는 경우에는 다른 DNS 서버에 질의한다.

  • DNS서버는 전 세계에 흩어져 있으므로 연계하면서 동작한다.


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

응용 계층에서 메일을 송수신하기 위한 프로토콜이 있다. 이번엔 메일을 송수신하는 구조에 대해 알아보자.


메일의 송수신 구조

메일을 송수신하려면 클라이언트 측의 메일 프로그램과 서버 측의 메일 서버 프로그램 간에 통신을 해야 한다. 그때 사용되는 프로토콜은 두 가지 종류가 있다.

SMTP

메일을 보내는 데 사용되는 프로토콜이다.
포트 번호로 25번을 사용한다.

POP3

메일을 받는 데 사용되는 프로토콜이다.
포트 번호로 110번을 사용한다.

컴퓨터 1에서 메일 서버 1로 메일 보냈다.메일 서버 1에서 메일 서버 2로 메일을 전송했다.


POP3에 의한 메일 수신

메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있다.
그림과 같이 메일 서버 2는 POP3를 사용하여 메일 서버 2의 메일 박스에서 메일을 가져와 컴퓨터 2로 전송한다.메일을 수신할 때에는 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요함.


정리

  • 메일 송신은 SMTP(프로토콜) 25번 포트를 사용한다.
  • 메일 수신은 POP3(프로토콜) 110번 포트를 사용한다.
  • 메일 서버 간에도 SMTP를 사용하여 메일을 전송한다.
  • 메일 서버에는 메일 박스가 있는데 여기에 메일이 보관된다.

보강

ping 명령
목적지 컴퓨터와의 통신을 확인하려면 ping 명령을 이용한다. ping 명령은 ICMP(Internet Control Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령이다.
ping 명령이 정상으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있으므로 문제를 확인할 때 자주 사용한다.


용어 정리

  • 응용 계층(application layer, 애플리케이션 계층) : OSI 모델의 최상위 계층으로 다양하게 존재하는 응용 환경에서 공통적으로 필요한 기능을 다룬다. 시스템 간의 응용 처리는 상호 간에 통신하면서 일련의 업무를 처리할 수 있도록 필요한 서비스 기능을 제공한다. 이메일, 파일 전송, 웹 사이트 조회 등 애플리케이션에 대한 서비스를 제공하는 계층이다.

  • WWW(World Wide Web) : 거대한 통신망인 인터넷은 수많은 사이트, 데이터, 정보를 갖고 있으며, 통신 회선이 거미줄처럼 서로 연결되어 있어서 언제 어디서든 필요한 곳에 접근하거나 정보를 공유하고 주고받을 수 있는 멀티미디어 인터넷 서버다.

  • HTTP(HyperText Transfer Protocol) : 웹 서비스에서 클라이언트 (웹 브라우저)와 웹 서버 간에 정보를 주고받기 위해 사용되는 네트워크 프로토콜이다.

  • DNS(Domain Name System, 도메인 이름 시스템) : 네트워크에서 호스트 이름을 IP 주소로 변환하는 데 사용하는 시스템(서비스)이다. DNS 서비스가 동작하는 컴퓨터(서버)를 DNS 서버라고 한다.

  • FTP(File Transfer Protocol, 파일 전송 프로토콜) : 서버와 클라이언트 간에 파일을 전송하기 위한 프로토콜이다. 일반적으로 통신 포트는 제어 용도로는 21번을 사용하고 데이터 전송 용도로는 20번 포트를 사용한다.

  • SMTP(Simple Mail Transfer Protocol, 파일 전송 프로토콜) : 인터넷에서 메일을 송신하는 데 사용하는 프로토콜이다. 통신 포트는 일반적으로 25번을 사용한다. SMTP를 지원하는 서버를 SMTP 서버라고 한다.

  • POP3 : 인터넷에서 메일을 수신하는 데 사용하는 프로토콜이다. 통신 포트는 일반적으로 110번을 사용한다. POP3를 지원하는 서버를 POP3 서버라고 한다.

  • HTML(HyperText Markup Language) : 인터넷 서비스의 하나인 WWW를 통해 볼 수 있는 문서를 만들 때 사용하는 프로그래밍 언어다. 하이퍼텍스트를 작성하기 위해 개발되었다.

  • URL(Uniform Resource Locator) : 인터넷에서 파일 위치를 지정하기 위해 기술된 주소다. 웹 사이트 주소를 지정하기 위해 사용한다.

profile
새로운 자극을 주세요.

0개의 댓글