본문 바로가기
네트워크

[네트워크] Chap 4.1 - Network Layer Overview

by 개발 고양이 2025. 1. 20.

Overview of Network Layer

4장부터는 라우터에 대해 배운다. 

라우터에는 2가지 function, logic이 있다.  

  • Data plane
    : 네트워크 가입자의 데이터 (IP packet)을 처리(forwarding)한다. (3계층까지)
    : 라우터 내에서 지역적으로 일어나는 일을 다룸.

  • Control plane
    : router들 간에 주고받는 routing protocol message (IP packet)을 처리하고 routing table을 만든다.
    : data plane을 제대로 동작시키기 위해서 제어
    : 즉 Control plane은 Data plane의 기능을 수행하기 위해 필요한 것!

※ 4장에서는 주로 Data plane에 대해 이야기할 것이다.


Network layer services and protocols

 

Network layer의 핵심 : host-to-host communication

 

sender host
- 4계층 프로토콜이 준 segment를 내 datagram (또는 packet)에 넣고, 헤더를 붙여서 2계층으로 내려보낸다.

 

receiver host

- 2계층으로부터 받은 데이터로부터 IP header를 보고, segment를 윗계층인 transport layer (4계층)에 올려보낸다.

 

routers

- examines header fields in all IP datagrams passing through it

패킷 단위로 deliever됨. 각 패킷의 헤더에 있는 destination IP address를 보고 forwarding lookup을 한다.

=> Data plane에서 이걸 한다!

- forwards datagram

 


Two key network-layer functions

 

forwarding

- 최종 목적지(destination host) 주소를 key값으로 하여 outgoing port (or link)를 결정하는 것 (forwarding table, FIB 이용)

- 패킷이 하나의 라우터를 지나가는것

- destination IP address를 보고 lookup을 한다

- forwarding은 end-to-end의 학습(routing)이 선행되어야 한다!

 

// switching - 이미 결정된 input port와 output port로 데이터가 이동하는 것

 

 

routing

- 라우터가 end-to-end path를 결정하는 것 (forwarding table을 만든다)

- 라우터들끼리 정보를 수집한 후, 여러 path중 하나를 고름 (routing algorithm, path selection algorithm)

=> 정보를 주고받아야 하므로 routing protocol이 필요한데, 이는 5장에서 다룬다.

- 최종 dest nw로 가기 위한 다음 라우터 (output port)를 정하는 일은 각 라우터가 독자적으로 실행

 


Data plane, Control plane

Data plane (forwarding)

- local, per-router function : 각자 라우터가 알아서 한다 => distributed

- 각자 라우터가 자기한테 들어온 후 나감. 각자의 forwarding table이 각 라우터에 있다. 

 

Control plane (routing)

- 라우터들이 메세지를 주고받으며 end-to-end path를 결정

- two Control plane approaches

  • traditional routing algorithms - per router
    : 각각의 라우터들이 결정한다는 것 (distributed)
    : data plane에 control plane. 즉 routing protocol 보드가 하나의 device 안에 붙어있다. 
    => destination IP address만 보고 forwarding함


  • software-defined networking (SDN) - logically centralized
    : application msg가 들어오는 패킷이 지나가는 장비와, 패킷이 어디로 가는지 결정하는 control plane이 멀리 떨어져 있음.
    : control plane이 분리되어 멀리 떨어져있기 때문에 전체를 본다.
    => (destination IP address + α)를 보고 lookup을 한다
    => (forwarding + α) 를 한다

Interplay between routing and forwarding

RIB (Routing Information Base)

= routing algorithm이 만들어낸 테이블

 

RIB를 만드는 애가 distributed한 방법으로 같은 라우터에 있냐 (per router),

아니면 저 멀리서 어떤 애가 전체를 보고 결정했느냐(SDN) 2가지 방식으로 나뉜다!

 

그 중 best만 고른게 FIB (Forwarding Information Base), 즉 forwarding table이다.

 

패킷이 들어온 순간 가능한 빨리 forwarding을 해야하는데,

기존의 방법(per router)은 destination IP address만 보고,

SDN은 +α 를 본다! <= 즉 1,2,3,4계층을 다 볼 수 있으며, 뭐든지 가능하다.


Network layer service model

Transport layer에서 요구하는 것들

 

한개의 패킷만 보내는 경우 요구될수 있는 것들

  • No loss
  • max e2e delay
  • in-order delivery

여러개를 보내는 경우 요구될 수 있는 것들

  • min bandwidth
  • delay jitter

Datagram packet switching network (ex. Internet)

 

IP는 Stateless & Connectionless하다

data delivery 전에 routing 안함 => Forwarding (based on routing) is determined during data delivery.
Packets between src and dst may take different e2e routes.
order-delivery 보장X
resource reservation 안함 → 중간 라우터의 output buffer에서 delay or loss 발생
It provides best-effort service (no service at all, loss, delay, throughput 다 안잡아줌)

=> thus it can interconnect well networks that use heterogeneous L2 protocols.

 

 


Virtual Circuit packet switching network (ex. ATM) 

 

VCPS (Virtual Circuit Packet Switching Network)

- e2e path가 데이터 전송 전에 결정된다. 즉 routing이 data delivery 전에 이루어진다.

- connection set-up 함 (즉 src와 dst 사이의 모든 msg들이 다 같은 길로 감)

=> in-order-delivery가 보장됨!

- circuit switching을 흉내낸 packet switching이라고 생각하면 된다.

- 하지만, circuit switching과 달리, resource reservation을 하지 않는다.

=> queueing delay & loss 발생

 

VCPS는 path만 fix하지 resource를 보장하지 않아 delay와 loss가 생길 수 있는데,

IP protocol을 쓰면서 QoS를 보장하기 위해 부가적으로 쓰는 것들이 있다!

(ex. ATM, Intserv, Diffserv는 option으로 QoS를 보장할 수 있다.)

 

 


Reflections on best-effort service

항상 어떤 프로토콜은 자기가 상위 계층에 뭘 하겠다고 하는 순간 아래 계층에서 해주는게 있는지 본다.

근데 IP는 best-effort service로, 아무것도 안한다. 즉, 아래 계층한테 아무것도 시키지 않는다.

단점이기도 하지만, 이는 곧 어떠한 technology도 다 어울릴 수 있다는 장점이 되기도 한다.

=> IP는 heterogeneous한 link technology를 다 수용할 수 있다!

 

(IP는 아무것도 안하지만, 위아래 계층 덕분에 살아남았다고 보면 된다.)