CS
  • CS-Study
  • database
    • B-Tree와 B+Tree
    • DB JOIN
    • DB Lock
    • DB 트래픽
    • DBCP (DB Connection Pool)
    • Flyway
    • Message Broker
    • MySQL InnoDB 스토리지 엔진
    • MySQL 엔진 아키텍처
    • RDB와 NoSQL
    • Redis
    • SQL Injection
    • 스키마 (Schema)
    • Table Scan과 Index Scan
    • Apache Kafka
    • Key
    • 뷰 (View)
    • 인덱스
    • 정규화
    • RDBMS, NoSQL의 클러스터링/리플리케이션 방식
    • 트랜잭션(Transaction)
    • 트랜잭션의 격리성(Transaction Isolation)
    • 프로시저와 트리거
    • DB 정규화 (Normalization)
  • etc
    • MSA
    • REST, REST API, RESTful
    • SOLID 원칙
    • TDD (Test-Driven Development)
    • 서버리스
    • 컨테이너와 도커
  • java
    • Collections
    • Garbage Collection
    • Generic
    • JDBC
    • Java Virtual Machine(JVM)
    • Java Thread
    • Java8 vs Java11 vs Java17
    • 객체지향 프로그래밍 OOP (Object Oriented Programing)
    • Optional
    • RxJava(Reactive Programming)
    • 문자열(String & StringBuffer & StringBuilder)
    • Synchronized
    • Virtual Thread
    • Wrapper Class
    • Equals()와 Hashcode()
    • final
    • Jackson 라이브러리
    • 리플렉션(Reflection)
    • static class와 static method
    • 스트림(Stream)과 람다(Lambda)
    • 스프링 프레임워크에서 사용되는 디자인 패턴
    • 예외처리(Exception)
    • Java Annotation
    • 추상클래스와 인터페이스
  • network
    • 3-way handshake
    • 4-way Handshake
    • DHCP(Dynamic Host Configuration Protocol)
    • DMZ(DeMilitarized Zone)
    • DNS(Domain Name System)
    • HTTP Method
    • HTTP 버전 비교
    • HTTP status code
    • HTTP
    • IP Address
    • Mutiplexing & Demultiplexing
    • OSI 7계층
    • SOP, CORS
    • TCP와 UDP
    • XSS와 CSRF
    • gRPC
    • Stateless와 Connectionless
    • 라우터 Router
    • 로드밸런서(Load Balancer)
    • 브라우저에 URL입력시 네트워크 상 일어나는 일
    • 서브넷 마스크, 게이트웨이
    • 웹 소켓과 소켓 통신
    • 쿠키(Cookie)와 세션(Session)
  • operating-system
    • IPC (Inter Process Communication)
    • 인터럽트
    • TLB
    • 스레싱 Thrashing
    • Thread Pool, Fork-Join
    • Thread Safe
    • 프로세스
    • 가상 메모리
    • 데드락 (DeadLock, 교착 상태)
    • 동기/비동기 & 블로킹/논블록킹
    • 동기화(Synchronization)
    • 메모리 할당과 단편화
    • 뮤텍스와 세마포어, 모니터
    • 세그먼테이션과 페이징
    • 운영체제
    • 캐시 메모리
    • Context switching(문맥 교환)
    • 컴파일
    • 파일 시스템
    • 페이지 교체 알고리즘(Page Replacement Algorithm)
    • 프로세서 스케줄링 알고리즘
    • 프로세스 주소 공간
  • spring
    • @Transactional
    • AOP(Aspect-Oriented Programming)
    • DTO, DAO, VO, Entity
    • DispatcherServlet
    • Hibernate, JPA, Spring Data JPA
    • Ioc와 DI
    • JPA 연관관계 맵핑
    • N+1 Problem
    • ORM
    • Persistence Context
    • SQL Mapper vs ORM vs QueryBuilder
    • Servlet Filter와 Spring Interceptor
    • Servlet
    • Spring MVC와 Spring Boot
    • Tomcat
    • WebFlux
Powered by GitBook
On this page
  • 서브넷 마스크
  • 게이트웨이
  • NAT
  • Ref
  1. network

서브넷 마스크, 게이트웨이

Previous브라우저에 URL입력시 네트워크 상 일어나는 일Next웹 소켓과 소켓 통신

Last updated 1 year ago

서브넷 마스크

서브넷 마스크란

  • 서브넷 마스크는 의 표기 방법이다.

  • IP를 표기할 때 네트워크 ID의 길이를 표시한다.

    • 네트워크 ID 길이로 네트워크 크기(호스트 개수)를 결정한다.

    • 네트워크 ID 길이가 없으면 네트워크 ID를 알 수 없다.

서브넷 마스크 표기법

  • 프리픽스 표기법: /prefix-size 표시

    • ex: 3.25.169.250/24

  • 이진 표기법: 프리픽스 비트를 모두 1로 표시

    • ex: 1111 ... 1111 00000000

  • DDN 표기법: 이진 서브넷 마스크를 DDN으로 표시

    • ex: 255.255.255.0

네트워크 주소 계산

IP 주소와 서브넷 마스크가 주어지면 네트워크 주소를 알 수 있다.

IP 주소가 200.100.11.1/23으로 주어졌을 때, 아래와 같은 정보를 얻을 수 있다.

  • 네트워크 주소 : 200.100.10.0/23

  • 브로드캐스트 주소: 200.100.11.255/23

  • 최대 호스트 개수 : 510개( 200.100.10.1~200.100.11.254)

게이트웨이

게이트웨이란

  • 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어

  • 즉 다른 네트워크로 들어가는 관문(입구) 역할을 하는 네트워크 포인트이다.

    • 쉽게 예를 들자면 해외여행을 들 수 있는데 해외로 나가기 위해서 꼭 통과해야 하는 공항이 게이트웨이와 같은 개념이다.

    • 우리 주변에서 쉽게 볼 수 있는 게이트웨이는 공유기다.

  • 외부 네트워크와 연결된 네트워크는 반드시 기본 게이트웨이가 하나 이상 존재한다.

    • 기본 게이트웨이는 해당 네트워크에서 가장 상위의 라우팅 테이블을 가지고 있는 라우터와 연결된 게이트웨이를 말한다.

게이트웨이가 필요한 이유

동일한 네트워크에 있는 호스트 간 통신은 직접 통신을 하면 되기 때문에 통신 방법이 단순하다. 그러나, 서로 다른 네트워크에 있는 호스트 간 통신은 통신 경로가 아주 방대해지고 복잡하다.

통신 경로를 단순화하고, 연결 회선을 효율적으로 관리하기 위해서 다수의 호스트들을 여러 그룹으로 나누고, 각 그룹의 호스트들은 한 지점에 공통적으로 접속하게 하여, 각 그룹의 공통된 지점을 다시 서로 연결하면 다수 간의 통신 경로가 매우 단순화된다.

즉, 게이트웨이는 네트워크의 복잡한 연결을 단순화하고 효율적으로 관리하기 위해서 사용한다.

게이트웨이 의미와 주소

네트워크를 주택에 비유하면 각 방은 호스트에 해당되고, 대문은 게이트웨이에 해당된다.

각 방을 구분하기 위해서는 방 번호가 필요한데, 각 방에 할당된 방 번호는 IP 주소라 할 수 있다.

대문 주소에도 IP 주소가 부여되고 그것이 게이트웨이 주소이다.

게이트웨이와 라우터의 차이점

  • 라우터는 패킷이 목적지까지 도달하는데 최적의 경로로 라우팅, 포워딩을 한다.

  • 게이트웨이는 다른 네트워크로 통하는 출입구 역할을 한다.

이렇게 둘을 오해하는 이유는 공유기가 라우팅 뿐만 아니라 NAT, 방화벽, 게이트웨이, 스위칭 기능 등 복합 통신 기기여서 둘을 서로 구분하지 않고 편의상 혼용하여 사용하기 때문에 발생한다고 생각된다.

NAT

NAT(Network Address Translation)

  • 사설 네트워크에 연결된 호스트의 사설 IP 주소와 공인 IP 주소 변환 프로토콜

  • 인터넷에 접속할 때만 공인 IP 주소 사용하여 IP 주소를 절약할 수 있다.

  • 호스트의 IP 주소 외부 노출 방지한다.

NAT 동작

  1. 사용자(사설 IP 주소: 10.10.10.10)가 목적지(공인 IP 주소: 20.20.20.20)으로 패킷 전송

  2. NAT 장비에서 사용자가 보낸 패킷 수신 후 공인 IP 주소(11.11.11.11)로 변경한 후, NAT 테이블에 기록

  3. NAT 장비에서 출발지 IP 주소를 공인 IP 주소(11.11.11.11)로 변경해 목적지로 전송

  4. 요청을 수신한 목적지 웹 서버에서 공인 IP 주소(11.11.11.11)로 응답

  5. 웹 서버로부터 응답 패킷을 수신한 NAT 장비에서 자신의 NAT 테이블에서 목적지 IP 주소에 대한 출발지 IP 주소(10.10.10.10) 확인

  6. NAT 장비에서 목적지 IP 주소를 10.10.10.10로 변경해 목적지로 전송하여 사용자는 최종적으로 패킷을 수신

Ref

  • https://lamarr.dev/networkingbeginner/2020/03/22/09.html

  • https://ko.wikipedia.org/wiki/%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4

  • https://m.blog.naver.com/kangyh5/223175392071

  • https://zigispace.net/1107

[IPv4 주소 고갈 문제해결 >논리적 확장 방안 > NAT] 스터디 내용
비클래스 주소 IP