IP 주소(IP, Internet Protocol address)
IP 주소는 우리가 사용하는 컴퓨터가 네트워크 망에서 통신하기 위해 필요한 일련의 번호입니다. 컴퓨터는 고전적인 PC 뿐만이 아니라 스마트폰, 태블릿 등 네트워크 망에 연결되는 여러 기기들을 총칭합니다. 네트워크 망에서 수 많은 기기들이 통신하려면, 통신 대상을 지칭할 수 있는 방법이 필요합니다. 이때 사용되는 것이 IP 주소이며, 네트워크에 연결된 장치의 IP 주소는 망 내부에서 유일한 값을 지닙니다.
IP 주소는 십진수 또는 이진수를 사용하여 표기합니다. 우리가 통상 IP 주소를 생각할 때 떠오르는 값은 십진수를 사용한 표기법입니다.
192.168.0.1
위와 같은 IP 주소를 이진수로 표기하면 다음과 같습니다.
1100 0000.1010 1000.0000 0000.0000 0001
이진수 표기법을 살펴보면, IP 주소는 32비트(4바이트)를 사용하여 표현하며 각 도트(.)를 기준으로 옥텟(1바이트) 단위로 구성됩니다. 물론, 모든 IP 주소가 32비트를 사용하는 것은 아닙니다. IPv4는 32비트를 사용하지만, IPv6의 경우 128비트를 사용합니다. 이번 포스트에서는 모든 내용을 IPv4를 기준으로 설명하고자 합니다.
IP 주소의 구성
IP 주소는 다음 두 가지 주소의 결합으로 구성됩니다.
- 네트워크 주소
- 호스트 주소
네트워크 주소(Network address)는 데이터 전송을 위한 라우팅(Routing)의 근거가 되는 주소입니다. 네트워크 주소는 특정 기관이 구성하고 있는 네트워크에 대한 대표 주소라고 볼 수도 있습니다.
호스트 주소(Host address)는 네트워크 주소 안에서 실행되고 있는 실질적인 단말기들의 주소입니다. 예를 들어, 서울 시청이라는 기관의 가상의 네트워크 주소가 192.168.10.0이라고 가정하면, 시청 내부에 연결되는 단말기들은 다음과 같은 IP 주소를 갖게 됩니다.
- 192.168.10.48, 호스트 주소 48
- 192.168.10.51, 호스트 주소 51
- 192.168.10.53, 호스트 주소 53
- 192.168.10.54, 호스트 주소 54
이처럼 기관 내 네트워크에서 실행 중인 단말기들은 공통의 네트워크 주소(예시의 192.168.10)를 사용합니다. 기관 내 연결되는 단말기는 공통의 네트워크 주소를 사용하며, 호스트 주소에서만 차이가 발생합니다.
IP 주소 = [네트워크 주소] + [호스트 주소]
그렇다면 임의의 IP 주소를 네트워크 주소와 호스트 주소로 다시 분리하는 것이 가능할까요? 이 부분에 대해서 이해하려면, 이어지는 섹션의 서브넷 마스크 개념을 먼저 알고 있어야 합니다.
서브넷 마스크(Subnet mask)
IP 주소는 네트워크 주소와 호스트 주소의 결합으로 구성됩니다. 이때 네트워크 주소와 호스트 주소의 구분을 결정하는 것이 서브넷 마스크입니다.
서브넷 마스크는 IPv4에서 IP 주소를 표현하기 위해 32비트를 사용하는 것처럼, 네트워크 주소의 범위를 표현하기 위해 32비트를 사용합니다. 맨 첫 비트부터 1이 연속되는 범위를 네트워크 주소로 규정하고, 나머지 비트는 호스트 주소로 규정하기 때문에 표현하는 비트의 개수가 같을 수밖에 없습니다.
예를 들어, 다음과 같은 십진수로 표기된 서브넷 마스크를 살펴보겠습니다.
255.255.255.0
예시의 서브넷 마스크를 다시 이진수로 표기하면 다음과 같습니다.
1111 1111.1111 1111.1111 1111.0000 0000
이때 서브넷 마스크와 함께 사용되고 있는 IP 주소가 192.168.0.8일 때, IP 주소는 이진수로 표기하면 다음과 같습니다.
1100 0000.1010 1000.0000 0000.0000 1000
이진수로 표기된 서브넷 마스크와 IP 주소를 나란히 두고 비교해볼까요? 서브넷 마스크의 맨 첫 비트부터 1이 연속되는 범위는 네트워크 주소입니다. 따라서 IP 주소 192.168.0.8의 네트워크 주소는 192.168.0이며, 나머지 8은 호스트 주소임을 알 수 있습니다.
(서브넷 마스크) 1111 1111.1111 1111.1111 1111.0000 0000
(IP 주소) 1100 0000.1010 1000.0000 0000.0000 1000
앞서 네트워크 주소는 어떤 기관의 대표 주소로 볼 수 있다고 소개했습니다. 그리고 호스트 주소는 해당 기관에서 연결되는 단말기로 볼 수 있다고 소개했습니다. 그렇다면 네트워크 주소 192.168.0를 사용하는 가상의 기관에는 최대 256개의 단말기가 연결 될 수 있을까요?
네트워크 이름(네트워크 ID)과 서브넷 브로드 캐스트 주소
이전 섹션의 예시에서, 가상의 기관에 연결 될 수 있는 단말기의 개수는 최대 254개입니다. 호스트 주소는 0부터 255까지 총 256개(2^8)의 주소를 사용 할 수 있는데, 왜 연결 가능한 단말기는 254개일까요?
하나의 네트워크에서, 두 개의 호스트 주소는 네트워크 이름과 서브넷 브로드 캐스트 주소를 지칭하기 위해서 고정적으로 할당되기 때문입니다.
(서브넷 마스크) 255.255.255.0
(IP 주소) 192.168.0.8
예시를 다시 살펴보겠습니다. 서브넷 마스크에 의해 해당 기관이 사용 할 수 있는 IP 주소는 192.168.0.0 ~ 192.168.0.255임을 알 수 있습니다.
기관이 사용 할 수 있는 IP 주소 범위, 다시 말해서 기관이 사용하고 있는 네트워크는 192.168.0.0 ~ 192.168.0.255의 IP 주소로 구성되어 있습니다. 이때 첫 번째 호스트 주소를 사용하는 192.168.0.0를 네트워크 이름(또는 네트워크 ID)이라고 부릅니다. 네트워크 이름은 네트워크를 지칭하거나 또는 라우팅을 위해서 사용됩니다. 따라서 네트워크 이름(192.168.0.0)은 어떤 단말기에 부여 될 수 없습니다.
반대로, 가장 마지막 호스트 주소를 사용하는 192.168.0.255를 서브넷 브로드 캐스트 주소라고 부릅니다. 하나의 네트워크 안에 연결되어 있는 모든 단말기에 대해서 브로드 캐스팅이 가능한 IP 주소로써 사용하기 위해서, 서브넷 브로드 캐스트 주소(192.168.0.255) 역시 어떤 단말기에 부여 될 수 없습니다.
Prefix
지금까지 IP 주소의 구성과 이를 파악하기 위한 서브넷 마스크에 대해서 알아봤습니다. IP 주소를 제대로 파악하려면 네트워크 주소와 호스트 주소를 알고 있어야 합니다. 이 둘을 구분하기 위해서는 서브넷 마스크가 필요하며, 따라서 IP 주소와 서브넷 마스크는 함께 표기될 수 있습니다.
(서브넷 마스크) 255.255.255.0
(IP 주소) 192.168.0.8
서브넷 마스크는 맨 첫 비트부터 1이 연속되는 범위를 네트워크 주소로 규정하고 있습니다. 그렇다면 서브넷 마스크를 좀 더 단순하게 표현 할 수 있지 않을까요?
1이 연속되는 비트의 개수를 단순 숫자로 표현하면, 서브넷 마스크를 대체 할 수 있습니다. 예를 들어, 위 예시의 255.255.255.0은 24개의 비트가 1의 연속으로 구성됩니다. 이를 IP 주소와 함께 쓰려면, 다음과 같이 슬래쉬(/)를 구분자로 표시 할 수 있습니다.
192.168.0.8/24
이처럼 IP 주소와 서브넷 마스크를 함께 표기하기 위해서, 서브넷 마스크를 좀 더 단순화하는 것을 Prefix라고 부릅니다.
IP 대역과 클래스(Class)
IPv4 주소 체계에서 사용 가능한 IP 주소는 0.0.0.0 ~ 255.255.255.255입니다. 전 세계에 연결되는 무수히 많은 단말기의 접속을 좀 더 효율적으로 체계화하기 위해서, 사용 가능한 IP 대역을 A 클래스부터 E 클래스까지 5개 클래스로 정의하고 있습니다.
- A 클래스
- B 클래스
- C 클래스
- D 클래스
- E 클래스
A 클래스
A 클래스는 다음 IP 대역을 사용합니다.
0.0.0.0 ~ 127.255.255.255
IP 대역을 이진수로 표기하면 다음과 같습니다. 첫 번째 비트가 0으로 고정되는 것이 A 클래스의 특징입니다.
0000 0000.0000 0000.0000 0000.0000 0000 ~ 0111 1111.1111 1111.1111 1111.1111 1111
A 클래스는 첫 옥텟은 네트워크 주소를, 나머지 옥텟은 호스트 주소를 표현합니다. 따라서 A 클래스의 IP 주소는 다음과 같이 구성됩니다.
IP 주소 = [네트워크 주소 XXXX].[호스트 주소 XXXX.XXXX.XXXX]
A 클래스는 전체 클래스에서 가장 많은 호스트 주소 대역폭을 갖고 있으며, 따라서 대규모 네트워크에 적합합니다. 우리가 사용하는 사설 IP가 이에 속할 수 있으며, 따라서 유니 캐스트 주소라고도 부릅니다.
B 클래스
B 클래스는 다음 IP 대역을 사용합니다.
128.0.0.0 ~ 191.255.255.255
IP 대역을 이진수로 표기하면 다음과 같습니다. 연속되는 처음 2개 비트가 10으로 고정되는 것이 B 클래스의 특징입니다.
1000 0000.0000 0000.0000 0000.0000 0000 ~ 1011 1111.1111 1111.1111 1111.1111 1111
B 클래스는 첫 2개의 옥텟은 네트워크 주소를, 나머지 옥텟은 호스트 주소를 표현합니다. 따라서 B 클래스의 IP 주소는 다음과 같이 구성됩니다.
IP 주소 = [네트워크 주소 XXXX.XXXX].[호스트 주소 XXXX.XXXX]
B 클래스는 A 클래스에 이어 두 번째로 많은 호스트 주소 대역폭을 갖고 있으며, 따라서 중형 네트워크에 적합합니다. 우리가 사용하는 사설 IP가 이에 속할 수 있습니다.
C 클래스
C 클래스는 다음 IP 대역을 사용합니다.
192.0.0.0 ~ 223.255.255.255
IP 대역을 이진수로 표기하면 다음과 같습니다. 연속되는 처음 3개 비트가 110으로 고정되는 것이 C 클래스의 특징입니다.
1100 0000.0000 0000.0000 0000.0000 0000 ~ 1101 1111.1111 1111.1111 1111.1111 1111
C 클래스는 첫 3개의 옥텟은 네트워크 주소를, 나머지 옥텟은 호스트 주소를 표현합니다. 따라서 C 클래스의 IP 주소는 다음과 같이 구성됩니다.
IP 주소 = [네트워크 주소 XXXX.XXXX.XXXX].[호스트 주소 XXXX]
C 클래스가 사용 가능한 호스트 주소 대역폭은 256개이며, 이 중에서 네트워크 이름과 서브넷 브로드 캐스트 주소를 제외하면 네트워크 당 254개의 단말기만 연결이 가능합니다. 따라서 소형 네트워크에 적합합니다. 우리가 사용하는 사설 IP가 이에 속할 수 있습니다.
D 클래스
D 클래스는 다음 IP 대역을 사용합니다.
224.0.0.0 ~ 239.255.255.255
IP 대역을 이진수로 표기하면 다음과 같습니다. 연속되는 처음 4개 비트가 1110으로 고정되는 것이 D 클래스의 특징입니다.
1110 0000.0000 0000.0000 0000.0000 0000 ~ 1110 1111.x1111 1111.1111 1111.1111 1111
D 클래스는 멀티 캐스트 주소로만 사용되도록 예약되어 있습니다. 따라서 D 클래스에 속하는 IP 대역폭은 서브넷 마스크를 사용하지 않습니다. 우리가 사용하는 단말기는 D 클래스 IP 대역폭에 속하지 않으며, 멀티 캐스트 주소라고도 부릅니다.
E 클래스
E 클래스는 다음 IP 대역을 사용합니다.
240.0.0.0 ~ 255.255.255.255
IP 대역을 이진수로 표기하면 다음과 같습니다. 연속되는 처음 4개 비트가 1111으로 고정되는 것이 E 클래스의 특징입니다.
1111 0000.0000 0000.0000 0000.≈0000 0000 ~ 1111 1111.1111 1111.1111 1111.1111 1111
E 클래스 역시 미리 예약된 IP 대역폭으로써 우리가 사용하는 단말기는 이 대역폭에 포함된 IP 주소를 할당받지 않습니다. E 클래스는 연구, 테스트, 미래에 사용하기 위한 용도 등의 목적을 갖고 있습니다.
'CS & ITS' 카테고리의 다른 글
[Network/Topic] 온프레미스와 웹 호스팅, 서버 호스팅, 클라우드 서버의 차이점 (0) | 2022.04.17 |
---|---|
[Network/Topic] CI/CD 간단 정리 (0) | 2022.04.05 |
IP주소 127.0.0.1과 Localhost, 0.0.0.0의 차이점 (0) | 2022.03.08 |
[Network/Topic] OSI 7계층(OSI 7 Layer), TCP/IP 4계층(TCP/IP 4 Layer) (0) | 2022.01.24 |
[Network/Topic] Log4Shell/Log4J 보안 취약 이슈 (0) | 2022.01.03 |