[Network] 응용 계층

DudeKYH·2024년 10월 18일
0

Network

목록 보기
8/8

응용 계층(Application Layer)

응용 계층이란?

  • OSI 7계층 중 7번째로 제일 위에 위치한 계층이다.
  • 응용 프로그램(애플리케이션)과 통신 프로그램 간의 인터페이스를 제공한다
  • 대표적인 프로토콜로
    HTTP, DNS, FTP, SMTP, Telnet 등이 있다.

애플리케이션?

  • 사용자가 하고 싶은 서비스를 제공해주는 프로그램들을 애플리케이션이라고 한다.
  • 애플리케이션은
    서비스를 요청하는 클라이언트 vs 서비스를 제공해주는 서버로 나눌 수 있다.
  • 예를 들어,
    클라이언트 : 웹 브라우저, 메일 프로그램
    서버 : 웹 서버, 메일 서버

이제부터 응용 계층의 여러 프로토콜에 대해서 알아보자.

① DNS(Domain Name System)

  • Domain 주소를 컴퓨터가 읽을 수 있는 IP 주소로 변환해준다.

Domain 주소

우리는 평소 웹을 이용할 때, 주소창에 도메인 주소를 입력하여 해당 웹 페이지로 접속하여 사용한다.
왜 해당 웹 페이지의 IP 주소를 입력하지 않고, Domain 주소를 사용하게 되었는가?

  • 인간은 평소 숫자보단 문자를 사용하여 대화를 한다.
    • 따라서, 숫자로 이루어진 IP 주소보단 자연스럽게 Domina 주소를 더 기억하기 쉽기 때문에 사용하게 되었다.

1. Domain 주소

Domain 이란, 인터넷 상에서의 주소인 URL의 일부로,
외우기 힘든 IP 주소를 웹 상의 전화번호부처럼 기억하기 쉽게 문자열로 표현한 주소라고 할 수 있다.

위 그림을 보면 한 예시의 URL 주소를 볼 수 있다.
이 중, 우리는 그 일부인 Domain 주소(music.naver.com)를 살펴보자.

우리가 사용하는 수많은 Domain 주소는 위 그림처럼 "."을 기준으로 트리 형태로 루트, 최상위 도메인, 차상위 도메인, 3차..., 호스트로 도메인 그룹이 나눠지게 된다.

ICANN(Internet Corporation for Assigned names and Numbers)

  • 모든 도메인과 IP의 중앙 데이터베이스를 가지고 있는 기관으로, 도메인 등록을 감독한다.
  • TLD(최상위 도메인)로 알려져 있는 새로운 도메인 확장을 집중 관리하고 있다
  • 정해진 규정을 따르지 않을 경우에는 해당 도메인을 종료할 수 있는 권한도 가지고 있다.

music.naver.com은 거꾸로(루트 도메인)부터 살펴보자.
루트 도메인(.) ▶ 최상위 도메인(TLD) : com ▶ 차상위 도메인 (SLD) : naver ▶ 호스트 : music

  • 루트 도메인

    • 역트리 형태의 가장 최상위 Node를 루트 도메인이라고 부른다.
    • 루트 도메인을 기준으로 분산 데이터베이스 시스템이 계층적으로 관리가 된다.
  • 최상위 도메인(TLD, Top-level domains)

    • 도메인 주소의 가장 오른쪽 부분으로, 마지막 점 뒤에 위치한다.
    • 위치 및 목적이 같은 웹 사이트 주소의 특성을 인식할 수 있도록 돕는 역할을 한다.
    • ▶ 최상위 도메인 카테고리
      • 일반 최상위 도메인(GTLS)
        • GTLS는 3글자 이상으로 구성되며, ICANN의 등록 절차에 따라 누구나 등록할 수 있다.
        • .com, .org, .net
      • 후원 최상위 도메인(STLD)
        • 민간 단체에서 지원하고 감독하는 도메인이다.
        • 모든 등록은 해당 등록 기관 또는 사업체의 승인을 받아야 한다.
        • .edu, .gov
      • 국가 코드 최상위 도메인(CCTLD)
        - 312개의 국가 코드 최상위 도메인이 '2글자'의 문자열로 이루어져 있다.
        - 대한민국 : .kr
  • 차상위 도메인(SLD, Second-level domains)

    • 최상위 도메인 앞에 오는 이름의 일부를 뜻한다.
  • 3단계 도메인들(Third-level domains)

    • 대부분의 도메인 이름이 3단계로 구성되며, 일반적으로 서브 도메인으로 알려져 있다.
    • 서브 도메인 : 독립형 사이트를 제작하기 위해 도메인 이름에 추가하는 접두사같은 느낌이다.
      예를 들면, naver.com 에서 여러 기능을 추가한 것을 도메인 이름에도 추가해보면~
      music.naver.com : 노래 기능 추가
      blog.naver.com : 블로그 기능 추가
      cafe.naver.com : 카페 기능 추가
      news.naver.com : 뉴스 기능 추가

2. DNS 과정

이제부터 웹 브라우저에 URL : www.naver.com 를 입력했을 때의 DNS 과정을 살펴보자.

  • 1) 브라우저 캐시
    • 브라우저는 이전에 방문한 웹사이트들의 DNS 정보들을 일정 시간 동안 저장해놓는다.
    • 브라우저 캐시에 www.naver.com 기록이 있는지 확인한다.
  • 2) 운영체제 캐시
    • 컴퓨터의 hosts 파일www.naver.com 의 ip 주소 정보가 있는지 확인한다.
    • hosts 파일 : ip 주소와 domain 주소를 매칭시켜놓아 캐싱해놓은 텍스트 파일
    • hosts 파일(운영체제 캐시)에 www.naver.com 기록이 있는지 확인한다.
  • 3) 라우터 캐시
    • DNS 캐시 테이블을 관리하는 라우터와 통신하여 www.naver.com 기록이 있는지 확인한다.
  • 4) 로컬 DNS 서버(ISP)의 캐시
    • 로컬 DNS 서버가 저장하고 있는 DNS 캐시에 www.naver.com 기록이 있는지 확인한다.

※ DNS 캐시 테이블의 이점

  • DNS 캐시를 활용하면 매번 루트 도메인으로 부터 찾고자 하는 도메인의 IP 주소를 재귀적 질의를 통해 알아낼 필요가 없어진다.
  • 따라서, 적절한 DNS 캐싱은 애플리케이션의 성능을 향상시키고, 불필요한 DNS 조회를 줄여 네트워크 부하 또한 감소한다.

  • 5) 로컬 DNS 서버는 재귀적 질의를 통해 www.naver.com의 DNS 서버의 IP 주소를 얻어온다.
    • 루트 도메인 DNS 서버 ▶ 최상위 도메인(TLD) DNS 서버 ▶ 차상위 도메인 (SLD) DNS 서버 순으로 내려가면서
      도메인 주소의 IP를 알아내게 된다.
    • 이러한 과정을 리졸빙(resolving)이라고 한다.

② HTTP(HyperText Transfer Protocol)

1. HTTP 개념 설명

  • 하이퍼 텍스트를 빠르게 교환하기 위한 프로토콜의 일종으로,
    서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지 정해 높은 프로토콜이다.

  • 요청(Request)과 응답(Response)으로 구성되어 있으며, 일반적으로 80번 포트를 사용한다.

    • 요청 : GET, POST, PATCH, PUT, DELETE 등의 HTTP 메소드로 요청한다.
    • 응답 : HTTP 표준 응답 코드로 응답 상태에 대해 알려 준다.
  • 웹 상의 URL 주소 맨 앞의 http://가 바로 이 HTTP 프로토콜을 의미한다.

HTTP의 특징

  • 클라이언트 <-> 서버 구조
  • Stateless Protocol
  • 비연결성 통신
profile
게임서버프로그래머를 꿈꾸는 자

0개의 댓글