1. IP Address
TCP/IP 통신을 사용하는 경우에는, 네트워크에 접속하는 각각의 호스트에 IP Address 설정이 필요하다. Telnet, FTP등의 서비스를 사용하고자 하는 경우 사용자는 각각의 IP 주소를 알아야 통신이 가능하다.
2. IP Address Class
IP Address는 논리적인 네트워크 Group의 크기에 의해 A, B, C, D, E의 5종류의 Class로 나눈다.
하나의 논리적인 네트워크 그룹에 가장 많은 호스트를 수용할 수 있는 Class는 A이고, 반면에 가장 적은 호스트를 수용하는 Class는 C 이다. 현재 Ipv4에서 각 IP는 총 32bit (4 byte)로 구성되며, 8bit (1 byte)마다 점(period)으로 구분하여 십진수 210.111.4.253 등의 형식으로 표현한다. Class D는 Multicast에 이용되는 특수한 형식의 IP Address로서 RFC 1112에 기술되어 있으며, Class E 는 향후에 사용하기 위해 예약되어 있다.
예를 들어, IP Address의 32bit가 11010010011011110000010000000001 (호스트는 하나의 컴퓨터이므로 on-off의 2진수만 인식)라면 각 비트를 8bit로 나누고 11010010를 10진수로 변환하면 210, 01101111은 111, 00000100은 4, 00000001은 1이므로, 210.111.4.1로 표현된다.
IP Address의 32bit 중 처음 4비트를 미리 예약함으로써 각 Class를 구분하며, 이 부분은 미리 RFC에서 지정한 값이므로 임의적으로 변경할 수 없다.
각 Class는 다음과 같다.
Class |
처음 4bit |
10진수 표기 |
네트워크의 bit수 |
할당가능 bit수 |
A |
0XXX |
0.H.H.H~127.H.H.H |
8 (7) |
24 |
B |
10XX |
128.0.H.H~191.255.255.H.H |
16(14) |
16 |
C |
110X |
192.0.0.H~223.255.255.255.H |
24(21) |
8 |
D |
1110 |
224.0.0.0~239.255.255.255 |
24bit 연속정의 | |
E |
1111 |
|
미정의 |
네트워크의 bit수의 ( )부분의 값은 Reserved되어 임의적으로 할당할 수 없는 bit수를 뺀 할당 가능 bit수 이다. H는 각 Class에서 정의하는 호스트(Host) Address부분이며, 어떤 Class라도 호스트 Address bit부분을 0이나 1로 하는 Address를 호스트의 Address로서 설정하거나, 네트워크 Address부분의 bit를 모두 0으로 하는 IP Address를 네트워크 Address로 사용할 수 있다.
IP Address |
1 Byte |
2 Byte |
3 Byte |
4 Byte |
1.0.0.0 |
00000001 |
00000000 |
00000000 |
00000000 |
1.255.255.255 |
00000001 |
11111111 |
11111111 |
11111111 |
128.1.0.0 |
10000000 |
00000001 |
00000000 |
00000000 |
128.1.255.255 |
10000000 |
00000001 |
11111111 |
11111111 |
192.1.1.0 |
11000000 |
00000001 |
00000001 |
00000000 |
마찬가지로 다음과 같은 네트워크 Address는 사용할 수 없다.
IP Address |
1 Byte |
2 Byte |
3 Byte |
4 Byte |
0.H.H.H |
00000000 |
|
|
|
128.0.H.H |
10000000 |
00000000 |
|
|
192.0.0.H |
11000000 |
00000000 |
00000000 |
|
3. Subnet Masking
현재의 Ipv4의 IP 주소는 32bit(4byte)로 구성되어 사용되고 있으나 전세계의 늘어나는 Host수에 비해 매우 부족한 실정이다. 이것을 해결하기위해 IP의 새로운 버전인 Ipv6가 제정되었으며, 128bit로 구성되었기 때문에 현재의 Ipv4의 부족 및 단점을 해결할 것으로 예상된다.
Subnet Masking은 각 IP Address의 Broadcasting 범위를 지정하기 위해 사용된다. 기본적으로 LAN의 통신방식은 Broadcasting이므로 Subnet Masking을 함으로써, 하나의 네트워크 Class를 여러 개의 네트워크 Segment로 분리하여 IP주소를 효율적으로 사용할 수 있게 한다.
이제부터 본격적으로 Subnet Masking 하는 방법에 대해 알아 보기로 한다.
한가지 염두에 둘 내용은 각 네트워크의 처음 IP 주소와 마지막 IP주소는 Reserved 된 주소라는 것이다. 그러므로 사용할 수 없다. 처음 IP 주소는 System Address로서 Reserved 되었고, 마지막 IP 주소는 Broadcasting Address로서 Reserved되어 예를 들어 210.111.4 (Subnet 이 255.255.255.0일 때 210.111.4.0 ~ 210.111.4.255까지의 의 Host 수를 지정할 수 있는 주소)라는 C Class 하나를 사용한다고 했을 경우 210.111.4.1 ~ 210.111.4.254 까지 할당이 가능하고, System Address인 210.111.4.0 와 Broadcasting인 210.111.4.255는 Reserved 되어 있으므로 사용할 수 없다. 이내용은 Subnet Masking하여 각 네트워크 Segment를 분리했다고 했을 때 각 네트워크 Segment에 적용되는 내용이다.
하나의 네트워크 IP Segment란 Broadcasting Boundary를 의미한다. 따라서 각 Segment의 통신 방식은 Broadcasting이고 IP 주소와 Subnet Mask를 부울대수(Boolean function) 로 AND함으로써 각 Segment를 인식하는 것이다. 예를 들어 C Class 210.111.4.1 과 210.111.4.255가 같은 Subnet Mask 255.255.255.0를 사용한다면 210.111.4.1 AND 255.255.255.0 과 210.111.4.2 AND 255.255.255.0 는 똑같이 255.255.255.0 이므로 같은 네트워크임을 인식하게 되는 것이다.
AND의 부울대수 | ||
A |
B |
합 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
IP Address |
1 Byte |
2 Byte |
3 Byte |
4 Byte |
210.111.4.1 |
11010010 |
01101111 |
00000100 |
00000001 |
210.111.4.254 |
11010010 |
01101111 |
00000100 |
11111111 |
255.255.255.0 |
11111111 |
11111111 |
11111111 |
00000000 |
그렇다면 C Class 210.111.4 네트워크를 Subnet Masking하여 2개의 IP Segment로 나눈다면, Broadcasting 범위를 줄이고 네트워크 수는 늘어나게 된다. 이 말은 Subnet을 255.255.255.128로 설정하는 것인데 210.111.4.0~210.111.4.255 와 255.255.255.128과 부울대수로서 AND를 수행하면 210.111.4.0~210.111.4.127까지는 210.111.4.0의 결과가 나타나고 210.111.4.128~210.111.4.255까지는 210.111.4.128이라는 결과가 나타나게 됨으로써 210.111.4.0 네트워크와 210.111.4.128 네트워크 2개로 나눠지게 된다. 네트워크가 2개로 나뉘어지는 대신 각각의 네트워크의 호스트 수는 반대로 줄어든다. 210.111.4.0 네트워크의 호스트에 설정할 수 있는 IP 개수는 210.111.4.0 (System Address)와 210.111.4.127 (Broadcasting Address)를 제외한 210.111.4.1~210.111.4.126이고, 210.111.4.128 네트워크의 IP 개수는 210.111.4.128 (System Address)와 210.111.4.255(Broadcasting Address)를 제외한 210.111.4.129~210.111.4.254까지 이다.
네트워크수가 늘면, 호스트수가 줄어드는 것을 다른 관점에서 고찰해보자
C Class를 예를 들어, C Class를 한 네트워크 Segment로 사용한다고 했을 때 Subnet Mask의 마지막 8개 bit는 00000000이고, 2개의 네트워크로 나눈다고 하면 10000000, 4개로 나눈다면 11000000이다 이러한 방식으로 각 네트워크는 2의 자승으로 네트워크 수를 분할 할 수 있으며, 그만큼 각 Segment의 IP 수는 줄어들게 된다. 이것은 일정한 규칙을 가지고 있음을 알 수 있을 것이다.
Subnet Mask |
2진수 |
네트워크 수 |
네트워크당 호스트 수 |
호스트 범위 |
0 |
00000000 |
1 |
256 |
0 ~ 255 |
128 |
10000000 |
2 |
128 |
0~127
128~255 |
192 |
11000000 |
4 |
64 |
0~63
64~127
128~191
192-255 |
224 |
11100000 |
8 |
32 |
0~31
32~63
64~95
96~127
128~159
160~191
192~123
125~255 |
240 |
11110000 |
16 |
16 |
0~15
16~31
32~47
48~63
64~79
80~95
96~111
112~127
128~143
144~159
160~175
176~191
192~207
208~223
224~239
240~255 |
248 |
11111000 |
32 |
8 |
0~7
8~15
16~23
24~31
32~39
.
.
224~231
232~239
240~247
248~255 |
252 |
11111100 |
64 |
4 |
0~3
4~7
8~11
12~15
16~19
.
.
.
244~247
248~251
252~255 |
이 규칙을 이용하여, 네트워크 서브넷 계산을 매우 편리하게 할 수 있다.
C Class를 예를 들어 마지막 8bit를 Subnet Masking하여 4개의 네트워크로 나누고 싶다면, 4는 22
위 첨자가 2이므로 8bit중 2bit(22=4개)는 네트워크를 위해 할당되는 bit수이고 나머지 6bit(26=64개)만 호스트를 위해 할당할 수 있는 수가 되는 것이다. 그러므로 실제적인 Subnet은 192(11000000)가 되는 것이다.
네트워크는 기본적으로 2의 자승으로 나누게 되지만 실제적인 IP설계단계에서는 2의 배수로서 설계할 수 있다. 예를 들어 네트워크를 10개로 나누고 싶다면, 사용자의 Host수를 고려하여, 8개의 IP로 나눈 다음 나뉘어진 네트워크중 2개를 각각 반으로 분할할 수 있으며, 1개의 네트워크를 4개로 분할하여 총 10개의 네트워크로 분할할 수 있는 것이다.