IP의 주소 체계와 서브넷팅의 이해는 굉장히 중요합니다. 실제 IP를 낭비하지 않고 적절히 사용할 수 있는 체계에 대해 학습합니다.
* IPv4 주소 체계
옥텟(Octet): ‘.’으로 구분되는 각 부분. 8비트 숫자
각 옥텟에 올 수 있는 값의 종류: 2^8=256
범위: 0~255
=> 즉 0.0.0.0 ~ 255.255.255.255
IP주소는 A,B,C,D,E의 5개 클래스로 구분.
* class 구분
클래스는 IP 주소의 첫 번째 옥텟의 4개의 MSB(Most Significant Bit, 최상위 비트) 따라 구분
IP주소의 첫 번째 비트 b1이 0이면 A class => 이런 경우 첫 8비트가 네트워크 부가 되고 나머지는 호스트 부가 된다.
b1이 1이면 B~E class => b2가 0이면 B, b2가 1이면 C (b1 = 첫 번째 비트)
b2가 1이면 C~E class => b3가 0이면 C, b3이 1이면 D
b3이 1이면 D~E class => b4가 0이면 D, b4가 1이면 E

203.237.10.nnn의 첫 옥텟을 2진수 표현 “1100 1011”이고 C class에 해당하게 된다.
b1 = 1 , b2 = 1, b3 = 0
* C 클래스의 가용 IP 주소 계산
- 가용 IP 주소란 실질적으로 사용할 수 있는 IP를 이야기 한다.
32비트 중 MSB 3개가 “110”으로 고정되므로
가장 작은 값은 나머지가 모두 0인 값인 “1100 0000 0000 0000 0000 0000 0000 0000”이므로 192.0.0.0이 된다.
가장 큰 값은 나머지가 모두 1인 값인 “1101 1111 1111 1111 1111 1111 1111 1111”이므로 223.255.255.255가 된다.
이 중 4번째 옥텟만 호스트ID 이므로 하나의 네트워크 대역에에서는 256개의 IP 주소를 사용할 수 있다.
중요한 건 256개의 IP 주소를 모두 사용할 수 있는 것이 아닌 호스트 IP가 0인 경우는 네트워크 ID와 동일하므로 사용할 수 없고 이는 네트워크 주소로 인식하게 된다.
또한 호스트 IP가 모두 1인 경우 역시 브로드캐스트 주소로 인식하게 되므로 이 경우도 사용할 수 없다.
따라서 실제 사용할 수 있는 가용 IP 주소는 (256-2)개인 254개가 된다.

* 사설 IP 주소
사설 IP 주소(private IP): 공유기에 연결된 네트워크 안에서만 사용되는 IP 주소입니다.
사설 IP 주소를 사용하는 이유?
: IP주소의 고갈. 여러 곳에서 중복하여 사용함으로써 모두 다 공인 IP주소를 사용할 때 발생하는 IP부족 현상 완화
-> 공유기가 NAT 기능을 통해 주소 변환 해주기에 인터넷으로 통신이 가능
-> 그래서 IP주소를 통한 직접적인 접근이 필요한 웹서버 같은 컴퓨터를 공유기에 연결해 사용하려면 포트포워딩 기법이 필요
NAT 기능이란?
네트워크 주소 변환(network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서 간단히 말해 내 컴퓨터의 IP를 공유기의 공인 IP로 변환 시켜 외부세계와 접촉 시키는 것이다.
또한 사설 IP는 라우터를 넘어 전달될 수 없다는 특징이 있다.

* 특수 용도의 IP 주소
* 사설IP 주소 -> private 주소는 약속된 범위대가 있다. 이 범위대 내에서 공식적으로 승인 없이 사용할 수 있는 주소이며 라우팅 불가능한 주소로 인터넷상에서는 사용 할 수 없다.
A class: 10.0.0.0 ~ 10.255.255.255
B class: 172.16.0.0 ~ 172.16.255.255
C class: 192.168.0.0 ~ 192.168.255.255
* 0.0.0.0: 부팅 시 자신의 IP 주소를 모를 경우 사용
* loopback주소: 127.0.0.1~127.255.255.255,패킷 송수신 과정 대한 시스템 내부 시험 주로 사용
* 네트워크 주소: 호스트ID의 비트가 모두 0인 주소 네트워크를 대표하는값 ex) 203.237.10.0
* 브로드캐스트 주소: 호스트ID의 비트가 모두 1인 주소 ex) 203.237.10.255
* 서브넷 마스크의 구조와 기능
IP주소는 전 세계에서 유일하게 식별되는 컴퓨터의 이름 같은 것이다.
203.237.10.100/24 = > 32비트 중 앞 24비트 network 부 나머지 8비트 host 부 ---> [슬래시(/) 숫자]형태 속 숫자는 앞에서부터 네트워크 부를 뜻한다. : CIDR 표기
서브넷 마스크는 IP주소로부터 성에 해당하는 네트워크 주소를 알아내기 위한 정보
CIDR: ex) 203.237.10.2/24 -> 사람이 쉽게 네트워크부(ID)를 구분하기 위해
서브넷 마스크: 255.255.255.0 -> 컴퓨터가 네트워크 주소를 쉽게 추출하기 위해서 사용
ex) 203.237.10.100
사람이 IP 주소를 이진수로 바꾸고 MSB 4비트만 눈으로 확인하면 클래스를 알 수 있으므로 쉽게 네트워크 주소를 알 수 있는데 왜 복잡하게 서브넷 마스크를 이용할까?
-> 컴퓨터에는 이미 IP 주소가 이진수로 저장되어 있기 때문에 두 변수를 단순히 비트별 AND 연산만 하면 되므로 훨씬 간단하다.
노드 A와 B의 IP주소가 같은 대역대인지 확인하는 작업 => (IP(A) & SM(A)) == (IP(B) & SM(B)) 검사
클래스가 같아도 네트워크 ID가 다를 수 있기 때문에 서브넷팅이 필요하다.

서브넷팅
: 서브넷 마스크를 이용하여 디폴트로 정해진 서브넷을 원하는 대로 나누는 것
- 네트워크 ID가 한 비트씩 늘어날 때마다 서브넷의 개수 2배로 늘어나고 서브넷의 크기는 1/2로 줄어든다.
- C클래스를 기준으로 서브넷의 개수와 크기를 정리하면 모두 2의 멱승 값만 가진다.
- 그러므로 사실상 네트워크 길이가 31인 경우는 사용할 수 X


* 203.237.10.0/25 의 의미
C class 주소는 디폴트 호스트 부인 4번째 옥텟만 고려하면 된다.
1~24 비트는 1~3번의 옥텟에 해당되므로, 4번 옥텟에는 1개의 비트만 서브넷 마스크에 포함
1비트로 표현될 수 있는 값은 2개 이므로 2개의 서브넷을 만들게 된다.
호스트ID는 7비트 이므로 2^7=128의 주소를 가질 수 있고 가용 IP주소는 (128-2) = 126개가 된다.

'Computer Science > computer science' 카테고리의 다른 글
| [자료구조] 싱글 링크드 리스트(Single Linked List) (2) | 2025.07.11 |
|---|---|
| [network] 네트워크의 기초 용어와 개념 (0) | 2025.05.28 |