it/tech

IP 주소란?

C/H 2006. 9. 22. 14:27

IP 주소란?


[inter+network]

여러 개의 소규모 네트웍들이 연결되어서 거대한 네트웍을 이룬 것이다. 학교 전산실에 있는 컴퓨터들을 이더넷(ethernet) 케이블 등을 이용해서 물리적으로 연결하면 소규모 네트웍이 된다. 이것을 LAN(Local Area Network)이라 한다. LAN은 또 다른 LAN과 연결될 수 있다. 그렇게 연결된 네트웍 역시 계속해서 다른 큰 네트웍에 연결되어 나갈 수 있다. 그것이 바로 인터넷이다. IP 주소는 이런 거대한 네트웍인 인터넷상에서 어떤 한 컴퓨터를 찾아낼 수 있는 주소이다. "IP"는 "Internet Protocol"의 약자이다. 이때 각 LAN은 입구 역할을 하는 컴퓨터를 통해 외부 네트웍과 연결된다. 그 컴퓨터를 Gateway라 한다. 영어 단어 그대로 출입문의 역할을 하는 컴퓨터이다.


처음 인터넷이 등장 했을 때는 오늘날처럼 이렇게 커질 것을 예상하지 못 했다. 인터넷을 만든 사람들은 32비트의 주소로 인터넷상의 모든 컴퓨터의 주소를 다 표현할 수 있을 것으로 생각했다. 32=8비트 x 4 그리고 8비트는 8자리 이진수로 최소값이 00000000, 최대값이 11111111, 00000000은 십진수로 0, 11111111은 십진수로 255이므로 8비트 IP 주소를 10진수로 표현하면 각 자리 숫자가 0 - 255로 이뤄진 4개의 숫자가 된다. 165.123.101.2 처럼 표현된다.


32비트만 해도 256 x 256 x 256 x 256=4,294,967,296개의 IP 주소를 만들 수 있기 때문에 처음 인터넷이 시작되던 당시에는 충분할 것으로 예상되었다.. 그런데 인터넷이 폭발적으로 커지면서 32비트의 IP 주소만으로는 도저히 모든 주소를 다 표현할 수가 없게 된다. 최근 새로운 버전의 IP 주소인 IP version6(IPv6) 얘기가 나오는 것이 그런 이유다. IPv6(128bit). 수학적으로 총 2128의 어마어마한 갯수가 되어서 모자랄 일은 없게 되는 것이다. 동적 IP 주소(dynamic IP address)가 나타난 것도 IP 주소가 부족하기 때문이다. 인터넷 서비스 공급자(ISP) 측에서 일시적인 IP 주소를 부여하는 것이다. 동적 IP 주소는 접속을 끊었다가 다시 연결하면 바뀐 주소를 받게 된다. 동적 IP 주소만 갖고는 그 컴퓨터를 항상 찾아낼 수는 없다.


IP 주소=네트웍 넘버+호스트 넘버

네 개의 숫자 중 어디까지가 네트웍 넘버고 어디까지가 호스트 넘버냐에 따라 IP 주소는 세 개의 급(=class)으로 나눈다. 네 개의 숫자 중 첫 번째 숫자만 네트웍 주소고 나머지 세개의 숫자는 호스트 주소인 IP 주소를 Class A라 한다. 첫 숫자는 반드시 0에서 127 사이에 있어야 하는 게 규칙이다.


Class A IP 주소

53. x. x. x

53은 부여받은 숫자이고, 나머지 3개는 0-255 중의 하나의 값을 갖는다. class A IP 주소를 할당받은 네트웍 관리자는 부여 받은 53 다음에 나오는 나머지 세 숫자를 자유롭게 특정 컴퓨터에 할당할 수 있다. 첫 번째 숫자만 네트웍 넘버이고 나머지 세 숫자는 호스트 넘버로 할당할 수 있다. 그렇다면 그 네트웍 관리자는 총 몇 개의 IP 주소를 자신의 네트웍에 속한 호스트에 할당할 수 있을까? 세 개의 숫자를 원하는 대로 할당할 수 있고 각각은 0에서 255까지 쓸 수 있으므로 256 x 256 x 256개가 된다. 계산해 보면 16,777,216개이다.(이 중 몇몇은 사용할 수 없다.)


53. 50. 50. 50

53. 60. 61. 62

. . . . . . . . . .

53. 200.200.150

. . . . .. . .. . ..

위의 주소들은 모두 Class A IP 주소이다. Class A 주소는 할당할 수 있는 주소가 굉장히 많으므로 매우 큰 네트웍을 가진 큰 기관에만 주었다.


Class B는 앞의 두 숫자가 네트웍 넘버이고 뒤의 두 숫자는 호스트 넘버인 것이다. 첫 번째 숫자는 128에서 191 사이의 값이어야 한다.


130. 78. x. x

Class B IP 주소는 총 16,384개의 네트웍 넘버를 갖는다. 그리고 각각의 네트웍 넘버 당 나머지 두 부분의 조합수인 256 x 256개(=65,536개)의 호스트 넘버를 갖는다.


Class C 는 처음 세 숫자가 모두 네트웍 넘버이고 나머지 하나만 호스트 넘버인 IP 주소이다. 첫 번째 숫자는 192부터 233까지의 값을 가질 수 있다.


205. 124. 101. x

Class C 에 속하는 IP 주소는 총 2,097,152개의 네트웍이 있으며 이들 각각은 254개의 호스트를 물려 놓을 수 있다. 맨 마지막 숫자만 0에서 255까지 호스트 넘버로 할당할 수 있는 것이다. 0에서 255이면 256개인데 왜 254개일까? 각 네트웍 클래스에서 네트웍 넘버를 제외한 나머지 숫자가 모두 0이거나 모두 255인 것은 특별한 용도가 있다. 예컨데, 130. 78. x . x라는 클래스 B 네트웍에 속하는 IP 주소 중 130. 78. 0. 0과 130. 78. 255. 255는 특수 용도가 있다. 나머지 숫자가 0인 주소는 'anonymous', 즉 네트웍 내의 호스트의 주소를 특별히 밝히지 않을 때 사용되는 주소다. 나머지 숫자가 255인 주소는 방송(broadcast) 주소다. 예를 들어, 130. 78. 255. 255라는 주소로 어떤 데이타를 보내면 130. 78. x . x에 물린 모든 호스트로 그 데이타가 다 전송된다.


그외에도 특수한 IP 주소가 있다. 각 클래스의 외부로는 데이타가 전송되지 않는 주소가 있다. 데이타 패킷이 게이트웨이를 거쳐서 외부로 나가지 않고 그 네트웍 안에서만 머무는 주소다. 이것을 'private address'라고 하며 다음과 같은 것이 있다.


클래스 A 10. 0. 0. 0

클래스 B 172. 16. 0. 0 에서 172. 31. 0. 0 까지

클래스 C 192. 168. 0. 0 에서 192. 168. 255. 0 까지


마지막으로 루프백(loopback)이라는 특수한 주소가 있다. 127.0.0.1이 루프백 주소다. 컴퓨터 자신을 가리킬 때 사용되는 특수한 IP 주소다. 서버에 아파치 웹서버나 IIS를 인스톨한 경우 웹브라우져를 통해 서버 컴퓨터의 웹서버 프로그램에 접근하려면 주소창에 http://127.0.0.1이라고 입력하거나 http://localhost라고 입력하면 된다.


(Sub)Net Mask

네트웍 마스크(Network mask)는 감기 걸리면 쓰는 마스크처럼 IP 주소중 네트웍 부분을 가려준다. 네트웍 부분은 255로 호스트 부분은 0으로 지정해서 IP 주소의 어디까지가 네트웍 주소이고 어디서부터 호스트 주소인지를 알려준다.


Class 첫 바이트 Network mask

Class A 1 - 127 255. 0. 0. 0

Class B 128 - 191 255. 255. 0. 0

Class C 192 - 233 255. 255. 255. 0


클래스 A는 255가 첫째 자리에만 있으므로 IP 주소의 첫번째 숫자만이 네트웍 넘버이다. 나머지는 호스트 넘버가 된다. 클래스 B,C도 마찬가지 방식으로 이해하면 된다. 서브넷은 'sub'이므로 네트웍 하위에 있는 또 다른 네트웍이다. 클래스 B 주소를 하나 할당받았는데 그 밑에 몇 개의 작은 네트웍을 따로 더 만들었다면 작은 네트웍들이 서브넷이다. 클래스 B 주소의 경우 253개의 클래스 C 네트웍으로 (서브넷으로) 나눌 수 있다. 서브넷 마스크는 그러한 서브넷을 구축했을 때 어디까지가 서로 네트웍에 물려있는지를 나타낸다. 예를 들어 세 개의 호스트가 다음과 같은 IP 주소를 갖는다고 하면,


호스트 a : 210. 170.1.1

호스트 b : 210. 170.1.2

호스트 c : 210. 170.2.1

이들 호스트의 써브넷 마스크를 모두 255.255.255.0으로 셋팅했다면, 즉 앞에서 세 자리까지가 네트웍 주소가 된다면 호스트 a와 호스트 b는 같은 네트웍에 물려 있는 것이다. TCP/IP 프로토콜을 이용해서 직접 데이타를 전달할 수 있다. 네트웍 넘버를 나타내는 앞에서 세자리 까지의 숫자가 똑같기 때문에 같은 네트웍에 있는 것이다. 하지만 호스트 c는 호스트 a와 직통으로 얘길 나눌 수 없다. 다른 네트웍에 속하기 때문이다. 다른 네트웍에 접근하기 위해서는 gateway를 거쳐야만 한다.


만약 위 네트웍의 써브넷 마스크를 255.255.0.0으로 셋팅하면 어떻게 될까? 네트웍 넘버가 앞에서 두 자리까지이므로 위의 세 호스트들은 모두 210.170. x. x라는 동일 네트웍에 물려있는 것이 된다. 직통으로 대화가 가능하다.


이런 방식으로 네트웍 하부의 서브넷을 원하는 대로 규정할 수 있다. 이처럼 TCP에 의해 만들어진 패킷이 네트웍상의 특정 컴퓨터(호스트)로 찾아가는 것을 담당하는 TCP 하위에 깔려있는 프로토콜을 IP라고 한다. TCP/IP 프로토콜은 둘을 합친 것이다.

반응형

'it > tech' 카테고리의 다른 글

프로그램에서 메일수신확인 방법  (0) 2010.01.04
Visual Basic 6.0 File Extention Name  (0) 2006.09.22
Visual Basic 컨트롤 이름 규칙  (0) 2006.09.22
스크립트 오브젝트 테이블  (0) 2006.09.22
TCP/IP의 역사  (0) 2006.09.22