본문 바로가기

CS 전공지식/네트워크

[네트워크] OSI 7계층(응용계층, DNS)

이전 시간에는 세션 계층과 표현 계층에 대해 알아봤습니다.

오늘은 드디어 OSI의 마지막 계층인 응용 계층과 응용 계층의 프로토콜에 대해 알아보겠습니다.

 


응용 계층

응용 계층은 사용자와 가장 밀접한 계층으로, 사용자와 컴퓨터 사이의 인터페이스의 역할을 담당합니다. 

 

- 데이터 전송 과정

응용 계층 - 데이터 전송 과정

응용 계층의 송신 측은 사용자로부터 데이터를 입력받으면 표현 계층으로 넘겨주고, 수신 측의 응용 계층은 표현 계층으로부터 받은 데이터를 사용자에게 보여줍니다.

응용 계층에는 웹 브라우저, 메일 프로그램 등 다양한 응용 프로그램들이 존재합니다. 웹 사이트를 볼 때는 HTTP, 메일을 보낼 때는 SMTP, 메일을 받을 때는 POP3 프로토콜을 사용합니다. 또한 URL을 IP주소로 변환해주는 DNS 프로토콜 덕분에 우리는 웹사이트를 접근할 때 일일이 IP주소를 적지 않고 URL을 통해 접속할 수 있습니다. 이외에도 다양한 프로토콜이 존재하여 각각의 응용 프로그램에 대한 데이터 전송 역할을 합니다.

 

응용 계층의 여러 가지 프로토콜 중 오늘은 DNS 프로토콜에 대해 알아보겠습니다!

 


DNS

- 도메인

우리는 네이버의 IP주소 대신 'www.naver.com'을 통해 네이버에 접속하고, 구글의 IP주소 대신 'www.google.com'을 통해 구글에 접속합니다. 이처럼 우리가 인터넷을 사용할 때 IP주소를 외워서 접속하는 경우는 거의 없습니다. 왜냐하면 IP주소는 12자리 숫자로 구성되어 있는데 수많은 사이트의 IP주소를 다 외우기가 힘들기 때문입니다. 이를 위해 도메인이 사용됩니다.

도메인은 IP주소 대신에 사용하는 영문 주소로 'www.naver.com'와 'www.google.com'가 도메인입니다. 도메인에 들어갈 수 있는 문자는 0~9의 숫자, a~z의 문자, 하이픈(-)이 있습니다. 또한 256자 이상은 불가능하고, 이미 등록된 도메인은 사용할 수 없습니다.

 


- DNS(Domain Name System)

DNS는 사람이 기억하기 쉽게 문자로 만들어진 도메인을 숫자로 된 IP주소로 바꿔주는 시스템입니다. 도메인을 IP주소로 바꿔주기 위해서 DNS 서버가 사용되는데 DNS 서버에는 IP주소와 도메인이 저장되어 있습니다. 따라서 도메인에 해당되는 IP주소를 알고 싶다면 DNS 서버에게 물어보면 됩니다.

응용 계층 - 도메인으로 IP주소 찾기

우리가 웹 브라우저에 'www.naver.com'을 치면 실제로는 바로 네이버에 접속하는 것이 아니라 DNS 서버를 한번 거치게 됩니다. 즉, 도메인을 치면 DNS 서버에서 해당 도메인의 실제 IP주소를 알려주고 우리는 그 IP주소로 네이버에 접속하게 됩니다.

 


- 도메인의 계층 구조

도메인은 체계적인 분류와 관리를 위해 계층 구조로 되어 있으며 '.'(점)으로 구분되어 있습니다. 

응용 계층 - 도메인의 계층 구조

위의 사진은 도메인의 계층 구조를 나타낸 그림입니다. 루트 아래로 두가지의 1단계 도메인이 있는데 국가를 나타내는 국가 코드 도메인과 일반적인 목적에 따라 사용되는 일반 도메인이 있습니다. 2단계 도메인은 조직의 속성을 구분하는 도메인으로, co(영리 기업), go(정부 기업), ac(대학) 등이 있습니다. 3단계 도메인은 조직이나 서비스의 이름을 나타내는 도메인으로 사용자가 원하는 문자열로 선택할 수 있습니다.

 

도메인은 계층구조대로 관리되고 있습니다. 다시 말해서 상위 계층의 DNS 서버(=네임 서버)가 하위 계층의 서버를 관리하며 하위 계층 서버의 IP주소를 알고 있습니다.

루트 서버에는 1단계 도메인에 대한 IP 주소들이 저장되어 있고 1단계 도메인 서버들을 관리합니다. 각각의 1단계 도메인 서버에는 2단계 도메인의 IP 주소가 저장되어 있으며, 2단계 도메인 서버에는 3단계 도메인 서버의 IP 주소가 저장되어 있습니다.

 


- DNS 서버

DNS 서버에서 IP주소를 알려주는 과정을 자세히 알아보겠습니다.

응용 계층 - DNS 서버에서 IP주소를 찾는 과정

'www.google.com' 도메인에 대한 IP주소를 찾는 요청이 들어오면 먼저 자신의 캐시 저장소에서 해당 도메인에 대한 IP주소가 있는지 찾아봅니다. 있다면 바로 IP 주소로 접근하고, 없다면 가장 최상의 계층인 루트 네임 서버부터 방문합니다. 루트 네임 서버에서는 'com'을 관리하는 네임 서버의 IP주소를 반환하고, 그 주소를 통해 'com'의 네임 서버에 방문합니다. 'com'의 네임 서버에서는 'google.com'을 관리하는 네임 서버의 IP주소를 반환하고, 그 주소를 통해 'google.com' 네임 서버에 방문합니다. 'google.com'의 네임 서버에 도착하면 'www.google.com'에 대한 IP주소를 알려주게 되고, 그 IP주소를 받은 DNS 서버는 요청한 컴퓨터에 IP주소를 반환합니다.

 


지금까지 응용 계층과 응용 계층의 프로토콜인 DNS에 대해 알아봤습니다!

다음 시간에는 응용계층의 또 다른 프로토콜인 HTTP에 대해 알아보겠습니다!