IPv4 Address : IPv4 주소는 IP 주소라고도 불리우며, 이는 TCP/IP 프로토콜의 IP 계층에서 식별자로 사용된다. IP는 32비트 주소이며, 인터넷에 연결된 호스트 또는 라우터의 연결을 고유하게 식별한다. 이때, IP 주소는 장치 자체의 주소가 아닌, 그 장치가 연결된 주소이다.
Logical address (IPv4) : 각 장치가 부여받는 논리적 주소는 보통 라우터나 서버에 의해 할당되며, 이 논리적 주소는 필요에 따라 변경될 수 있다.
Physical address (MAC) : 물리적 주소는 장치 내부에 존재하는 고유 식별자로, 각 장치가 제조될 때 고유하게 할당된다. 따라서 일반적으로는 변경되지 않는 영구적인 주소이다.
MAC 주소는 로컬 네트워크 내에서 식별자로 활용된다.
Address Spaece (주소 공간) : 주소 공간은 네트워크가 가질 수 있는 전체 주소의 수를 의미한다. 즉, IP 주소를 정의하는 데 비트를 사용한다면, 주소 공간은 이다.
IPv4의 주소 공간 : 32비트 주소를 사용하므로, 주소 공간은 이다.
IPv4의 주소 범위 : 0.0.0.0 ~ 255.255.255.255
IPv4의 표현 방법 예시
Hierarchy in Addressing (계층 구조 주소) : IPv4 프로토콜은 효율적인 네트워크 관리를 위해 IP 주소의 계층 구조를 채택하였다.
IPv4 주소는 총 32비트로 구성되어 있다.
Prefix (n bits) : 네트워크의 주소를 정의하는 부분으로, 같은 네트워크에 속한 장치는 모두 같은 Prefix를 갖는다.
Suffix (32-n bits) : 네트워크 내에 존재하는 각 장치(호스트)를 고유하게 식별하는 데 사용되는 부분이다.
즉, 서픽스는 호스트의 주소이다.
네트워크 주소의 길이(프리픽스)가 길어질수록 서픽스의 길이는 줄어든다.
Classful Addressing (클래스 기반 주소 지정) : IPv4 주소 체계 초창기에 사용된 방법으로, 네트워크의 필요에 따라 프리픽스의 길이가 고정된 네트워크를 나눠놓았다.
IPv4 주소 공간을 5개의 클래스 (A, B, C, D, E)로 나누어 여러 규모의 네트워크를 지원하였다.
클래스 A (8bits prefix) : 대규모 네트워크에 사용된 클래스
1). 네트워크 수 :
2). 호스트 수 :
클래스 B (16bits prefix) : 중간 규모 네트워크에 사용된 클래스
1). 네트워크 수 :
2). 호스트 수 :
클래스 C (24bits prefix) : 소규모 네트워크에 사용된 클래스
1). 네트워크 수 :
2). 호스트 수 :
Classless Addressing : 인터넷의 성장에 따라 더 많은 주소 공간과 더 효율적인 주소 배분을 위해 도입된 방식이다. 이 방식은 프리픽스의 크기가 동적으로 할당되므로 클래스 기반 주소 지정 방식에 비해 유연한 주소 할당이 가능하다.
각 네트워크 환경과 목적을 고려하여 프리픽스의 크기를 조절할 수 있기 때문에 주소 할당이 효율적이고, 유연하다.
CIDR 기법이 주로 사용된다.
Classless Inter-Domain Routing (CIDR) : CIDR에서는 IP주소 뒤에 "/"와 프리픽스 길이를 붙여 네트워크의 길이를 나타낸다.
위를 예시로 보면, 에서 "/8"이 프리픽스의 길이를 표기한 부분이다.
서브넷 마스크는 네트워크 주소 부분을 1로, 호스트 주소 부분을 0으로 나타낸다.
예시 : 프리픽스가 24비트, 서픽스가 8비트인 주소를 살펴보자.
Prefix = 24bits, Suffix = 8bits
네트워크 주소의 범위 : ~ ~
호스트 주소의 범위 : ~ = ~
CIDR 방식으로 서브 네트워크를 만드는 과정을 살펴보자.

이라는 주소가 주어져 있다. 이를 서브넷 마스크로 나타내 보면 다음과 같다.
호스트의 주소 범위는 다음과 같다.
네트워크 주소 부분을 추출하는 방법은 다음과 같다.
서브넷 마스크와 IPv4 주소의 & 연산을 통해 네트워크 주소를 추출할 수 있다.
이번 예시는 이라는 주소가 주어지고, 이 하나의 네트워크를 여러 개의 서브 네트워크로 나누는 방법이다.
위 네트워크의 서브넷 마스크는 이다.
One networks :
Two networks : 이 네트워크를 두 개의 서브 네트워크로 나누면, 다음과 같이 구성된다.
주소의 범위
Subnet mask
네트워크 당 호스트의 수 : 32
네트워크의 수 : 2
총 호스트의 수 : 64
Four networks : 네 개의 서브 네트워크로 나누면, 다음과 같이 구성된다.
주소의 범위
Subnet mask
한 네트워크 당 호스트 수 : 16
네트워크의 개수 : 4
총 호스트의 수 : 64
그렇다면, 서브 네트워크는 짝수개만 가질 수 있을까? 다음 예시를 살펴보자.
Three networks : 위 네트워크를 3개의 네트워크로 나눈다면, 다음과 같이 나눌 수 있다.
위의 예시처럼, 서브 네트워크를 홀수 개로 나누고 싶다면 먼저 네트워크를 나누고, 형성된 서브 네트워크를 다시 한번 나눠 서브 네트워크를 생성하는 방법을 사용한다.
위와 같은 방식은 3단계 계층 구조로도 볼 수 있다.
서브넷 프리픽스 비트가 추가적으로 포함된 구조로도 생각해볼 수 있다.
결론적으로, 다음과 같은 구조를 가진 네트워크가 형성된다.
네트워크를 나눈다는 것은 결국 한 네트워크에 존재할 수 있는 호스트의 수를 줄이는 것이다. 이를 통해 Collision 예방 효과를 기대할 수 있고, 충돌 발생 시 보다 효과적으로 처리할 수 있으며, 도메인을 효율적으로 할당할 수 있다는 이점이 있다.
한 인터넷 서비스 제공 업체(ISP)가 주소 블록을 할당 받았고, 이 주소를 세 그룹의 고객에게 분배해야 한다.
a. 첫 번째 그룹은 64명의 고객이 있고, 각 고객 당 256개의 주소가 필요하다.
필요한 네트워크 수 : 64
Suffix :
Prefix :
결과
b. 두 번째 그룹은 128명의 고객이 있고, 각 고객당 128개의 주소가 필요하다.
필요한 네트워크 수 : 128
Suffix :
Prefix :
결과
c. 세 번째 그룹은 128명의 고객이 있고, 각 고객당 64개의 주소가 필요하다.
필요한 네트워크 수 : 128
Suffix :
Prefix :
결과
위와 같이 네트워크 분배 결과, ISP가 할당받은 주소의 총 개수는 개 이지만, 실제로 사용한 주소의 수는 개이다.
한 CIDR 주소가 다음과 같이 주어진다.
위 네트워크의 시작 주소와 마지막 주소를 찾아보도록 하자.
Subnet mask
167.199.170.82를 2진수로 나타내면
서브넷 마스크와 &연산을 진행하면
First address
Last address
다음과 같은 IP주소가 주어진다고 가정해보자.
위 주소를 포함하는 네트워크 주소 블록은 다음과 같이 매우 많을 것이다.
위와 같은 경우, 프리픽스의 길이가 가장 긴 블록이 해당 주소가 속한 네트워크라고 간주하는 것이 가장 올바르다.
프리픽스가 길어질수록 해당 IP 주소가 속하는 블록의 범위가 더욱 작아지며, 이는 구체적이고 명확한 범위를 나타낸다는 의미이다.
한 기업이 시작 주소가 인 주소 블록을 할당받았다. 이 기업은 3개의 subblocks가 필요한데, 각 서브블록의 요구 사항은 다음과 같다.
a. 10개의 주소가 필요한 서브넷
b. 60개의 주소가 필요한 서브넷
c. 120개의 주소가 필요한 서브넷
Solution : 주소가 많이 필요한 서브넷부터 시작하여 점점 하위 서브넷으로 내려가면서 분할하는 것이 일반적이다.
c
Suffix :
c 서브 블록은 다음과 같다.
b
Suffix :
b 서브 블록은 다음과 같다.
a
Suffix :
a 서브 블록은 다음과 같다.
208개의 Address를 할당하였으므로, 나머지 48개의 주소는 에 할당된다.
Address Aggregation (주소 집합) : 여러 서브 네트워크로 구성된 ISP는 하나의 큰 네트워크로 결합하여 외부 네트워크와 통신한다.
라우팅 테이블의 Size를 줄이는 효과가 있다.
Flow of activities at Sender : 한 호스트가 외부 네트워크의 호스트와 통신을 하고자 할 때, 네트워크 주소를 보고 판단하여야 한다.
같은 네트워크에 속해있는지 아닌지는 네트워크 주소(prefix)를 확인하면 알 수 있다.
만약 같은 네트워크 주소에 속해있지 않다면, 같은 네트워크에 속해있는 라우터에 ARP를 날린다.
해당 라우터는 자신과 연결되어 있는 외부 네트워크(목적지)의 라우터에 ARP를 날린다.
목적지 네트워크의 라우터는 같은 네트워크에 속해있는 목적지 호스트에게 ARP를 날린다.
통신 과정은 다음과 같다.


