OSI 상위 계층과 TCP/IP의 응용 계층

image

  • 사용자와 직접적으로 상호작용하고 데이터 통신의 높은 수준 기능을 담당하는 계층들이다!

  • 하위 계층(전송, 네트워크, 데이터 링크, 물리 계층)이 기술적 데이터 전송을 담당한다면, 상위 계층은 사용자 관점의 통신 기능을 제공함

OSI 상위 계층

7계층 응용 계층(Application)

  • 사용자 인터페이스와 직접 상호작용

  • HTTP, FTP, SMTP 등 최종 사용자 애플리케이션 프로토콜 제공

  • 네트워크 서비스를 애플리케이션에 제공

  • 예: 웹 브라우저, 이메일 클라이언트 등

6계층 표현 계층(Presentation)

  • 데이터의 형식, 암호화, 압축을 담당

  • 서로 다른 시스템 간 데이터 해석 표준화

  • 데이터 변환 및 포맷팅

  • 암호화/복호화 기능 수행

  • 예: JPEG, GIF 이미지 포맷, SSL/TLS 암호화

5계층 세션 계층(Session)

  • 통신 세션 관리

  • 연결 설정, 유지, 종료

  • 동기화 지점 생성

  • 프로세스 간 통신 관리

  • 예: NetBIOS, RPC(원격 프로시저 호출)

TCP/IP 응용 계층

  • OSI 7 Layer에서 세션계층 , 프레젠테이션계층, 애플리케이션 계층에 해당

  • 응용프로그램들이 네트워크서비스, 메일서비스, 웹서비스 등을 할 수 있도록 표준적인 인터페이스를 제공

  • TCP/IP 기반의 응용 프로그램을 구분할 때 사용

  • 대표 프로토콜 종류(포트 번호) : HTTP(80), FTP(21), Telnet(23), DNS(53), SMTP(25)

  • 참고 포스트

DNS(Domain Name System)

  • 도메인 명을 이용해 IP 주소를 찾아주는 시스템

image

Field(Flags) Description Length (bits)
QR 메시지가 요청(0)인지 답변(1)인지를 나타냄 1
OPCODE 요청 유형은 QUERY(표준 쿼리, 0), IQUERY(역 쿼리, 1) 또는 STATUS(서버 상태 요청, 2)일 수 있음 4
AA Authoritative Answer은 응답에서 DNS 서버가 요청된 호스트 이름에 대한 권한이 있는지 여부를 나타냄 1
TC TrunCation은 메시지가 길이가 너무 길어서 잘렸음을 나타냄 1
RD Recursion Desired은 클라이언트가 재귀 요청을 의미하는지 여부를 나타냄 1
RA Recursion Available는 응답하는 DNS 서버가 재귀를 지원하는지 여부를 나타냄 1
Z Zero, 향후 사용을 위해 예약됨 3
RCODE Response CODE는 NOERROR(0), FORMERR(1, 형식 오류), SERVFAIL(2), NXDOMAIN(3, 존재하지 않는 도메인) 등일 수 있음 4
  • 위와 같은 정보들을 애플리케이션과 DNS Resolver와 주고 받아 IP주소를 찾을 수 있게 된다

image

  • 전체적 흐름

    1. 사용자가 브라우저(애플리케이션)에 도메인을 입력해 접속하려 함

    2. 브라우저는 먼저 Local Resolver에 도메인이 있는지 확인을 함
      (최근에 접속했었더라면 남아 있을 수 있겟죠?)

    3. 없다면 같은 네트워크 내의 기록을 내에서 다시 도메인이 있는지 확인

    4. 그럼에도 없다면 DNS 서버에 접속하여 도메인과 연결된 IP주소를 찾음

    5. IP주소를 찾았다면 브라우저에게 전달하여 사용자는 사이트에 접속함

  • DNS 서버의 도메인 검색 ( 계층형 구조 )

    image

    1. Root DNS 서버에 받은 도메인 www.naver.com 에서의 com 부분(최상위 도메인)을 검색

    2. 최상위 도메인(com DNS) 에서 naver(2레벨 도메인)를 찾음

    3. 마지막으로 www(3레벨/서브 도메인)을 찾아 IP주소를 특정 짓게 됨

  • 캐시의 종류

    1. 브라우저 캐시

      • 설명: 웹사이트에 접속할 때, 브라우저는 도메인의 IP 주소를 자체 캐시에 저장,
        이로 인해 최근에 방문한 사이트의 DNS 조회를 반복할 필요 없이 빠르게 접속가능!

      • TTL (Time to Live)**: 캐시된 DNS 정보는 TTL이라는 유효 시간 동안만 저장되며,
        이 시간이 지나면 브라우저는 다시 DNS 조회를 해야함

      • 과정: 브라우저는 먼저 자신의 캐시에서 해당 도메인의 IP 주소가 저장되어 있는지 확인

    2. 운영체제(OS) 캐시

      • 설명: 만약 브라우저 캐시에 IP 주소가 없다면, 운영체제의 DNS 캐시를 조회함
        OS도 최근에 조회된 IP 주소를 일정 기간 동안 캐시에 저장함

      • TTL: 브라우저 캐시와 마찬가지로, 운영체제의 캐시도 TTL에 따라 IP 주소를 저장하며,
        TTL이 만료되면 해당 IP 주소는 다시 조회되어야 함

      • 과정: 운영체제는 DNS 조회 요청을 받으면, 먼저 자신의 DNS 캐시에서 IP 주소를 확인함
        (이후 정보를 브라우저로 반환)

    3. 라우터 캐시

      • 설명: 만약 운영체제에서도 IP 주소를 찾을 수 없다면, 네트워크 라우터로 요청이 넘어감
        많은 라우터는 자체적으로 DNS 캐시를 관리하며, 이를 통해 네트워크에 연결된 모든 장치에 대해 DNS 조회 시간을 줄임

      • TTL: 라우터도 TTL 값을 기준으로 DNS 정보를 저장하며, 설정된 시간 동안 캐시를 유지!

      • 과정: 라우터는 자신이 가지고 있는 DNS 캐시에서 해당 도메인의 IP 주소를 확인
        ( 이를 브라우저로 전달함 )

    4. ISP(인터넷 서비스 제공자) 캐시

      • 설명: 라우터에서도 IP 주소를 찾지 못할 경우, DNS 조회는 인터넷 서비스 제공자(ISP)의 DNS 서버로 넘어감
        ISP는 대규모의 DNS 서버를 운영하며, 많은 도메인의 IP 주소를 캐시에 저장해 둠

      • TTL: ISP의 DNS 서버도 TTL 값에 따라 캐시를 유지하며, 이 시간이 지나면 새로운 DNS 조회가 필요

      • 과정: ISP의 DNS 서버가 캐시에 해당 도메인의 IP 주소를 가지고 있다면 이를 라우터로 보내고, 라우터는 해당 IP 주소를 운영체제와 브라우저로 전달

HTTP(Hyper Text Transfer Protocol)

  • 서버와 클라이언트 간에 데이터를 주고받기 위해 사용되는 통신 규약

  • HTTP는 웹 페이지 불러오기와 같은 요청을 처리하고, 전송 계층의 프로토콜인 TCP를 사용하여 안정적인 데이터 전송(연결성)을 보장함

  • HTTP는 사용자가 요청하는 정보를 서버가 이해할 수 있는 메시지로 변환하여 전송하는 역할을 함
    ( 주로 HTML 문서와 같은 웹 리소스를 전송하는 데 사용 )

  • 비연결성과 연결성(HTTP/1.1 이상)이 특징

    • 비연결성(stateless)이라는 것은 각 요청이 독립적이며, 이전 요청의 상태를 기억하지 않는다는 것을 의미

    • 클라이언트가 요청을 보내면 서버가 응답한 후 TCP/IP 연결을 끊어 자원을 최소화
      ( 클라이언트가 많아져도 효율적으로 리소스를 사용할 수 있음 )

  • HTTP/1.1, HTTP/2, HTTP/3와 같은 다양한 버전이 존재하며, 이러한 버전들은 성능 개선과 보안 강화를 위해 지속적으로 발전하였음

  • 메서드 종류

Method Description
GET 자원을 습득하기 위한 메서드
HEAD GET과 동일하나 헤더만을 응답받는 메서드
POST 서버로 하여금 특정 작업을 처리하게끔 하는 메서드
PUT 자원을 대체하기 위한 메서드
PATCH 자원에 대한 부분적 수정을 위한 메서드
DELETE 자원을 삭제하기 위한 메서드
CONNECT 자원에 대한 양방향 연결을 시작하는 메서드
OPTIONS 사용 가능한 메서드 등 통신 옵션을 확인하는 메서드
TRACE 자원에 대한 루프백 테스트를 수행하는 메서드

Reference

WIKIPEDIA