네트워크에서 각 IT 장비들 간의 통신에 있어서 아주 중요한 것이 바로 주소, 즉 IP이다.
장비들이 서로 통신을 하면서 데이터를 주고받아야 하는데 과연 그 데이터를 어디로 보내야 하는가, 또 어디로 받아야 하는가에 대한 목적지가 바로 IP이다.
그 IP주소의 종류에는 IPv4, IPv6가 있다.
IPv4가 사용되어 왔으나, 기하급수적으로 늘어나는 주소 때문에 공간이 부족해져서 IPv6가 새롭게 사용되고 있다.
먼저 순서대로 IPv4부터 알아보자.
IPv4(IP version 4)
국내에서 표준을 정하고 정책에 수립하여 이용자에게 무한히 할당할 수 있는 자원이 아니라 전 세계적으로 관리되는 유한한 자원이다.(약 43억 개)
일부는 특수한 목적으로 사용될 수 있도록 예약되었으며, 주소 규정에 의하여 사용이 제한되기 때문에 IP주소 할당 정책에 따라 부여하여 사용한다.
- 32비트의 주소체계이다.
- 0~255(8비트)인 3 자릿수의 4개 조합으로 표시 ex) 127.0.0.1
- 주소에 레벨이 존재하며, NetID와 HostID로 나뉜다.
- NetID : 여러 호스트들이 하나의 덩어리로 그룹화되어 있는데, 이 그룹 단위를 구별하기 위한 주소
- HostID : 각 디바이스에게 할당된 개별 주소
- A부터 E까지 5개의 클래스로 나뉨
Classful Network
IPv4주소는 네트워크의 크기나 호스트의 수에 따라 A ~ E 클래스로 나누어진다. A, B, C 클래스는 일반 사용자에게 부여하는 네트워크 구성용, D 클래스는 멀티캐스트용, E 클래스는 향후 사용을 위한 예약된 주소이다.
문제점
클래스별로 무조건 고정된 개수만큼의 IP주소가 할당되기 때문에 IP 할당이 비효율적이다. (낭비가 많다.)
약 43억 개의 IP 주소를 확보할 수 있었지만, 한정된 자원인데 IT의 발달로 인해 이마저도 부족한 수가 되어버렸다.
해결점
- Classless Network
- IPv6
Classless Network
Class 개념을 없애버리고, 전체 IP를 통합하여 필요한 개수만큼 나눠서 할당하는 방법
Netmask(넷마스크)를 가변적으로 이용하여 주소상의 NetID와 HostID를 구분
IPv6
IPv4의 주소 고갈 문제를 해결하기 위해 만들어진 128비트의 주소체계이다.
IPv4는 32비트였기 때문에 IPv6가 128비트로 늘어나면서 주소 공간은 '43억 x 43억 x 43억 x 43억'개의 주소 공간을 가질 수 있게 되었다.
긴 주소를 쉽게 읽을 수 있도록 16비트씩 콜론(:)으로 나누어 각 필드를 16진수로 표현하는 방법을 사용한다.
또한 기존의 IPv4 주소를 IPv6 방식으로 표현할 수 있는데, 하위 32비트에서는 IPv4 주소를 그대로 채우고 상위 비트는 모두 0으로 채우는 방식으로 표현한다.
주소체계
FE80 : CD00 : 0000 : 0CDE : 1257 : 0000 : 211E : 729C
IPv6 주소의 예시이다.
네트워크와 노드 구성 요소, 총 두 부분으로 나뉜다.
네트워크 구성 요소는 처음 64비트에 해당하며 라우팅에 사용된다.
노드 구성 요소는 이후 64비트이며 인터페이스 주소를 식별하는 데 사용된다.
또한 주소 지정 체계가 0으로만 구성된 시퀀스뿐만 아니라 선행 0도 생략할 수 있으므로 예제 주소를 줄일 수 있다.
줄인 주소 버전 → FE80 : CD00 : 0 : CDE : 1257 : 0 : 211E : 729C
주소 유형
유니캐스트 주소
개별 노드의 인터페이스를 식별하는 데 사용된다.
0:0:0:0:0:0:0:0 은 무지성 주소로 어떤 노드에도 할당할 수 없으며, 주소가 아직 할당되지 않았을 때 출발지 주소 영역에 기록하는 주소이다. 0:0:0:0:0:0:0:1 은 루프백 주소로 호스트가 자기 자신에게 데이터그램을 전송할 때 사용하며, 호스트 외부에서는 사용되지 않는다.
애니캐스트 주소
다른 노드에서 인터페이스 그룹을 식별하는 데 사용된다.
애니캐스트 주소로 보내진 패킷은 해당 주소로 식별될 수 있는 노드 중 라우팅 프로토콜에 의해 결정되는 가장 가까운 노드로 보내진다. IPv6에서 새롭게 추가된 것으로 출발지 주소로 사용할 수 없으며, 라우터가 이 주소를 사용할 수 있다.
멀티캐스트 주소
멀티 캐스트를 정의하는 데 사용되는 주소는 한 번에 여러 대상에 단일 패킷을 보내는 데 사용된다.
IPv4와 마찬가지로 IPv6에서의 멀티캐스트 주소는 노드의 그룹을 나타내기 위해 사용되고 하나의 노드는 다수의 멀티캐스트 그룹의 구성원이 되는 것도 가능하다.
한눈에 비교
참고
https://blog.naver.com/hai0416/221564816863
'멋진 개발자 > Network' 카테고리의 다른 글
개발자 취준 기록 38 - OSI 7계층 (0) | 2024.04.02 |
---|---|
개발자 취준 기록 37 - HTTP 상태 코드 (0) | 2024.04.01 |
개발자 취준 기록 32 - HTTP Method (0) | 2024.03.27 |
[항해 취업코스] 개발자 취준 기록 25 - HTTP & HTTPS (0) | 2024.03.20 |
[항해 취업코스] 개발자 취준 기록 24 - 쿠키와 세션 (0) | 2024.03.19 |