[CS/ Network] 컴퓨터 네트워킹 하향식 접근 8판 4장 네트워크 계층: 데이터 평면 4.3 인터넷 프로토콜(IP): IPv4, 주소체계,IPv6 등

yujeongkwon·2023년 9월 26일
0

CS / Network

목록 보기
22/27

목차
4.3 인터넷 프로토콜(IP): IPv4, 주소체계, IPv6 등 299
4.3.1 IPv4 데이터그램 포맷 299
4.3.2 IPv4 주소체계 302
4.3.3 네트워크주소변환(NAT) 311
4.3.4 IPv6 314


👁‍🗨 4.3.1 IPv4 데이터그램 포맷

  • 데이터그램(datagram) : 인터넷 네트워크 계층 패킷
  • 옵션 필드 제외 총 20바이트의 헤더
  • 데이터 그램이 TCP 세그먼트를 전송한다면 단편화 되지 않은 각 데이터그램은 애플리케이션 계층의 메시지와 더불어 총 40바이트의 헤더를 전송
  • IPv4 데이터그램의 주요 필드
    • 버전 번호: 4비트로 데이터그램의 IP 프로토콜 버전을 명시
      • 라우터는 버전 번호를 확인하여 데이터그램의 나머지 부분을 어떻게 해석할지 결정
      • 다른 버전의 IP는 다른 데이터그램 포맷을 사용
    • 헤더 길이: 네 비트로 IP 데이터그램에서 실제 페이로드가 시작하는 곳 결정
      • IPv4 데이터그램은 헤더에 가변 길이의 옵션을 포함하므로 필요
      • 대부분의 IPv4 데이터그램은 옵션을 포함하지 않으므로 대체로 IPv4 데이터그램 헤더는 20바이트
    • 서비스 타입(type of service, TOS): 각 다른 유형의 IP 데이터그램을 구별
      • 실시간 데이터그램(전화)과 비실시간 트래픽(ex FTP)을 구분하는 데 유용
      • 제공될 특정 클래스 레벨은 해당 라우터의 네트워크 관리자가 결정하고 구성할 정책 문제
      • TOS 비트 중 2개는 명시적 혼잡 알림에 사용
    • 데이터그램 길이: 바이트로 계산한 IP 데이터그램의 전체 길이
      • 필드의 크기는 16비트 -> IP 데이터그램의 이론상 최대 길이는 65,535바이트
      • but 1,500바이트보다 큰 경우는 거의 없으므로 최대 크기의 이더넷 프레임의 페이로드 필드에 IP 데이터그램이 장착 가능
    • 식별자, 플래그, 단편화 오프셋: IP 단편화와 관련
      • 큰 IP 데이터그램이 여러 개의 작은 IP 데이터그램으로 분할
        -> 목적지로 독립적으로 전달
        -> 페이로드 데이터가 최종 호스트의 트랜스포트 계층으로 전달되기 전,
        다시 모임
      • 새로운 iP 버전인 IPv6는 단편화 사용X.
    • TTL(time-to-live): 네트워크에서 데이터그램이 무한히 순환하지 않도록 함(라우팅 루프
      • 라우터가 데이터그램을 처리할 때마다 감소
      • 필드가 0이 되면 라우터가 데이터그램을 폐기
    • 프로토콜: IP 데이터그램이 최종 목적지에 도착했을 때 사용
      • IP 데이터그램에서 데이터 부분이 전달될 목적지의 트랜스포트 계층의 특정 프로토콜을 명시
    • 헤더 체크섬: 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는데 도움
      • 헤더에서 각 2바이트를 수로 처리하고 이 1 의 보수를 합산하여 계산
      • 라우터는 수신한 각 IP 데이터그램마다 헤더 체크섬을 계산하고 이 값과 데이터그램 헤더의 체크섬이 다르면 오류 상태임을 감지
      • 라우터는 보통 오류가 검출된 데이터그램을 폐기
      • TTL 필드와 옵션 필드의 값은 변경되므로 체크섬은 각 라우터에서 재계산 및 저장
      • 왜 TCP/IP는 트랜스포트 계층과 네트워크 계층에서 오류 검사를 수행하는가?
          1. IP 헤더만 IP 계층에서 체크섬을 수행하지만 TCP/UDP 체크섬은 전체 TCP/UDP 세그먼트를 계산
          1. TCP/UDP와 IP는 동일한 프로토콜 스택에 속할 필요가 없다.
          • 원리상 TCP는 IP가 아닌 다른 네트워크 프로토콜 위에서 운영될 수 있음
          • IP는 TCP/UDP로 전달되지 않는 데이터를 전달할 수 있음
    • 출발지와 목적지 IP 주소
      • 종종 출발지 호스트는 2장에서 논의한 것처럼 DNS 검색을 통해 목적지 주소를 결정
    • 옵션: 옵션 필드는 IP 헤더를 확장
      • 모든 데이터그램 헤더 옵션 필드에 정보를 포함하지 않는 방법으로 오버헤드를 해결하기 위해 헤더 옵션은 거의 사용되지X
        • 데이터그램 헤더가 가변 길이로 데이터 필드 시작점을 초기에 결정할 수 없어 옵션은 문제를 복잡하게 만듬
        • 일부 데이터그램은 옵션 처리 유무에 따라서 라우터에서 IP 데이터그램을 처리하는 데 필요한 시간이 크게 달라짐
        • 이런 가변 길이의 옵션은 고성능 라우터 및 호스트에서 IP 처리에 특히 중요
      • 위 이유로 IP 옵션은 IPv6에 포함되지 않음.
    • 데이터(페이로드)
      • 데이터그램이 존재하는 이유
      • 대부분의 경우 목적지에 전달하기 위해 트랜스포트 계층 세그먼트(TCP나 UDP)를 포함하지만 ICMP 메시지같은 유형의 데이터를 담기도 함.

🌐4.3.2 IPv4 주소체계

  • 호스트는 일방적으로 네트워크와 연결되는 하나의 링크를 가짐
    • 호스트 IP가 데이터 그램을 보낼 때 이 링크를 통해 보냄
  • 인터페이스 : 호스트(라우터)와 물리적 링크 사이의 경계
  • 라우터와 인터페이스
    • 라우터 : 한 링크로부터 데이터그램을 수신하여 다른 링크로 전달
      • ㄴ 2개 이상의 연결링크 필요
      • 라우터와 이런 링크 사이의 경계 또한 인터페이스
    • ㄴ 각 랑크마다 하나의 인터페이스를 가지고 하나의 라우터는 여러 개의 인터페이스를 가짐
    • 모든 호스트와 라우터는 IP 데이터 그램을 송수신 가능
      ㄴ=> IP는 각 호스트와 라우터 인터페이스가 IP 주소를 갖도록 요구
    • 따라서 기술 면에서 IP 주소 : 인터페이스를 포함하는 호스트 라우터보다는 인터페이스와 관련이 있음
  • IP 주소
    • 길이 : 32비트 (4바이트)
    • 2^32개(대략 40억개)의 주소 사용 가능
    • 일반적으로 십진 표기법 사용 : 주소의 각 바이트를 십진수로 표현하고 주소의 다른 바이트와 점(.)으로 구분
    • ex) 십진 표기법 : 193.32.216.9 -> 이진수 : 11000001 00100000 11011000 00001001
  • 모든 호스트와 라우터의 각 인터페이스는 고유한 IP 주소를 가짐
    • 마음대로 주소 선택 불가
    • 인터페이스의 IP 주소 일부는 연결된 서브넷이 결정
  • 그림 4.18 IP 주소체계와 인터페이스의 예
    • 왼쪽 3개의 호스트와 연결된 라우터 인터페이스는 모두 233.1.1.xxx 형식의 IP 주소를 가짐
      • = 동일한 왼쪽 24비트 사용
      • 4개의 인터페이스가 만나는 지점에 라우터 없이 하나의 네트워크에 서로 연결됨
      • ㄴ 이더넷 LAN으로 상호연결되고 이 경우 인터페이스는 이더넷 허브나 이더넷 스위치, 무선 AP로 상호 연결됨 = 서브넷
  • 서브넷 : IP 용어, 그림에서 세 호스트들의 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크
    • 서브넷 = IP 네트워크 = 네트워크
    • 그림에서 왼쪽 서브넷에 IP주소체계가 223.1.1.0/24라는 주소를 할당한다.
      • /24 부분은 서브넷 마스크라고함
      • 32비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 가리킴
    • 그림 4.18에는 2개의 서브넷(223.1.2.0/24, 223.1.3.0/24)가 있음


그림 4.20

  • 각 라우터는 3개의 인터페이스를 가짐
  • IP 서브넷 : 223.1.1.0/24, 223.1.2.0/24, 223.1.3.0/24
    + 라우터 R1,R2를 연결하는 인터페이스용으로 223.1.9.0/24 서브넷,
    + 라우터 R2, R3을 언결하는 인터페이스용으로 223.1.8.0/24 서브넷,
    • 라우터 R3, R1을 연결하는 인터페이스용으로 223.1.7.0/24 서브넷
  • 서브넷을 결정하려면 먼저 호스트나 라우터에서 각 인터페이스를 분리하고 고립된 네트워크를 만든다. 이 고립된 네트워크의 종단점은 인터페이스의 끝이 된다. 이렇게 고립된 네트워크 각각을 서브넷이라고 부른다. = 그림에서 흐리멍청하게 보이는 구름모양
  • 위의 말을 적용하면 6개의 서브넷을 가짐

  • 다수의 이더넷 세그먼트와 종단 간의 링크를 갖는 기관(회사나 학교) : 한 서브넷에서 모든 장비가 같은 서브넷 주소를 갖는 그런 서브넷을 여러 개 가질 수 있음
  • 원칙대로라면 서로 다른 서브넷은 다른 서브넷 주소를 가져야 하지만,실제로 서브넷 주소는 종종 같은 부분이 많음 -> 그이유 ㄱ
  • CIDR(CIassless InterDomain Routing, 사이다(cider)
    • 인터넷 주소 할당 방식
    • 서브넷 주소체계 표기를 일반화
    • 서브넷 주소체계로서, 32비트 IP 주소는 두 부분으로 나누고,이것은 다시 점으로 된 십진수 형태의 a.b.c.d/x를 가짐
      • x는 주소 첫 부분의 비트 수
  • 주소의(네트워크) 프리픽스(prefix) : a.b.c.d/x 형식 주소에서 최상위 비트(most significant bit, MSB)를 의미하는 x, 이 x는 IP 주소의 네트워크 부분을 구성
  • 한 기관은 통상 연속적인(공통 프리픽스를 갖는 주소 범위) 주소의 블록을 할당받음
    • 이 경우에 기관 장비들의 IP 주소는 공통 프리픽스를 공유
    • 외부 기관의 라우터는 다른 기관 내부의 목적지 주소로 데이터그램을 전달할 때, 단지 앞의 x비트들만 고려
    • a.b.c.d/x 형태의 한 엔트리만으로 기관 목적지로 패킷을 전달하는 데 충분하므로, 이런 라우터들에서 포워딩 테이블의 크기를 상당히 줄여줌
  • 주소의 나머지 32-x 비트들
    • 기관 내부에 같은 네트워크 프리픽스를 갖는 모든 장비를 구별
    • = 기관 내부의 라우터에서 패킷을 전달할 때 사용
    • 이 하위 비트들은 앞서 언급한 것처럼 추가 서브넷 구조를 가질 수도 있음
      • ex) CIDR식 주소 a.b.c.d/21 의 첫 21 비트들은 기관의 네트워크 프리픽스
        • a.b.c.d/24는 기관 내부의 특정 서브넷으로 나타냄 = 최하위 11비트 일부를 내부 서브넷으로
  • 클래스 주소체계
    • CIDR가 채택되기 전, IP 주소의 네트워크 부분을 8, 16, 24비트로 제한
    • 8,16,24비트 서브넷 주소를 갖는 서브넷을 각각 A, B, C 클래스 네트워크로 분류
    • 단점
      • A 클래스(/24) 서브넷 : 2^8 — 2 = 254개(예약 2개 빼고)의 호스트 제공
      • B 클래스(/16) 서브넷 : 반면에 65,634개의 호스트를 제공
      • ㄴ=> 클래스간 갭차이 졸라큼 -> 사용하기 어렵 2000개 호스트 가진 회사는 B 줌 = 6만개 넘개 낭비
  • 브로드캐스트 주소
    • IP 주소의 또 다른 형태, 255.255.255.255
    • 호스트가 목적지 주소가 255.255.255.255인 데이터그램을 보내면, 이 메시지는 같은 서브넷에 있는 모든 호스트에게 전달
    • 마찬가지로 라우터는 선택적으로 이웃 서브넷에 메시지를 전달
    • 일반적으로 잘 사용되지는 않음

주소 블록 획득

  • 네트워크 관리자가 기관의 서브넷에서 사용하기 위한 IP 주소 블록을 얻는 방법 1
    : 먼저 이미 할당받은 주소의 큰 블록에서 주소를 제공하는 ISP와 접촉
    • ex) ISP는 주소 블록 200.23.16.0/20을 할당받았다고 가정
      • ISP는 이 주소 블록을 다음처럼 같은 크기의 작은 주소 블록 8개로 나누고,이것으로 8개 조직을 지원가능
  • 네트워크 관리자가 기관의 서브넷에서 사용하기 위한 IP 주소 블록을 얻는 방법 2
    : 최상위 국제기관
    • IP 주소 공간을 관리하고 ISP와 다른 조직에 주소 블록을 할당하는 최상위 국제기관인 비영리 단체 ICANN : IP 주소 할당과 DNS 루트 서버 관리
      • 도메인 이름을 합당하고 도메인 이름 분쟁을 해결

호스트 주소 획득: 동적 호스트 구성 프로토콜

  • 한 기관은 ISP로부터 주소 블록을 획득하여, 개별 IP 주소를 기관 내부의 호스트와 라우
    터 인터페이스에 할당

    • 라우터 인터페이스 주소에 대해,시스템 관리자는 라우터 안에 IP 주소를 할당
    • 종종 네트워크 관리 도구를 사용해서 원격으로 수행
    • 호스트에 IP 주소를 할당하는 것은 수동으로 구성이 가능하지만 일반적으로 동적 호스트 구성 프로토콜(DHCP)을 더 많이 사용
  • DHCP : 호스트가 (배정되는) IP 주소를 자동으로 얻도록 함.

    • 네트워크 관리자는 해당 호스트가 네트워크에 접속하고자 할 때마다 동일한 IP 주소를 받도록 하거나,다른 임시 IP 주소를 할당하도록 DHCP를 설정
    • 호스트 IP 주소의 할당뿐만 아니라,서브넷 마스크,첫 번째 홉 라우터(=디폴트 게이트웨이) 주소, 로컬 DNS 서버 주소 같은 추가 정보를 얻게 해줌
    • 플러그 앤 플레이 프로토콜 또는 제로 구성 프로토콜로도 불림
      • DHCP 능력 덕
      • 작업을 수동으로 수행하는 네트워크 관리자에게 매우 유익
      • 많은 사용자가 이동하고, 주소들이 제한된 시간 동안에만 필요할 경우 DHCP 굿굿
    • 클라이언트-서버 프로토콜
      • 클라이언트는 일반적으로 IP 주소를 포함하며 네트워크 설정을 위한 정보를 얻고자 새롭게 도착한 호스트다.
      • 가장 간단한 경우, 각 서브넷은 DHCP 서버를 가질 것
        • 만약 서버가 현재 서브넷에 없다면, DHCP 연결 에이전트(일반적으로 라우터)가 필요
        • DHCP 연결 에이전트(일반적으로 라우터): 해당 네트워크에 대한 DHCP 서버 주소를 알려줌
  • 그림 4.23 : 223.1.2/24에 연결된 DHCP 서버, 서브넷 223.1.1/24, 223.1.3/24에 접속될 클라이언트가 도착할 경우, 연결 에이전트로 서비스할 라우터를 보여줌

  • 그림 4.24 : 새로운 호스트가 도착할 경우,그림 4.23에서 설정된 네트워크상에서 수
    행될 DHCP 프로토콜 4단계의 과정을 보여줌

    • 이 그림에서 yiaddr(your Internet address)은 새롭게 도착한 클라이언트에 할당될 주소를 나타냄.
    1. DHCP 서버 발견 : 먼저 새롭게 도착한 호스트는 상호작용할 DHCP를 발견
      • DHCP 발견 메시지를 사용하여 수행됨
      • 클라이언트는 포트 67번으로 UDP 패킷을 보냄
        -> UDP 패킷은 IP 데이터그램으로 캡슐화
        이때, 호스트는 자신이 접속될 네트워크의 IP 주소, 해당 네트워크의 DHCP 서버 주소 모름
        -> DHCP 클라이언트는 DHCP 발견 메시지를 포함하는 IP 데이터그램을 생성
        • 목적지 IP 주소를 브로드캐스트 IP 주소인 255.255.255.255로 설정 + 출발지 IP 주소는 0.0.0.0으로 설정
        • ㄴ=DHCP 클라이언트는 링크 계층으로 IP 데이터그램을 보내며 이 프레임은 서브넷에 연결된 모든 노드로 브로드캐스트됨
    2. DHCP 서버 제공 : DHCP 발견 메시지를 받은 DHCP 서버는 DHCP 제공 메시지를 클라이언트로 응답
      • 이때에도 다시 IP 브로드캐스트 주소 255.255.255.255를 사용하여 서브넷의 모든 노드로 이 메시지를 브로드캐스트
      • 서브넷에는 여러 DHCP 서버가 존재
      • ㄴ-> 클라이언트는 가장 최적의 위치에 있는 DHCP 서버 선택
      • 각각의 서버 제공 메시지는 수신된 발견 메시지의 트랜잭션 ID,클라이언트에 제공된 IP 주소,네트워크 마스크,IP주소 임대 기간(IP 주소가 유효한 시간)을 포함
      • 서버를 위해 설정하는 임대 시간은 일반적으로 몇 시간 또는 며칠
    3. DHCP 요청 : 새롭게 도착한 클라이언트는 하나 이상의 서버 제공자 중에서 선택 -> 선택된 제공자에게 파라미터 설정으로 되돌아오는 DHCP 요청 메시지로 응답
    4. DHCP ACK: 서버는 DHCP 요청 메시지에 대해 요청된 파라미터를 확인하는 DHCP ACK 메시지로 응답
  • 클라이언트가 DHCP ACK 메시지를 받으면, 상호작용은 종료되고 클라이 언트는 DHCP 할당 IP 주소를 임대 기간 동안 사용 가능

    • 클라이언트의 지속사용을 위해, DHCP는 IP 주소 임대 갱신 제공
  • 이동성 측면에서 DHCP의 큰 결점 : 원격 애플리케이션에 대한 TCP 연결은 유지X

    • 노드가 새로운 서브넷에 연결하고자 할 때마다 새로운 IP 주소를 DHCP로부터 얻기때문에


💫4.3.3 네트워크 주소 변환(NAT)

  • SOHO(small office, home office) 네트워크의 확산
    • ㄴ-> 모든 SOHO의 IP 장치를 수용할 수 있는 주소 범위를 할당해야함
    • but 이미 ISP가 SOHO 네트워크의 해당 주소 범위에 인접한 부분을 할당해버렸다면?
    • 특정 홈 네트워크 소유자가 IP 주소가 어떻게 관리되는지 알고자 한다면?
  • 네트워크 주소 변환(network address translation, NAT)으로 주소 할당 가능
    • : IP 패킷에 적힌 소켓 주소의 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술
    • NAT 가능 라우터는 그림 4.25의 오른쪽처럼 홈 네트워크의 일부인 인터페이스를 가짐
    • 사설 주소를 갖는 권역 : 네트워크 주소들이 그 네트워크의 내부에 있는 장비에게만 의미있는 네트워크
      - 4.25 그림에서 홈 네트워크의 4개 인터페이스 모두 같은 네트워크 주소 10.0.0.0/24를 가짐
      - 주소 공간 10.0.0.0/8은 사설망 또는 홈 네트워크와 같은 사설 개인 주소를 갖는 권역을 위해 예약된 IP 주소 공간(클래스 A,B,C) 세 부분 중의 하나

      /8 만큼 공간이 홈네트워크에 할당되면 존내 마누니까 우리집 홈네트어크는 /24까지만 IP가짐. 남은 /8 IP공간은 다른 사람들이랑 나눠가짐 = IP 효율적으로 나누기위해
      홈네트워크가 글로벌로 나가면 충돌될 수 있으니까 (코드 지역변수를 전역변수로 바꾸면 난리나는거처럼) NAT 라우터를 거쳐서


NAT의 중요성

  • 많은 홈 네트워크가 같은 주소 공간 10.0.0.0/24를 사용하고 있다고 가정
  • 주어진 홈 네트워크 내부 장비는 10.0.0.0/24 주소체계로 서로 패킷 송신 가능
  • but 홈 네트워크를 벗어나 글로벌 인터넷으로 가는 패킷 전달은 이 주소들을 사용X
  • = 네트워크 주소들이 그 네트워크의 내부에 있는 장비에게만 의미있는 사설 주소를 갖는 권역
  • 위 때문에 글로벌 인터넷과의 송수신에서 NAT는 중요

NAT 가능 라우터에서 글로벌 인터넷과의 송수신

  • NAT 가능 라우터는 외부 세계에서는 라우터처럼 보이지 않고, 하나의 IP 주소를 갖는 하나의 장비로 동작
    • 그림 4.25에서 홈 라우터 <-> 인터넷으로 가는 트래픽의 출발지/목적지 IP 주소는 138.76.29.7을 가져야 함.
  • NAT 가능 라우터는 외부에서 들어오는 홈 네트워크의 상세 사항을 숨김.
  • DHCP (Dynamic Host Configuration Protocol)
    • 라우터는 ISP의 DHCP 서버로부터 주소를 얻고, NAT-DHCP-라우터로 제어되는 홈 네트워크의 주소 공간에서 DHCP 서버를 실행하여 컴퓨터에게 주소를 제공
  • NAT 변환 테이블 : NAT 라우터에서 WAN에서 NAT 라우터에 데이터그램들이 도착했을 때,NAT 변환 테이블에서 IP 주소와 포트 번호를 찾아 내부 호스트에 전달.

그림 4.25 예시

  • 홈 네트워크(호스트 10.0.0.1)가 웹 서버(128.119.40.186, 포트 80)에게 웹 페이지를 요청 가정
  • 호스트 10.0.0.1 -> NAT : 임의의 출발지 포트 번호 3345를 할당하고 LAN에 데이터그램을 전송
  • NAT 라우터 데이터그램 수신
    • 데이터그램에 대한 새로운 출발지 포트 번호 5001을 생성
    • WAN 쪽 IP 주소 138.76.29.7과 출발지 IP 주소를 변경
    • 새 출발지 포트 번호 5001과 원래 출발지 포트 번호 3345를 변경
    • 새 출발지 포트 번호를 생성할 때,NAT 라우터는 NAT 변환 테이블에는 없는 모든 출발지 포트 번호를 선택 가능
    • 라우터 내부의 NAT에는 NAT변환 테이블의 엔트리도 추가
  • NAT 라우터 -> 웹서버 : NAT 라우터에 의해 처리된 HTTP 요청이 들어있는 데이터그램 전달
  • 웹서버 데이터그램 수신 : 수정된 데이터그램 의식X
  • 웹서버 -> NAT 라우터 : NAT 라우터의 IP 주소인 목적지 주소와 5001인 목적지 포트 번호에 대해 응답
  • NAT 라우터 응답 수신
    • 홈 네트워크 브라우저(10.0.0.1, 포트3345)로부터 얻은 목적지(웹서버) IP 주소/포트 번호를 사용해서 NAT 변환 테이블 작성
    • 데이터그램의 목적지 주소와 포트 번호를 다시 기록
  • NAT 라우터 -> 홈 네트워크 내부 : 데이터그램 전달


넓게 쓰이는 NAT의 반대 주장

  • 포트 번호가 호스트 주소 지정이 아닌 프로세스 주소 지정에 사용된다
    • 서버 프로세스는 잘 알려진 포트 번호에서 요청이 올 때까지 기다리고
      P2P 프로토콜의 피어는 서버로서의 역할을 할 때
      들어오는 연결을 수락해야 하기 때문에 홈 네트워크에서 실행되는 서버에 문제 발생
    • NAT 순회(traversal)도구 : 한 피어가 NAT 서버 뒤에 있고 DHCP 제공 NAT 주소가 있는 다른 피어에 연결하기 위한 기술
  • 구성 순수주의자들의 ‘철학적’ 논쟁
    • 라우터는 네트워크 계층 장치를 의미하며 네트워크 계층까지만 패킷을 처리해야 한다
    • but NAT는 IP 주소를 수정하는 노드를 간섭하지 않고, 포트 수보다 월씬 적은 수의 호스트가 서로 직접 소통해야 한다는 원칙을 위반


🌐 4.3.4 IPv6

  • 32 비트 IPv4 주소공간이 빠른 속도로 고갈됨에 따라 큰 IP주소 공간인 IPv6 개발

IPv6 데이터그램 포맷

  • IPv6 데이터그램의 구조가 더 간결하고 간소화되었음 -> IPv4에 있지만 IPv6에는 더 이상 존재하지 않는 필드가 있음

IPv4과 IPv6에서 달라진점

  • 확장된 주소 기능
    • ip 주소 크기를 32비트 -> 128비트로 확장 : 고갈 걱정 x
    • 유니캐스트,멀티캐스트 주소 + 새로운 주소 형태인 애니캐스트 주소 도입
      • 애니캐스트 주소로 명시된 데이터그램은 호스트 그룹의 어떤 이에게든 전달될 수 O
  • 간소화된 40바이트 헤더
    • IPv4의 많은 필드가 생략되거나 옵션으로 남겨짐
    • 라우터는 40바이트 고정 길이 헤더에서 IP 데이터그램을 더 빨리 처리함
    • 새로운 옵션 인코딩은 유연한 옵션 처리를 가능하게 함
  • 흐름 레이블링
    • IPv6는 정의하기 어려운 흐름을 가짐
    • ㄴ "비 디폴트 품질 서비스나 실시간 서비스 같은 특별한 처리를 요청하는 송신자에 대해 특정 흐름에 속하는 패킷 레이블링”을 가능하게 함
      - ex) 오디오/비디오 전송은 흐름으로 처리된다. 반면에,파일 전송이나 전자메일 같은 예전의 애플리케이션은 흐름으로 처리되지 않는다. 높은 사용자 우선순위를 가지고 전달
      된 트래픽 또한 흐름처럼 처리될 수 있다.

포멧

  • 버전 : 4비트 필드로 IP 버전 번호를 인식
    • IPv6의 이 필드값은 ‘6’
    • 단순히 이 필드를 ‘4’로 설정한다고 IPv4 데이터그램을 만들 수 있는 것은 아님
  • 트래픽 클래스 : 8비트 필드로 데이터그램에 우선순위를 부여하는 데 사용된다.
    • 흐름 내의 SMTP 이메일 같은 애플리케이션의 데이터그램 < VoIP 같은 특정 애플리케이션의 데이터 그램
    • IPv4의 TOS 필드와 비슷한 의미
  • 흐름 레이블 : 20비트 필드로 데이터그램의 흐름 인식
  • 페이로드 길이 : 16 비트 필드로 IPv6 데이터그램에서 고정 길이 40바이트 패킷 헤더 뒤에 나오는 바이트 길이
    • 부호 없는 정수(unsigned integer)
  • 다음 헤더 : 데이터그램의 내용이 전달될 프로토콜(TCP or UDP)를 구분
    • IPv4의 헤더에 있는 프로토콜 필드와 같음
  • 홉 제한: 라우터가 데이터그램을 전달할 때마다 1 씩 감소
    • 홉제한 수가 0보다 작아지면 라우터는 데이터그램을 버림
  • 출발지와 목적지 주소: IPv6 128비트 주소의 다양한 형태는 RFC 4291에 있음
  • 데이터: IPv6 데이터그램의 페이로드 부분
    • 데이터그램이 목적지에 도착하면 Ip데이터그램에서 페이로드를 제거한 후, 다음 헤더 필드에 명시한 프로토콜에 전달


IPv4엔 있지만 IPv6엔 없어진 필드

  • 단편화/재결합
    • IPv6에서는 단편화와 재결합을 출발지와 목적지만이 수행
    • 라우터가 받은 IPv6 데이터그램이 너무 커서 출력 링크로 전달할 수 없다면
      • 라우터는 데이터그램을 폐기
        -> '패킷이 너무 크다’라는 ICMP 오류 메시지를 송신자에게 전송
        -> 송신자는 데이터를 IP 데이터그램 크기를 줄여서 재전송
    • 단편화와 재결합은 시간 걸림 -> 라우터에서 이 기능 삭제 -> 종단 시스템이 진행
      => 네트워크에서 IP 전달 속도가 증가
  • 헤더 체크섬
    • 트랜스포트 계층 프로토콜(ex TCP나 UDP)과 데이터 링크 프로토콜(ex 이더넷)은 체크섬 수행 -> 체크섬 기능이 반복 -> 생략
      • ㄴ= IP 패킷의 빠른 처리 집중
      • IPv4 헤더는 TTL 필드(IPv6의 홉 제한 필드와 유사함)를 포함하며 IPv4 헤더 체크섬을 모든 라우터마다 수행
  • 옵션
    • 완전히 사라진 것X, IPv6 헤더에서 ‘다음 헤더’ 중 하나가 될 수 있음.
      • TCP나 UDP 프로토콜 헤더가 IP 패킷에서 다음 헤더가 될 수 있는 것처럼
    • 덕분에 IPv6은 고정 길이의 40바이트 IP 헤더를 가짐

IPv4에서 IPv6로의 전환

  • IPv4 데이터그램을 보내고 라우팅하며 받을 수 있는 새 IPv6 시스템이 있는 반면,
    이미 IPv4로 구축된 시스템은 IPv6 데이터그램을 처리한 수 없음

해결안

  • 플래그 데이(flag day)선언
    • : 모든 인터넷 장비를 끄고IPv4에서 IPv6로 업그레이드하는 시간과 날짜를 정하는 것
    • ㅈㄹ 말도 안됨 ㅋㅋ
  • 터널링(tunneling)
    • 터널(tunnel) : 두 IPv6 사이에 있는 IPv4 라우터들
    • 대충 IPv6 데이터그램이 터널을 통과하러면 IPv6을 IPv4 데이터 필드(페이로드)에 넣어 IPv4인척 전송

터널링 동작 과정

  • 두 IPv6 노드(ex B와 E)가 IPv6 데이터그램을 사용해서 작동한다고 가정
    • 터널의 송신 측에 있는 IPv6 노드(ex B): IPv6 데이터그램을 수신
      • IPv4 데이터그램의 데이터 필드에 데이터그램을 넣음
      • IPv4 데이터그램에 목적지 주소를 터널의 수신 측에 IPv6 노드(ex E)로 작성
    • IPv6 노드(ex B) -> 터널의 첫 번째 노드(ex C(IPv4))로 전송
      • 터널 내부에 있는 IPv4 라우터는 IPv4 데이터그램이 IPv6 데이터그램을 갖고 있다는 사실을 모름
    • 터널 내부에 있는 IPv4 라우터는 평소대로 IPv4 데이터그램을 처리
    • 터널 수신 측에 있는 IPv6 노드 : IPv4 데이터그램 수신
      • IPv4 데이터그램이 실제 IPv6 데이터그램임을 결정
      • ㄴ IPv4 데이터그램 프로토콜 번호 필드가 41임을 보면 IPv4페이로드는 IPv6 데이터그램임을 나타냄
    • 이 노드는 IPv6 데이터그램으로 만든 다음에 IPv6 데이터그램을 IPv6 노드에 전송

  • 암튼 네트워크 계층 프로토콜을 바꾼다는 것은 매우 어려움
    • ㄴ= 미래에는 인터넷의 네트워크 계층에 변화가 있겠지만 이러한 변화가 애플리케이션
      계층보다는 훨씬 느린 속도로 일어날 것
profile
인생 살자.

0개의 댓글

관련 채용 정보