프로그래밍 공방

IP Address 본문

개발/네트워크

IP Address

hyosupsong 2021. 1. 2. 15:36

IP Address

IP 주소는 TCP/IP 프로토콜을 사용하는 모든 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 주소이다.

32자리의 2진수로 되어 있으며 총 2의 32승 개의 IP가 표현이 가능하다.

아래와 같이 이진수 8자리마다 점을 찍어 표현하며, 이 8개의 이진수를 묶어서 옥텟(Octet)이라 한다.

네트워크 영역 (Network Part) / 호스트 영역 (Host Part)

네트워크 영역 : 라우터 없이도 통신이 가능한 하나의 브로드 캐스트 영역

호스트 영역 : 각각의 장치

IP주소는 네트워크 영역과 호스트 영역으로 이루어져있다.

* 하나의 네트워크에서 IP 주소는 네트워크 영역은 모두 같고 호스트 영역은 모두 다르다.

IP주소 클래스

A 클래스

맨 앞 비트가 항상 0인 주소

앞의 8비트가 네트워크 영역, 뒤에 24비트가 호스트 영역이다.

1~126으로 시작하는 네트워크는 A 클래스이다.

하나의 클래스가 가질 수 있는 호스트의 수는 2^24 - 2개이다.
(1개는 0.0.0으로 네트워크 자체를 나타내고, 1개는 255.255.255으로 브로드 캐스트 주소로 사용된다.)

B 클래스

맨 앞 비트가 항상 10인 주소

앞의 16비트가 네트워크 영역, 뒤에 16비트가 호스트 영역이다.

128.0 ~ 191.255 로 시작하는 네트워크는 B 클래스이다.

하나의 클래스가 가질 수 있는 호스트의 수는 2^16 - 2개이다.
(1개는 0.0으로 네트워크 자체를 나타내고, 1개는 255.255으로 브로드 캐스트 주소로 사용된다.)

C 클래스

맨 앞 비트가 항상 110인 주소

앞의 24비트가 네트워크 영역, 뒤에 8비트가 호스트 영역이다.

하나의 클래스가 가질 수 있는 호스트의 수는 2^8 - 2개이다.
(1개는 0으로 네트워크 자체를 나타내고, 1개는 255으로 브로드 캐스트 주소로 사용된다.)

서브넷 마스크 (Subnet Mask)

주어진 네트워크 영역을 나누기 위해 사용하는 이진수 조합

서브넷 마스크를 통해 나누어진 네트워크 영역을 서브넷이라 하고 각각의 서브넷 통신은 라우터를 통해서만 가능하다.
(브로드 캐스트 영역을 나누고 IP 주소를 아끼기 위해서 네트워크 영역을 서브넷으로 나눈다.)

모든 IP주소는 서브넷 마스크가 따라다닌다.

* 서브넷 마스크를 사용하지 않고 클래스를 그대로 사용해도 디폴트 서브넷 마스크가 따라다닌다.
  ( A 클래스 : 255.0.0.0 / B 클래스 : 255.255.0.0 / C 클래스 : 255.255.255.0 )

서브넷 마스크를 통해 IP 주소의 네트워크 영역과 호스트 영역을 구분할 수 있다. ( IP주소와 서브넷 마스크의 AND연산)
- 네트워크 영역 : 서브넷 마스크가 1인 부분
- 호스트 영역 : 서브넷 마스크가 0인 부분
* 서브넷 마스크는 이진수로 나타냈을 때 1이 연속으로 나와야 한다.

서브넷팅

IP 주소를 아끼기 위해 네트워크 영역을 여러 개의 서브넷으로 나누는 것

예를들어 아래와 같이 210.100.100.1 주소를 갖는 네트워크를 255.255.255.248 서브넷 마스크로 나눈다면

210.100.100.1 = 1101 0010 . 0110 0100 . 0110 0100 . 0000 0001
255.255.255.248 = 1111 1111 . 1111 1111 . 1111 1111 . 1111 1000  ( AND 연산 )
210.100.100.0 = 1101 0010 . 0110 0100 . 0110 0100 . 0000 0000 이 된다.

기존 IP주소(210.100.100.1) 는 C 클래스이고 C 클래스의 디폴트 서브넷 마스크는 255.255.255.0이다. 

이 대역을 255.255.255.248 마스크로 서브넷팅을 하게 되면 32개의 서브넷을 만들고 각각의 서브넷은 6개(8-2)의 호스트를 포함할 수 있다. ( 1111 1000 )