IP 주소
- 네트워크 주소
- 네트워크 ID, 네트워크 식별자(network identifier)
- 호스트가 속한 특정 네트워크를 식별
- 호스트 주소
- 호스트 ID, 호스트 식별자(network identifier)
- 특정 호스트를 식별
- 네트워크 주소와 호스트 주소는 8 bit (1 옥텟) , 16 bit (2 옥텟), 24 bit (3 옥텟)으로 유동적으로 할당할 수 있다.
- → 효율적인 IP 주소 할당 방법 : IP 주소의 클래스(class)
클래스풀 주소 체계
- 클래스(class) : 네트워크 크기에 따라 IP 주소를 분류하는 기준
- 클래스풀 주소 체계(classful addressing) : 클래스를 기반으로 IP 주소를 관리하는 주소 체계
- 필요한 호스트 IP 개수에 따라 클래스를 달리 선택 → 네트워크 크기 조정 가능
- 클래스 종류 (주로 사용되는 클래스는 A,B,C)
- A 클래스
- 할당 가능한 호스트 주소의 수가 많음
- 네트워크 주소 : 비트 ‘0’으로 시작하는 1옥텟 (2^{7}개)
- 호스트 주소 : 3옥텟 (~2^{24}개)
- IP 주소 최솟값
- 2진수 : 0000 0000 . 0000 0000. 0000 0000. 0000 0000
- 10진수 : 0.0.0.0
- IP 주소 최댓값
- 2진수 : 0111 1111. 1111 1111. 1111 1111. 1111 1111
- 10진수 : 125.255.255.255
- B 클래스
- 네트워크 주소 : 비트 ‘10’으로 시작하는 2옥텟 (2^{14}개)
- 호스트 주소 : 2옥텟 (2^{16}개)
- IP 주소 최솟값
- 2진수 : 1000 0000. 0000 0000. 0000 0000. 0000 0000
- 10진수 : 128.0.0.0
- IP 주소 최댓값
- 2진수 : 1011 1111. 1111 1111. 1111 1111. 1111 1111
- 10진수 : 191.255.255.255
- C 클래스
- 네트워크 주소 : 비트 ‘110’으로 시작하는 3옥텟 (2^{21}개)
- 호스트 주소 : 1옥텟 (2^{8}개)
- IP 주소 최솟값
- 2진수 : 1100 0000. 0000 0000. 0000 0000. 0000 0000
- 10진수 : 192.0.0.0
- IP 주소 최댓값
- 2진수 : 1101 1111. 1111 1111. 1111 1111. 1111 1111
- 10진수 : 223.255.255.255
- D 클래스, E 클래스 : 각각 멀티캐스트를 위한 클래스, 특수한 목적을 위해 예약된 클래스
→ 호스트 주소가 전부 0인 IP 주소는 네트워크 자체를 의미하는 ‘네트워크 주소’로 사용되고, 호스트 주소 전부 1인 IP 주소는 ‘브로드캐스트 주소’로 사용된다.
- 한계
- 클래스별 네트워크 크기가 고정되어 있어 사전에 정해진 크기 외의 다른 크기 네트워크 구성 불가능
- 낭비되는 IP 주소가 많다.
e.g. 직원 300명인 컴퓨터를 동일 네트워크로 구성하려면?
- C클래스 - 최대 254개, B클래스 - 최대65,534개
클래스리스 주소 체계(classless addressing)
- 클래스 개념 없이(classless) 클래스에 구애받지 않고 네트워크의 영역을 나누고 호스트에게 IP 주소 공간을 할당하는 방식
- 클래스풀 주소 체계보다 더 유동적이고 정교한 네트워크 구획 가능
- 오늘날 주로 활용하는 방식
- 서브넷 마스크(subnet mask)
- IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
- 클래스 없이 IP 주소의 네트워크 주소, 호스트 주소를 구분하는 수단이다.
- 서브넷 마스크 표기: CIDR(Classless Inter-Domain Routing notation) 표기법
- ‘IP 주소/서브넷 마스크상의 1의 개수’ 형식으로 표기
- 연산 방법
- C클래스의 기본 서브넷 마스크 255.255.255.0 을 2진수로 표기하면 11111111.11111111.11111111.00000000 이 나온다.
- 1이 총 24개 이므로 /24 를 IP 주소 뒤에 추가해준다.
- e.g. 192.168.219.103/24
- 서브네팅(subnetting) : 비트 AND 연산(bitwise AND operation)
- 서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것
- IP 주소와 서브넷 마스크 비트AND연산 결과 = 네트워크 주소
- 연산 방법