⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.
함께 보면 좋은 글 : IPv4 datagram format
앞서 다루었던 IPv4의 주소 고갈 문제를 해결하고자 새롭게 고안된 주소 체계이다.
32비트를 사용하는 IPv4와는 다르게 128비트 주소 체계를 사용하기 때문에 주소 고갈의 문제가 없다.
IPv6 체계의 데이터그램은 위와 같은 구조를 띠고 있다. IPv4에 비해 매우 단순화된 것을 볼 수 있다.
헤더가 40바이트로 고정되어 있다는 것이 특징이며, 따라서 헤더 정보를 빠르게 읽을 수 있다.
그러나 뭐니뭐니해도 IPv6의 가장 큰 특징은 IP address 필드가 128비트로 늘어났다는 점이다.
flow label
이라는 것이 새롭게 등장했는데, 기본적인 트래픽 우선 순위 외에 특정 패킷 흐름을 지정하여 특별히 처리해야 하는 매커니즘을 나타내며 관련된 사용 및 제어는 아직 정의되지 않았거나 표준화되지 않았다.
next header
부분은 추가적인 정보를 담고 있는 extension header가 있을 경우를 대비하여 이 헤더를 위한 공간을 마련해둔 것이다. TCP, UDP와 같은 상위 계층 패킷에 포함된 프로토콜을 나타내는 경우도 있다.
hop limit
은 IPv4의 TTL(time to live)와 같다. 데이터그램의 수명 (hop)을 나타내며 0이 되면 데이터그램은 사라진다.
checksum
이 사라졌다. 전송 기술이 발달하면서 오류 발생이 현저히 줄어들었기 때문이다.MTU
(Maximum Transmission Unit, 최대 전송 단위) 중 가장 작은 MTU를 기준으로 fragmentation을 수행한다.IPv4 datagram의 payload 부분에 IPv6 datagram을 실어 보내는 것을 터널링 (tunneling) 이라고 한다.
오늘날 모든 라우터가 IPv6을 지원하지 않기 때문에 IPv4 형식으로 전달해야 하는 경우가 있는데 이 때 터널링이 사용된다. 비슷한 맥락으로 4G/5G 통신에서도 터널링이 사용된다.
위 그림을 보면 IPv4 datagram (빨간색 부분)의 payload 부분에 IPv6 datagram (파란색 부분)이 들어가 있는 것을 확인할 수 있다.
라우터 B, E 간에 데이터 전송을 할 때 IPv4 datagram을 사용해야 한다면 라우터 B에서 tunneling, encapsulation이 이루어진다.
위 그림을 보면 source가 A, dest가 F인 IPv6 datagram (파란색)을 source가 B, dest가 E인 IPv4 datagram으로 감싸서 전송하고 있는 것을 볼 수 있다.
라우터 E (dest)에 도착하면 다시 decapsulation을 수행하여 IPv6 datagram을 전달한다.