ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Web application Architecture / URL / DNS / IP / Class / CIDR / 서브넷마스크
    CS/네트워크 2024. 8. 14. 00:55

     

    참고도서: 그림으로 쉽게 이해하는 웹/HTTP/네트워크,임지영(2023), 위키북스


    Web Server, Client

    Cr. https://brunch.co.kr/@swimjiy/2

     

    • Web Client: 사용자가 웹에 접근할 때 사용하는 프로그램(브라우저) ex) chrome, 사파리, 엣지 등
    • Web Server:  웹 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 ex) Apache, IIS, NGINX
    • www.naver.com을 입력하고 엔터키를 누르면 웹 클라이언트는 이 URL에 대한 정보를 찾아 HTTP 메시지 형태로 서버에게 Request하고, 웹 서버는 HTTP 메시지를 확인한 후 이에 맞는 데이터를 처리한 뒤 클라이언트에게 Response한다.

     

    WAS(Web Application Server)

    • 정적 콘텐츠: HTML, CSS와 같이 바로 전달할 수 있는 것
    • 동적 콘텐츠: DB로부터 필요한 데이터를 조회하는 등 다양한 로직 처리가 필요한 것
    • WAS는 웹 서버로부터 주로 동적 콘텐츠를 받아 처리한 뒤, 그 결과를 다시 웹서버에 전달하는 중간자 역할을 한다. 즉, 웹서버가 해야하는 일을 나눠가지며 서버의 부담을 줄이고 전체 웹 통신의 효율을 높인다. 
    • ex) 톰캣, 제우스, IMB웹스피어

     

    DB

    • WAS에서 동적 콘텐츠를 제공하기 위해 접근하는 장소
    • ex) MySql, 오라클, MongoDB

     

     

     

     

    URL(Uniform Resource Locator)

    주소로 알아보자

     

    http://ww.example.com:80/path/to/myfile.html?key1=value1&key2=value2

     

    • http
      • url의 맨 앞부분은 어떤 프로토콜을 사용하는지를 나타냄. 웹 통신에선 HTTP를 사용하니까 이걸로 시작한다.
    • ww.example.com
      • 원래는 컴퓨터마다 가진 고유 번호인 IP주소가 들어가야 하는데 기억하기 쉬운 문자 형태인 domain을 사용함.
    • :80
      • 포트번호. port는 웹 서버 안에서 특정 자원에 접근하기 위해 사용하는 관문
    • path/to/myfile.html
      • 경로. 해당 자원에 대한 구체적인 위치
    • ?key1=value1&key2=value2
      • 파라미터(parameter). 웹 서버에 전달해야할 문구
      • ? 다음에 오며 [파라미터]=[파라미터값]이 한 세트
      • 파라미터가 여러 개 일 때는 앰퍼샌드(&)로 이어준다.

     

     

     

    DNS

    IP: 12.456.789  ->이걸 도메인으로 바꾸면 mycom.com이 된다

     

    DNS는 도메인과 IP 주소를 서로 변환해주는 역할을 하는 시스템이다.

     

     

     

     

    IP(Internet Protocol)

    데이터를 작게 쪼갠것을 패킷(packet)이라고 하는데 IP의 주된 역할은 패킷을 정해진 목적지까지 전달하는 일이다.

    그런데 IP는 패킷을 전달만할 뿐, 패킷의 손실이나 순서, 전달여부 등을 책임지진 않는다(비신뢰성-내용물 상태 보장, 비연결성-받는 사람이 있는지를 고려하는것)

     

    패킷(packet) 교환방식
    : 무거운 데이터를 그대로 보내면 가는 도중 회선에 문제가 생겼을 때 다시 전송하기 위해 많은 자원을 낭비할 수 있기 때문에 잘게 쪼개서 보낸다.

     

     

    IPv4(Internet Protocol version 4)

    • 각 옥텟(8비트씩 묶은것, octet)은 00000000~11111111까지 표현할 수 있는데 이를 10진수로 변환하면 0~255다. 그래서 IPv4 주소의 각 자리는 0부터 255까지의 숫자로 이루어져 있다.

     

     

    네트워크 주소와 호스트 주소

    • 여기서 말하는 네트워크는 데이터를 통신하는 과정에서 같은 공유기를 사용하는 범위
    • 이 네트워크에 연결된 장치를 호스트라고 한다

     

    • 맨 첫 번째 주소인 0과 맨 마지막 주소인 255는 호스트 주소로 사용할 수 없다 -> 브로드캐스트 때문에

    • 브로드캐스트: 특정 네트워크 주소에 속한 모든 호스트에게 패킷을 전달해야할 때 사용하는 주소

     

    네트워크와 호스트 주소의 개수를 고정하게 되면 낭비되는 주소가 생기게 됨 -> class 개념 탄생

     

     

     

     

     

     

    Class

     

     

     

    그러나, 선택지가 한정적이라 필요한 호스트 주소 개수에 맞게 할당받기 힘든 한계가 있음. 따라서 오늘날엔 CIDR 등으로 네트워크를 구분하게 됨

     

     

     

     

     

     

     

    클래스가 필요없는 CIDR(Classless Inter-Domain Routing)

    클래스없는 도메인 간 라우팅 기법. 클래스 없이도 IP 주소를 할당할 수 있다. 

     

    CIDR 표기법

     

    여기서 24는 네트워크 부분이 24비트임을 나타낸다(8*3)

     

     

    서브넷 마스크

    서브넷 마스크(Subnet Mask)는 IP 주소를 네트워크 부분과 호스트 부분으로 나누기 위해 사용되는 32비트 숫자. 서브넷 마스크는 네트워크를 서브넷으로 분할하고 IP 주소가 어느 네트워크에 속하는지를 결정하는 데 중요한 역할을 한다.

     

    IP 주소 구조

    • IPv4 주소는 32비트(4바이트)로 구성되며, 8비트씩 네 개의 옥텟(octet)으로 나누어져 있다.
    • 예를 들어, IP 주소 192.168.1.1은 이진수로 11000000.10101000.00000001.00000001로 표현된다.

    서브넷 마스크 구조

    • 서브넷 마스크도 32비트로 구성되며, IP 주소와 마찬가지로 8비트씩 네 개의 옥텟으로 나뉜다.
    • 각 옥텟은 0에서 255 사이의 값을 가진다.
    • 서브넷 마스크의 비트는 네트워크 부분을 나타내는 비트는 1로, 호스트 부분을 나타내는 비트는 0이다.
    • 예를 들어, 서브넷 마스크 255.255.255.0은 이진수로 11111111.11111111.11111111.00000000으로 표현되며, 이는 앞의 24비트가 네트워크 부분을 나타내고, 나머지 8비트가 호스트 부분을 나타냅니다.

    서브넷 마스크 예시

    • Class A: 255.0.0.0 (네트워크 8비트, 호스트 24비트)
      • 참고 2^8=256, 0~255
      • 서브넷 마스크는 네트워크 부분을 1, 호스트 부분을 0으로 표시합니다.
      • 클래스 A에서 첫 8비트는 네트워크 부, 나머지 24비트는 호스트 부분이므로, 서브넷 마스크는 11111111.00000000.00000000.00000000이 됩니다.
      • 이를 십진수로 표현하면 255.0.0.0이 됩니다.
    • Class B: 255.255.0.0 (네트워크 16비트, 호스트 16비트)
    • Class C: 255.255.255.0 (네트워크 24비트, 호스트 8비트)

     

     

     

    예시로 정리하기!


     

    10.0.0.0/8

     

    • IP주소 10.0.0.0은 이진수로 00001010.00000000.00000000.00000000
    • IP 주소의 첫 번째 옥텟(8비트)이 0~127 사이의 값을 가지면 클래스 A로 분류
      • 클래스 A에서는 첫 번째 8비트가 네트워크 부분이고, 나머지 24비트가 호스트 부분
      • -> 10.0.0.0/8은 첫 번째 옥텟이 10이므로 클래스 A에 해당
    •  호스트 부분
      • 24비트의 호스트 주소는 0부터 255까지의 값을 가질 수 있으며, 이는 2^24 = 16,777,216개다.
      • 호스트 부분이 모두 1인 10.255.255.255(이진수로는 00001010.11111111.11111111.11111111)가 이 네트워크의 마지막 IP 주소입니다.
    •  따라서 10.0.0.0/8 네트워크는 10.0.0.0부터 10.255.255.255까지의 모든 IP 주소를 포함하며, 총 16,777,216개의 IP 주소를 제공한다.

    'CS > 네트워크' 카테고리의 다른 글

    HTTP  (0) 2024.08.16
    TCP / 3,4-Way Hand Shake / 흐름제어 / 혼잡제어 / UDP  (0) 2024.08.14
    Ch2. 애플리케이션 계층  (0) 2024.07.30
    Ch1. 컴퓨터 네트워크와 인터넷  (0) 2024.07.27

    댓글

Designed by Tistory.