티스토리 뷰

책 : Data & Computer Communication - 제 10판 -

저자 : William Stalling

< 제 14장 인터넷 프로토콜 > pg 441

 

 


 

1. IPv6

IPv6의 등장은 IPv4 가 가지는 주소한계 때문이다. IPv4의 32비트의 주소필드는 40억이 넘는 주소를 할당할 수 있지만, 한 기관이 하나의 LAN 만 사용하는 것이 아니기 때문에 주소필드의 부족함이 생겼다. 이 외에도 다음과 같은 문제점이 발생했다.

1) IPv4의 문제점

  • IP 주소의 2계층 구조 ( 네트워크 / 호스트 ) 는 주소 공간의 낭비가 생긴다.

--> 네트워크 번호가 어떤 네트워크에 할당되었다고 하자. 그러면 네트워크 번호에 대한 모든 호스트 번호를 이 네트워크에 배정할 것이다. 실제로는 주소(호스트)가 5개밖에 없다고 할지라도, 네트워크 번호가 사용된 이상 이 네트워크의 모든 주소를 사용하는 것 처럼 보여진다.

  • IP 주소 모델은 IP 네트워크가 인터넷에 연결되어 있지 않더라도 유일한 네트워크 번호를 할당해야 한다.
  • 새로운 분야에서의 TCP/IP 사용 증가로 인한 IP 주소에 대한 요구가 급격히 상승
  • IPv4는 하나의 IP주소 - 각 호스트에 할당하는 방식이지만, 좀 더 좋은 기능을 원한다면 단일 호스트에 여러개의 IP주소를 배정하는 것이 좋다.

2) IPv6의 특징

  • 확장된 주소 공간 ( 32비트 -> 128비트 - 8개의 16진수 수를 : 로 구분)

-> 주소 축약 : 0000 -> 0 // 단 하나의 0 에 대해서 생략 가능

  • 선택 사항 ( Option ) 을 따로 분리 : IPv6에 있지 않고 별도의 선택 사항 헤더에 있다. 이렇게 분리된 선택사항 헤더는 라우터에서 검사하거나 처리하지 않기 때문에 패킷 처리 과정이 단순하고 빠르다. 또한 새로운 선택사항의 추가를 쉽게한다.
  • 주소 자동구성 : IP 주소의 동적 할당
  • 주소 지정 융통성 증가 : 애니 캐스트 / 멀티 캐스트 / 유니 캐스트 ( IPv6 는 브로드캐스트를 지원하지 않는다. )

※ 애니 캐스트 : 1대 多 전송 ( 다수 중 가장 가까운 하나에게만 전송 )

※ 멀티 캐스트 : 1대 多 전송

※ 유니 캐스트 : 1대 1 전송

  • 자원 할당 지원 : 송신자의 요구를 위해 특정 트래픽 흐름에 속하는 패킷에 레이블을 달 수 있게 지원한다.

3) IPv6 PDU ( 프로토콜 데이터 단위 )구조

 

3-1) IPv6 header : 필수 헤더이다. 40옥텟의 고정길이를 가진다. 이 헤더를 제외한 나머지를 확장 헤더라고 부른다. ( 첫번째 그림을 참조 ) IPv4 와 같은 부분은 설명을 생략하였다.

  • 버전 ( 4비트 ) : 인터넷 프로토콜의 버전 번호 ( = 6 )
  • 페이로드 길이 : 헤더 다음에 따라오는 IPv6 패킷의 나머지 부분 길이를 옥텟 단위로 표시. ( = 확정헤더의 총 길이 + 전송계층 PDU )
  • 다음 헤더 : 바로 다음에 오는 헤터의 Type 을 가리킨다. 가리키는 것은 확장헤더이거나 TCP 또는 UDP 같은 상위계층 헤더이다.
  • 홉 한계 : 이 패킷에 대한 남은 홉 수 이다. 노드에서 1씩 감소하며 홉 한계가 0 이 되는 순간 패킷을 폐기한다.
  • 흐름 레이블 ( Flow label ) : 발신지가 중간 라우터들에게 특별한 처리를 요청한 패킷

-> 발신지 관점 : 같은 전송 서비스 요구 조건을 가지는 발신지의 한 응용에서 생성한 일련의 패킷

-> 라우터 관점 : 라우터가 처리하는 방법에 영향을 주는 속성을 공유하고 있는 일련의 패킷

-> 흐름의 식별 : 발신지 주소 + 목적지 주소 + 흐름 레이블

--> 기능 : 라우터가 헤더의 다른 정보 없이 흐름 레이블 정보만으로도 경로를 찾아 패킷을 처리할 수 있다.

3-2) Hop-by-Hop : 홉간 선택 사항 헤더로 홉간 처리를 요구하는 선택사항을 정의

  • 경로상의 모든 라우터가 처리해야 한다.
  • 구성 : 옵션 식별자 ( 8비트 ) + 옵션길이 ( 8비트 ) + 옵션 데이터 ( 가변길이 )
  • 옵션 식별자의 구성 : 2+1+5 옵션 데이터 ( 가변길이 )

2 --> 옵션 미지원 라우터의 행동을 지시

00 : 홉간 옵션 헤더를 건너뛰시오. // 01 : 패킷을 폐기하시오

10 : 패킷을 폐기하고 발신지 주소로 ICMP 매개변수 문제 메시지를 보내시오

11 : 패킷을 폐기하고 목적지 주소가 멀티캐스트 주소가 아닐 때만 패킷의 발신지 주소로 ICMP 매개변수 문제 메시지를 보내시오

5 --> flag 라고 하며 옵션 데이터 변경 기능 여부

  • 옵션 데이터 ( 가변길이 )

-> 패드 : 헤더가 8바이트의 배수가 되도록 0을 패딩

-> 점보 페이로드 : 6335 옥텟 이상의 패킷 전송 시 사용, IPv6 기본 헤더의 페이로드 길이는 0으로 표시

-> 라우터 경보 : 라우터가 패킷의 내용을 알아야 되는 경우 사용

3-3) 단편 헤더 ( Fragment )

  • IPv6 의 단편화는 발신지에서 수행 ( IPv4 는 라우터에서 수행했다 )
  • 발신지가 경로 상 모든 네트워크의 최소 MTU 값을 알아내는 알고리즘을 수행해야 한다

※ MTU ( Maximum Transfer Unit : 최대 패킷 크기 )

3-4) 경로배정 헤더

  • 하나 이상의 패킷이 목적지로 가는 도중 방문하는 중간 노드의 목록을 가지고 있다.

3-5) 목적지 선택 사항 헤더

  • 패킷의 목적지 노드에서만 검사하는 선택사항 정보를 가지고 있다.