평범한 고딩 네트워크 공부일기

[기초 이론] IPv4 본문

Network/네트워크 일반

[기초 이론] IPv4

seokmin100 2025. 7. 3. 02:41

IPv4란?

IPv4 (Intenet Protocol version 4): 인터넷에서 장치를 식별하고 위치를 지정하는데 사용되는 주소체계

논리적으로 정의되어 있는 주소인데, 현실과 비교하면 집 주소와 같은 역할이라고 생각하면 된다.

현실에서 배달을 시키는 상황에서 배달 기사는 목적지의 주소를 보고 배달을 하게 된다.

네트워크도 이와 같다. 클라이언트가 서버에 데이터를 요청하고, 그 데이터는 패킷의 형태로 헤더에 붙어 있는 목적지 IP 주소를 보고 전달이 되게 된다.

 

IP 헤더

위에 이미지가 IP 헤더이다. IP 헤더는 패킷의 앞 부분에 붙어있다.

헤더를 보고 어디로 전송하고, 헤더의 길이는 몇 바이트이고, TTL은 몇이고, 프로토콜은 무엇이며, 출발지/목적지 IP는 무엇인지 등의 정보가 담기게 된다.

헤더는 주로 20Byte로 전송이 되고, 이외에도 가변 부분이 40Byte나 존재하기 때문에 최대 60Byte의 크기로 존재할 수 있다.

현실과 비교하자면 택배 송장과 같은 역할을 한다. 그리고 그 안에 담기는 데이터는 택배 내용물이라고 볼 수 있다.

헤더의 자세한 내용은 나중에 "IPv4 Deep Dive"라는 글에서 다루도록 하겠다.

 

IP 주소 체계

IPv4는 4개의 옥텟(Octet)으로 구성되는데 이 옥텟은 “.”으로 구분되게 된다.

192.168.0.1 과 같은 형태로 말이다.

IP는 한 옥텟당 8Bit로 31Bit를 사용한다. 이는 네트워크 ID 부분과 호스트 ID 부분으로 나눠지게 된다.

네트워크 주소 : 호스트들을 모은 네트워크를 지칭하는 주소
호스트 주소 : 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소

 

그렇기 때문에 IP 주소 체계는 호스트 IP 갯수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class) 개념을 도입했다.

- Classful

Classful은 대역에 따라 A Class, B Class, C Class, D Class, E Class 로 나눠지는 것이다.

이 클래스가 정해지는 기준은 이진수로 변환된 IP의 앞부분을 보면 된다.

  • A Class : 0으로 시작하는 IP 주소 | 0.0.0.0 ~ 127.255.255.255
  • B Class : 10으로 시작하는 IP 주소 | 128.0.0.0 ~ 191.255.255.255
  • C Class : 110으로 시작하는 IP 주소 | 192.0.0.0 ~ 223.255.255.255
  • D Class : 1110으로 시작하는 IP 주소 | 224.0.0.0 ~ 239.255.255.255
  • E Class : 1111으로 시작하는 IP 주소 | 240.0.0.0 ~ 254.255.255.255

여기서 D Class와 E Class는 연구 개발용으로 사용하여 따로 구분값을 정하지 않고 일반적으론 사용하지 않는다.

ip를 처음 개발했을 당시에는 컴퓨터 자체가 지금처럼 보급이 되지 않았던 시절이라 낭비에 대해선 상관하지 않았다. 하지만 지금은 컴퓨터가 매우 많이 보급되어 IP 주소가 부족한 상황에 놓여졌다. 이에 대한 보완책으로 Classless가 등장하였다.

- Classless

Classless는 서브넷 마스크를 가지고 계산하여 IP 대역이 정해지는 방법이다. 즉 클래스 없이 IP 대역을 결정할 수 있다는 것이다.

서브넷 마스크 : 네트워크 ID와 호스트 ID를 구분 짓는 구분자

 

네트워크 ID와 호스트 ID를 구분 짓는 방법은 매우 쉽다. 1이 있는 부분이 네트워크 ID, 0이 있는 부분이 호스트 ID이다. 1과 0이 번갈아가면서 나오면 안된다.

예를 한 번 들어보자.

“192.168.0.1”이라는 IP가 있을 때 “255.255.255.0”이라는 서브넷 마스크를 이용해 네트워크 ID와 호스트 ID를 나눈다고 생각해보자. 나눠 본다면 네트워크 ID는 “192.168.0.0”이고 호스트 ID는 “1” 이 되는 것이다.

하지만 언제까지나 서브넷 마스크를 같이 쓰기엔 너무 번거롭고 귀찮은 일이다. 그렇기 때문에 우리는 Prefix라는 것을 사용하게 된다.

CIDR(Classless Inter-Domain Routing) 기법이라 부르는 Prefix는 IP 주소 뒤에 /24 이런 형태로 표현합니다.

이 숫자는 서브넷 마스크를 이진수로 변환했을 때 나오는 1의 개수를 적어 둔 것입니다.

위에 예시를 보면 서브넷 마스크가 “255.255.255.0” 이니깐 이진수로 “1111 1111 . 1111 1111 . 1111 1111 . 0000 0000”의 형태로 나타나고 1이 24개이기 때문에 “192.168.0.1/24”와 같이 나타내게 됩니다.

이를 가지고 서브넷팅, 슈퍼넷팅이라는 IP를 나누는 작업을 할 수 있는데 이는 나중에 "IPv4 Deep Dive"라는 글에서 다루도록 하겠다.

'Network > 네트워크 일반' 카테고리의 다른 글

[Switching] VLAN  (0) 2025.07.06