IP 주소 부족 문제를 해결하기 위한 방법들 중 마지막으로 알아볼 것은 IPv6입니다. 32비트의 IPv4를 가지고는 최대 2^32개(약 42억 개)의 기기에만 주소를 할당해줄 수 있는데, IoT나 모바일 기기들의 발전으로 인해 주소를 할당받는 기기가 기하급수적으로 늘어나며 주소가 부족해질 수밖에 없습니다.
IPv6는 128비트로 이루어진 주소 체계입니다. 따라서 2^128개의 IP 주소를 할당해 줄 수 있습니다. 따라서 총 1조 개 이상의 기기에 IP주소를 할당해 줄 수 있습니다. 최종적으로는 IPv4를 대체하기 위해 등장한 IPv6이지만, 현재는 둘 모두 사용되고 있습니다. 그리고 IP주소의 길이가 바뀌기 때문에 IPv6를 탑재한 데이터그램은 헤더의 구성요소와 모양도 IPv4와는 달라지게 됩니다.
1. IPv6의 장점
IPv4와 비교하여 IPv6의 장점을 알아보도록 하겠습니다.
1. 주소의 확장: 128비트를 이용하기 때문에 훨씬 많은 주소를 할당해 줄 수 있습니다.
2. 호스트 주소 자동 설정: IPv4는 네트워크 관리자에게 수동으로 IP 주소를 부여받아야 했지만, IPv6는 Plug and Play, 즉 네트워크에 접속함과 동시에 IP 주소를 할당받을 수 있습니다.
3. 패킷 크기 확장: IPv4의 데이터그램 헤더에는 Total Length라는 필드가 있어서 데이터그램의 총크기가 2^16비트(64KB)를 넘지 못했습니다. 하지만 IPv6에서는 물론 Length를 표시하는 필드가 존재하긴 하지만, 옵션을 통해 특정 호스트 사이에는 임의로 제한이 없게 큰 크기의 패킷을 주고받을 수 있어, 대역폭이 넓은 네트워크를 더 효율적으로 사용할 수 있습니다.
4. 효율적 라우팅: 패킷의 처리를 용이하게 하기 위해 고정크기의 단순한 헤더를 사용하면서, 확장 헤더를 통해 기능 및 옵션의 확장이 용이한 구조로 만들어졌습니다.
5. 플로우 레이블링(Flow Labeling): 특정 트래픽은 레이블링을 해주어 별도의 특별한 처리(실시간 통신 등)를 통해 높은 품질의 서비스를 보장할 수 있도록 했습니다.
6. 인증 및 보안: 패킷의 출처 인증과 데이터 무결성 및 비밀 보장 기능이 프로토콜에 반영되어 있습니다.
7. 이동성: IPv6의 호스트는 네트워크의 물리적 위치에 제한받지 않고 같은 IP 주소를 유지하면서 자유롭게 이동할 수 있습니다.
2. 유니캐스트 주소 구분
IPv6는 주소의 유효 범위에 따라 크게 3가지로 구분됩니다.
Global Unicast Address: 2000:으로 시작되며 전 세계에서 유일한 IP 주소입니다.
Unique Local Unicast Address: FC00:으로 시작되며, 특정 지역 내에서만 유일합니다. 앞에서 공부한 사설 네트워크와 유사한 개념입니다.
Link Local Unicast Address: FE80:으로 시작되며 동일 링크 내에서만 유일합니다. 자신의 컴퓨터의 cmd창에 ipconfig 명령어를 실행시켜보면, 링크-로컬 주소가 나오는 것을 확인할 수 있습니다.
서브넷 마스크를 보니 C 클래스의 IP를 쓰고 있다는 사실도 알 수 있겠네요.
3. IPv6 데이터그램의 헤더
IPv6를 사용하는 데이터그램의 헤더는 IPv4를 사용하는 데이터그램의 헤더와는 조금 다른 형태를 가집니다. 위의 그림에 나온 헤더가 IPv6의 기본 헤더이고, 이 뒤에 선택적인 확장 헤더들이 뒤따라오게 됩니다. 이 확장 헤더의 뒤에 상위 계층으로부터 받은 데이터가 뒤따라서 붙습니다.
1. VER (Version): 4비트로 구성되며, IP의 버전을 알려줍니다. 여기서는 당연히 6이 들어갑니다.
2. Traffic Class (Priority): IPv4의 Service Type과 유사한 필드로 데이터그램 마다 서로 다른 서비스 요구사항을 적재합니다. 예를 들면, 실시간 통신이 꼭 필요한 패킷인지, 긴급하지는 않은 패킷인지 차별적으로 구분이 가능합니다. 8비트로 이루어져 있습니다.
3. Flow Label: 실시간 서비스 등과 같은 패킷에 우선권을 주기 위해 특정 트래픽 플로우에 대한 라벨링이 담겨 있습니다. 20비트로 구성됩니다.
4. Payload Length: 확장 헤더와 상위 계층에게 받은 데이터의 길이의 총합을 넣어줍니다. 16비트로 구성되어 있으니, 기본적으로는 2^16비트까지 적재가 가능합니다.
5. Next Header: IPv4의 헤더에서 프로토콜과 같은 역할을 합니다. 기본 헤더 다음에 위치하는 확장 헤더의 종류를 표시해 줍니다. 8비트로 구성되어 있습니다.
6. Hop Limit: IPv4의 TTL과 같은 역할을 합니다. 8비트로 이루어져 있습니다.
7. Source Address, Destination Address: 각각 128비트로 이루어진 출발지와 도착지의 IPv6 주소가 적혀있습니다.
4. 터널링 (Tunneling)
IPv6가 등장하며, 훨씬 좋은 성능과 넉넉해진 주소 공간으로 충분히 IPv4를 대체할 수 있지만, 문제는 바로 현재 만들어져 있는 라우터를 포함한 수많은 기반 시설들이 IPv4를 위한 설계를 통해 만들어져 있다는 것입니다.
그래서 이 IPv4를 위한 시설을 가지고 IPv6를 사용하기 위해 터널링이라는 기술을 사용합니다. 터널링은 IPv6 데이터그램을 IPv4의 데이터그램 속에 넣어서 마치 IPv4인 것 마냥 IPv6 데이터그램을 사용하는 것을 말합니다.
IPv6를 위한 라우터를 지날 때는 상관이 없지만, IPv4를 위한 라우터를 통과할 때는 위와 같이 IPv4인 것 마냥 위장을 하여 통과하게 됩니다.
'전공공부 > 컴퓨터망 (Computer Network)' 카테고리의 다른 글
[컴퓨터망] Routing (2) - Autonomous Systems, BGP (0) | 2021.02.02 |
---|---|
[컴퓨터망] Routing (1) - Routing Algorithm (3) | 2021.02.01 |
[컴퓨터망] Network Layer (7) - NAT (1) | 2021.02.01 |
[컴퓨터망] Network Layer (6) - DHCP (0) | 2021.02.01 |
[컴퓨터망] Network Layer (5) - Subnet (3) | 2021.02.01 |