[네트워크] IP 주소
※ NIC = Network Interface Controller
: 컴퓨터를 네트워크에 연결하여 통신하기 위해 사용하는 하드웨어 장치
(LAN에 연결 지점을 제공하기 위해 컴퓨터에 설치하는 장치 어댑터)
MAC 주소
네트워크 인터페이스에 할당된 고유 식별자(=물리적 주소)로, 보통 장치의 NIC에 할당된다.
총 48비트로, OUI (IEEE에서 할당한 제조사 코드) 24비트와 UAA (제조사에서 구별되는 코드) 24비트로 구성된다.
IP 주소
LAN Card (NIC)에 연결되어 있는 회선(랜선)의 주소를 의미한다.
즉, 물리적으로 고정된 주소가 아니라 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 논리적 주소이다.
인터넷망에 접속할 때마다 달라진다.
IPv4
32비트(4바이트)로 표현되는 주소체계로, 2^32개의 주소 (41억 9천만..) 표현이 가능하다.
8비트 단위로 점을 찍어, 보통 10진수로 표기한다.

초창기에는 앞 8비트가 네트워크 영역, 나머지 비트가 호스트 영역으로 사용되었다.
- 네트워크 영역
: 어떤 네트워크인지를 알 수 있는 정보 - 호스트 영역
: 해당 네트워크 안의 특정 컴퓨터를 지칭하는 정보
클래스풀
네트워크의 증가로 8비트의 네트워크 영역만으로 모두 표현할 수 없어지면서, 클래스(class)라는 개념이 도입되었다.
클래스는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있도록 하는 개념이다.
클래스 A~E 중 A, B, C 클래스를 사용할 수 있다. (D는 멀티캐스트를 위해 사용, E는 예약되어 있는 클래스)
최초 옥텟의 맨 앞 몇 비트로 클래스를 판별할 수 있다. (A:0, B:10, C:110, D:1110, E:1111)

※ 호스트 영역에서 모든 비트가 0인 경우는 호스트가 속한 네트워크 자체 주소, 모든 비트가 1인 경우는 브로드캐스트 주소를 의미하므로, 하나의 네트워크 당 가능한 호스트 영역의 수는 '2^n - 2'이다.
클래스 A
- 네트워크 주소 범위: 0~126 (0은 특수 주소, 127은 루프백 주소)
- 한 네트워크 당 연결할 수 있는 host IP: 2^24 - 2 (약 1600만개)
클래스 B
- 네트워크 주소 범위: 127~191
- 한 네트워크 당 연결할 수 있는 host IP: 2^16 - 2
클래스 C
- 네트워크 주소 범위: 192~223
- 한 네트워크 당 연결할 수 있는 host IP: 2^8 - 2
하지만, 가능한 클래스풀 방식은 호스트 영역의 번호를 미리 나누어 놓았기 때문에 주소 낭비가 발생할 수 있다는 단점이 있어, 현재는 사용하지 않는다.
클래스풀의 이러한 단점과 IPv4의 주소 부족 해결하기 위해, CIDR, NAT, IPv6가 등장했다.
CIDR
CIDR (Classless Inter Domain Routing)은 클래스를 사용하지 않고, 서브넷 마스크라는 개념을 도입한 방법이다.
※ 서브넷팅 (Subnetting)
네트워크를 더욱 작은 단위의 네트워크로 분할하여, 브로트캐스트 도메인의 크기를 줄여 성능을 향상시키는 것이다.
원본 네트워크를 여러 개의 서브넷으로 분리하여, IP 주소 낭비를 방지한다.
※ 서브넷 마스크
서브넷 마스크는 필요한 네트워크 주소만 호스트 IP로 할당할 수 있게 만들어, 네트워크 낭비를 방지한다. (=서브네팅)
즉, 필요한 만큼의 IP만 할당받고, 나머지는 서브넷 마스크로 가려버린다고 생각하면 된다.
서브넷 마스크는 1이 연속되어 나타나야 하며, 네트워크가 속한 클래스에 따라 기본 서브넷 마스크가 지정된다.

서브넷 마스크와 IPv4 주소를 AND 연산하여 네트워크 주소를 알 수 있다.

서브넷 마스크의 bit 수를 1씩 증가시키면, 할당할 수 있는 네트워크가 2배 수로 증가하고 호스트 수는 2배수로 감소한다.

CIDR는 0~32까지 표현 가능하다.
Ex) 143.7.65.203/24 : 32비트 중 상위 24비트를 네트워크 영역, 하위 8비트를 호스트 영역으로 사용하겠다는 뜻으로, 호스트 IP로 143.7.65.0 ~ 143.7.65.255 사용 가능하다.
NAT
※ 공인 IP
전 세계에서 유일한 IP로, ISP(인터넷 서비스 공급자)가 제공하는 IP 주소이다.
외부에 공개되어 있기 때문에 인터넷에 연결된 다른 장비로부터 접근이 가능하다.
방화벽 등의 보안 설정을 해야 한다.
※ 사설 IP
어떠한 네트워크 안에서 사용되는 IP 주소이다.
IPv4의 부족으로 모든 네트워크가 공인 IP를 사용하는 것이 불가능하여, 네트워크 안에서 라우터를 통해 할당받는 가상의 주소이다.
별도의 설정 없이 외부에서 접근이 불가능하다.
NAT (Network Address Translation)는 패킷이 트래픽 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소를 변경, IP 주소를 다른 IP주소로 매핑하는 방법이다.
(패킷: 네트워크를 통해 전송되는 형식화된 데이터 덩어리)

NAT의 장점
- 공인 IP를 다수가 함께 공유하여 사용할 수 있으므로 공인 IP를 절약할 수 있다.
- 사설 IP를 사용하는 고유의 사설망을 숨기고 공인 IP만 노출시켜 보안에 좋다.
IPv6
기존 32비트의 IPv4 주소의 고갈 문제를 해결하기 위해 개발된 새로운 128비트 체계의 무제한 인터넷 프로토콜 주소이다.
IPv6 주소는 16비트 단위로 구분하여, 16진수로 변환되어 콜론(:)으로 구분하여 표기한다.
128비트 중 앞의 64비트는 네트워크 주소를 의미하며, 뒤의 64비트는 네트워크에 연결된 통신 장비 등에 할당되는 인터페이스 주소를 의미한다.

IPv6의 장점
- 확대된 주소 공간
: 주소의 길이가 128비트이므로 2^128개의 주소 생성이 가능하다. - 단순해진 헤더 포맷
: IPv4의 불필요한 필드를 제거하여, 상대적으로 더 빠른 처리가 가능하다. - 강화된 보안 기능
: IPv6에서는 데이터 패킷 암호화 프로토콜 IPSec 기능을 기본 사항으로 제공한다.
※ 현재는 IPv6 보다 IPv4 기반의 서브네팅 (CIDR), NAT을 사용한다.
출처
https://velog.io/@strangehoon/IP