본문 바로가기

프로그래밍/Computer Network

14. IPv6

1. IPv6 Addressing and Subnetting

 

인터넷이 폭발적으로 확장함에 따라, 32bit의 IPv4 이후에 IPv5가 있었지만 거의 채택되지 않았고, 128bit의 IPv6가 도입되었다. IPv6는 Hexadeximal number 4개가 1개 그룹으로, 총 8개 그룹으로 이루어져있다. 

예를 들어, 2001:0db8:0000:0000:0000:ff00:0012:3456이다. 

앞의 4개 그룹은 networkID, 뒤의 4개 그룹은 hostID이고, 물론 subnetting도 이전에 배웠던 방식처럼 가능하다. 

IPv6는 너무나 길기 때문에, 짧게 줄여서 표기할 수 있는 방법이 있다.

먼저, 각 그룹에서 맨 끝을 제외한 0으로 시작하는 부분은 제거한다.

다음으로, 값이 0인 그룹들은 :: 로 대체한다.

예를 들어, IPv6의 loop-back address는 ::1 로 표기되는데, 이것은 0000:0000 ..... 0000:0001을 의미한다. 

 

IPv6에는 특정목적을 위해서 예약되어있는 주소들이 있다.

예를 들어, 2001:0db8 로 시작하는 IPv6 address는 document & education으로 예약되어 있다.

FF00:: 로 시작하는 주소는 hosts address grouping방법인 multi-cast용도이다. .

FE80:: 로 시작하는 주소는 Link-local unicast용도인데, 주로 DHCP 같이 network configuration을 받기 위해 사용된다.

 

2. IPv6 Header

 

IPv6 header에는 IPv4에 비해 놀라운 개선이 있고, 다음과 같다.

 

출처 : Wikipedia

Version field는 IP의 version을 의미한다. 

Traffic class field는 traffic의 type을 말해주는데, type에 따라 다른 prioirty로 수신되게 한다. 

Flow label field는 traffic class와 함께 쓰여 router가 QoS(Quality of Service) 수준을 결정도록 한다. 

Payload length field는 data payload section의 크기를 말해준다. 

Next header field는 어떤 종류의 header가 바로 다음에 오는지 말해준다. 이것은 IPv6의 주소가 너무 길기 때문에 전송이 길어지는 문제를 해결하기 위해 필요시 사용할 수 있다. 예를 들어, IPv6 header의 optional field를 추상화시켜 next header에 포함되도록 하는 방법이 있다. 이러한 next header는 chain형식으로 또 다른 next header이 다음에 오도록 할 수 있고, 여러 다른 optional configuration을 포함할 수 있다.

Hop limit field는 IPv4의 TTL와 동일한 역할이다.

다음으로 출발지/목적지 주소가 나온다. 

다음으로는 data payload가 나온다. 

 

3. IPv6 with IPv4

 

IPv6는 기존의 IPv4와 호환되는 것이 중요하다.

IPv4는 IPv6에서 앞부분이 0:0:0:0:0:ffff: 이고 뒷부분 32bit가 IPv4인 것과 동일하다. 

이것은 기존의 IPv4 패킷이 IPv6 network를 통과하는 것을 가능하게 한다. 

하지만, IPv6 패킷이 IPv4 network인 core internet을 통과하는 것은 쉽지 않은데, 이것은 주로 IPv6 tunnel을 연결함으로서 해결한다. IPv6 tunnel server는 IPv6 traffic을 IPv4 datagram으로 encapsulation하여 전송하고, 수신시 decapsulation하여 통신을 가능하게 한다. IPv6 tunnel broker은 IPv6 tunneling endpoints을 제공하는 회사로, 추가적인 장비를 도입할 필요가 없다. 언젠가는 IPv4에서 IPv6로 완전히 전환되어 tunnel이 필요없어질것이다..

'프로그래밍 > Computer Network' 카테고리의 다른 글

13. Cloud  (0) 2024.04.23
12. Verifying connectivity  (1) 2024.04.21
11. Connecting to Internet (2)  (0) 2024.04.20
10. Connecting to Internet (1)  (0) 2024.04.16
9. VPN & Proxy  (0) 2024.04.15