Book/COMPUTER NETWORKING A TOP-DOWN-APPROACH

4.1 An Overview of Network Layer

S0LL 2024. 12. 3. 16:53

네트워크 계층은 인터넷 통신에서 중요한 역할을 한다.

책에서는 이를 간단히 **H1(보내는 호스트)**와 H2(받는 호스트) 사이에 라우터가 여러 개 존재하는 네트워크의 관점에서 설명하고 있다. H1이 H2로 데이터를 보낼 때 네트워크 계층은 아래와 같은 역할을 한다.

 

1. H1의 역할:

**세그먼트(Segment)**를 상위 계층(전송 계층)에서 받아온다.

이 세그먼트를 **데이터그램(Datagram)**이라는 형태로 캡슐화한다.

캡슐화된 데이터그램을 가장 가까운 라우터(예: R1)로 보낸다.

 

2. 라우터(R1, R2, …):

라우터는 각 포트의 입력 링크로 들어온 데이터그램을 출력 링크로 전달한다.

이 과정을 **포워딩(Forwarding)**이라고 한다.

또한, 여러 라우터가 데이터를 적절히 전달하기 위해 라우팅 알고리즘을 사용하여 최적의 경로를 계산한다.

이 역할은 **컨트롤 플레인(Control Plane)**에서 수행된다.

 

3. H2의 역할:

데이터를 받아 전송 계층으로 전달한다.

그림 4.1 설명

 

그림 4.1에서는 네트워크 계층의 기본 구조를 보여준다. 여기서 볼 수 있는 주요 구성 요소는 다음과 같다.

호스트(H1, H2): 애플리케이션부터 네트워크 계층까지의 프로토콜 스택이 모두 존재한다.

라우터(R1, R2): 네트워크 계층까지만 프로토콜 스택을 포함하며, 애플리케이션 계층과 전송 계층은 없다.

데이터 경로: H1에서 데이터가 R1, R2를 거쳐 H2로 이동하는 경로를 나타낸다.

 

 

4.1.1 포워딩과 라우팅 (Forwarding and Routing: The Data and Control Planes)

 

네트워크 계층의 주요 역할은 간단해 보인다. **“데이터그램을 한 호스트에서 다른 호스트로 이동시키는 것”**이다.

이를 위해 네트워크 계층은 두 가지 중요한 기능을 수행한다.

 

1. 포워딩 (Forwarding):

 

포워딩은 라우터에서 이루어지는 로컬 작업이다.

라우터의 입력 링크로 들어온 패킷(데이터그램)을 출력 링크로 전달하는 과정이다.

이 작업은 **포워딩 테이블(Forwarding Table)**을 참조하여 이루어진다. 테이블에는 입력 패킷의 헤더 값에 따라 출력 링크가 매핑되어 있다.

 

예를 들어, 그림 4.2에서 헤더 값이 0110인 데이터그램은 포워딩 테이블을 참조해 출력 링크 2로 전송된다.

 

2. 라우팅 (Routing):

 

라우팅은 네트워크 전체의 경로를 결정하는 과정이다.

라우팅 알고리즘을 사용하여 데이터를 출발지(H1)에서 목적지(H2)로 전송하기 위한 최적 경로를 계산한다.

예를 들어, H1에서 H2로 데이터를 보낼 때, 데이터가 R1, R2를 경유하도록 경로를 설정하는 것이 라우팅의 역할이다.

 

포워딩과 라우팅의 차이:

 

포워딩: 라우터 내부에서 개별 패킷을 처리하는 로컬 작업.

라우팅: 네트워크 전체의 패킷 이동 경로를 결정하는 글로벌 작업.

그림 4.2 설명

 

그림 4.2는 포워딩 테이블과 라우팅 알고리즘의 상호 작용을 보여준다.

데이터 플레인(Data Plane): 포워딩 작업이 이루어지는 영역으로, 라우터가 포워딩 테이블을 참조해 패킷을 처리한다.

컨트롤 플레인(Control Plane): 라우팅 알고리즘이 작동하는 영역으로, 포워딩 테이블의 내용을 결정한다.

 

컨트롤 플레인: 전통적인 접근법과 SDN 접근법 (Control Plane: Traditional Approach vs. SDN Approach)

 

전통적인 접근법

 

전통적인 방식에서는 라우터 내부에서 라우팅 알고리즘이 실행된다.

각 라우터가 독립적으로 작동하며, 다른 라우터와 메시지를 주고받아 라우팅 정보를 교환한다.

그림 4.2와 같이 각 라우터에는 자체 포워딩 테이블이 있고, 이 테이블은 라우팅 알고리즘에 의해 동적으로 업데이트된다.

 

SDN 접근법

 

SDN(Software-Defined Networking)은 컨트롤 플레인을 중앙화된 컨트롤러로 분리한다.

그림 4.3에서 보듯, 모든 라우터는 **원격 컨트롤러(Remote Controller)**와 연결되어 있다.

컨트롤러는 각 라우터의 포워딩 테이블을 계산하고 분배한다.

이 접근법은 네트워크 관리를 단순화하고, 변경 사항을 신속히 반영할 수 있게 한다.

4.1.2 네트워크 서비스 모델 (Network Service Model)

 

네트워크 계층은 호스트 간 데이터 전송을 제공하며, 다양한 서비스 모델을 지원할 수 있다. 책에서는 다음과 같은 서비스를 소개하고 있다.

1. Guaranteed Delivery (보장된 전달):

데이터가 반드시 목적지에 도달하도록 보장한다.

2. Guaranteed Delivery with Bounded Delay (지연 제한 보장):

데이터 전달 시간을 특정 범위(예: 100ms) 내로 보장한다.

3. In-Order Packet Delivery (순서 보장 전달):

데이터가 보낸 순서대로 도착하도록 보장한다.

4. Guaranteed Minimal Bandwidth (최소 대역폭 보장):

특정 대역폭(예: 1 Mbps)을 보장한다.

5. Security (보안):

데이터그램을 암호화하여 전송 계층 데이터의 기밀성을 유지한다.

 

베스트 에포트 서비스 (Best-Effort Service)

 

인터넷은 기본적으로 베스트 에포트 서비스를 제공한다.

이는 데이터 전달이 보장되지 않으며, 특정 성능(지연, 대역폭 등)에 대한 보장도 없다.

이러한 단점에도 불구하고, 인터넷은 적절한 애플리케이션 수준 프로토콜(DASH, Netflix 등)을 통해 놀라운 성능을 제공한다.