08. 7계층2

YeJi Kim·2023년 1월 27일
0

네트워크

목록 보기
8/9

DNS(Domain Name System)

  • 도메인 주소를 IP 주소로 변환하는 역할
  • 도메인은 계층 구조여서 수많은 인터넷 주소 중 원하는 주소를 효율적으로 찾아갈 수 있다. 도메인 계층은 최대 128계층까지 구성할 수 있으며 계층별 길이는 최대 63바이트까지 사용할 수 있고 도메인 계층을 구분하는 구분자 “.”를 포함한 전체 도메인 네임의 길이는 최대 255바이트까지 사용할 수 있다. 문자는 알파벳, 숫자, “-”만 사용할 수 있고 대소문자 구분이 없다.
  • 루트 도메인: 도메인을 구성하는 최상위 영역이다. 만약 DNS 서버에 해당 도메인의 정보가 없으면 루트 도메인을 관리하는 루트 DNS에 쿼리하게 된다.
  • Top-Level Domain: 최상위 도메인 TLD는 6가지 유형으로 구분할 수 있다.
    • gTLD (generic TLD): 일반적으로 사용되는 최상위 도메인. ex) com, edu, gov, net, org 등
    • ccTLD (country code TLD): 국가 최상위 도메인. 우리나라는 ‘kr’을 사용
    • Sponsored(sTLD): 특정 목적을 위한 스폰서를 두고 있는 최상위 도메인. 스폰서는 특정 민족공동체, 전문가 집단, 지리적 위치 등이 속할 수 있다.
    • Infrastructure: 운용상 중요한 인프라 식별자 공간을 지원하기 위해 전용으로 사용되는 최상위 도메인이다.
    • Generic-restricted(grTLD): 특정 기준을 충족하는 사람이나 단체가 사용할 수 있는 최상위 도메인.
    • Test(tTLD): IDN 개발 프로세스에서 테스트 목적으로 사용하는 최상위 도메인
  • DNS 주요 레코드: 도메인에는 다양한 내용을 매핑할 수 있는 레코드가 있다.

DNS 동작 방식

쿼리 과정은 다음과 같다.

  1. 사용자 호스트는 ‘zigispace.net’이라는 도메인 주소의 IP 주소가 로컬 캐시에 저장되어 있는지 확인
  2. 로컬 캐시에 저장되어 있지 않으면 사용자 호스트에 설정된 DNS에 ‘zigispace.net’에 대해 쿼리
  3. DNS 서버는 ‘zigispace.net’이 로컬 캐시와 자체에 설정되어 있는지 직접 확인하고 없으면 해당 도메인을 찾기 위해 루트 DNS에 .net에 대한 TLD 정보를 가진 도메인 주소를 쿼리한다.
  4. 루트 DNS는 ‘zigispace.net’의 TLD인 ‘.net’을 관리하는 TLD 네임 서버 정보를 DNS 서버에 응답한다.
  5. DNS는 TLD 네임 서버에 ‘zigispace.net’에 대한 정보를 다시 쿼리한다.
  6. TLD 네임 서버는 ‘zigispace.net’에 대한 정보를 가진 zigi 네임 서버에 대한 정보를 DNS 서버로 응답한다.
  7. DNS는 zigi 네임서버에 ‘zigispace.net’에 대한 정보를 다시 쿼리한다.
  8. zigi 네임 서버는 ‘zigispace.net’에 대한 정보를 DNS에 응답한다.
  9. DNS는 ‘zigispace.net’에 대한 정보를 로컬 캐시에 저장하고 사용자 호스트에 ‘zigispace.net’에 대한 정보를 응답한다.
  10. 사용자 호스트는 DNS로부터 받은 ‘zigispace.net’에 대한 IP 정보를 이용해 사이트에 접속한다.

DHCP(Dynamic Host Configuration Protocol)

  • IP를 동적으로 할당하는 데 사용되는 프로토콜이다. DHCP를 사용하면 사용자가 직접 입력해야 하는 IP 주소, 서브넷 마스크, 게이트웨이, DNS 정보를 자동으로 할당받아 사용할 수 있다.
  • 별도의 IP 설정 작업이 필요없어 사용자와 관리자 모두 편리하게 네트워크에 접속할 수 있고 사용하지 않는 IP 정보는 회수되기 때문에 사용자 이동이 많고 한정된 IP 주소를 가진 경우 유용하게 사용될 수 있다.
  • IP가 자동으로 관리되므로 사용자가 직접 입력하면서 발생할 수 있는 설정 정보 오류나 중복 IP 할당과 같은 문제를 예방할 수 있다.

DHCP 동작 방식

  • 호스트가 DHCP 서버로 IP를 할당받는 과정은 다음과 같다. IP를 할당받는 과정이므로 패킷을 정상적으로 주고받을 수 없어 UDP를 사용한다. 또한 DHCP 서버에서 IP 주소를 할당받기 위해 DHCP 클라이언트와 DHCP 서버 간에 전송되는 패킷은 모두 브로드캐스트이다. 브로드캐스트는 동일 네트워크에서만 전송되므로 DHCP를 사용하려면 각 네트워크마다 DHCP 서버가 있어야 한다.
    1. DHCP Discover

      DHCP 클라이언트는 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트로 전송한다.

    2. DHCP Offer

      DHCP Discover를 수신한 DHCP 서버는 클라이언트에 할당할 IP 주소와 서브넷, 게이트웨이, DNS 정보, Lease Time(임대 시간) 등의 정보를 포함한 DHCP 메시지를 클라이언트로 전송한다.

    3. DHCP Request

      DHCP 서버로부터 제안받은 IP 주소와 DHCP 서버 정보를 요청하는 메시지를 브로드캐스트로 전송한다.

    4. DHCP Acknowledgement

      DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상적으로 수신했다는 응답을 전송한다.


RESTful API

  • REST란?
    • “Representational State Transfer” 의 약자
    • 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. 즉, 자원의 표현에 의한 상태 전달이다. HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 자원에 대한 CRUD 연산을 적용하는 것을 의미한다.
    • REST 구성 요소
      • 자원: URI
      • 행위: HTTP Method
      • 표현: 하나의 자원은 여러 형태의 표현(JSON, XML, TEXT 등)으로 나타내어 질 수 있다.
    • REST 특징
      • HTTP 프로토콜을 그대로 사용한다.
      • HTTP 프로토콜을 그대로 사용하기 때문에 무상태(stateless)성을 갖는다.
      • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
  • REST API란?
    • REST 기반으로 서비스 API를 구현한 것이다.
  • REST API 설계 기본 규칙
    1. URI는 정보의 자원을 표현해야 한다.
      1. resource는 동사보다는 명사를, 대문자보다는 소문자를 사용한다.
    2. 자원에 대한 행위는 HTTP Method(GET, PUT, POST, DELETE 등)로 표현한다.
      1. URI에 HTTP 메서드가 들어가면 안된다.
      2. URI에 행위에 대한 동사 표현이 들어가면 안된다.
      3. 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.
  • RESTful이란?
    • REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.
    • RESTful은 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다.

URL과 URI 그리고 URN

  • URI(Uniform Resource Identifier): URI는 인터넷상의 리소스 “자원 자체”
    를 식별하는 고유한 문자열 시퀀스

  • URL(Uniform Resource Locator): 네트워크상에서 통합 자원(리소스)의 “위치”를 나타내기 위한 규약이다. 이는 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크 상의 자원을 모두 나타내는 표기법이다. 특정 웹 페이지의 주소에 접속하기 위해서는 웹 사이트의 주소뿐만 아니라 프로토콜(https, http, sftp, smp 등)을 함께 알아야 접속이 가능
    한데, 이들을 모두 나타내는 것이 URL이다.

  • URN (Uniform Resource Name): 리소스의 위치, 프로토콜, 호스트 등과는 상관없이 각 자원에 이름을 부여한 것이다. 즉, URL은 어떤 특정 서버에 있는 웹 문서를 가리키는 반면, URN은 웹 문서의 물리적인 위치와 상관없이 웹 문서 자체를 나타낸다.

  • 차이점

    • URI가 더 포괄적인 개념이며 URL은 이 안에 포함된다.
    • URL은 프로토콜과 결합한 형태이다.
    • URI는 그 자체로 이름이 될 수 있다.

[참고자료]

https://ja-gamma.tistory.com/entry/DHCP개념동작원리
https://www.elancer.co.kr/blog/view?seq=74
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
그림으로 배우는 네트워크 원리(저자: Gene, 출판사: 영진닷컴)
IT엔지니어를 위한 네트워크 입문(저자: 고재성,이상훈, 출판사: 길벗)
그림으로 공부하는 TCP/IP 구조(저자: 미야타 히로시, 출판사: 제이펍)

profile
이전의 기록들 👉 https://blog.naver.com/reviewerkyj

0개의 댓글