[컴퓨터 네트워크] 07. IPv6(차세대 IP)

2024. 4. 17. 20:22·Computer Science/Network

IPv6


IPv6 주소

  • IPv6로의 전환의 주된 이유는 주소공간 부족
  • IPv6의 거대한 주소 공간은 주소 고갈의 문제 해결
  • IPv6 조소는 128 비트 (16 바이트 (옥텟))
    • IPv4의 4배 길이

표현

  • 128 비트를 컴퓨터는 쉽게 저장하지만, 인간은 다루기 쉽지 않다
  • 바이너리 표기법과 16진 표기법 (Coloned Hexadecimal)
    • 32개의 16진수를 4개씩 끊어서 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 이런식으로 적는다

주소공간

  • IPv6의 주소 개수는 2^128 개
  • 주소 고갈 문제 해결
  • IPv4 주소(43억 개)의 296 배 (1028배)
  • 3.4x10^34 개

주소 공간 할당

  • IPv6의 주소공간은 가변길이의 여러 블럭으로 분할하고, 각 공간은 특수 목적으로 사용
  • 대부분의 공간은 아직 미할당
    • 미래 사용 위해 남겨둠

IPv6 주소에 할당된 프리픽스

 

자동설정

  • IPv6의 흥미로운 특징중의 하나가 호스트 주소의 자동설정 기능
  • IPv4에서는 수동설정, 혹은 DHCP에 의한 자동설정
  • DHCP는 IPv6에서도 주소할당에 사용
  • IPv6에서는 호스트가 스스로 주소설정 가능

Renumbering

  • 서비스 제공자를 변경하는 경우에, 인터페이스 ID 는 동일하고, 네트워크 프리픽스와 서브넷 ID만 변경하면 됨
  • 네트워크 프리픽스와 서브넷 ID는 라우터가 주기적으로 메시지를 통하여 알리고, 각 호스트는 자신의 주소를 이 값으로 변경한다
  • 네트워크 주소가 바뀌면 관리자가 바꿔주는 것이 아니라, 라우터가 바뀐 주소를 주기적으로 네트워크 안 라우터에게 알려줌으로써 호스트가 수신하여 앞부분 주소를 자동적으로 사용 

IPv6 프로토콜

  • IPv6 패킷 포맷
    • 고정헤더
    • 확장헤더
  • 메시지 유형

패킷 포맷

  • 40 바이트 기본 헤더
  • 유료부하 (payload)
    • 확장 헤더 (Optional) + 데이터(상위계층)
    • 최대 65535 바이트

 

확장헤더

  • 6가지 확장헤더
    • IPv4에서는 옵션
  • hop-by-hop option
  • source routing
  • Fragmentation
  • Authentication
  • encrypted security payload
  • destination option

ICMPv6 프로토콜

  • ICMPv6는 ICMPv4 보다 복잡
    • ARP, IGMP 기능 흡수
  • 새로운 메시지 추가됨

Error-Reporting Messages

  • 보고되는 4가지 에러 종류
    • destination unreachable
    • packet too big
    • time exceeded(ex. TTL)
    • parameter problems
  • Source-quenched 메시지는 제외됨
    • IPv4에서 혼잡제어 용도
    • IPv6에서는 헤더의 priority, flow label 필드를 활용하여 혼잡제어

Informational Messages

  • 2 종류
    • echo request 메시지(ex. ping)
    • Echo reply 메시지
  • 인터넷에서 통신 가능 상태 체크

Neighbor-Discovery 메시지

  • 내 주변에 목적지가 있는지? 해당 목적지의 주소는?
  • 2개의 새로운 프로토콜 지원
    • Neighbor-Discovery (ND) protocol
    • Inverse-Neighbor-Discovery (IND) protocol

Group Membership Message

  • 해당 네트워크에 그룹멤버가 있나 없나 찾는 것
  • IPv4에서 그룹 통신 관리를 다루는 프로토콜은 IGMPv3 프로토콜
  • IPv6에서는 Multicast Listener Delivery 프로토콜이 담당
    • MLDv1이 IGMPv2의 IPv6 버젼
    • MLDv2가 IGMPv3의 IPv6 버전
  • MLDv2의 2 메시지 유형
    • membership-query 메시지(라우터)
    • membership-report 메시지(호스트)

IPv4에서 IPv6로의 전환

  • 전환은 IPv4와 IPv6 시스템 사이에 어떠한 문제도 발생하지 않도록 매끄럽게 (smooth)

3가지 전환 전략

  • 듀얼 스택 (Dual stack)
  • 터널링 (Tunneling)
  • 헤더 변환 (Header translation)

 

IP 주소의 사용

  • 전환기간 동안에는 IPv4와 IPv6 두 방식의 주소 모두 사용
  • 전환 완료 시 IPv4 주소는 없어질 것
  • DNS 서버가 호스트 이름으로부터 두 방식의 주소 모두를 매핑해줄 것이고, 전세계의 모든 호스트가 IPv6로 전환되면 IPv4 디렉토리는 없어질 것임

 

'Computer Science > Network' 카테고리의 다른 글

[컴퓨터네트워크] 09. 전송계층(2)  (0) 2024.05.18
[컴퓨터네트워크] 08. 전송계층(1)  (0) 2024.05.18
[컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)  (0) 2024.04.17
[컴퓨터네트워크] 05. 통신절차  (0) 2024.04.10
[컴퓨터네트워크] 04. 유니캐스트 라우팅(2) - 유니캐스트 라우팅 프로토콜  (0) 2024.04.10
'Computer Science/Network' 카테고리의 다른 글
  • [컴퓨터네트워크] 09. 전송계층(2)
  • [컴퓨터네트워크] 08. 전송계층(1)
  • [컴퓨터네트워크] 06. 멀티캐스트 라우팅(Multicast Routing)
  • [컴퓨터네트워크] 05. 통신절차
lumana
lumana
배움을 나누는 공간 https://github.com/bebeis
  • lumana
    Brute force Study
    lumana
  • 전체
    오늘
    어제
    • 분류 전체보기 (456)
      • Software Development (27)
        • Performance (0)
        • TroubleShooting (1)
        • Refactoring (0)
        • Test (8)
        • Code Style, Convetion (0)
        • DDD (0)
        • Software Engineering (18)
      • Java (71)
        • Basic (5)
        • Core (21)
        • Collection (7)
        • 멀티스레드&동시성 (13)
        • IO, Network (8)
        • Reflection, Annotation (3)
        • Modern Java(8~) (12)
        • JVM (2)
      • Spring (53)
        • Framework (12)
        • MVC (23)
        • Transaction (3)
        • AOP (11)
        • Boot (0)
        • AI (0)
      • DB Access (1)
        • Jdbc (1)
        • JdbcTemplate (0)
        • JPA (14)
        • Spring Data JPA (0)
        • QueryDSL (0)
      • Computer Science (129)
        • Data Structure (27)
        • OS (14)
        • Database (10)
        • Network (21)
        • 컴퓨터구조 (5)
        • 시스템 프로그래밍 (23)
        • Algorithm (29)
      • HTTP (8)
      • Infra (1)
        • Docker (1)
      • 프로그래밍언어론 (15)
      • Programming Language(Sub) (77)
        • Kotlin (1)
        • Python (25)
        • C++ (51)
        • JavaScript (0)
      • FE (11)
        • HTML (1)
        • CSS (9)
        • React (0)
        • Application (1)
      • Unix_Linux (0)
        • Common (0)
      • PS (13)
        • BOJ (7)
        • Tip (3)
        • 프로그래머스 (0)
        • CodeForce (0)
      • Book Review (4)
        • Clean Code (4)
      • Math (3)
        • Linear Algebra (3)
      • AI (7)
        • DL (0)
        • ML (0)
        • DA (0)
        • Concepts (7)
      • 프리코스 (4)
      • Project Review (6)
      • LegacyPosts (11)
      • 모니터 (0)
      • Diary (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
lumana
[컴퓨터 네트워크] 07. IPv6(차세대 IP)
상단으로

티스토리툴바