**IPv6**(Internet Protocol version 6)는 인터넷 프로토콜 스택 중 네트워크 계층의 프로토콜로서 버전 6 인터넷 프로토콜(version 6 Internet Protocol)로 제정된 차세대 인터넷 프로토콜을 말한다. 인터넷(Internet)은 IPv4 프로토콜로 구축되어 왔으나 IPv4 프로토콜의 주소가 32비트라는 제한된 주소 공간 및 국가별로 할당된 주소가 거의 소진되고 있다는 한계점으로 인해 지속적인 인터넷 발전에 문제가 예상되어, 이에 대한 대안으로서 IPv6 프로토콜이 제안되었으며, 국제 표준이 RFC를 통해서 확정되었고, 실제로 IPv6 주소는 휴대폰 및 컴퓨터에 할당되어 적용되고 있다.

## 역사
2021년 8월 기준으로 3,684,271,136개가 할당, 588,514,560개가 특수용도, 22,181,600개가 미할당이다., 2012년 1월 30일자로, 대한민국에 IPv4는 112,231,936개가 할당 되어있다. IPv4 주소는 빠른 속도로 고갈되었으며, 인터넷에 접속된 컴퓨터는 기하급수적인 속도로 증가하고 있다. 또한 모자라는 주소를 더 많은 네트워크에 할당하기 위해 네트워크 프래그멘테이션(Network Fragmentation)은 지속적으로 증가하여 라우터에 많은 부담을 주고 있다. 

그러므로 인터넷의 주소 고갈과 네트워크 프래그멘테이션 문제를 해결하고 인터넷에 확장성과 데이터 보안을 강화하기 위해 IPv6가 제안되었다.

IPv6는 팰로앨토 연구소에서 개발하고, 1994년 IETF(국제 인터넷 표준화 기구)가 채택하였다. 처음에는 IP Next Generation(IPng)라고 불렀다.

현재 IPv6의 사용량은 매우 적은 편이며, 인터넷의 나머지 부분은 아직도 IPv4 프로토콜을 사용하고 있다.

2012년 1월 30일 기준으로 IPv6의 2 가운데 21,131,922개의 네트워크 주소(/32)만 전 세계에서 할당되어 사용중이고 이 중에 20,971,520개의 네트워크 주소(/32)는 특수목적용으로 할당되어 있으므로 160,402개의 네트워크 주소(/32)만 실제 사용되고 있다. 대한민국에서는 5,219개의 IPv6 네트워크 주소(/32)를 할당받아 사용 중이다. 참고로 IPv6에서 32비트 네트워크 주소 1개는 65,536개의 최종 사용자를 가지는 최소규모의 IPv6 네트워크 주소이다.

2021년 8월 기준으로는 20,971,520개의 네트워크 주소(/32)는 특수목적용으로 할당되어 있으며 그 외에 330,634개의 네트워크 주소(/32)만 실제로 사용되고 있다. 대한민국에서는 현재 5,263개의 IPv6 네트워크 주소(/32)를 할당받아 사용 중이다.

## 특성
IPv6와 기존 IPv4 사이의 가장 큰 차이점은 바로 IP 주소의 길이가 128비트로 늘어났다는 점이다. 이는 폭발적으로 늘어나는 인터넷 사용에 대비하기 위한 것이다. 또한 IPv6는 여러 가지 새로운 기능을 제공하는 동시에 기존 IPv4와의 호환성을 최대로 하는 방향으로 설계되었다. 때문에 몇몇 예외를 제외하고 대부분의 네트워크 수준 상위 프로토콜들은 큰 수정 없이 IPv6 상에서 동작할 수 있다. IPv6 프로토콜은 다음과 같은 특성을 지니는 프로토콜로 개발되었다.

### IPv6 무상태 주소 자동 설정
노드는 수동 구성이나 DHCP (Dynamic Host Configuration Protocol) 서버와 같은 서버의 도움 없이도 네트워크에 연결하여, 인터넷과 연결될 수 있는 글로벌(전역) IPv6 주소를 자동으로 생성할 수 있다.
IPv6을 사용하는 링크의 장치는 라우터 알림 메시지의 모든 글로벌 접두사를 알리고 링크의 기본 장치로서의 기능을 통지 하여 구성한다. RA 메시지는 주기적으로 그리고 시스템 시작시 호스트가 보내는 장치 요청 메시지에 대한 응답으로 전송이 된다. 링크상의 노드는 인터페이스 ID(64 비트)를 RA 메시지에 포함된 접두사(64 비트)에 추가하여 전역 IPv6 주소를 자동으로 구성할 수 있다. 그리고 노드에서 구성한 결과로 나오는 128 비트 IPv6 주소에 중복 주소 검색이 적용되어 링크의 고유성을 보장한다. ICMP 패킷 헤더의 유형 필드에 133의 값을 갖는 장치 요청 메시지는 시스템 시작시 호스트에 의해 보내지므로, 다음 예약 된 네트워크 상에서의 RA 메시지를 기다릴 필요 없이 호스트가 즉시 자동으로 주소를 구성할 수 있다

## IPv6 주소공간
IPv4는 32비트의 주소공간을 제공함에 반해, IPv6는 128비트의 주소공간을 제공한다.

32비트 주소공간이란, 32 비트로 표현할 수 있는 주소영역을 지칭한다. 32 비트에 의해 생성할 수 있는 모든 IPv4 주소는 2

IPv6의 128비트 주소공간은 128 비트로 표현할 수 있는 2의 주소를 갖고 있어 거의 무한대로 쓸 수 있다.

IPv4 주소에 비해 IPv6 주소는 그 표현 비트 수가 128비트로 IPv4의 32비트에 비해 4배가 되었지만, 생성되는 IPv6 주소공간 영역은 IPv4 주소공간에 비해 2배의 크기를 갖는다.

IPv6 주소공간은 향후 인터넷에 등장할 대량의 유비쿼터스 통신 장치들이 상호 통신을 할 수 있는 주소공간을 제공할 수 있다. 냉장고, TV, AV 스피커, DVD 플레이어, 홈 보안장치, 전화기 등 각 요소 장비들이 지능화하면서 동시에 무선 인터넷 등을 통해 상호 통신할 수 있도록 각 장치(device)에 IPv6 주소를 제공할 수 있다.

128비트의 주소공간은 지표면의 모든 공간에 10m당 1개씩의 IPv6/48 네트워크를 제공할 수 있을 만큼의 많은 개수를 갖는다. 어떤 사람들은 이 주소가 지나치게 많고, 그렇게 많은 네트워크가 필요하게 될 일은 영원히 없을 거라고 주장하지만, IPv6의 128비트 주소공간은 주소가 바닥나는 것을 막는 것 외에도 네트워크가 여러 개의 작은 단위로 조각나는 것을 막아 라우팅을 빠르게 만들기 위한 목적도 갖는다.

### 주소 표현
IPv6의 128비트 주소공간은 다음과 같이 16비트(2옥텟)를 16진수로 표현하여 8자리로 나타낸다.

그러나 대부분의 자리가 0의 숫자를 갖게 되므로, 0000을 하나의 0으로 축약하거나, 혹은 아예 연속되는 0의 그룹을 없애고 ':' 만을 남길 수 있다. 따라서 아래의 IPv6 주소들은 모두 같은 주소를 나타낸다.

 2001:0DB8:0000:0000:0000:0000:1428:57ab
 2001:0DB8:0000:0000:0000::1428:57ab
 2001:0DB8:0:0:0:0:1428:57ab
 2001:0DB8:0::0:1428:57ab
 2001:0DB8::1428:57ab

또한 맨 앞자리의 0도 축약할 수 있다. 따라서 로 축약할 수 있다.

그러나 0을 축약하고 ':'로 없애는 규칙은 두 번이나 그 이상으로 적용할 수 없다. 만약 두 번 이상 적용하는 것이 허용되어 와 같은 표현이 가능하다면, 이 표현은 다음의 네 가지 주소 가운데 어떤 것을 가리키는지 의미가 불분명해질 것이다.

 2001:0000:0000:0000:0000:25de:0000:cade
 2001:0000:0000:0000:25de:0000:0000:cade
 2001:0000:0000:25de:0000:0000:0000:cade
 2001:0000:25de:0000:0000:0000:0000:cade

### 네트워크 표현
IPv6 네트워크(혹은 서브넷)는 2의 제곱수를 크기로 갖는 IPv6 주소들의 집합이다. 네트워크 주소는 네트워크 프리픽스 뒤에 프리픽스의 '/' 기호와 함께 비트 수를 붙여서 나타낸다. 까지의 주소를 갖는 네트워크를 나타낸다.

### IPv4 주소의 IPv6 형태
기존 네트워크와의 호환성을 위해, IPv4 주소는 다음과 같은 세 가지 방법을 통해 IPv6 주소로 나타낼 수 있다.

## IPv6 전환 기술

### 주소 변환
┌────────────────┐ ┌───────────────┐ ┌────────────────┐
 │ IPv6 Network ││ IPv4 Network │
 └────────────────┘ └───────────────┘ └────────────────┘