본문 바로가기

IT 엔지니어를 위한 네트워크

IP 주소와 IP 주소 체계

Today Keys : IP 주소, IP 주소 체계, IP Address, 옥텟, octet

본 포스팅은 'IT 엔지니어를 위한 네트워크 입문' [길벗] 서적에 포함된 '3. 네트워크 통신하기'의 내용  3.3장, 3.3.1장의 내용입니다.


IP 주소

OSI 7계층에서 주소를 갖는 계층은 2계층과 3계층입니다. 

2계층은 물리 주소인 MAC 주소를 사용하고 3계층은 논리 주소인 IP 주소를 사용합니다. 대부분의 네트워크가 TCP/IP로 동작하므로 IP 주소 체계를 이해하는 것이 네트워크 이해에 매우 중요합니다. 

이번 장에서는 3계층 주소인 IP 주소에 대해 알아보겠습니다.

IP 주소를 포함한 다른 프로토콜 스택의 3계층 주소는 다음과 같은 특징이 있습니다.

   1. 사용자가 변경 가능한 논리 주소입니다.

   2. 주소에 레벨이 있습니다. 그룹을 의미하는 네트워크 주소와 호스트 주소로 나뉩니다.

 

IP 주소 체계

 우리가 흔히 사용하는 IP 주소는 32비트인 IPv4 주소입니다. IP는 v4, v6 두 체계가 사용되며 IPv6 주소는 128비트입니다. IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 부르는 8비트 단위로 나누고 각 옥텟은 “.”으로 구분합니다.

 2계층의 MAC 주소가 16진수로 표기된 것과 달리 IP 주소는 10진수로 표기하므로 8비트 옥텟은 0~255의 값을 쓸 수 있습니다.

 

2계층 주소인 MAC 주소가 제조업체 코드인 OUI와 제조업체별 일련 번호인 UAA의 두 부분으로 나뉘는 것과 목적이 다르지만 3계층 주소인 IP 주소도 네트워크 주소호스트 주소 두 부분으로 나 뉩니다.

● 네트워크 주소

   호스트들을 모은 네트워크를 지칭하는 주소. 네트워크 주소가 동일한 네트워크를 로컬 네트 워크라고 함.

● 호스트 주소

  하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소

 

MAC 주소는 24비트씩 절반으로 나뉘지만 IP 주소의 네트워크 주소와 호스트 주소는 이 둘을 구 분하는 경계점이 고정되어 있지 않습니다. 이것이 다른 주소 체계와 IP 주소 체계를 구분하는 가 장 큰 특징입니다.

 IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당 할 수 있는 클래스(Class) 개념을 도입했습니다. A 클래스는 가장 큰 주소를 갖는데 약 1,600만 개 의 IP 주소를 가질 수 있습니다. B 클래스는 약 6만 5천 개, C 클래스는 약 250개의 IP 주소를 가 질 수 있습니다.

 A 클래스는 첫 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있 고 B 클래스는 두 번째 옥텟, C 클래스는 세 번째 옥텟에 구분자가 있습니다. 이 구분자를 서브넷 마스크라고 하며 뒤에서 설명됩니다

 

 네트워크 주소와 호스트 주소를 나누는 구분자가 고정되어 있다면 네트워크가 가질 수 있는 호스 트 IP 숫자가 같기 때문에 모두 같은 크기의 네트워크가 되지만 구분자가 이동할 수 있어 네트워 크의 크기가 달라질 수 있습니다. IP 주소가 도입한 클래스 개념은 다른 고정된 네트워크 주소 체 계에 비해 주소를 절약할 수 있다는 장점이 있습니다.

네트워크의 크기가 모두 같은 경우, 큰 네트 워크를 필요로 하는 조직은 네트워크를 여러 개 확보해야 하는 어려움이 있고 연속된 네트워크를 할당받기 어렵습니다. 작은 네트워크가 필요한 조직의 입장에서는 너무 많은 IP를 가져가므로 IP 가 낭비됩니다.

 A 클래스는 네트워크 주소를 표현하는 부분이 1개의 옥텟, 호스트 주소를 나타낼 수 있는 부분이 3개의 옥텟이기 때문에 28 (256)개의 네트워크와 한 네트워크 당 224(16,777,216)개의 호스트 주 소를 갖게 됩니다.

 B 클래스는 네트워크 주소 부분이 2개의 옥텟, 호스트 주소가 2개의 옥텟이기 때문에 216(65,536) 개의 네트워크와 1개의 네트워크에 216(65,536)개의 IP를 가질 수 있습니다.

 마지막으로 C 클래스는 세 번째 “.”에 네트워크 주소와 호스트 주소를 나누는 구분자가 있고 224(16,777,216)개의 네트워크와 1개의 네트워크 당 28 (256)개의 호스트를 가질 수 있습니다.

 

A, B, C 클래스는 맨 앞 옥텟의 주소만 보고 구분할 수 있는데 앞 옥텟의 주소가 0~127의 범위 이면 이 주소는 A 클래스입니다. 첫 옥텟을 이진수로 표기했을 때 2진수 8자리 중 맨 앞 자리가 0 인 주소가 A 클래스입니다. 좀 더 풀어서 설명하면 2진수로 첫 옥텟이 0 0000000~0 1111111인 주소가 A 클래스가 됩니다. 127만 예외로 자신을 의미하는 루프백(Loopback) 주소로 사용되므로 실제로 A 클래스로 사용할 수 있는 주소는 1.0.0.0~126.255.255.255까지입니다.

 B 클래스는 첫 옥텟을 2진수로 표기했을 때 첫 번째 자리가 1이고 두 번째 자리가 0인 주소가 B 클래스입니다. 2진수로 첫 옥텟이 10 00000~10 111111인 수를 10진수로 표현하면 128부터 191까지이고 이 수를 갖는 IP는 B 클래스가 됩니다.

 C 클래스는 첫 옥텟을 2진수로 표기했을 때 2진수 8자리 중 첫 번째, 두 번째 자리가 1이고 세 번째 자리가 0인 주소가 C 클래스입니다. 첫 옥텟이 110 00000~110 11111, 10진수로는 192~223까지 IP인 경우, C 클래스입니다.

 클래스 기반의 네트워크 분할 기법은 과거에 사용했던 개념으로 현재는 위에서 설명한 것처럼 클 래스 기반으로 네트워크를 분할하지 않습니다. 보다 네트워크 주소를 세밀하게 분할하고 할당하기 위해 필요한 네트워크의 크기에 맞추어 1비트 단위로 네트워크를 상세히 분할하는 방법을 사용합니다

 

참고

네트워크에서 사용 가능한 호스트 개수 파악하기
네트워크 주소: 172.16.0.0
브로드캐스트 주소: 172.16.255.255
유효 IP 범위: 172.16.0.1~172.16.255.254




 IP 네트워크에서는 네트워크 크기가 변경되므로 하나의 네트워크에서 사용 가능한 호스트 개수와 사용 가능한 유효 IP 범위를 파악하는 것이 중요합니다. 클래스 단위로 네트워크가 분할되는 경우, 우리가 쉽게 인지할 수 있는 10진수 형태로 표현되어 이해하는 데 큰 무리가 없지만 뒷장에서 다룰 클래스리스(Classless) 네트워크인 경우, 유효 IP 범위 파악이 매우 중요해집니다.

일반적으로 표현할 수 있는 모든 수의 개수는 진수형태로 계산할 수 있습니다. 예를 들어 우 리가 사용하는 10진수 4자리가 나타낼 수 있는 총 수는 10^4 개입니다. 0000부터 9999까지 총 10,000개의 숫자를 표현할 수 있습니다. IP는 2진수로 나타내므로 2자릿수 형태로 표현할 수 있는 IP 숫자를 구할 수 있습니다.

한 옥텟이 2 진수 8자리이므로 A 클래스는 2^24개, B 클래스는 2^16개, C 클래스는 2^8 개의 IP를 표현할 수 있습 니다. 하지만 IP 체계에서 맨 앞의 숫자를 네트워크 주소로, 맨 뒤의 숫자를 브로드캐스트 주소로 사용하므로 실제로 사용할 수 있는 IP는 A 클래스는 2^24-2, B 클래스는 2^16-2, C 클래스는 2^8 -2 가 됩니다