목차
IPv6
32비트의 주소 공간을 지원하는 현재의 IP 프로토콜은 이론상으로 최대 \(2^{32}\) 개의 호스트를 수용할 수 있다.
그러나 인터넷이 급성장함에 따라 이 정도의 주소 크기만으로는 거의 한계점에 이른 상황이다.
➡ 호스트의 주소 공간을 대폭 확장한 IPv6(IP 버전 6)은 기존 인터넷 환경에서 사용 하는 IPv4(IP 버전4)를 대체하기 위한 차세대 프로토콜이다.
[IPv6의 주요 변경 사항]
- 주소 공간 확장
- 송신 호스트와 수신 호스트의 주소를 표시하는 공간이 32비트에서 128비트로 확장되었다.
- IPv6을 이용한 인터넷 환경에서는 이론적으로 호스트를 최대 \(2^{128}\) 개까지 지원하여 무한으로 확장되는 인터넷 접속자를 모두 수용할 수 있다.
- 또한 개인이 무선으로 연결하는 유비 쿼터스 Ubiquitous 장비가 기하급수적으로 보급되는 환경에도 쉽게 대처할 수 있다.
- 헤더 구조 단순화
- IPv4의 헤더 구조는 현재의 네트워크 환경이 반영되지 못한 이유로 매우 비효율적으로 복잡하다.
- 반면에 IPv6 헤더는 불필요한 필드가 제외되거나 확장 헤더 형식으로 변경되었다.
- 이는 기존의 IP 프로토콜에서 과도하게 수행하는 오류 제어와 같은 오버헤드를 줄여 프로 토콜의 전송 효율을 높이기 위함이다.
- 흐름 제어 기능 지원
- 흐름 제어 기능을 지원할 수 있는 필드(예 Flow Label)를 도입해 일정 범위 내에서 예측 가능한 데이터 흐름을 지원한다.
- 따라서 하나의 연속 스트림 Stream 으로 전송해야 하는 연관 패킷의 전송 기능을 지원함으로써, 실시간 기능이 필요한 멀티미디어 응용 환경을 수용할수 있다.
IPv6 헤더 구조
IPv6의 헤더 구조는 IPv4보다 매우 단순해 9개의 기본 필드를 지원한다.
총 40바이트 중에서 32바이트는 주소 공간으로 할당되고, 8바이트만 프로토콜 기능을 위해 사용된다.
IPv6의 패킷 헤더는 기본 헤더와 확장 헤더로 나뉘는데, [그림 8-1]은 크기가 고정된 기본 헤더의 구조이며, 상단의 숫자는 크기를 나타내는 비트 번호이다.
확장 헤더의 종류
IPv6 기본 헤더 바로 뒤에 확장 헤더를 하나 이상 둘 수 있다.
[Hop-by-Hop Options Header]
- Jumbo 페이로드 옵션과 라우터 긴급 옵션 등과 같은 hopby-hop 옵션의 처리를 지원한다.
- Jumbo 페이로드 옵션은 패킷 데이터의 크기가 65,535바이트보다 클 때 사용하는데, 라우터에서 이 패킷을 처리할 수 없으면 ICMP 프로토콜의 오류 메시지가 발생한다.
- 라우터 긴급 옵션은 라우터에 전송 대역의 예약 같은 특정 정보를 제공한다.
[Routing Header]
- IPv4의 소스 라우팅과 유사한 기능을 제공
- 패킷이 Routing Header에 지정된 특정 노드를 경유하여 전송되도록 함
- 헤더에 있는 주소 목록의 첫 번째 호스트로 패킷이 전송되면, 패킷을 받은 호스트가 헤더 목록을 다시 검사해 두 번째 호스트 에게 전송한다. 이 과정을 패킷이 최종 목적지에 도착할 때까지 반복한다.
[Fragment Header]
- IPv4 프로토콜 헤더에 정의된 Fragment Offset, Identification, MF 필드처럼 패킷 분할과 관련된 정보를 포함
[Destination Options Header]
- 수신 호스트가 확인할 수 있는 옵션 정보를 제공한다.
[Authentication Header]
- 패킷 인증과 관련된 기능을 제공한다.
[Encapsulating Security Payload Header]
- 프라이버시 기능을 제공하기 위해 페이로드를 암호화한다.
- 인증된 목적지 호스트에서 암호화 데이터를 해독할 수 있는 정보도 함께 제공한다.
DS/ECN 필드
차등 서비스가 도입되면서 6비트의 DS 필드와 2비트의 ECN 필드가 정의되었다.
이 공간은 원래 4비트의 Priority 필드와 Flow Label 필드의 앞부분 4비트의 공간으로 사용되던 곳이다.
DS Differentiated Services 와 ECN Explicit Congestion Notification 간단히 보기
DS Differentiated Services 와 ECN Explicit Congestion Notification 자세히 보기
Flow Label 필드
IPv4에서 생성하는 패킷은 라우터가 중개할 때 동일한 기준을 적용하여 처리한다.
IP를 연결지향적 프로토콜로 사용할 수 있게 한다
IPv6에서는 특정 송수신 호스트 사이에 전송되는 데이터를 하나의 흐름 flow 으로 정의해 중간 라우터가 이 패킷을 특별한 기준으로 처리할 수 있도록 지원한다.
➡ 라우터는 이 기능을 지원하기 위해 필요한 흐름 정보를 저장하여 처리할 수 있어야 한다.
Flow Label 필드는 음성이나 영상 데이터처럼 실시간 서비스가 필요한 응용 환경에서 사용 하는데, 기본 원칙은 다음과 같다.
- Flow Label 필드를 지원하지 않는 호스트나 라우터에서는 IPv6 패킷을 생성할 때 반드시 0으로 지정해야 한다.
- 패킷의 중개 과정에서는 현재 값을 그대로 유지하며, 패킷을 수신하는 측에서는 필드 값을 무시한다.
- Flow Label 필드의 값이 0 이외의 동일한 번호로 부여받은 패킷은 Destination Address, Source Address, Priority, Hop-by-Hop Options Header, Routing Header 등을 모두 동일하게 지정해야 한다.
- 즉, 동일 흐름에 속하는 모든 IPv6 패킷들은, 동일 자원, 동일 목적지, 동일 우선권, 동일 옵션을 갖게됨
- 패킷을 중개하는 라우터가 다른 필드 값을 보지 않고 Flow Label 필드만으로 라우팅 등을 간단히 처리하도록 하기 위함이다.
- Flow Label 필드 값은 최대 범위 내에서 랜덤하게 선택된다. 단, 현재의 전송 흐름에서는 동일 번호가 부여되지 않도록 해야 한다.
기타 필드
IPv6의 기본 헤더에 정의된 나머지 필드의 의미는 다음과 같다.
[Version Number(버전 번호)]
- IP 프로토콜의 버전 번호이며, 기존 IPv4와 구분하기 위해 6 으로 지정된다.
[Payload Length(페이로드 길이)]
- 헤더를 제외한 패킷의 크기로, 단위는 바이트이다.
[Next Header(다음 헤더)]
- 기본 헤더 다음에 이어지는 헤더의 유형을 수신 호스트에 알려준다.
- Next Header에 표시할 수 있는 헤더는 IPv6의 확장 헤더일 수도 있고, 상위 계층인 TCP 와 UDP의 헤더일 수도 있다.
➡ TCP와 UDP 헤더가 이어진다면 이것은 확장 헤더가 사용되지 않은 경우이다.
[Hop Limit(홉 제한)]
- IPv4의 Time To Live 필드와 동일한 역할을 수행한다.
- 이 값은 패킷이 라우터에 의해 중개될 때마다 감소되며, 0이 되면 해당 패킷은 네트워크에서 사라진다.
- 참고로 IPv4에서는 이론상 시간 개념이 포함되어 있었지만, IPv6에서는 이를 단순화하여 중개되는 횟수로만 처리한다.
[Source Address/Destination Address(송신 호스트 주소/수신 호스트 주소)]
- 수신 호스트의 IP 주소를 나타낸다.
IPv6 주소
IPv6의 주소 공간은 128비트로 크게 확장되었기 때문에 주소 공간을 사용하는 방법이 IPv4와 다르다.
주소 표현
[IPv4]
8비트 단위의 숫자 4개를 점(.)으로 구분하여 211.223.201.30과 같이 표현한다.
[IPv6]
128비트의 숫자는 4개의 점으로 표현하기엔 너무 크다.
그러므로 16비트의 숫자 8개를 콜론(:) 으로 구분한다.
예를들어, D1D1:1111:3F3F:1700:4545:1212:1111:1231
처럼 표현할 수 있다.
[축약 표시] 이처럼 IPv6 주소 IPv6 Address 는 아주 커 일일이 표기하기 불편하므로 축약해 표시하는 방안도 만들어지고 있다.
아울러 IPv4와 함께 사용하는 환경에서 IPv4 주소를 캡슐화하여 다음과 같이 표현하기도 한다.
X:X:X:X:X:X:d.d.d.d
X:X:X:X:X:X
X는 16비트이므로 총 96(16×6)비트d.d.d.d
: d는 8비트이므로 총 32(8×4)비트
➡ 전체 크기는 IPv6의 주소 크기와 동일한 128(96 +32)비트 이다.
주소 공간
IPv6에서는 주소 공간을 주소대별로 다른 용도로 사용한다.
상위 8비트가 0000 0000으로 시작하는 첫 번째 예약 공간에는 IPv4의 주소 공간도 포함된다.
- Link/Site 지역 주소 공간: 지역적으로 사용하는 주소로, 개별 지역에서 사용하므로 외부와 충돌이 발생하지 않는다.
- 멀티캐스트 주소 공간: 128비트의 전체 주소 필드의 구성
- 상위 8비트의 1111 1111
- 4비트의 플래그
- 4비트의 스코우프 플래그: 멀티캐스트의 적용 범위를 특정 기관이나 사이트로 제한
- 112비트의 그룹 구분자
- 애니캐스트 Anycast: IPv6에서는 유니캐스트, 멀티캐스트 주소뿐 아니라 애니캐스트라는 새로운 주소 체계를 지원
* 멀티캐스팅과 유사한 기능을 제공
* 멀티캐스팅 방식이 그룹 내의 모든 호스트에 패킷을 전송하는 반면, 애니캐스팅 방식은 그룹 내의 특정 호스트에만 패킷을 전송한다.