한국어

ABOUT_MICROSOFT

ip 주소 에 관해서..

2003.10.14 21:52

jun 조회 수:1660

http://ezbox.net/windows/lectures/011213_ip.address.asp


IP Address에 관하여...


작성자 : 정원호 (lion21@nownuri.net)
편집자 : 정원호 (lion21@nownuri.net)
최초 게시일 : 2001년 12월 13일


사실 IP address를 잘 알기 위해서는 약간의 수리 개념을 이해하여야 한다. 필자는 숫자하고는 별로 친하지 않은 관계로 무턱대고 외워버렸다. :-) 따라서 왜 그렇게 되느냐고 따지지는 말아주기 바란다.

그럼 필자가 알고 있는 부분에 한해서 가급적 쉽게 설명하겠다.


IP Address란?


IP address란 인터넷에 연결된 컴퓨터의 주소를 네 자리로 구분된 10진수 숫자로 표현한 것이다.(쉽게 쓰려고 해도 어렵다. ^^;)

따라서 자신에 컴퓨터에 지정된 (공인)IP는 세상에서 유일무이한 것이 된다. 나중에 설명하겠지만 사설 IP라는 것도 있는데 이건 유일한 것이 아니고 서로 겹칠 수도 있다.

세상에서 유일무이한 것이기 때문에 한 곳에서 중앙집중적으로 IP를 관리할 필요가 있다. 그렇지 않으면 서로 동일한 IP를 사용하게 되어 결과적으로 큰 혼란을 겪을 수도 있기 때문이다. 그러한 역할을 하는 곳이 바로 ICANN(The Internet Corporation for Assigned Names and Numbers, www.icann.org)이다. 그 하위에 대륙별 NIC가 존재하고 그 하위에 국가별 NIC가 있다.

우리나라의 경우에는 KRNIC('케이알닉'이라고 읽는다)이 있다. KRNIC에서 국내 ISP나 기업에게 IP address를 할당해 주고, ISP는 다시 자신의 고객(회사, 학교, 개인)에게 이를 할당하는 것이다.

요컨대, ICANN → 대륙별 NIC(ex. APNIC:아시아/태평양, ARIN:북미) → 국가별 NIC(ex. KRNIC) → ISP(ex. Kornet) → 회사나 학교(ex. Kyung Hee Univ)이런 식이다.

반드시 위와 같은 상하 관계가 지켜져야 하는 것은 아니다.


IP Address의 형식


필자가 활동하는 학교 동아리 서버컴퓨터의 IP address를 예로 들어 설명하겠다.

IP address : 163.180.19.116

잘보면 "."이 3개가 있고 4개의 필드로 나눠져 있는 것을 알 수 있을 것이다. 첫번째 필드를 First Octet 이라고 하고, 두번째 필드를 Second Octet 이라고 한다. 3, 4번째도 마찬가지이다.

여기서 중요한 것이 바로 Octet 이다. 이는 어원적으로 8을 뜻한다. 즉, 8비트를 의미하는 것이다. 그러니까 2의 8승=256개까지 표현할 수 있다. 0에서 255까지...

결국 두번째, 세번째, 네번째 모두 계산해 보면 2^8*2^8*2^8*2^8=2^32=4,294,967,296 (약 43억개)가 된다.

흔히 IP address를 애기할때 32bit로 이루어 졌다는 말을 하는데 바로 이 것을 두고 말하는 것이다. 즉, 세상에서 현재까지(?) 이용할 수 있는 IP address의 개수는 바로 약 43억개라는 애기다.

사실 많은듯 보이지만 IP address의 체계상 현재 거의 포화상태에 이르렀다. 보고서에 따르면 2006년이면 완전히 고갈된다고 한다.

이에 대한 해결책으로 많은 대안들이 제시되고 있다. 예를 들어 DHCP(Dynamic Host Configuration Protocol)나 NAT(Network Address Translation), ICS(Internet Connection Sharing) 등등...

결국 이것도 한계가 있어 가장 확실한 해결책을 만들고 있다. 이름하여 IPv6 이다. 현재 거의 완성단계(시범시행중)인데 실제 국내 서비스 시기는 아직 미정이다. IPv6은 128bit 체계이다. 따라서 사용할 수 있는 IP 개수는 거의 무한대라고 할 수 있다.


IP Address Class?


IP address는 네트워크에 접속할 수 있는 호스트 수에 따라 Class A, Class B, Class C, Class D, Class E까지 다섯 단계의 클래스로 나뉜다.

현재 Class D와 E는 배정이 유보된 상태이기 때문에 A부터 C까지만 설명하겠다. 사실 D와 E는 필자도 아는 바가 없다. :-)

A등급은 국가나 대형 통신망에 쓰인다는데 우리나라에는 배정되지 않았다.(필자의 생각이지만 대부분 미국소재 기업이나 대학에 배정되지 않았을까 여겨진다.) B등급은 중/대규모 기업 통신망이나 대학 통신망에 배정된다. 필자의 학교가 Class B를 배당받았다. C등급은 소규모 통신망에 할당된다.

  1. Network ID와 Host ID

    IP address는 네트워크를 의미하는 부분(Network ID)와 호스트를 의미하는 부분(Host ID)로 나누어 진다.

    정확한건 아니지만 대강 쉽게 이해하려면 전산망 관리자가 임의로 변경할 수 있는 부분이 Host ID이고 그러할 수 없는 부분이 Network ID라고 생각하면 된다. 예를 들면 163.180.19.116에서 Network ID는 "163.180"이고, Host ID는 "19.116"인데 이중에서 학교 네트워크 관리자가 건드릴 수 있는 부분이 19.116라는 애기다.(Class B에서는 2번째 Octet까지 Network ID이다.) 물론 하부 서브넷을 구성하였을 경우에는 얘기가 조금 달라진다. ^_^

    이제 본격적으로 클래스에 대해 설명하겠다.

  2. A등급(Class A)

    Class A의 IP address를 이진수의 형태로 바꾸어 보면 다음과 같다.

    0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh 즉, 첫번째 숫자(최상위 비트)가 0이 될 경우 이를 Class A라 칭한다. 그럼 나머지 7(bit)자리를 가지고 10진수를 만들어 보면 어떤 숫자가 만들어 질 수 있을까? 아무리 만들어 봐도 129이상은 나오지 않는다.

    고로 구현할 수 있는 최대 개수는 바로 2^7이 되어 128개가 된다. 즉, Class A는 0부터 127까지(128개) 존재할 수 있다는 애기다. 이를 다른 말로 바꾸면 Class A의 Network ID는 바로 128개가 된다는 것이다.

    그러나 0과 127은 예약되어 사용되기 때문에 실제로는 1에서 126까지 총 126개의 Class A가 존재한다. 즉, 1.0.0.0부터 126.255.255.255까지... 감이 오시는지? ^_^

    그럼 하나의 Class A가 가질 수 있는 IP address의 개수는?

    이건 매우 간단하다. 다른 말로 하면 Class A의 Host ID 개수를 말하는 것이다.

    총 32비트중 1비트는 0으로 고정하고, 7비트를 Network ID로 사용했으니까 결국 24비트가 남는다. 그럼 2^8*2^8*2^8=2^24=16,777,216이 된다. 고로 1개의 Class A에서 사용할 수 있는 총 IP address의 개수는 16,777,216(약 천칠백만)개가 된다. 그렇지만 이것 역시 2개의 IP address가 고정되어 사용되기 때문에 실제 사용가능한 개수는 16.777.214개가 된다. 즉, 1.0.0.0하고 1.255.255.255는 사용이 불가능하다.(당연한 얘기지만 2.0.0.0과 2.255.255.255도 사용이 불가능하다.)

    그럼 정리해 보자. Class A는 첫번째 Octet을 비트(2진수)로 환산했을때 최상위비트가 0이 되고, 10진수 범위로는 1부터 126이 된다. 구성가능한 호스트 수는 16,777,214개가 된다. 근데 불행히도 우리 나라에 배당되지는 않았다.

  3. B등급(Class B)

    Class B의 최상위 비트는 "10"이다. 그리고 14비트의 Network ID를 사용할 수 있다.

    10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh --→ 10 : 2bit, n : Network ID(14bit), h : Host ID(16bit)

    따라서 첫번째 Octet에는 128에서 191까지 배정되어 있다. 그리고 총 16,382개의 Class B가 존재한다.

    Class B를 할당받은 통신망의 관리자는 Host ID에 할당된 16비트를 활용해 65,534개의 호스트를 구성할 수 있다.(이론적으로는 2^8*2^8=65,536이지만 2개는 예약되어 사용할 수 없다.)

  4. C등급(Class C)

    Class C는 소규모 회사 등에 배정되는데 현재 포화상태에 이르고 있다.

    첫번째 Octet의 최상위 비트가 "110"이다.

    110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh --→ 110 : 3bit, n : Network ID(21bit), h : Host ID(8bit)

    따라서 첫번째 Octet에는 192에서 223까지 배정되어 있다. 그리고 지구상에 2,097,150개의 Class C가 존재한다.

    Class C를 할당받은 통신망의 관리자는 Host ID에 할당된 8비트를 활용해 254개의 호스트를 구성할 수 있다.(이론적으로는 2^8=256개를 사용 가능히자민 0과 255 등은 예약되어 있어 실제 구성 가능한 최대 호스트 수가 254개가 된다.