IP 서브넷 마스크에 대해 설명해주세요
IPv4란?
IPv4 데이터그램 포맷

서브넷과 IP주소
각 IP 주소는 32비트 길이다. 따라서 2^32개의 주소를 사용할 수 있다. 일반적으로 주소의 각 바이트를 십진수로 표현하고 주소의 다른 바이트와 점으로 구분하는 십진 표기법을 사용한다.
인터페이스의 IP는 마음대로 선택할 수 없다. IP 주소의 일부는 연결된 서브넷이 결정한다.

CIDR
클래스 주소 체계

Class A
0.0.0.0 ~ 127.255.255.255 (0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx)- 네트워크 주소는
1.0.0.0 ~ 126.0.0.0으로 규정되어 있음 (127은 규정상 제외) - 호스트의 개수는 2^24 - 2
Class B
128.0.0.0 ~ 191.255.255.255 (10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx)- 네트워크 개수는 2^14 (
10xx xxxx. xxxx xxxxx의 경우의 수) - 호스트의 개수는 2^16 - 2
Class C
0.0.0.0 ~ 127.255.255.255 (110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx)- 네트워크 개수는 2^21 (
10xx xxxx. xxxx xxxx. xxxx xxxxx의 경우의 수) - 호스트의 개수는 2^8 - 2
호스트 영역에서 네트워크 주소와 브로드 캐스트 주소는 사용할 수 없어 호스트의 개수에 -2 를 하게 됩니다.
- 네트워크 주소: 일반적으로 하나의 네트워크를 통칭하기 위해 사용하는 주소, 해당 네트워크의 첫 번째 IP주소
- 브로드캐스트 주소: 네트워크에 있는 모든 호스트에게 한 번에 데이터를 전송하는 데 사용되는 주소, 해당 네트워크의 마지막 IP주소
서브넷 마스크(subnet mask)


172.30.1.69 -> 10101100.00011110.00000001.01000101 255.255.255.0 -> 11111111.11111111.11111111.00000000
네트워크 주소 구하기
10101100.00011110.00000001.01000101 (IP 주소)
11111111.11111111.11111111.00000000 (서브넷 마스크)
-----------------------------------
10101100.00011110.00000001.00000000 (네트워크 주소)
IP 주소와 서브넷 마스크를 AND 연산
따라서 네트워크 주소 172.30.1.0
호스트 주소 구하기
10101100.00011110.00000001.01000101 (IP 주소)
11111111.11111111.11111111.00000000 (서브넷 마스크)
-----------------------------------
00000000.00000000.00000000.01000101 (호스트 주소)
IP 주소와 서브넷 마스크의 NOT 연산 호스트 주소는 0.0.0.69
서브넷 마스크의 숫자 표현
172.30.1.69/24 뒤의 24는 서브넷 마스크의 1의 개수를 뜻한다.
호스트 주소의 범위
호스트 부분이 8비트이므로 2^8 (256) 개의 주소 값이 가능하지만 그러나 일부 값은 특별한 목적을 위해 예약되어 있으므로 일반적으로 0부터 255까지의 값이 호스트 주소로 사용됨
20개의 Subnet Network를 만들고, 각 Subnet Network 당, 5명의 Host를 이용하려면?
20개의 Subnet을 만들기 위해선 5bit 2^5=32 필요, 5명의 Host는 3bit 2^3=8 필요 즉, 1111 1 000 → 224 이용, 255.255.255.224
IP4와 IP6의 차이
IPv4 의 경우 주소 표현 비트가 32비트로 2^32개의 주소를 표현할 수 있는 점에 반해 IPv6 의 경우 128비트로 2^128개의 훨씬 더 많은 주소를 표현할 수 있다.