Network Layer 개요

Dong-Hyeon Park·2023년 10월 26일
0

Network

목록 보기
8/8
post-thumbnail

본 글은 Computer Networking: a Top Down Approach의 Overview of Network Layer 챕터를 정리한 글입니다.

🟢 포워딩 & 라우팅: data & control plane

  • 네트워크 계층의 주 역할은 발신 호스트에서 수신 호스트로 패킷을 이동시키는 매우 단순한 기능이다.

  • 이를 위해 네트워크 계층에 두 가지 중요한 기능이 존재한다.

    • 포워딩

      • 패킷이 라우터의 입력 링크에 도착하면 적절한 출력 링크로 이동해야 한다.

      • 위 그림 예시에서는 H1에서 출발한 패킷이 H2로 향할 때, R1을 거쳐 H2로 향하는 다음 라우터에 전달되어야 한다.

      • 포워딩은 하나의 기능일 뿐이고 data plane에서 구현된다.

      • 패킷은 악의적인 호스트에 시작 또는 도착 예정인 경우 차단 될 수 있고, 다수의 발신 링크를 통해 중복 전송될 수도 있다.

    • 라우팅

      • 패킷이 발신자에서 수신자까지 이동할 때의 경로가 결정돼야 한다.

      • 이런 경로를 계산하는 알고리즘라우팅 알고리즘이다.

      • control plane에서 구현된다.

  • 포워딩과 라우팅은 종종 혼용하여 사용되기도 하는 용어지만, 정확한 정의는 다음과 같다.

    • 포워딩: 패킷을 입력 링크에서 적절한 출력 링크로 전송하는 라우터 로컬 작업

      • 매우 짧은 시간에 이루어지므로 일반적으로 하드웨어에서 구현된다.
    • 라우팅: 패킷이 발신지부터 목적지까지 이동하는 end system 간의 경로를 결정하는 프로세스

      • 일반적으로 수 초에 걸쳐 이루어지며, 소프트웨어로 구현되는 경우가 많다.

🔴 예시: 펜실베니아에서 플로리다까지

  • 펜실베니아에서 플로리다까지 이동한다면, 운전자는 도로에서 수많은 IC(고속도로의 입구와 출구)를 통과한다.

  • 여기서 포워딩하나의 IC를 통과하는 과정이라고 생각할 수 있다.

  • 여행을 시작하기 전에 운전자는 지도를 보고 여러 경로 중 하나를 선택할 수 있고,
    경로는 IC로 연결된 여러 개의 도로로 구성된다.

  • 여기서 라우팅펜실베니아에서 플로리다까지의 여러 전체 경로 중에서 하나를 선택하는 과정이다.

🟡 포워딩 테이블

  • 포워딩 테이블은 모든 네트워크 라우터의 핵심 요소이다.

  • 라우터는 도착한 패킷의 헤더에 있는 하나 이상의 필드 값을 검사하고,
    이 값을 사용해 포워딩 테이블에 인덱스로 사용함으로써 패킷을 전달한다.

  • 포워딩 테이블에는 헤더의 값과 대응되는 발신 링크가 기록되어 있기 때문에 패킷이 올바른 링크로 이동할 수 있다.

  • 위 예시에서 패킷은 0110이라는 헤더값을 가지고 있고, 포워딩 테이블에는 해당 값이 2 링크와 매칭되기 때문에, 패킷은 2 링크로 이동한다.

🟡 Control plane

🟠 전통적인 방식

  • 그렇다면 포워딩 테이블은 처음에 어떻게 구성되는 것일까?

  • 위 그림에서 알 수 있듯이 라우팅 알고리즘이 라우터의 포워딩 테이블을 결정한다.

  • 또한 한 라우터의 라우팅 알고리즘은 다른 라우터의 라우팅 알고리즘과 통신하여 라우터의 포워딩 테이블의 값을 계산한다. (이것을 위해 라우팅 프로토콜이 존재한다. 자세한 사항은 뒤에서 살펴보자)

  • 만약 라우팅 프로토콜이 존재하지 않는다면 각 라우터에 인력이 투입되어 각 인력끼리 소통해야 되기 때문에 오류가 발생하기도 쉽고 네트워크 구조의 변경에 대응 속도가 느릴 것이다.

🟠 Software-defined networking(SDN) 방식

  • 위 그림에서는 원격 컨트롤러가 모든 라우터의 포워딩 테이블을 배포하고 있다.

  • 기존에 라우터에 포함되어 있던 라우팅 알고리즘(control plane)이 물리적인 라우터에게서 분리된 것이다.

  • 그래서 라우터는 포워딩만을 기능하며, 원격 컨트롤러는 데이터 센터에 구현되어 ISP 또는 제3자가 관리하게 된다.

  • 라우터와 원격 컨트롤러는 포워딩 테이블 및 기타 라우팅 정보가 포함된 메시지를 서로 교환한다.

  • 이런 원격 컨트롤러는 소프트웨어로 구현되므로 본 방식을 software-defined networking이라 부른다.

🟡 네트워크 서비스 모델

  • 네트워크 계층이 제공할 수 있는 서비스를 고려할 때, 다음과 같은 질문을 할 수 있다.

    • 전송 계층이 네트워크 계층에게 패킷을 전달할 때, 네트워크 계층에 의지하여 패킷을 올바르게 전달시킬 수 있는가?

    • 여러 개의 패킷을 전송하면 수신자의 전송 계층에 순서대로 전달되는가?

    • 두 패킷을 순차적으로 전송했을 때, 두 패킷의 전송 간격과 수신 간격이 일치하는가?

    • 네트워크에서 네트워크 혼잡도에 대한 피드백을 제공하는가?

  • 위와 같은 질문에 대한 답은 네트워크 계층에서 제공하는 서비스 모델이 결정한다.

  • 즉, 네트워크 서비스 모델패킷 전달 특성을 정의한다.

  • 다음과 같은 네트워크 서비스가 포함될 수 있다.

    • 전달 보장 (Guaranteed delivery)

      • 소스 호스트에서 출발한 패킷이 목적지 호스트에 도착함을 보장한다.
    • 특정 지연 시간 이내로 전달 보장 (Guaranteed delivery with bounded delay)

      • 패킷의 전달 뿐만 아니라 지정된 딜레이 내에 전달됨을 보장한다.
    • 순서대로 패킷 전달 보장 (In-order packet delivery)

      • 패킷이 보내진 순서대로 도착함을 보장한다.
    • 최소 대역폭 보장 (Guaranteed minimal bandwidth)

      • 송신 호스트가 정해진 비트 레이트 내에서 전송할 시, 모든 패킷은 결국 목적지에 도착함을 보장한다.
    • 보안 (Security)

      • 네트워크 계층은 송신 호스트에서 모든 datagram을 암호화하고 수신 호스트에서 복호화하여 전송 계층 segment에 기밀성을 제공할 수 있다.
  • 위 서비스들은 일부일 뿐이고, 다양한 유형이 가능하다.

🟠 인터넷의 네트워크 계층: best-effort service

  • 인터넷 네트워크 계층은 best-effort 서비스라는 단일 서비스를 제공한다.

  • 이 서비스는 패킷이 순서대로 전달된다는 보장이 없고, 전달 자체를 보장하지도 않는다. 또한 지연 시간 및 최소 대역폭도 보장하지 않는다.

  • 즉, best-effort 라는 표현은 서비스가 전혀 제공되지 않는다는 의미이다.

  • ATM 네트워크 아키텍처, Intserv 아키텍처와 같은 best-effort를 넘어서는 서비스 모델이 구현되어 왔지만, 흥미롭게도 기존의 인터넷 best-effort 서비스는 DASH와 같은 대역폭에 민감한(bandwidth-sensitive) 앱 프로토콜과 잘 조합되어 왔다.

☑️ 요약

  • 네트워크 계층은 발신 호스트에서 수신 호스트로 패킷을 이동시키는 단순한 역할을 한다.

  • 패킷을 이동시키기 위해 포워딩과 라우팅 기능을 지원한다.

  • 포워딩은 data plane에 구현되는 기능으로, 어떤 입력 링크에서 출력 링크로 이동할 지를 선택한다.

  • 라우팅은 control plane에 구현되는 기능으로, 패킷의 전체 경로를 설정하는 기능이다.

  • 라우터에 라우팅 알고리즘이 내재되는 것이 전통적인 방식이었으나, ISP 또는 제3자가 원격 컨트롤러를 통해 라우팅을 하는 SDN 방식이 도입되고 있다.

  • 네트워크 계층은 패킷 전달 보장, 지연 시간 보장 등의 다양한 서비스를 제공할 수 있다.

  • 인터넷은 best-effort service라 불리는, 아무 기능도 제공하지 않는 서비스를 제공하고 있으며, 의외로 이런 특성이 다른 프로토콜과 잘 조합되어 왔다.

profile
Android 4 Life

0개의 댓글

관련 채용 정보