본문 바로가기
IT/network

IP(Internet Protocol) 정의 / 설명, 예제, 네트워크

by 어느해겨울 2009. 12. 31.

 

IP(Internet Protocol) 정의


IP 주소(IP address)란?
ㆍ각 컴퓨터는 고유한 IP number를 가진다.
ㆍ각 IP number 는 다르다 -아니면, 네트웍상에서 자료를 주고받을 수 없다.
ㆍ하나의 IP number 는 32-bit 이진 숫자 이다.
편리하게 보기위해, 32-bit를 4개의 8-bit로 나누어 다룬다. 8-bit가 십진수치환등에 편리하기 때문이다.
예: IP number: 00001010100010111100101110000011 
/ / | | 00001010 10001011 11001011 10000011
Decimal version: 10 .139 .203 .131

예: 이진수 11001011 를 십진수로 바꾼다:
+-------- 128
|+------- 64
||+------ 32
|||+----- 16
||||+---- 8
|||||+--- 4
||||||+-- 2
|||||||+- 1
||||||||
||||||||
11001011 =128 + 64 + 8 + 2 + 1 =203

IP numbers
가장 작거나 큰 IP 주소는? 가장 작은 것은 모두 0으로 된 것이고, 큰 것은 모두 1로 구성되어 있다.
Smallest: 00000000000000000000000000000000 =0.0.0.0
Largest: 11111111111111111111111111111111 =255.255.255.255

그래서, 전 세계적으로 총 232 >= 4,000,000,000 IP 주소가 가능하다. (현 인류의 2배이상의 수)

 

 

IP 주소 할당
ㆍ일반적으로 class로 주소를 할당했으나, 효율적인 할당을 위해, 몇 년사이에 classless 주소할당을 하고 있다
ㆍ국내의 경우 전산원내의 KRNIC에서 이 업무을 수행하고 있으며, 상위 기관으로는 APNIC 그리고 IANA의 InteNIC이 있다.
ㆍ모든 IP주소를 단일하게 할당하기 위해, 블록을 사용한다. (class와는 다른 개념)
ㆍInterNIC 이 큰 블록을 각 하부(유럽, 아시아/태평양, 북미, 남미)로 할당하고, 이를 다시 블록을 나누어 국가나 큰 ISP별 할당하는는 식으로 주소 부여한다.
ㆍ여러분이 할당받은 주소를 나누어 여러분의 네트웍을 구성한다.
주소할당시에, IP 주소는 두부분으로 나누어진다: network number (prefix) 와 host number. 이러한 두 부분의 분기점을 나타내는 방법은 기존은 class이나 현재는 /와 network number part의 크기로 나타낸다.
예를 들면, "199.2.192.64/26" 은 network numberfh 26비트로, 나머지 6 bit가 host number이다.
주: IP routing 이 작동하기 위해서는, 각 호스트가 같은 네트웍 주소와 다른 호스트 주소를 가진 구성을 해야 한다.
다른 표현으로, 모든 IP 주소는 아래와 같이 구성되어야 한다.
Network 199.2.192.64 / 26
11000111 00000010 11000000 01xxxxxx
|___________________________/|____/
network number (26 bits) host (6)
"xxxxxx" 는 0이나 1의 무작위로 구성될 수 있다.
11000111 00000010 11000000 01000000 =199.2.192.64
11000111 00000010 11000000 01000001 =199.2.192.65
11000111 00000010 11000000 01000010 =199.2.192.66
......
......
11000111 00000010 11000000 01111111 =199.2.192.127
주의: 199.2.192.64/26 는 IP 주소가 아니다. 이 표현은 한 네트웍의 IP 주소 범위를 표현하는 것이다.
실제로는, 첫 번째 숫자와 마지막 숫자는 다른 용도로 사용되어, 일반 호스트 주소로 쓰일 수 없다. 위의 경우는 .64 과 .127 가 그렇다. 실제로는 .65에서 .126까지의 62개의 번호가 쓰인다.
첫 번째 주소인 .64는 네트웍을 나타내는 주소로 쓰이고, 마지막 숫자인 .127은 broadcast 용 주소로 할당된다.

 

 

네트웍 나누기
하나의 물리적 네트웍 의 모든 호스트는 같은 네트웍 주소를 가져야 한다. 만약 두 개 이상의 네트웍을 구성하길 원하면, 네트웍 주소를 나우어야 한다.
이는 네트웍주소의 길이를 늘리면 (반대로 호스트의 길이를 줄이고)된다 -보다 적은 호스트를 허용하는 여러개의 네트웍체계를 가지게 되며, 이 때, IP 주소들이결코 겹쳐 져서는 안된다.

가장 정확한 방법은 한번에 한 bit 씩 네트웍의 길이를 늘리는 접근방식이다. 예를 들면, 하나의 /24 네트웍을 두개의 /25 네트웍으로. 하나의 /25 네트웍을 두개의 /26 네트웍으로,...

여기에 206.27.238.0 / 24 을 나눈 예를 들면,
206 .27 .238
11001110 00011011 11101110 xxxxxxxx 206.27.238.0/24 before
11001110 00011011 11101110 0xxxxxxx 206.27.238.0/25 after
11001110 00011011 11101110 1xxxxxxx 206.27.238.128/25
^
여기가 핵심으로 하나 들어난 네트웍 주소이다.
각 네트웍은 128개의 IP 주소를 가진다. (실제 126 개가 사용 가능 하다). 여기에 만족하면 좋은데, 더 원한다면, ..
11001110 00011011 11101110 0xxxxxxx 206.27.238.0/25
11001110 00011011 11101110 00xxxxxx 206.27.238.0/26
11001110 00011011 11101110 01xxxxxx 206.27.238.64/26
^
11001110 00011011 11101110 1xxxxxxx 206.27.238.128/25
11001110 00011011 11101110 10xxxxxx 206.27.238.128/26
11001110 00011011 11101110 11xxxxxx 206.27.238.192/26
^
이제. 하나의 /24 네트웍이 (256 개의 IP 주소), 각각 64개의 IP 주소가 가능한 4개의 /26 네트웍으로 나누어 졌다. 이렇게 하면, 0-63, 64-127, 128-191, 192-255가 되고, 이들은 겹치지 않는다. 각각의 네트웍의 첫 번째 와 마지막 숫자는 호스트 주소에 쓰이지 않으므로, 실제 사용가능한 주소는 1-62, 65-126, 129-190, 193-254 이다.

여기 잘못된 예를 들면:
First network: 206.27.238.0/25
Second network: 206.27.238.64/26

잘못된 곳은?
206.27.238.0/25 =206 .27 .238 .0xxxxxxx <-- range 0 to 127
206.27.238.64/26 =206 .27 .238 .01xxxxxx <-- range 64 to 127 OVERLAP!
이분법적인 네트웍 분리구성뿐아니라, 겹치지 않는다면, 다소 필요에 맞게 복잡한 구성도 가능하다. 아래에 한 예를 든다:
11001000 00011011 11101110 xxxxxxxx (original network)
11001110 00011011 11101110 000000xx 206.27.238.0/30 .0 to .3
11001110 00011011 11101110 000001xx 206.27.238.4/30 .4 to .7
11001110 00011011 11101110 000010xx 206.27.238.8/30 .8 to .11
11001110 00011011 11101110 000011xx 206.27.238.12/30 .12 to .14
11001110 00011011 11101110 0001xxxx 206.27.238.16/28 .16 to .31
11001110 00011011 11101110 001xxxxx 206.27.238.32/27 .32 to .63
11001110 00011011 11101110 01xxxxxx 206.27.238.64/26 .64 to .127
11001110 00011011 11101110 1xxxxxxx 206.27.238.128/25 .128 to .255

각 네트웍의 처음과 끝은 사용할 수 없고, 206.27.238.4/30 같은 네트웍은 단지 2개의 IP 주소 (.5, .6)만이 가능하다. 그러므로 /30 이 가장 작은 네트웍 이다. 이러한 주소는 주로 시리얼 연결된 라우터에 할당되는 주소로 많이 쓰인다. 양 라우터를 잇는 라인도 하나의 독립된 네트웍이며, 이를 위한 주소체계는 /30 이 적당하다. 단, 여러 라우터가 함께 연결되는 ISP의 경우는 다르다.

 


IP 주소 할당 에서의 황금률
1. 같은 물리적 네트웍에 있는 모든 호스트는 같은 네트웍 prefix (네트웍 숫자)를 갖는다
10101001 11011110 00010000 0xxxxxxx

2. 각 호스트에는 나머지 부분이 각각 다른 숫자로 할당된다.
10101001 11011110 00010001 0xxxxxxx

3. 숫자가 전부 0 이거나 1인 주소는 예약되어 있어 사용할 수 없다.

4. Network number

5. 10101001 11011110 00010001 00000000

6. Broadcast address
10101001 11011110 00010001 01111111

 

 

Network masks
네트웍 숫자와 호스트 숫자사이의 분리는 network mask에 의해 구분된다; IP 주소의 네트웍부분은 1로 되고, 호스트부분은 0으로 구성되어 있다.
이러한 이진수의 구성을 다루기 쉽게 십진수나 십육진수로 구성하여 표시하며, 이는 변환표를 참조하기 바란다.
예: /26 =26 x "1", rest are "0"
=11111111 11111111 11111111 11000000 (binary netmask)
=255 .255 .255 .192 (decimal netmask)

 

 

Classes
IP 주소는 클래스라는 것으로 바이트별로 점이 구분되어 구성되어 있었다. IP 주소의 첫번째 바이트로부터 기본적인 netmask를 구분하였다. 몇몇 컴퓨터들은 특별히 지정하지 않더라도 이러한 클래스구조를 디폴트로 제공한다..
0-127 =class A, /8 255.0.0.0
128-191 =class B, /16 255.255.0.0
192-223 =class C, /24 255.255.255.0
예: 130.16.4.7 는 128과 191 사이에 있으므로, Class B 네트웍이다.

남겨진 (224-239)는 멀티캐스팅등의 특별한 용도로 사용된다.
* 127.0.0.0/8은 locallost용 네트웍이며, 10.0.0.0/10 이나 192.168.0.0/16은 내부네트웍용 이다
(내부네트웍용을 이용하여, IP masquerading/firewall등을 구현하므로, 중요합니다.)

 

 

Binary Conversion Table
(십진수 대 이진수) : 0-255
0 00000000 64 01000000 128 10000000 192 11000000
1 00000001 65 01000001 129 10000001 193 11000001
2 00000010 66 01000010 130 10000010 194 11000010
3 00000011 67 01000011 131 10000011 195 11000011
4 00000100 68 01000100 132 10000100 196 11000100
5 00000101 69 01000101 133 10000101 197 11000101
6 00000110 70 01000110 134 10000110 198 11000110
7 00000111 71 01000111 135 10000111 199 11000111
8 00001000 72 01001000 136 10001000 200 11001000
9 00001001 73 01001001 137 10001001 201 11001001
10 00001010 74 01001010 138 10001010 202 11001010
11 00001011 75 01001011 139 10001011 203 11001011
12 00001100 76 01001100 140 10001100 204 11001100
13 00001101 77 01001101 141 10001101 205 11001101
14 00001110 78 01001110 142 10001110 206 11001110
15 00001111 79 01001111 143 10001111 207 11001111
16 00010000 80 01010000 144 10010000 208 11010000
17 00010001 81 01010001 145 10010001 209 11010001
18 00010010 82 01010010 146 10010010 210 11010010
19 00010011 83 01010011 147 10010011 211 11010011
20 00010100 84 01010100 148 10010100 212 11010100
21 00010101 85 01010101 149 100101


 

'IT > network' 카테고리의 다른 글

통신 용어 정리 / 용어 모음  (0) 2021.12.30
패킷 교환 네트워크에서의 지연  (0) 2021.12.29
네트워크 관리사 실기 요점 정리  (0) 2009.12.28
응용계층의 기능  (2) 2009.12.26
TCP와 UDP 프로토콜의 특징  (0) 2009.12.26

댓글