IPv6 : IPv4은 32비트의 주소 공간을 갖는다. 과거에는 충분한 크기였지만, 최근 인터넷이 급격하게 발달함에 따라 주소 공간이 부족한 문제가 발생하였다. 이를 해결하기 위해 더 큰 주소 공간을 갖는 IPv6에 대해 알아보자.
IPv4의 주소 공간 :
IPv4 : 주소 부족 문제를 해결하기 위해 NAT 라우터를 통한 사설 IP와 공인 IP 사이의 주소 변환과 같은 방식이 활용됨IPv6의 주소 공간 : 
IPv6 : 주소 공간이 매우 방대하기 때문에, 주소 공간 부족을 해결하기 위한 여러 메커니즘을 생략할 수 있음IPv6의 주소 표현 : IPv6 주소의 길이는 128비트이다. 이를 2진수로 표현하면 가독성이 매우 떨어진다. 때문에 주로 16진수로 주소를 표현한다.
하나의 16진수는 4비트를 표현할 수 있다.
4개의 16진수로 16비트를 표현할 수 있다.
따라서 IPv6 주소는 :으로 구분되는 8개 그룹으로 표현된다.
0을 생략하여 나타내기도 한다. (ex, )
Prefixes in IPv6 : IPv6의 주소 공간은 prefix에 따라 나누어진 여러 블록이 존재한다. 각 블록들은 활용되는 용도가 정해져있다. IPv6는 미래에 사용될 예정이므로, 대부분의 블록은 아직 미할당 상태이다.
Global Unicast Address : IPv4에서 사용되는 인터넷(WAN)과 유사한 역할을 하는 주소 블록
Global routing prefix : 네트워크를 정의하는 부분
Subnet identifier : 각 네트워크의 subnet을 정의하는 부분
Interface identifier : subnet 내부에 존재하는 호스트의 주소를 정의하는 부분. 이는 장치의 고유한 주소이므로, MAC 주소를 매핑하는 방식으로 인터페이스 주소를 생성한다.
MAC 주소 (48 bits)의 앞 24비트 + 추가 비트 (16bits) + MAC 주소 (48 bits)의 뒷 24비트 = 인터페이스 주소
이때, MAC 주소의 맨 앞 8비트 중 7번째 비트를 반전시킨다.
Special addresses : 특정한 목적으로 사용되기 위해 예약된 주소 블록
Autoconfiguration : IPv6 프로토콜은 네트워크 관리자의 설정 없이도 호스트 스스로가 IPv6 주소를 생성하고 구성할 수 있도록 설계되었다.
IPv4 환경에서 네트워크에 접근하는 호스트는 서버로부터 IP 주소를 할당(DHCP) 받았다.
IPv6 환경에서도 DHCP가 존재하지만, 호스트 스스로도 IP 주소를 할당할 수 있다.
IPv6 Datagram
Base Header : IPv6 패킷의 헤더는 크기가 40bytes로 고정적이다.
Next header : Base 헤더 뒤에 또 다른 헤더(확장 헤더)가 존재할 경우, 확장 헤더를 가르킨다. 확장 헤더가 더이상 없을 경우, Payload를 가르킨다.
Extension Header : 데이터그램에 추가적인 기능을 포함시키기 위해 기본 헤더(Base Header)뒤에 추가적으로 붙이는 확장 헤더이다. IPv4의 Option과 비슷한 개념으로 이해해보자.
ICMPv6 : IPv4의 개선 버전이 ICMPv4인 것과 마찬가지로, IPv6의 개선 버전인 ICMPv6가 존재한다.
ICMPv4 vs ICMPv6
IPv4에서 독립적으로 동작하던 프로토콜들이 ICMPv6에서 통합되었다.
ICMPv6는 ICMPv4보다 다양한 종류의 메시지를 사용한다.

Error messages : 다음과 같은 네 가지 오류를 처리하기 위해 ICMPv6에서 사용하는 오류 메시지이다.
Destination unreachable (목적지 도달 불가)
Packet Too Big (패킷 크기 초과)
Time Exceeded (시간 초과)
Parameter Problem (매개변수 문제)
Informational messages : 네트워크 상에 존재하는 두 장치 간의 통신 가능 여부를 확인하기 위한 메시지이다.
Echo Request : 한 장치가 다른 장치에게 연결 상태를 확인하기 위해 메시지 전송
Echo Reply : Echo Request를 수신한 장치가 응답 메시지를 전송
Neighbor discovery messages (ND) : IPv4, ICMPv4의 여러 기능(ex, ARP)을 통합하여 활용하기 위한 메시지이다.
Neighbor-Discovery (ND) Protocol
Inverse-Neighbor-Discovery (IND) Protocol
Transition Issue : 우리는 위에서 IPv6가 IPv4에 비해 여러가지 이점이 있다는 것을 확인했다. 하지만 IPv4와 IPv6는 서로 호환되는 시스템이 아니다. IPv6로의 전환은 인터넷 인프라 전역에 걸쳐 점진적으로 이루이질 것이므로, 완전한 전환이 이루어지기 전까지는 두 프로토콜에서 모두 작동할 수 있는 환경이 필요하다.
Dual Stack
Tunneling
IPv4 패킷의 페이로드에 IPv6 패킷을 캡슐화하여 IPv4 네트워크를 통해 IPv6 패킷 전달
목적지에 도달한 후 역캡슐화를 통해 원래 IPv6 패킷으로 복원
Header translation