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.