jujuwon
시크릿주주
jujuwon
전체 방문자
오늘
어제
  • 분류 전체보기 (106)
    • 🔠 프로그래밍언어 (35)
      • ☕️ Java (19)
      • 🐠 Python (15)
      • 🍠 Kotlin (1)
    • 🔙 Backend (16)
      • 🌿 Springboot (12)
      • 🐳 Docker (1)
      • ☁️ AWS (3)
    • 💼 CS (12)
      • 📶 Network (12)
    • 🕹 알고리즘 (14)
      • 📑 스터디 (2)
      • 💁🏻‍♂️ 백준 (9)
      • 👨🏼‍🔬 프로그래머스 (3)
    • 📚 Book (8)
      • 🔎 오브젝트 (4)
      • 🧪 TDD (2)
      • 📜 논문 (2)
    • 🔐 보안 (7)
      • 👾 Pwnable (7)
    • 📝 회고 (4)
    • 🧩 etc. (10)
      • ⚠️ issue (2)
      • 💡 꿀팁 (7)
      • ✏️ 끄적 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

hELLO · Designed By 정상우.
jujuwon

시크릿주주

Network :: IP Class
💼 CS/📶 Network

Network :: IP Class

2022. 12. 7. 19:55
반응형

IP Class

A 클래스는 제일 앞 자리가 0 으로 고정 (Network Address : 128개)

0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

뒤의 3byte 는 1670만개의 host IP 를 가질 수 있다. (2^24 - 2개)

0.0.0.0 ~ 127.255.255.255

B 클래스는 앞 2개의 byte 고정, 이진수 기준 10 으로 시작한다. (Network Address : 65536개)

10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

뒤의 2byte 로 65536개의 host IP 를 가질 수 있다. (2^16 - 2개)

128.0.0.0 ~ 191.255.255.255

C 클래스는 앞 3개의 byte 고정, 이진수 기준 110 으로 시작한다. (Network Address : 1670만개)

110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx

뒤의 1byte 로 256개의 host IP 를 가질 수 있다. (2^8 - 2개)

192.0.0.0 ~ 223.255.255.255

host IP 개수에서 2개를 빼는 이유 ?
모두가 0 인 주소는 네트워크 주소로,
모두가 1 인 주소는 broadcast 주소로 사용하기 때문 !

앞 부분은 Network address, 뒷 부분은 host address

왜 나눠놨는가?

Network address 는 Routing 할 때 사용 !

Routing 할 땐 host address 는 보지 않는다.

Router 로 들어오고 나서 switch 로 오면 IP 주소가 아닌 MAC 주소로 판단 !

IP 주소와 매핑되는 MAC 주소를 ARP 테이블을 보고 판단.

 

Subnet

IP 주소를 확인해보면 192.168.0.3 이고,

subnet mask 가 0xffffff00 (255.255.255.0) 인 것을 확인할 수 있다.

Router 가 네트워크를 판단할 때 IP 주소가 어느 클래스인지 Network address 를 보고 판단할 수도 있지만,

서브넷 마스크를 보고 어디까지가 Network address 인지 판단할 수 있다.

서브넷 마스크는 왜 쓰는 걸까 ?

예를 들어 A 클래스의 IP 주소, 12.1.2.3 이 있다고 가정해보자.

A 클래스는 앞 한 바이트가 Network address 이기 때문에 기본적인 서브넷 마스크는

255.0.0.0 일 것이다.

하지만 네트워크가 너무 크기 때문에 네트워크를 서브넷 마스크를 이용해 나누어서

하위 네트워크로 Routing 할 수 있다 !

예를 들어 서브넷 마스크를 255.255.0.0 으로 한다면 앞 두 바이트를 Network address 로 보고

판단하기 때문에 더 작은 네트워크로 Routing 이 가능해진다.

서브넷 마스크를 표현하는 여러가지 방법

223.1.1.0/24
IP : 223.1.1.0, Subnet : 255.255.255.0
IP : 223.1.1.0, Subnet : 0xFFFFFF00
다 동일한 표현 !

서브네팅

예를 들어 B 클래스 IP 주소 136.2.0.0/16 을 할당받았다고 치자.

15개의 내부 네트워크로 나눠 사용하고 싶으면 어떻게 할까?

136.2.0.0 에서 앞 두 바이트는 현재 Network address 로 사용되고 있는데,

그 뒤 세번째 바이트를 이용해서 네트워크를 더 쪼개서 사용하면 된다.

15개의 네트워크로 나누기 위해서는 4개의 bit 가 필요하다

(0000 ~ 1111 로 표현하면 16개 표현 가능)

136.2.0.0/20
IP 주소 : 136.2.0.0, subnet mask : 255.255.240.0
으로 표현할 수 있다.

문제 : 각 서브 네트워크당 달 수 있는 host ip 의 개수는 ?

답 : 4096 (정확히는 4096 - 2개)

 

CIDR

Classless Inter-Domain Routing

IP 주소랑 서브넷만 해도 헷갈리는데 이 친구는 또 뭘까?

예를 들어 200.23.16.0/23 IP 주소를 보면 어떤 생각이 드는가?

나는 “엥? C클래스인데 서브넷이 24보다 작다고?” 하는 생각이 들었다.

그렇다.. CIDR 는 “클래스랑 상관없이 서브넷으로 알아서 잘라 쓰자” 이다.

네트워크 구분을 클래스로 하지 않고, CIDR 를 통해 더 유연하게 네트워크 영역을 나누기 위함 !

728x90
반응형
저작자표시 (새창열림)
    '💼 CS/📶 Network' 카테고리의 다른 글
    • Network :: SDN
    • Network :: IPv6
    • Network :: NAT (Network Address Translation)
    • Network :: DHCP
    jujuwon
    jujuwon

    티스토리툴바