해당 포스트는 2진법과 AND 연산에 대한 기본적인 이해를 필요로 합니다.
네트워킹과 직접적인 연관이 있는 내용이 아니므로 생략했으나, 2진법과 AND 연산을 모르신다면 공부하고 난 후에 정독하시길 권장합니다.
1. IP (Internet Protocol)
OSI 7계층 모델에서 Layer3(Network), TCP/IP 4계층 모델에서 Layer3(Internet)에 위치하는 프로토콜입니다.
모든 컴퓨터들이 논리적으로 갖게 되는 주소이며 호스트에서 호스트까지의 통신을 책임집니다.
//물리적인 주소 체계는 MAC Address 입니다.
2. IPv4
IPv4는 2진법을 사용하고 8비트가 하나의 옥텟이며 총 4개의 옥텟으로 이루어져 있습니다.
그렇기 때문에 각 옥텟은 0부터 28 = 255 까지 표현이 가능합니다.
그러므로 범위는 0.0.0.0~255.255.255.255 까지로 232 = 2564 = 4,294,967,296개의 주소를 사용하는 32bit 주소체계이며
이 프로토콜은 인터넷 초창기에는 충분한 개수를 가지는 것처럼 보였지만, 컴퓨터가 발전하면서 IP주소가 부족해지게 되어 2011년부터 모든 IPv4의 주소가 소진되어 할당이 중지되었습니다.
때문에 NAT(네트워크 주소 변환), Subnetting(서브넷팅), IPv6가 등장하게 되었고 이것들 또한 굉장히 중요한 내용들이므로 다음에 자세하게 다루도록 하겠습니다.
현재는 IPv4에서 IPv6로 넘어가는 과도기 정도로 보시면 됩니다. 현재는 네트워크 설계시에 IPv4, IPv6 모두 설정해주는 편이지만 아직까지는 IPv4 주소를 대부분 재사용하며 사용중이고, IPv6는 굉장히 천천히 적용되고 있어서 언제쯤 IPv6 체계로 완전히 넘어가게 될지는 알 수 없습니다.
3. 클래스
IP를 용도에 따라 네트워크와 호스트 영역으로 나누는 것입니다. 하나의 네트워크에서 몇개의 호스트를 가질 수 있는지에 따라 클래스가 분류됩니다.
하나의 IP는 사실 이 사진처럼 구분되어있으며, 네트워크 ID를 구분하기 위해 바로 밑에서 설명할 넷마스크를 사용하게 됩니다.
여기서 각 클래스의 네트워크 ID, 호스트 ID를 구분하는 방법입니다. 굉장히 중요한 내용이지만 초심자가 이해하기엔 복잡할수도 있겠습니다.
- 넷마스크, 서브넷 마스크
CIDR(추후에 설명) 이후로 두 개념은 차이가 거의 없으며, 서브넷 마스크로 통일되어 불립니다.
앞서 설명드린 네트워크 ID와 호스트 ID를 컴퓨터가 구분하기 위해 사용되는 마스크입니다. 네트워크 ID 부분의 비트를 1로 치환한 것이며 IP주소와 서브넷마스크를 AND연산하면 네트워크 ID를 알 수 있습니다. 1
다음과 같은 IPv4 주소와 서브넷 마스크가 있을 경우, 컴퓨터에서 일어나는 연산은 다음과 같습니다.
IP주소
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
192 | 168 | 0 | 70 |
서브넷마스크
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
255 | 255 | 255 | 0 |
AND 연산 결과
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
192 | 168 | 0 | 0 |
IP : 192.168.0.70
NetMask : 255.255.255.0
Network ID : 192.168.0.0
Host ID : 70
이 결과에서 얻을 수 있는 정보가 무엇일까요? 이 호스트가 포함된 네트워크의 주소는 192.168.0.0 이며,
최대 28 = 256 - 2 = 254개의 호스트를 가질 수 있는 네트워크란 것입니다.
클래스의 구분은 다음 표와 같습니다.
A Class | 1.0.0.1 ~ 126.255.255.254 |
B Class | 128.0.0.1 ~ 191.255.255.254 |
C Class | 192.0.0.1 ~ 223.255.255.254 |
D Class | 224.0.0.1 ~ 239.255.255.255 |
E Class | 240.0.0.1 ~ 255.255.255.254 |
이중 D, E클래스는 특수목적이므로 제외하고, 일반적으로 A~C클래스까지 사용합니다. 그러니까 약 43억개의 IPv4 주소중 사실은 약 34억개 정도만 사용이 가능한 것입니다.
- A 클래스
0 | 7비트 | 8비트 | 8비트 | 8비트 |
Net ID | Host ID | |||
255 | 0 | 0 | 0 |
첫번째 옥텟의 1바이트(8비트)를 네트워크 주소로 사용하고 나머지 3바이트(24비트)는 호스트 주소로 사용합니다.
가장 왼쪽의 비트는 0으로 고정되어 있습니다. 그러므로 표현 범위는 0부터 127 = 011111111(2) 까지입니다.
하지만 0.0.0.0은 사용하지 않는 주소이며 127.X.X.X는 루프백 IP입니다. 때문에 범위는 1.0.0.0 ~ 126.255.255.255 가 되고 여기서 넷마스크는 255.0.0.0이 됩니다. 2
그러므로 126개의 네트워크와 약 1600만개의 호스트를 가질 수 있게 됩니다.
- B 클래스
1 | 0 | 6비트 | 8비트 | 8비트 | 8비트 |
Net ID | Host ID | ||||
255 | 255 | 0 | 0 |
첫번째와 두번째 옥텟을 네트워크 주소로, 나머지는 호스트 주소로 사용합니다.
왼쪽의 비트는 1,0으로 고정되므로 범위는 27 = 128 부터 191 = 10111111(2) 까지입니다.
약 1만6천개의 네트워크와 6만5천개의 호스트를 가질 수 있는 클래스입니다.
- C 클래스
1 | 1 | 0 | 5비트 | 8비트 | 8비트 | 8비트 |
Net ID | Host ID | |||||
255 | 255 | 255 | 0 |
세번째 옥텟까지 네트워크 주소, 마지막 옥텟을 호스트 주소로 사용합니다.
왼쪽의 비트는 1,1,0 으로 고정되며 범위는 27 + 26 = 192 부터 223 = 11011111(2) 까지입니다.
약 2백만개의 네트워크와 254개의 호스트를 가질 수 있습니다.
4. 공인 IP (Public IP)
인터넷 사용자를 식별할 수 있는 IP 주소로 전 세계에서 단 하나만 존재하는 IP입니다.
ISP가 제공하는 IP로 외부에 공개되어 있어서 연결된 PC로부터의 접근이 가능하기 때문에 방화벽을 비롯한 보안수준이 요구됩니다. 3
IP주소가 모자라다는 것은 이 공인 IP를 일컫습니다.
5. 사설 IP (Private IP)
로컬IP, 가상IP라고 부르기도 합니다. 공인IP의 부족으로 서브넷팅된 IP이기 때문에, 로컬 네트워크상(회사, 학교, 건물 등)의 기기에 할당됩니다. 사설 IP의 범위는 다음과 같습니다.
A Class | 10.0.0.0 ~ 10.255.255.255 |
B Class | 172.16.0.0 ~ 172.31.255.255 |
C Class | 192.168.0.0 ~ 192.168.255.255 |
이 사설 IP는 다른 네트워크에 있다면 중복이 되어도 상관없는 IP입니다. 어떤 카페에서 wifi를 사용하여 인터넷을 사용한다면 기기에는 사설 IP가 할당되고, 이 IP는 다른 카페나 집, 회사등에서 할당받은 사설IP와 겹쳐도 무관합니다.
이 이미지를 보시면 어느정도 사설 IP와 공인 IP에 대해 감을 잡으실 수 있을 것 같습니다. 익숙하신 192.168.~.~ 형태의 IP도 모두 사설IP에 속합니다.
IP는 워낙 많이 사용되지만 깊게 보면 이해해야할 부분이 광범위합니다. 연관성이 깊은것만 정리하려고 했으나 끝이 없어질듯 하여 설명이 부족했던 부분과 서브넷팅, 서브넷마스크에 대한 자세한 내용은 다음 글에 정리하겠습니다.
네트워크 지식은 정말 네트워크랑 비슷하게 얽혀있는 것 같습니다. 어떤 정보를 이해하기 위해 필요한 정보가 여기저기 섞여있는것 같아서 어렵지만, 이해하기 시작하면 실뭉치가 풀리듯 한번에 머리로 들어오게 됩니다.
네트워크 초심자라면 이 내용이 복잡하고 답답할 수 있겠지만, 견디고 이해하려 하다보면 어느순간 깨달음이 오실거라 생각됩니다.
'네트워크, 보안' 카테고리의 다른 글
네트워크 기초 - NAT (Network Address Translation) (0) | 2021.07.30 |
---|---|
네트워크 기초 - IPv6 (0) | 2021.07.28 |
네트워크 기초 - CIDR과 서브넷팅 (7) | 2021.07.28 |
네트워크 기초 - 2 (OSI 7계층, TCP/IP 4계층) (0) | 2021.07.22 |
네트워크 기초 - 1 (0) | 2021.07.21 |