요즘 AWS 강의를 틈틈히 듣고 있는데 IPv4와 IPv6 내용이 언급돼서 차이점을 자세히 알고싶어서 정리했습니다.
IP에 대한 기초적인 개념을 살짝 정리해보았습니다.
IP
Internet Protocol의 약자로 기기간 네트워크 통신을 할 때 쓰는 프로토콜을 의미합니다.
인터넷에 연결되어있는 모든 장치들을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소입니다.
즉, 인터넷에서 원활한 교류를 위해 약속한 규칙!
IPv4
IP version 4의 약자로 전 세계적으로 사용된 첫 번째 인터넷 프로토콜입니다.
ex) 115.68.24.88
- 주소는 32비트 방식으로 8비트씩 4자리로 되어있으며 각 자리는 온점으로 구분한다.
- 0~ 2^32 약 42억 9천개의 주소를 가질 수 있는데, 전 세계적으로 인터넷 사용자가 급증하면서 IPv4 주소가 고갈될 위기에 처해있다.
- → 이러한 고갈 문제를 해결하기 위해 등장한 주소 :
IPv6
IPv6
IPv4 주소체계를 128비트 크기로 확장한 차세대 인터넷 프로토콜 주소입니다.
ex) 2001:0DB8:1000:0000:0000:0000:1111:2222
개선 사항
- 간소화된 헤더 형식
- IPsec과 같은 기본 제공 보안 기능
- 모바일 장치에 대한 향상된 지원
IPv6가 무조건 더 좋나?
- 인터넷의 약 1/3만이 IPv6 주소를 지원하므로 IPv6만 사용하면 일부 접근성 문제가 발생할 수 있다.
- 속도 : 성능의 차이로 볼 때 IPv4가 약간 우위에 있지만 차이는 미묘하다.
IP 주소의 규칙
IP주소는 Network 주소와 Host 주소로 이루어져 있다.
Network 주소 : 그 IP주소가 속한 Network
Host주소 : 그 Network속에서 Host를 구별하는 번호 (ex) 주소의 도로명/ 숫자
하지만 IP주소만 보고 어디까지 Network 주소이고 어디까지 Host 주소인지 알 수 없습니다.
Class라는 것을 보고 판단을 해야하는데요,
- A Class : 001.xxx.xxx.xxx ~ 127.xxx.xxx.xxx = 0/0000000(2).xxx.xxx.xxx ~ 0/1111111(2).xxx.xxx.xxx
- B Class : 128.xxx.xxx.xxx ~ 191.xxx.xxx.xxx = 10/000000(2).xxx.xxx.xxx ~ 10/111111(2).xxx.xxx.xxx
- C Class : 192.xxx.xxx.xxx ~ 223.xxx.xxx.xxx = 110/00000(2).xxx.xxx.xxx ~ 110/11111(2).xxx.xxx.xxx
- D Class : 224.xxx.xxx.xxx ~ 239.xxx.xxx.xxx = 1110/0000(2).xxx.xxx.xxx ~ 1110/1111(2).xxx.xxx.xxx
- E Class : 240.xxx.xxx.xxx ~ 255.xxx.xxx.xxx = 1111/0000(2).xxx.xxx.xxx ~ 1111/1111(2).xxx.xxx.xxx
예를 들어 설명하자면
10.20.30.40
이라는 IP 주소가 있다면 10.xxx.xxx.xxx
는 A Class이므로 10.0.0.0
이 Network주소이고 0.20.30.40
은 Host 주소입니다.
또 만약에 130.140.150.160
이라는 IP주소가 있다면 130.xxx.xxx.xxx
는 B Class이므로 130.140.0.0
이 Network 주소고 0.0.150.160
은 Host주소입니다.
Subnet Mask
매번 IP의 첫 3자리를 보며 Network 주소를 판별할 수 있지만 Class를 모르거나 잊어버리면 Network의 주소를 알 수 없습니다. 또한 Subnetting으로 Network가 나눠진 경우 첫 3자리만으로는 Network 주소를 판별할 수 없기 때문에 Subnet Mask가 필요합니다.
Subnet Mask는 IP주소처럼 xxx.xxx.xxx.xxx 형식 또는 /xx 형식으로 나타냅니다.
- A Class : 8bit 까지 = 11111111.00000000.00000000.00000000 = 255.0.0.0 = /8
- B Class : 16bit 까지 = 11111111.11111111.00000000.00000000 = 255.255.0.0 = /16
- C Class : 24bit 까지 = 11111111.11111111.11111111.00000000 = 255.255.255.0 = /24
⇒ IP의 첫 3자리와 Subnet Mask를 본다면 확실하게 Network 주소를 알 수 있다.