OSI 7계층에서 주소를 갖는 계층은 데이터 링크 계층과 네트워크 계층입니다. 데이터 링크 계층은 MAC 주소를 사용하고 네트워크 계층은 IP 주소를 사용합니다.
네트워크 계층의 주소는 다음과 같은 특징이 존재합니다.
네트워크 주소
와 호스트 주소
로 나뉩니다.우리가 흔히 사용하는 IP 주소는 32비트인 IPv4
주소입니다.
IP는 v4, v6 두 체계가 사용되며 IPv6
주소는 128비트 입니다.
IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 부르는 8비트 단위로 나누고 각 옥텟은 "."으로 구분합니다. 데이터 링크 계층의 MAC 주소가 16진수로 표기된 것과 달리 IP 주소는 10진수로 표기하므로 8비트 옥텟은 0 ~ 255의 값을 쓸 수 있습니다.
IP 주소는 네트워크 주소
와 호스트 주소
두 부분으로 나뉩니다.
네트워크 주소 : 호스트들을 모은 네트워크를 지징하는 주소. 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 함
호스트 주소 : 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소
IP 주소는 MAC 주소와 다르게 네트워크 주소와 호스트 주소 이 둘을 구분하는 경계점이 고정되어 있지 않는 점이 큰 특징입니다. 그리고 IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class)
개념을 도입했습니다.
A 클래스는 가장 큰 주소를 갖고 있으며, 1,600만 개의 IP 주소를 가질 수 있습니다.
B 클래스는 약 6만 5천 개, C 클래스는 약 250개의 IP 주소를 가질 수 있습니다.
클래스 개념은 다른 고정된 네트워크 주소 체계에 비해 주소를 절약할 수 있다는 장점이 있습니다.
IP 주소 부족과 낭비 문제를 해결하기 위해 3가지 보존, 전환전략을 만들었습니다.
그 중 첫 번째 단기 대책은 클래스리스, CIDR(Classless Inter-Domain Routing) 기반의 주소 체계
였습니다.
두 번째 중기 대책은 NAT와 사설 IP 주소, 세 번째 장기 대책은 차세대 IP인 IPv6 입니다.
IPv4의 가장 큰 문제는 주소 자체의 부족도 있지만 상위 클래스(A Class)를 할당받은 조직에서 이 주소들을 제대로 사용하지 못하면서 낭비하는 것이었습니다.
한 개의 클래스 네트워크가 한 조직에 할당되면 아무리 비어 있는 주소라도 IP를 분할해 다른 기관이 사용하도록 할 수 없습니다. 이 문제를 해결하기 위해 클래스 개념 자체를 버리는데 이를 클래스리스
라고 부릅니다.
현재 우리는 클래스 개념을 적용하지 않는 클래스리스 기반 주소 체계
입니다.
클래스리스 네트워크에서는 별도로 네트워크
와 호스트
주소를 나누는 구분자를 사용해야 하는데
이 구분자를 서브넷 마스크(Subnet Mask)
라고 부릅니다.
서브넷 마스크는 IP 주소와 네트워크 주소를 구분할 때 사용하는데 2진수 숫자 1은 네트워크 주소, 0은 호스트 주소로 표시합니다. 보통 우리가 편하게 받아들일 수 있는 10진수를 사용해 255.0.0.0 255.255.0.0 255.255.255.0 와 같이 표현합니다.
클래스리스 기반의 IP 네트워크에서는 네트워크를 표현하는 데 반드시 서브넷 마스크가 필요하고 서버나 PC에 IP 주소를 부여할 때도 사용되어야 합니다.
원래 부여된 클래스의 기준을 무시하고 새로운 네트워크-호스트 구분 기준을 사용자가 정해 원래 클래스풀(클래스 개념) 단위 네트워크보다 더 쪼개 사용하는 것을 서브네팅(Subnetting)
이라고 합니다.
부여된 주소를 다시 잘라 사용해 서브네팅이라고 부르는데 현대 클래스리스 네트워크의 가장 큰 특징입니다.
실제로는 옥텟 단위보다 더 잘게 네트워크를 쪼개 2진수의 1비트 단위로 네트워크를 분할하므로 서브네팅을 이해하기 어렵습니다.
이상으로 IP주소에 대해서 간단히 알아봤습니다.