일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- redux
- 리액트
- 오라클 병렬처리
- REDIS
- 트리 회전
- vue.js
- $emit()
- 컴포넌트 주도
- 네임드 뷰
- 자료구조
- forNmae()
- .getClass()
- AWS
- 리덕스 공식문서
- 리덕스
- 도커빌드
- paraller
- quert
- 자바
- ACCESS_REFUSED
- 애그리거트
- 오라클
- VUE
- react
- Java Reflextion API
- 커스텀 로그인
- rabbitmq 에러
- Express
- exiting abnormally
- EBS
- Today
- Total
개발정리
IP 주소에 대하여 본문
IP주소란?
인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소 입니다.
아이피는 일반적으로(ipv4) 이진수로 32비트로 표현하며 이를 십진법으로 255.255.255.255 와 같이 3개의 점과 십진수로 표현 할수 있습니다.
여기에 들어가는 십진수 한칸(8bit)를 옥텟 이라고 합니다.
아이피는 32bit로 이루어진 수 이므로 2의 32승 즉 약 43억개의 주소를 가질 수 있습니다.
IP주소 구성
아이피는 네트워크 id와 호스트 id로 구성됩니다.
255.255.255.255 이러한 형식의 아이피안에 호스트 주소와 네트워크 주소가 섞여있습니다!
그럼 어떻게 어디가 호스트 주소고 네트워크 주소인지 구별할 수 있을까요?
IP주소 클래스
IP클래스는 예전에 IPv4를 사용했을 때 IP를 할당하는 방식 이었습니다.
앞서 아이피 주소에서 각 단위를 옥텟 이라고 했습니다.
그리고 이 옥텟 별로 IP의 클래스를 A,B,C로 만들 수 있습니다.
a클래스는 맨 앞자리가 0으로 시작합니다.
첫번째 옥텟 까지가 a클래스가 표현할 수 있는 네트워크의 범위 입니다.
마찬가지로 b클래스 c클래스는 파란색으로 표시한 옥텟 까지 범위의 네트워크 주소를 가질 수 있으며
그 나머지는 호스트 주소를 나타낼 수 있는 범위 입니다.
이를 표로 정리하면
a클래스 | 주소 | 1.0.0.0 ~ 127.255.255.255 |
서브넷 마스크 | 255.0.0.0 | |
호스트 개수 | 2^24 -2 개 | |
b클래스 | 주소 | 128.0.0.0 ~ 191.255.255.255 |
서브넷 마스크 | 255.255.0.0 | |
호스트 개수 | 2^16 -2 개 | |
c클래스 | 주소 | 192.0.0.0 ~ 223.255.255.255 |
서브넷 마스크 | 255.255.255.0 | |
호스트 개수 | 2^8 -2 개 |
이러한 클래스 기반의 네트워크 호스트 분할 방식은 3가지 클래스의 한정적인 분할 방식으로 인해
필요한 것 보다 너무 많이 할당 하여 공간이 낭비되거나 너무 적게 할당하여 부족한 경우가 생길수 있습니다.
따라서 클래스 방식의 분할 방법 보다 더 세세하게 분할 할 방법이 필요 했습니다.
그 방법이 바로 서브네팅 입니다.
서브네팅
서브네팅이란 IP주소를 효율적으로 나누어 사용하기 위한 방법을 말합니다.
서브네팅을 하게되면 IP할당 범위를 더 작은 단위로 나눌 수 있게 됩니다.
일단 서브넷 마스크에 대해 알아봅시다.
예를 들어 192.168.0.1 라는 아이피가 있다고 가정해 봅시다.
맨 첫번째 숫자가 192로 시작하므로 C클래스에 해당하는 아이피 입니다.
C클래스의 서브넷 마스크는 255.255.255.0이므로 3옥텟 까지 네트워크 주소 라는것을 의미합니다.
그럼 서브네팅은 무엇일까요
예를들어 192.168.10.0/24 이렇게 생긴 아이피가 있다고 생각해봅시다.
엥? 아이피 주소 뒤에 /24 의 의미는 무었일까요?
앞서 서브넷 마스크로 어디까지가 네트워크 아이디 인지를 표현 했습니다.
그것과 마찬가지로 앞에서부터 24개의 비트가 1이라는 의미이고 이는 네트워크 주소의 범위를 의미합니다.
즉 /24의 의미는 255.255.255.0 을 의미하고 마지막 옥텟이 호스트 주소를 표현할수 있는 범위 즉 256가지 입니다.
이 256까지의 범위를 더 쪼개려면 어떻게 해야할까요?
호스트 아이디 부분의 맨 앞자리를 선택할때 마다 호스트의 범위가 2분의 1씩 줄어 듭니다,
즉 /24로 표현했을때는 총 256가지를 표현 할 수 있었지만
/25로 표현 한다면
192.168.10.0/25 와 192.168.10.128/25 의 128가지씩 2개의 네트워크로 나눌 수 있습니다.