4. 네트워크 계층: 데이터 평면

지니🧸·2023년 4월 13일
0

Computer Network

목록 보기
5/7
post-custom-banner

Network Layer: Data Plane

네트워크 계층은 서로 상호 작용하는 데이터 평면제어 평면으로 나뉜다

per-router는 네트워크 계층의 기능으로 한 라우터의 입력 링크에 도착한 데이터그램(네트워크 계층 패킷)이 그 라우터의 출력 링크에 어떻게 도착하는지 결정한다

전통적인 IP 포워딩일반화된 포워딩

  • IP 포워딩: 데이터그램의 목적지 주소에 기반
  • 일반화된 포워딩: 데이터그램의 여러 다른 필드 값을 사용해서 수행

소프트웨어 정의 네트워크 (SDN): 제어 평면의 기능을 분리된 서비스처럼 사용해 데이터 평면과 제어 평면을 구분한다

4.1 네트워크 계층 개요

네트워크 제어 평면의 역할은 데이터그램이 송신 호스트에서 목적지 호스트까지 잘 전달되게끔 로컬, 퍼 라우터 포워딩 조정

4.1.1 포워딩과 라우팅: 데이터 평면과 제어 평면

네트워킹 계층의 역할: 송신 호스트에서 수신 호스트로 패킷 전달

주요 기능:

  • 포워딩(전달): 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 이동 시키기
    • 데이터 평면에 구현된 기능
    • 매우 짧은 시간 단위 가짐 > 주로 하드웨어에서 실행
  • 라우팅: 송신자가 수신자에게 패킷을 전송할 때 네트워크 계층은 패킷 경로를 결정해야 함
    • 라우팅 알고리즘: 경로를 계산하는 알고리즘
    • 네트워크의 계층의 제어 평면에서 실행
    • 네트워크 전반에 걸쳐 출발지에서 목적지까지 데이터그램의 존단간 경로 결정
      • 긴 시간 > 주로 소프트웨어에서 실행

포워딩과 라우팅

  • 포워딩: 한 교차로를 지나는 과정
  • 라우팅: 출발지부터 목적지까지의 계획

포워딩 테이블 (Forwarding table)
라우터는 도착하는 패킷 헤더의 필드 값을 조사해 패킷을 포워딩하는데, 이 값을 라우터의 포워딩 테이블의 내부 색인으로 사용한다

  • 포워딩 테이블 엔트리에 저장되어 있는 헤더 값은 해당 패킷이 전달되어야 할 라우터의 외부 링크 인터페이스 표현
    • (예) 헤더값이 0110인 패킷이 라우터에 도착하면 라우터는 포워딩 테이블을 보고 이 패킷에 대한 출력 링크 인터페이스 결정해서 내부적으로 이 패킷을 인터페이스2로 전달

제어 평면

라우팅 알고리즘은 라우터의 포워딩 테이블의 내용을 결정하는데, 각각의 모든 라우터에서 실행되며, 라우터는 포워딩과 라우팅 기능 모두를 갖고 있어야 한다
한 라우터의 라우팅 알고리즘 기능은 다른 라우터의 라우팅 알고리즘과 소통하며 포워딩 테이블의 값을 계산하기 때문에 라우팅 메시지를 교환하는 소통을 라우팅 프로토콜이 정의한다

4.1.2 네트워크 서비스 모델

네트워크 서비스 모델: 송수신 호스트간 패킷 전송 특성을 정의한다

네트워크 계층에서 제공할 수 있는 서비스

  • 보장된 전달: 패킷이 소스 호스트에서부터 목적지 호스트까지 도착하는 것을 보장함
  • 지역 제한 이내의 보장된 전달: 패킷의 전달 보장 + 호스트간의 특정 지연 제한 (예: 100 msec 이내) 안에 전달
  • 순서화(in-order) 패킷 전달: 패킷이 목적지에 송신된 순서로 도착하는 것을 보장
  • 최소 대역폭 보장: 송신과 수신 호스트 사이에 특정한 비트 속도의 전송 링크를 모방
    • 송신 호스트가 비트들을 특정한 비트 속도 이하로 전송하는 한, 모든 패킷이 목적지 호스트까지 전달됨
  • 보안 서비스: 모든 데이터그램들을 소스 호스트에서는 암호화, 목적지 호스트에서는 해독할 수 있도록 해서 전송 계층(transport layer)의 모든 세그먼트(segment)들에 대해 기밀성을 제공해야 함

최선형 서비스(best-effort service)

  • 인터넷 네트워크 계층은 여기에 해당함
  • 패킷을 보내는 순서대로 수신 보장 X
  • 목적지까지의 전송 자체도 보장 X
  • 종단 시스템간 지연 보장 X
  • 보장된 최소 대역폭 X

여러 네트워크 구조는 최선형 서비스보다 더 확실한 서비스를 선택하여 구현한다

4.2 라우터 내부에는 무엇이 있을까?

라우터의 4가지 요소

  • 입력 포트
    • 물리 계층 프로세서, 데이터 링크 계층 프로세서, 큐로 구성됨
    • 기능:
      • 라우터의 물리계층과 데이터 링크 계층의 기능 담당
      • 프레임을 역캡술화해서 패킷을 추출하고, 오류를 검사하며 훼손된 경우 패킷을 폐기함
      • 패킷을 보관하기 위한 버퍼(큐)를 가짐
      • 검색 기능
  • 스위칭 구조: 라우터의 입력 포트와 출력 포트 연결
    • 라우터 내부에 포함되어 있음
  • 출력 포트
    • 스위칭 구조에서 수신한 패킷을 저장
    • 필요한 링크 계층 및 물리적 계층 기능을 수행하여 출력 링크로 패킷을 전송
    • (링크가 양방향일 때) 출력 포트는 일반적으로 동일한 링크의 입력 포트와 한 쌍을 이룸
  • 라우팅 프로세서
    • 제어 평면 기능을 수행
    • 네트워크 관리 기능 수행
    • (기존의 라우터) 라우팅 프로토콜을 실행하고 라우팅 테이블과 연결된 링크 상대 정보를 유지 관리하며 라우터의 포워딩 테이블 계산
    • (SDN 라우터) 원격 컨트롤러와 통신하여 원격 컨트롤러에서 계산된 포워딩 테이블 항목을 수신하고 라우터의 입력포트에 이러한 항목을 설치

라우터의 입력 포트, 출력 포트, 그리고 스위칭 구조는 거의 항상 하드웨어로 구현한다

4.2.1 입력 포트 처리 및 목적지 기반 전달

입력 포트의 회선 종단 기능과 링크 계층 처리는 라우터의 개별 입력 링크와 관련된 물리 계층 및 데이터 링크 계층을 구현한다

입력 포트의 검색 기능

  1. 라우터는 포워딩 테이블을 사용해 도착 패킷이 스위칭 구조를 통해 전달되는 출력 포트를 검색한다
    • 라우터는 패킷의 목적지 주소의 프리픽스(prefix)를 테이블의 엔트리와 대응시킨다
    • 대응하는 엔트리가 존재하면 라우터는 패킷을 그 대응에 연관된 링크로 보낸다
  2. 포워딩 테이블은 라우팅 프로세서에서 계산되거나 업데이트되거나 원격 SDN 컨트롤레어서 수신된다
  3. 포워딩 테이블은 라우팅 프로세서에서 입력 회선 카드로 복사된다
  4. 각 회선 카드에서 이런 섀도 복사본을 사용하면 패킷단위로 중앙 집중식 라우팅 프로세서를 호출하지 않게 되어 병목 현상을 피할 수 있다

최장 프리픽스 매칭 규칙 (Longest prefix matching rule)

  • 라우터가 패킷의 목적지 주소의 프리픽스를 테이블의 엔트리와 대응시킬 때 앞 3개의 엔트리와 대응하지 않으면 사용
  • 테이블에서 가장 긴 대응 엔트리를 찾고, 여기에 연관된 링크 인터페이스로 패킷을 보냄

검색을 통해 패킷의 출력 포트가 결정되면 패킷을 스위칭 구조로 보낼 수 있다. 일부 설계에서는 다른 입력 포트의 패킷이 스위칭 구조를 사용하고 있을 때는 패킷이 스위칭 구조에 들어가는 것을 일시적으로 차단하고, 패킷은 대기하다가 나중 시점에 스위칭 구조에 들어간다

4.2.2 변환기

스위칭 구조를 통해 패킷이 입력 포트에서 출력 포트로 실제로 스위칭(전달)된다

스위칭을 수행하는 방법 3가지: 메모리, 크로스바, 버스

  • 메모리를 통한 교환
    • 가장 단순함
    • 초기의 라우터는 CPU(라우팅 프로세서)를 직접 제어해 입력 포트와 출력 포트 사이에서 패킷을 스위칭
    • 입력 포트와 출력 포트는 전통적인 운영체제에서 전통적인 I/O 장치처럼 작동
    • 과정:
      • 패킷이 도착하면 입력 포트는 라우팅 프로세서에게 인터럽트를 보내 패킷을 프로세서 메모리에 복사
      • 라우팅 프로세서는 헤더에서 대상 주소를 추출하고 포워딩 테이블에서 적절한 출력 포트를 찾아 패킷을 출력 포트의 버퍼에 복사함
    • 목적지 포트가 다른 경우라도 공유 시스템 버스를 통해 한 번에 하나의 메모리 읽기/쓰기 작업을 수행할 수 있기 때문에 두 패킷을 동시에 전달할 수 없음
    • 최근 라우터 일부는 메모리를 통해 스위칭
      • 초기와의 차이점: 대상 주소를 검색하고 해당 메모리 위치에 패킷을 저장하는 것이 입력회선카드에서 처리함
  • 버스를 통한 교환
    • 입력 포트는 라우팅 프로세서의 개입없이 공유 버스를 통해 직접 출력 포트로 패킷 전송
    • 미리 준비된 입력 포트 스위치 내부 라벨(헤더)이 로컬 출력 포트를 나타내는 패킷에서 전송되거나 버스에 패킷을 전송하여 수행
    • 모든 출력 포트에 패킷이 수신되지만 라벨과 일치하는 포트만 패킷을 유지함
    • 라벨은 스위치 내에서 버스를 통과하기 위해서만 사용됨 > 출력 포트에서 제거됨
    • 동시에 여러 패킷이 다른 입력 포트로 라우터에 도착하면 한번에 하나의 패킷만 버스 통과 가능 > 하나만 통과 & 나머지는 대기
      • 모든 패킷이 하나의 버스를 통과해야 함 > 라우터의 교환 속도는 버스 속도에 의존
    • 작은 지역/엔터프라이즈 네트워크에 적합
  • 인터커넥션 네트워크를 통한 교환
    • 공유 버스의 대역폭 제한을 극복하는 방법
    • 크로스바 스위치: N개의 입력 포트를 N개의 출력 포트에 연결하는 2N 버스로 구현
      • 각 수직 버스는 교차점에서 각 수평버스와 교차
      • 스위치 구조 컨트롤러가 버스를 언제든지 열거나 닫을 수 있음
    • 패킷이 포트 A에 도착해 포트 Y로 전달되어야 할 때:
      • 스위칭 컨트롤러는 A와 Y 버스들과 포트 A의 교차로에서 교차점을 닫고, 버스로 패킷을 전달함
      • Y 버스에서만 픽업
    • 방법 중 유일하게 여러 패킷을 병렬로 전달할 수 있음
      • 크로스바 스위치는 출력 포트로 전달되는 패킷을 다른 패킷이 현재 해당되는 출력 포트로 전달되지 않는 한 해당 출력 포트에 도달하는 것을 차단하지 않음
    • 대기는 그래도 존재함
      • 서로 다른 두개의 입력 포트에서 나오는 두 개의 패킷이 동일한 출력 포트로 보내지는 경우

4.2.3 출력 포트 프로세싱

출력 포트 프로세싱은 출력 포트의 메모리에 저장된 패킷을 가져와서 출력 링크를 통해 전송한다
전송을 위한 패킷 선택, 대기열 제거, 필요한 링크 계층 및 물리계층 전송 기능 수행도 포함된다

4.2.4 큐잉

패킷 큐는 입력 포트와 출력 포트 모두에서 형성될 수 있다

대기열의 위치와 범위는 트래픽 로드, 스위칭 구조의 상대/회선 속도에 의해 결정된다

  • 대기열이 커지면 라우터의 메모리 소모로 이어질 수 있음
  • 도착하는 패킷을 저장할 수 없을 정도로 메모리가 소모되면 패킷 손실 발생
    • 패킷 손실은 라우터내의 큐들에서 일어나는 것

입력 큐잉

지연 없이 스위치 구조를 통해 도착하는 모든 패킷을 전송하기에 스위치 구조가 충분히 빠르지 않으면 패킷이 대기해야 한다

크로스바 스위칭 구조에 대한 가정:

  1. 모든 링크의 속도는 같다
  2. 입력 링크가 패킷을 받는 것과 같은 속도로 하나의 패킷을 입력 포트에서 주어진 출력 포트로 전달한다
  3. 패킷은 입력 큐에서 출력 큐로 FCFS 방식으로 이동한다
  4. 출력 포트가 다른 패킷은 병렬로 움직이지만 출력 큐가 같은 패킷은 동시에 출력되지 못한다 (대기 발생)

문제: HOL (Head-of-the-line) 차단

  • 회선의 앞쪽에서 다른 패킷이 막고 있어 (동일 출력큐 문제) 입력 큐에서 대기중인 패킷은 사용할 출력 포트가 사용중이 아니여도 스위칭 구조를 통해 전송되기 위해 기다려야 하는 상황
  • 입력 큐가 무한정 길이로 증가하는 원인이 될 수 있음 (패킷 손실)

출력 큐잉

R(switch)가 R(line)보다 N배 빠르며 N개의 입력 포트 각각에 도착하는 패킷이 동일한 출력포트로 향한다 가정할 때:

출력 링크에 단일 패킷을 보내는데 걸리는 시간에 N개의 새로운 패킷이 출력 포트에 도착한다

출력 포트는 시간단위에 단일 패킷만을 전송할 수 있어서 N개의 도착 패킷은 출력 링크를 통한 전송 큐에 대기해야 하는데, 대기 중인 N개의 도착 패킷은 출력 링크를 통한 전송 큐에 대기해야 한다

대기 중인 N개의 패킷 중에서 하나를 전송할 때, 다시 N개의 새로운 패킷이 도착할 수도 있어서 스위칭 구조가 포트 회선 속도의 N배 빠른 경우에도 패킷 큐잉이 출력 포트에서 발생될 수 있음

사용 가능한 메모리를 소모할만큼 대기 상태의 패킷 수가 많아질 수 있다. 저장할 메모리가 충분하지 않으면 (drop tail) 이미 대기 중인 하나 이상의 패킷을 폐기해서 서로 도착한 패킷을 저장하기 위한 공간을 확보해야 한다

Drop-tail (종단 탈락) 알고리즘

  • 버퍼에 가능한 한 많은 패킷들을 저장하고 있다가 더 이상 여유 공간이 없을 때 나중에 도착하는 패킷을 무조건 탈락시킴
  • 버퍼가 가득 차기 전에 패킷을 폐기시켜 송신자에게 혼잡신호를 제공
    • 버퍼가 가득차는 경우가 빈번히 발생하면 그에 따라 네트웍 혼잡도가 증가
  • 트래픽 흐름 속에서 버퍼 공간을 불공평하게 배분

AQM(Active Queue Management) 알고리즘은 계속하여 연구되고 있다

  • RED (Random Early Detection): 무작위 조기 탐지
    • 큐의 평균 크기를 감시하면서 통계적 확률에 의거해 패킷을 탈락시킴
    • 버퍼가 거의 비어있으면 패킷을 모두 받아들임
    • 버퍼가 점점 찰수록 패킷이 탈락할 확률이 올라감
    • 확률이 1에 도달하면(버퍼가 가득 차면) 모든 패킷들이 탈락
    • 많은 패킷을 전송한 호스트의 패킷 탈락 가능성이 더 커짐

출력 포트의 패킷 스케쥴러가 패킷의 수행 순서를 지정한다

4.2.5 패킷 스케쥴링

First-in First-Out (FCFS, FIFO)

회선이 현재 다른 패킷을 전송 중일 때 링크 출력 큐에 도착한 패킷은 전송을 기다린다

도착한 패킷을 담을 버퍼 공간이 충분하지 않으면 도착 패킷의 공간을 확보하기 위해 큐의 패킷 폐기 정책은 패킷 손실 여부 또는 다른 패킷을 큐에서 제거할 것인지 결정한다

FIFO: 출력 링크 큐에 도착한 순서로 출력 링크에서 전송할 패킷을 선택한다

우선순위 큐잉

네트워크 관리 정보를 운반하는 패킷이 사용자 트래픽보다 우선순위를 수신하도록 큐를 구성하는 등, 패킷의 우선순위에 따라 패킷을 전송하는 스케쥴러

동일한 우선순위를 가지는 패킷들은 FIFO방식으로 스케쥴된다

비선점 방식으로 진행하면 우선순위가 더 높은 패킷이라도 현재 수행 중인 패킷을 기다려야 한다

Round-Robin과 WFQ(Weighted Fair Queuing)

라운드 로비 큐잉: 패킷은 우선순위 큐잉과 같이 클래스로 분류되지만, 클래스간 우선순위는 없이 클래스간 번갈아가며 수행한다

작업 보존(work-conserving) 큐잉에서는 전송을 위해 큐에서 기다리는 패킷이 있으면, 링크는 유휴 상태가 되는 것을 허용하지 않는데, 작업 보존 라운드 로빈 규칙에서는 클래스에서 패킷을 찾지만 아무것도 찾지 못하면 시퀀스의 다음 클래스를 즉시 검사한다

WFQ 규칙은 도착한 패킷을 적절한 클래스별 대기 영역에 분류하여 대기시키고, 순환 방식으로 클래스를 번갈아가며 수행시키고, 빈 클래스 큐를 찾으면 서비스 순서에서 다음 클래스로 즉시 이동한다

WFQ 규칙은 각 클래스가 다른 양의 서비스 시간을 부여 받는다는 점에서 라운드 로빈과 다르다

  • 소량의 트래픽이 대량의 트래픽에 의해 손해를 보지 않도록 패킷 플로(Flow) 별로 서로 다른 큐를 두어 트래픽을 조절
    • 양이 적은 트래픽에 대해 우선적으로 처리하게 됨
  • 특정 기준에 따라 가중치를 정하여 같은 양의 트래픽을 가진 패킷 플로 간에서도 차별을 둠

4.3 인터넷 프로토콜(IP): IPv4, 주소 지정, IPv6

현재 사용 중인 IP(Internet Protocol)는 IPv4와 IPv6으로 두가지 버전이 존재한다.

IPv4 데이터그램 형식

데이터그램: 인터넷 네트워크 계층 패킷

IPv4의 데이터그램 형식:

데이터그램의 주요 필드:

  • 버전 번호 (4비트): 데이터그램의 IP 프로토콜 버전 명시
    • 라우터는 버전 번호를 확인해 데이터그램의 나머지 부분을 어떻게 해석할지 결정한다
      • 각 버전의 IP는 각각의 데이터그램 형식을 사용한다
  • 헤더 길이 (4비트): IP 데이터그램에서 실제 페이로드가 시작하는 곳을 결정
    • 헤더에 가변 길이의 옵션을 포함된다
    • 대부분 IPv4 데이터그램은 옵션을 포함하지 않아서 대체로 IPv4 데이터그램 헤더는 20바이트임
  • 서비스(TOS) 타입: 서로 다른 유형의 IP 데이터그램을 구별함
    • TOS 비트 중 두개는 명시적 혼잡 통제에 사용됨
  • 데이터그램 길이 (16비트): 바이트로 계산한 IP 데이터그램의 전체 길이
    • 헤더와 데이터의 합
    • 16비트라 IP 데이터그램의 이론상 최대 길이는 65,535 바이트
      • 하지만 1,500바이트보다 큰 경우는 거의 없음
  • 식별자, 플래그, 단편화 오프셋
    • 세 필드는 IP 단편화와 관계 있음
    • IPv6에서는 단편화 허용하지 않음
  • TTL (Time-to-live)
    • 목적: 네트워크에서 데이터그램이 무한히 순환하지 않도록
    • 라우터가 데이터그램을 처리할 때마다 감소함
    • TTL 필드가 0이 되면 라우터가 데이터그램을 폐기함
  • 프로토콜: 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때만 사용됨
    • IP 데이터그램에서 데이터 부분이 전달될 목적지의 전송 계층의 특정 프로토콜을 명시함
      • 값이 6이면 데이터 부분을 TCP로 데이터 전달
      • 값이 17이면 데이터 부분을 UDP로 데이터 전달
  • 헤드 체크섬
    • 라우터가 수신한 IP 데이터그램의 비트 오류를 탐지하는데 도움
    • 헤더에서 각 2바이트를 수로 처리하고 이 1의 보수를 합산하여 계산
    • 라우터는 수신한 각 IP 데이터그램마다 헤더 체크섬을 계산하고 이 값과 데이터그램 헤더의 체크섬이 다르면 오류 상태임을 감지
      • 라우터는 보통 오류가 검출된 데이터그램을 폐기한다
      • TTL 필드와 옵션 필드의 값은 라우터마다 변경돼서 체크섬은 각 라우터에서 재계산 및 저장됨
  • 출발지와 목적지
    • 출발지가 데이터그램을 생성할 때, 자신의 IP 주소를 출발지 IP 주소 필드에 삽입하고 목적지 IP 주소를 목적지 IP 주소 필드에 삽입
  • 옵션: IP 헤더를 확장함
    • 모든 데이터그램 헤더 옵션 필드에 정보를 포함하지 않는 방법으로 오버헤드를 해결하기 위해 헤더 옵션은 거의 사용되지 않음
    • 데이터그램 헤더가 가변 길이로 데이터 필드 시작점을 초기에 결정할 수 없음 > 옵션은 이 문제를 더 복잡하게 함
    • 가변길이 옵션에 따른 처리 시간 편차와 성능 문제로 옵션은 IPv6에는 제외됨
  • 데이터(페이로드)
    • 주로 목적지에 전달하기 위해 전송 계층 세그먼트(TC/UDP)
    • 가끔 ICMP 메시지 등 다른 유형의 데이터

옵션이 없는 IP 데이터그램은 총 20바이트의 헤더를 가진다

  • TCP 세그먼트의 경우에는 단편화되지 않았다면 각 데이터그램은 응용 계층의 메시지와 총 40바이트의 헤더를 전송한다
    • 40바이트의 헤더 = (IP 헤더 20 바이트) + (TCP 헤더 20바이트)

4.3.2 IPv4 데이터그램 단편화

모든 링크 계층 프로토콜이 같은 크기 네트워크 계층 패킷을 전달할 수 없다. 어떤 프로토콜은 큰 데이터그램을 전달할 수 있는데, 다른 프로토콜은 작은 데이터그램만 전달할 수 있다

MTU (maximum transmission unit): 링크 계층 프레임이 전달할 수 있는 최대 데이터 양

  • 각 IP 데이터그램은 한 라우터에서 다른 라우터로 전송하기 위해 링크 계층 프레임 내에 캡슐화되므로 링크 계층 프로토콜의 MTU는 IP 데이터그램 길에 엄격한 제약을 둠
  • IP 데이터그램의 크기 제약은 문제가 되지 않지만, 문제는 송신자와 목적지 간의 경로를 따르는 각 링크가 다른 링크 계층 프로토콜을 사용할 수 있고 각 프로토콜이 서로 다른 MTU를 가질 수 있다는 것

각 라우터는 각 다른 MTU를 가진 서로 다른 링크 계층 프로토콜을 가진다

한 링크에서 IP 데이터그램을 받으면 출력 링크를 결정하기 위해 전달 테이블을 검사하는데, 출력 링크가 IP 데이터그램의 길이보다 작은 MTU를 가지는 경우에는 데이터그램을 분발해 각각의 작은 IP 데이터그램을 별도의 링크 계층 프레임으로 캡슐화해 출력 링크로 보낸다

Fragment (단편): 작은 데이터그램 각각

조각들은 목적지 전송 계층에 도달하기 전에 재결합되어야 한다. TCP와 UDP 모두 네트워크 계층에서 완벽한 (단편화 되지 않은) 세그먼트를 수신하길 기대한다. IPv4 설계는 데이터그램 재결합을 라우터에 맡기면 라우터의 성능에 문제가 생길거라 생각하여 네트워크 코어를 간단히 유지하기 위해 종단 시스템에 데이터그램 재결합을 맡겼다.

데이터 재결합 과정

  1. 목적지 호스트가 같은 출발지로부터 일련의 데이터그램을 수신하면 이 데이터그램이 원본 데이터그램의 조각인지 판단한다
  2. 데이터그램이 조각이라 판단되면 마지막 조각을 수신할 때 원본 데이터그램을 만들기 위해 조각을 결합하는 방법을 결정해야 한다
  3. 이 재결합을 위해 IP 데이터그램 헤더의 식별자, 플래그, 단편화 오프셋 필드를 사용

데이터그램의 식별자 번호는 원본 데이터그램에 의해 결정된다. 같은 원본 데이터그램의 조각들은 같은 식별자 번호를 가진다.

원본 데이터그램이 n조각으로 나뉘었을 때, 첫 조각부터 (n-1)번째 조각은 플래그 비트 값이 1이다. 마지막 데이터그램 조각의 플래그 비트는 0인데, 이를 확인하면 목적지 호스트가 원본 데이터그램 조각이 모두 송신됐음을 확인한다. IP는 신뢰할 수 없는 서비스를 제공하므로 하나 이상의 조각이 도착하지 못했을 수 있기 때문에 중요한 기능이다.

오프셋 필드는 조각이 분실되었는지 결정하고, 적절한 순서로 조각을 재결합하기 위해 원본 데이터그램 내 조각의 위치를 명시하기 위해 사용된다.

4.3.3 IPv4 주소체계

호스트는 일반적으로 네트워크와 연결되는 하나의 링크를 가지는데, 호스트 IP가 데이터그램을 보낼 때 이 링크를 통해 데이터링크를 보낸다.

인터페이스: 호스트와 물리적 링크 사이의 경계

라우터는 한 링크로부터 데이터그램을 수신해 다른 링크로 전달하므로 2개 이상의 연결된 링크를 필요로 한다.

라우터와 링크 사이의 경계도 인터페이스라 하는데, 각 링크마다 하나의 인터페이스를 가지고, 하나의 라우터는 여러 인터페이스를 가진다.

모든 호스트와 라우터는 IP 데이터그램을 송수신할 수 있어서 IP는 각 호스트와 라우터 인터페이스가 IP 주소를 갖도록 요구한다. 그래서 IP 주소는 인터페이스를 포함하는 호스트 라우터보다는 인터페이스와 관련있다.

IP 주소 (32비트/4바이트)

  • 십진 표기법 사용
    • 십진 표기법: 주소의 각 바이트를 십진수로 표현
      • 주소의 다른 바이트와 점으로 구분
  • (예) IP 주소가 193.32.216.9일 때
    • 193: 주소의 첫번째 8비트
    • 32: 주소의 두번째 8비트

모든 호스트와 라우터의 각 인터페이스는 고유한 IP 주소를 갖고, 이의 일부는 연결된 서브넷이 결정한다.

서브넷: 세 호스트들이 인터페이스들과 하나의 라우터 인터페이스로 연결된 네트워크

  • aka IP 네트워크, 네트워크
  • 223.1.1.0/24 주소
    • IP 주소체계가 할당함
  • 서브넷 마스크(subnet mask): 서브넷 주소 중 /24
    • 32 비트 주소의 왼쪽 24비트가 서브넷 주소라는 것을 가리킴
  • 서브넷을 결정하려면 호스트나 라우터에서 각 인터페이스를 분리하고 고립된 네트워크를 만든다
    • 이 고립된 네트워크의 종단점은 인터페이스의 끝이 되는데, 이 고립된 네트워크 각각을 서브넷이라 부른다

CIDR (Classless Interdomain Routing)

인터넷 주소 할당 방식 중 하나로 서브넷 주소체계 표기를 일반화한다

32비트 IP 주소는 두 부분으로 나누고, 점으로 된 십진수 형태의 a.b.c.d/x의 상태에서 최상위 비트(MSB)인 x는 주소 첫 부분의 비트 수이다.

  • x
    • 최상위 비트, MSB
    • 해당 주소의 프리픽스(prefix)
    • 네트워크 프리픽스

한 기관은 통상 연속적인 (공통 프리픽스를 갖는 주소 범위) 주소의 블록을 할당 받기 때문에 기관 장비들의 IP 주소는 공통 프리픽스를 공유한다. 이렇게 포워딩 테이블의 크기가 상당히 줄 수 있다.

주소의 나머지 비트들은 기관 내부에 같은 네트워크 프리픽스를 갖는 모든 장비들을 구별해 기관 내부의 라우터에서 패킷을 전달할 때 사용된다.

CIDR 전에는 클래스 주소체계 (classful addressing)이 사용되어, 8, 16, 24비트 서브넷 주소를 갖는 서브넷을 각각 A, B, C 클래스 네트워크로 분류했는데, 이 방법은 IP 주소의 서브넷 부분이 정확히 1, 2, 3바이트여야 한다는 제약 조건 때문에 기관 수가 빠르게 증가하는 트렌드에는 적합하지 않았다.

  • A 클래스(/24) 서브넷: 2^8 - 2 = 254개의 호스트를 제공해서 턱없이 부족한 경우가 많다
    • 2개는 특별한 사용을 위해 예약되어 있음
  • B 클래스(/16) 서브넷: 65,634개 호스트를 제공 > 너무 큼
    • 2,000 개 호스트가 있는 조직은 일반적으로 B클래스 서브넷 주소에 할당되는데, 이는
      • B 클래스 주소 공간을 빠르게 고갈 시킴
      • 주소 할당이 비효율적임
        • 65,534 인터페이스를 위한 주소 공간을 할당받았으므로 63,000 개의 주소가 사용되지 않더라도 다른 조직이 사용할 수 없음

브로드캐스트 주소255.255.255.255로 호스트가 이 목적지 주소의 데이터그램을 보내면, 이 메시지는 같은 서브넷에 있는 모든 호스트에게 전달된다. 라우터는 선택적으로 이웃 서브넷에 메시지를 전달한다.

주소 블록 획득

네트워크 관리자는 이미 할당받은 주소의 큰 블록에서 주소를 제공하는 ISP(Internet Service Provider)와 접촉해서 기관의 서브넷에서 사용하기 위한 IP 주소 블록을 얻는다

(예) ISP는 주소 블록 200.23.16.0/20을 할당받았을 때, 크기가 더 작은 주소 블록 8개로 나눠 이 것으로 8개의 조직을 지원할 수 있다. 이 때 16이 2씩 증가하여 다른 부분은 모두 같지만 16만 16~30까지 다른 주소 블록 8개가 생긴다.

ICANN (Internet Corporation for Assigned Names and Numbers)

  • IP 주소 할당과 DNS 루트 서버 관리를 담당하는 비영리 단체
  • 지역 인터넷 등록소에서 지역 내 주소의 할당/관리를 제어함

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

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

라우터 인터페이스 주소에 대해서, 시스템 관리자는 라우터 안에 IP 주소를 할당하는데, 이를 수동으로 할 수 있지만 주로 동적 호스트 구성 프로토콜 (Dynamic Host Configuration Protocol)을 사용한다.

네트워크 관리자는 해당호스트가 네트워크에 접속하려고 할 때마다 동일한 IP주소를 받도록 하거나, 다른 임시 IP 주소를 할당하도록 DHCP를 설정함

DHCP

  • 기능:
    • 호스트 IP 주소의 할당
    • 서브넷 마스크, 첫번째 홉 라우터 주소, 로컬 DNS 서버 주소 같은 정보를 얻어줌
  • 네트워크에서 자동으로 호스트와 연결해줌
  • a.k.a 플러그 앤 플레이 프로토콜 (plug-and-play protocol), 제로 구성 프로토콜 (zero-configuration protocol)
  • 클라이언트-서버 프로토콜임
    • 클라이언트가 네트워크 설정을 위한 정보를 얻고자 새롭게 도착했을 때
    • 각 서브넷에 DHCP 서버가 존재하거나
    • 서버가 서브넷에 없다면 해당 네트워크에 대한 DHCP 서버 주소를 알려준 DHCP 연결 에이전트(주로 라우터)가 필요함

DHCP 동작 과정

  • (1) DHCP 서버 발견: DHCP server discovery
    • 새롭게 도착한 호스트는 DHCP 발견 메시지를 사용해 상호 동작될 DHCP를 발견한다
    • 클라이언트는 포트 67번으로 UDP 패킷을 보낸다
    • UDP 패킷은 IP 데이터그램으로 캡슐화된다
    • 호스트는 자신이 접속될 네트워크의 IP 주소를 알지 못하고 해당 네트워크의 DHCP 서버의 주소도 모름
    • DHCP 클라이언트는 DHCP 발견 메시지를 포함하는 IP 데이터그램을 생성함
      • 메시지의 목적지 IP 주소는 브로드캐스팅 IP 주소 (255.255.255.255)로 설정됨
      • 메시지의 출발지 IP 주소는 0.0.0.0으로 설정됨
    • DHCP 클라이언트는 이 데이터그램을 링크 계층으로 보내고, 이 프레임은 서브넷에 연결된 모든 노드로 브로드캐스팅됨
  • (2) DHCP 서버 제공: DHCP server offer
    • DHCP 발견 메시지를 받은 DHCP 서버는 DHCP 제공 메시지로 클라이언트에게 응답한다
      • 브로드캐스팅 IP 주소를 이용해 서브넷의 모든 노드로 브로드캐스트한다
      • 서브넷에는 여러 DHCP 서버가 존재해서 클라이언트는 여러 DHCP 제공 메시지로부터 가장 최적의 위치에 DHCP 서버를 선택한다
    • 각각의 서버 제공 메시지는 수신된 발견 메시지의 트랜잭션 ID, 클라이언트에게 제공된 IP 주소, 네트워크 마스크, IP 주소 임대 기간을 포함한다
      • IP 주소 임대 기간: IP 주소가 유효한 시간
  • DHCP 요청: DHCP request
    • 새롭게 도착한 클라이언트는 하나 또는 그 이상의 서버 제공자 중에서 선택한다
    • 클라이언트는 선택된 제공자에게 파라미터 설정으로 되돌아오는 DHCP 요청 메시지로 응답한다
  • DHCP ACK: 서버는 DHCP 요청 메시지에 대해 요청된 파라미터를 확인하는 DHP ACK 메시지로 응답한다
    • 클라이언트가 DHCP ACK 메시지를 받으면 상호 동작은 종료
      • 클라이언트는 DHCP 할당 IP 주소를 임대 기간 동안 사용할 수 있다
      • 클라이언트가 임대 기간 만료 후에도 이 주소를 사용할 경우를 위해 DHCP는 클라이언트가 IP 주소 임대를 갱신할 수 있는 메커니즘을 제공한다

4.3.4 네트워크 주소 변환 (NAT)

네트워크 주소 변환 (NAT)

  • 용도: 네트워크 확장을 위해 더 큰 주소 블록을 할당해야 하는데 이미 해당 주소 범위에 인접한 부분이 할당 완료 되었을 때 등

사설망: 홈 네트워크와 같은 사설 개인 주소를 갖는 권역(realm)을 위해 [RFC 1918]에 예약된 IP 주소 공간

  • 사설 주소를 갖는 권역: 네트워크 주소들이 그 네트워크의 내부에 있는 장비에게만 의미가 있는 네트워크
  • 수많은 홈 네트워크들이 같은 주소 공간을 사용할 때
    • 주어진 홈 네트워크 내부의 장비는 서로 주소체계를 이용해 패킷을 송신
    • 홈 네트워크를 벗어나 글로벌 인터넷으로 가는 패킷 전달은 이 주소들을 출발지/목적지로 사용할 수 없다
    • 패킷의 유일한 주소가 필요한 글로벌 인터넷과의 송수신은 어떻게 처리할까?

NAT 가능 라우터의 운영:

  • 외부 세계로는 라우터로 보이지 않고 하나의 IP주소를 갖는 하나의 장비로 동작한다
  • 외부에서 들어오는 홈 네트우커으의 상세한 사항을 숨긴다
  • 라우터는 ISP의 DHCP 서버로부터 주소를 얻고, NAT-DHCP-라우터로 제어되는 홈 네트워크의 주소 공간에서 DHCP 서버를 실행해 컴퓨터에게 주소를 제공한다

WAN(Wide Area Network)에서 같은 목적지 IP 주소를 갖는 NAT 라우터에 모든 데이터그램이 도착하면, 라우터는 NAT 변환 테이블로 주어진 데이터그램을 전달하는 내부 호스트를 알아낸다

NAT 변환 테이블: NAT translation table. IP 주소와 포트 번호 포함

사용자 입장에서 호스트 10.0.0.1인 홈 네트워크가 IP 주소 128.119.40.186인 웹 서버(포트 80)에게 웹 페이지를 요청할 때:

  • 호스트 10.0.0.1은 임의의 출발지 포트 번호 3345를 할당 & LAN에 데이터그램을 보냄
  • NAT 라우터는 데이터그램을 받아,
    • 데이터그램에 대한 새 출발지 포트 번호 5001 생성
      • NAT 변환 테이블에 없는 모든 출발지 포트 번호 선택 가능
    • WAN 쪽 IP 주소 138.76.29.7과 출발지 IP 주소 swap
    • 새 출발지 포트 번호 5001과 원래 출발지 포트 번호 3345 swap
  • NAT 라우터에 의해 처리된 HTTP 요청이 들어있는 데이터그램의 도착을 의식하지 못한 웹서버는 NAT 라우터의 IP 주소인 목적지 주소와 5001인 목적지 포트 번호에 대해 응답한다
  • 이 데이터그램이 NAT 라우터에 도착했을 때, 라우터는 홈 네트워크 브라우저의 IP 주소 (10.0.0.1)와 목적지 포토 번호 3345로부터 얻은 목적지 IP주소와 목적지 포트 번호를 사용해서 NAT 변환 테이블 작성
  • 라우터는 데이터그램의 목적지 주소와 포트 번호 다시 기록 & 홈 네트워크 내부로 데이터그램 전달

NAT의 문제

  • 포트 번호가 호스트 주소 지정이 아닌 프로세스 주소 지정에 사용됨
  • 서버 프로세스는 잘 알려진 포트 번호에서 요청이 올때까지 기다리고 P2P 프로토콜의 피어는 서버로서의 역할을 할 때 들어오는 연결을 수락해야 해서 홈 네트워크에서 실행되는 서버가 문제가 발생할 수도 있음
  • 해결책: NAT 순회 (reversal) 도구 OR 범용 플러그 앤 플레이(UPnP)

4.3.5 IPv6

IPv6가 개발된 배경: 32비트 IP 주소 공간이 인터넷에 접속하는 서브넷과 노드들로 인해 빠른 속도로 고갈되어 가고 있어, 큰 IP 주소 공간이 필요해짐

IPv6 데이터그램 포맷

  • 확장된 주소 기능: IP 주소 크기를 32비트에서 128비트로 확장
    • IP 주소의 고갈 방지
    • 애니캐스트 주소(anycast address) 도입
      • 애니캐스트 주소로 명시된 데이터그램은 호스트 그룹의 어떤 이에게도 전달될 수 있다
  • 간소화된 40비트 헤더: IPv4의 많은 필드를 생략 또는 옵션으로 남김
    • 짧아진 헤더는 라우터가 IP 데이터그램을 더 빨리 처리하게끔
    • 옵션 부호화는 유연한 옵션 처리 가능케 함
  • 흐름 라벨링: IPv6는 정의하기 어려운 흐름을 가지고 있음
    • 오디오/비디오 전송은 흐름으로 처리하지만 파일 전송이나 전제 메일 등은 흐름으로 처리하지 않음
    • 높은 사용자 우선순위를 가지고 전달된 트래픽은 흐름처럼 처리
  • 버전 (4비트): IP 버전 번호 인식
    • IPv6는 버전값 6으로 표현
    • 4로 설정한다고 IPv4 데이터그램인 건 아님
  • 트래픽 클래스 (8비트)
    • IPv5의 TOS 필드와 유사
    • 흐름 내의 SMTP 이메일 같은 애플리케이션의 데이터그램보다 voice-over-IP 같은 특정 응용 데이터그램에 우선 순위 부여하는데 사용
  • 흐름 라벨 (20비트): 데이터그램의 흐름을 인식하는데 사용
  • 페이로드 길이 (16비트): 고정 길이 40바이트 패킷 헤더 뒤에 나오는 바이트 길이
    • 부호 없는 정수 (unsigned integer) 값
  • 다음 헤더: 데이터그램의 내용이 전달될 프로토콜을 구분함
    • IPv4의 프로토콜 필드와 같음
  • 홉 제한: 라우터가 데이터그램을 전달할 때마다 1씩 감소
    • 홉 제한수가 0보다 작아지면 데이터그램을 버림
  • 데이터: IPv6 데이터그램의 페이로드
    • 데이터그램이 목적지에 도착하면 IP 데이터그램에서 페이로드를 제거한 후, 다음 헤더 필드에 명시한 프로토콜에 전달

IPv4에는 있었지만, IPv6에는 더 이상 존재하지 않는 필드:

  • 단편화/재결합: 단편화와 재결합을 출발지와 목적지가 수행함
    • 라우터가 받은 IPv6 데이터그램이 너무 커서 출력 링크로 전달할 수 없으면 라우터는 데이터그램을 폐기하고 패킷이 너무 크다는 ICMP 오류 메시지를 송신자에게 보냄
      • ICMP: Internet Control Message Protocol
        • 포트 번호 없음
    • 송신자는 IP 데이터그램 크기를 줄여 데이터를 다시 보냄
    • 단편화/재결합은 시간이 걸리니 라우터에서 이 기능을 삭제하고 종단 시스템에 맡김
    • 결과적으로 네트워크에서 IP 전달 속도를 증가시킴
  • 헤드 체크섬: Transport 계층 프로토콜 (TCP/UDP)와 데이터 링크 프로토콜 (이더넷 등)은 체크섬을 수행하므로, 네트워크 계층의 체크섬 기능이 redundant 판단
    • IP 패킷의 빠른 처리에 집중하기 위해 삭제
  • 옵션: 더이상 표준 IP 헤더 필드가 아님
    • IPv6 헤더에서 다음 헤더 중 하나가 될 수 있음
    • 옵션 필드를 없애서 IP 헤더는 40바이트의 고정 길이를 가짐

IPv4에서 IPv6으로

IPv4 데이터그램을 보내고 라우팅하며 받을 수 있는 새 IPv6 시스템이 있지만, 이미 IPv4로 구축된 시스템은 IPv6 데이터그램을 처리할 수 없다.

해결 방법:

  • 플레그 데이 선언하기: 모든 인터넷 장비를 끄고 IPv4에서 IPv로 업그레이드하는 시간과 날짜 정하기
    • 플레그 데이는 사실상 불가능함
  • 터널링
    • 두 IPv6 노드가 IPv6 데이터그램과 IPv4 라우터를 이용할 때, 두 노드를 연결하는 IPv4 라우터를 터널이라 함
    • 터널의 송신 측의 노드는 IPv6 데이터그램을 받고 IPv4 데이터그램의 데이터 필드에 이를 넣음
    • 이 IPv4 데이터그램에 목적지 주소를 터널의 수신 측의 IPv6 노드로 적어서 터널의 첫 노드에 보냄
    • 터널 내부의 IPv4 라우터는 IPv4 데이터그램이 IPv6 데이터그램을 가지고 있는지 모른채 처리함
    • 터널 수신 측의 IPv6 노드는 IPv4 데이터그램을 받고 이 IPv4 데이터그램이 실제 IPv6 데이터그램이라는 것을 결정함
      • IPv6 데이터그램으로 만든 다음 IPv6 데이터그램을 IPv6 노드에 보냄

애플리케이션 계층 프로토콜은 새로운 프로토콜을 빠르게 받아들일 수 있는 반면에 네트워크 계층 프로토콜을 바꾸는 것은 어려운 일이다.

4.4 일반적인 포워딩 및 소프트웨어 기반 네트워크 (SDN)

많은 3계층 기능을 수행하는 중간상자의 확산

  • NAT 상자는 헤더 IP 주소와 포트 번호를 다시 기록한다
  • 방화벽은 헤더 필드 값에 따라 트래픽을 차단하거나 DPI (Deep Packet Inspection) 와 같은 추가 처리를 위해 피킷을 다시 전송한다
  • 부화 균등화기(Load Balancer)는 일정한 서비스가 요구하는 패킷을 해당 서비스를 제공하는 일련의 서버 집합 중 하나에 전송한다

전용 하드웨어, 소프트웨어, 인터페이스 관리를 갖춘 중간 상자, 2계층 스위치, 그리고 3계층 라우터의 확산은 비용적 측면에 문제

소프트웨어 정의 네트워킹 (SDN)
은 최근 네트워크 계층 기능과 특정 링크 계층 기능을 제공하기 위한 통합된 접근 방식을 제공한다

  • 두 단계의 목적지 기반 포워딩: 목적지 IP 주소를 검색한 후 패킷을 스위칭 구조로 지정된 출력 포트로 포워딩
  • 프로토콜 스택의 다른 계층에서 다른 프로토콜과 관련된 여러 헤더 필드에 대해 매칭하는 방법
    • 각 패킷 스위치에 검색 추가 작업 테이블이 존재하고, 테이블은 원격 컨트롤러를 통해 계산, 설치, 및 업데이트된다
    • 개별 패킷 스위치의 제어 구성 요소가 서로 상호 작용할 수는 있지만, 실제로는 원격 컨트롤러가 일반화된 검색 추가 작업 기능을 구현하고, 이 테이블을 계산/설치/업데이트한다
  • 목적지 기반 포워딩 vs. 일반적 포워딩
    • 일반적인 포워딩) OpenFlow 기반

OpenFlow

  • 플로우 테이블: 검색 추가 작업의 포워딩 테이블
  • 들어오는 패킷에 대한 헤더 값들의 세트가 매칭됨
    • 하드웨어 기반 매칭은 TCAM 메모리에서 가장 신속하게 수행됨
    • 플로우 테이블 항목과 일치하지 않는 패킷은 더 많은 처리를 위해 원격 컨트롤러로 전송될 수도 있음
    • 실제로는 플로우 테이블은 성과/비용을 위해 다량의 플로우 테이블로 구현됨
  • 카운터 세트
    • 패킷들에 의해 업데이트 됨
    • 플로우 테이블 요소들과 일치
    • 플로우 테이블 요소와 마지막으로 업데이트된 테이블 항목 이후에 일치된 다수의 패킷 포함
  • 패킷이 플로우 테이블 항목과 일치시, 다음의 동작이 가능해진다
    • 패킷을 지정된 출력 포트로 전달
    • 패킷 삭제
    • 패킷의 복사본 만들어 여러 출력 포트로 보내기
    • 선택한 헤더 필드 다시 쓰기

4.4.1 매치 (Match)

OpenFlow 1.0 검색 추가 작업 규칙에서는 일치할 수 있는 11개의 패킷 헤더 필드와 수신 포트 ID가 존재한다

  • 일치 개념: 프로토콜 헤더의 세 계층에서 선택된 필드에 일치하도록 허용함 (계층화 원칙 무시)
  • IP 주소가 아니라 이더넷 주소 기반으로 전달해서 OpenFlow 지원 장치는 스위치(2계층 장치) 포워딩 프레임과 라우터(3계층 장치) 포워딩 데이터그램과 동일한 성능 발휘
  • 진입 포트: 패킷이 수신되는 패킷 스위치의 입력 포트
    • 전송 계층 출발지와 목적지 포트 번호 필드도 일치 시킬 수 있음
  • 와일드 카드와 우선순위 존재
    • 패킷이 여러 플로우 테이블 항목과 일치하면 선별된 일치 항목과 해당하는 패킷이 항목의 가장 높은 우선순위에 배정
  • IP 헤더의 모든 필드가 일치할 수 있는 건 아님
    • OpenFlow는 TTL 필드나 데이터그램 길이 필드에 기반한 일치를 허용하지 않음
    • 기능과 복잡성 간의 절충 고려

4.4.2 액션 (Action)

각 플로우 테이블 엔트리는 플로우 테이블 엔트리와 일치하는 패킷처리를 결정하는 0개 이상의 액션 목록을 가짐

액션:

  • 포워딩 (Forwarding)
    • 들어오는 패킷은:
      • (1) 특정 실제 출력 포트로 전달되거나
      • (2) 모든 포트를 통해 브로드캐스트되거나
      • (3) 선택된 포트 세트를 통해 멀티 캐스트 될 수 있음
    • 패킷은 캡슐화되어 원격 컨트롤러 전송될 수 있음
    • 그 후 컨트롤로는 새 플로우 테이블 항목을 설치하고 해당 패킷에 대해 조취를 취하거나 업데이트된 플로우 테이블 규칙에 다라 포워딩을 위해 패킷을 장치로 리턴
  • 드롭핑 (Dropping): 아무 동작 없는 플로우 테이블 항목은 일치된 패킷을 삭제해야 함을 나타냄
  • 수정필드 (Modify-field): 패킷이 선택된 출력 포트로 전달되기 전에 10개의 패킷 헤더 필드의 값을 다시 쓸 수 있음
    • IP 프로토콜 필드를 제외한 모든 2(링크), 3(네트워크), 4(트랜스포트) 계층 필드

4.5 요약

네트워크 계층의 데이터 평면 기능: 라우터의 입력 링크 중 하나에 도착하는 패킷이 라우터의 출력 링크 중 하나로 전달되는 방식을 결정하는 기능

profile
우당탕탕
post-custom-banner

0개의 댓글