본문 바로가기

네트워크

IPv4, IPv6 파헤치기

IPv4

 

ㅇ Version (4 bits)

     - 현재로는 버젼 4 (IPv4)를 사용

ㅇ Header Length(HLEN) (4 bits)

    - 헤더의 길이

       . 32비트(4 바이트) 워드 단위로 헤더 길이를 표시

    - 길이 값 표현

       . 최소 5 (4 x 5 = 20 바이트)부터 15(4 x 15 = 60 바이트,옵션 포함된 경우)까지의 값

ㅇ Type of Service (ToS) Flag (8 bits)

    - IP 패킷 헤더 내 "처리량, 전달 지연, 신뢰성, 우선순위"를 나타내는 8 비트 필드

  가. 우선순위 설정용  
     -  Bit 0-2 :  Precedence (우선순위 8단계)
       . 000 : Routine (Normal)
       . 001 : Priority
       . 010 : Immediate
       . 011 : Flash
       . 100 : Flash Override
       . 101 : Critical
       . 110 : Internetwork Control (OSPF에서 셋팅됨)
       . 111 : Network Control

   나. TOS 설정용 
     -  Bit 3 :  Delay (지연) 
       . 0 : 보통의 지연, 1 : 높은 지연
     -  Bit 4 :  Throughput (처리율)
       . 0 : 보통 처리율, 1 : 높은 처리율
     -  Bit 5 :  Reliability (신뢰성)
       . 0 : 보통 신뢰성, 1 : 높은 신뢰성
     -  Bit 6 :  Minimum Cost (최소비용)

    다. 사용안함
    -  Bit 7   : 항상 0으로 셑팅됨

ㅇ Total Packet Length (16 bits) 

    - IP 헤더 및 데이터를 포함한 IP 패킷 전체의 길이를 바이트 단위로 길이를 표시

      . 최대값은 65,535 = (216 - 1)

    - RFC 791 권고 : 68 ~ 65,535 바이트 범위로써 가능

 

ㅇ Fragment Identifier (16 bits) -- ①

   - 각 조각이 동일한 데이터그램에 속하면 같은 일련번호를 공유함

 

ㅇ Fragmentation Flag (3 bits) : 분열의 특성을 나타내는 플래그 -- ②

 

ㅇ Fragmentation Offset (13 bits) -- ③

    - 조각나기 전 원래의 데이터그램의 8 바이트 단위의 위치

 

※ 위 3개의 필드 (Fragment Identifier,Fragmentation Flag,Fragmentation Offset)

   (①,②,③)는 IP 단편화(조각화,분열)과 재배열과 관련된 필드임

 

ㅇ TTL, Time To Live (8 bits)

   - IP 패킷 수명

 

ㅇ Protocol Identifier (8 bits)

   - 어느 상위계층 프로토콜이 데이터 내에 포함되었는가를 보여줌

     . 例) ICMP -> 1, IGMP -> 2, TCP -> 6, EGP -> 8, UDP -> 17, OSPF -> 89 등

 

ㅇ 헤더 체크섬 (16 bits) - 헤더에 대한 오류검출

ㅇ Source IP Address (32 bits) - 송신처 IP 주소

ㅇ Destination IP Address (32 bits) - 목적지 IP 주소

ㅇ IP 헤더 옵션 (선택옵션) (가변 길이 bits)

ㅇ Padding (필요한 경우에만 사용) (가변 길이 bits)

 
 

IPv4 가 거의 고갈되었고 IPv4 헤더 정보에 불필요한 정보가 있어서 IPv6로 이전

Internet Protocol Version 4 (IPv4)는 1981년 IETF의 문서에서 처음 제안된 후로 전 세계적으로 가장 널리 사용 중인 네트워크 계층의 프로토콜이다. 32 bits의 주소공간을 제공하며 약 43억 개의 주소를 사용할 수 있다. 사용 가능한 주소의 수는 프로토콜 설계 당시에는 충분할 것으로 예상되었으나, 인터넷 사용자의 폭발적인 증가로 인한 주소공간의 부족을 해결 및 IPv4에서 지원하지 않는 기능을 제공하기 위해 새로운 프로토콜을 필요로 하게 되었다. 이러한 부분을 해결하기 위해 1994년도에 시작한 IPng (Internet Protocol Next Generation) 프로젝트를 통해 Internet Protocol Version 6 (IPv6)가 제안되었으며 [2], 지속적으로 성능이 개선되고 있다. 또한 IPv6로의 이전을 위해 IP주소를 관리하는 단체인 Internet Assigned Numbers Authority (IANA)는 지난 2011년 2월 ‘보유중인 IPv4주소가 모두 소진되어 추가 할당을 중지한다’고 발표하였다 [3]. 이에 따라 IPv4 환경에서 IPv6 환경으로의 전환이 가속화될 것으로 예상된다.

 
 

바뀐 점 :

- header size: 20 byte -> 40 byte

- header 정보가 더 간단해짐.

- IP 주소 size : 32 bit -> 128 bit(16진수)

 

1. checksum이 사라짐 (router가 하는 일이 많아져서 없앰)

2. ICMP의 새로운 버전(v6)를 사용한다.

      ICMP : TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜

3. options 확장 헤더 형태로 변경

IPv4 헤더에서 사용되던 주요 옵션들(Fragment, Identification, Options 등)이 IPv6 헤더에서는 확장 헤더 형태로 정의되고 있다. 이 때 통신 시 필요한 기능을 IPv6 기본 헤더와 상위 계층 헤더 사이에 추가한다. 이를 통해 IPv6 헤더의 크기는 40 bytes의 고정크기로 유지하면서도 필요에 따라 추가 기능을 사용하는 것이 가능하다.

 
 

IPv6

 

ㅇ Version (4 비트)

    - IPv4 이면 4 (0100), IPv6 이면 6 (0110)

 

ㅇ Traffic Class 또는 Priority (8 비트)

    - IPv4일때의 TOS 필드와 유사

        . IP 패킷 마다 서로다른 서비스 요구사항을 구분하기 위함

        . 따라서, 민감한 실시간 응용 및 긴급하지 않은 데이터 패킷 간의 차별적 구분 가능

   가. (DS 필드 6 비트 + ECN 필드 2 비트 = 총 8 비트)
     - DS 필드  : 요구되는 서비스 질(質)에 대한 유형을 나타내는데 사용
        . IP 데이터그램이 라우터에서 어떻게 처리되어야하는지를 정의하고 있음
     - ECN 필드 : 혼잡 알림을 위해 사용
        . 라우터가 패킷을 즉각 폐기하지 않고, 최종 노드에게 혼잡을 알림

   나. DS (Differentiated Service, 차등 서비스) 필드  
     - DSCP 값 : 64개 코드 포인트
        . 0 값 : 일반 최선 노력 인터넷 트래픽 (기본값)
     - 카테고리 구분
        . 1 (xxxxx0) : 표준
        . 2 (xxxx11) : 실험용/로컬
        . 3 (xxxx01) : 실험용/예약

   다. ECN (Explicit Congestion Notification, 명시적 혼잡 알림) 필드
     -  00         : 패킷이 ECN 기능을 사용하지 않음
     -  01 또는 10 : 발신측에서 종단점이 ECN 기능을 수용함을 나타냄
     -  11         : 라우터가 혼잡이 발생했음을 알리고자하는 표식

ㅇ Flow Label (20 비트)

    - IP를 연결지향적 프로토콜로 사용할 수 있게 함

       . 실시간 서비스 등 같이 우선권을 주기위하여 특정 트래픽 Flow에 대한 라벨링

 

ㅇ Payload length (16 비트)

    - 페이로드부의 길이 (확장헤더 + 상위계층 데이터) < 216(65536) 까지 가능

 

ㅇ Next header (8 비트)

    - 기본헤더 다음에 위치하는 확장 헤더의 종류를 표시

       . IPv4의 프로토콜 번호와 같은 역할

ㅇ Hop limit (8 비트)

    - 버젼 4일때의 TTL과 같은 역할

 

ㅇ Source address (128 비트)

    - 발신처 주소

ㅇ Destination address (128 비트)

    - 목적지 주소

       . 만일, 소스 라우팅일 경우에 다음 라우터 주소를 나타냄

 
 

 
 

추가)

IP fragmentation

대역폭이 줄어들면 한 패킷을 여러개로 나눠 보내야한다. 대역폭이 다시 늘어나도 HOST에서 재조립한다.

 

length : header 20byte를 포함해 보내는 길이id : 한 패킷이 동일한 패킷으로 나뉨을 나타내기 위해 같은 패킷은 다같은 id를 가짐fragflag: 뒤에 따라오는 패킷이 있으면 1, 없으면 0offset : header를 제외한 데이터의 첫 주소 /8

 

 

 

'네트워크' 카테고리의 다른 글

CRC 오류체크 비트  (0) 2022.07.17
[강의 정리] 원하는 사이트 연결까지 전체 흐름 정리  (0) 2022.07.17
CIDR란?  (0) 2022.07.17
서브넷(Subnet)이란?  (0) 2022.07.17
[강의정리] Data plane, Control plane  (0) 2022.07.17