[Network] Network Layer - Overview

host H1 과 host H2 가 있고 그 사이의 path 에는 몇몇 router 들이 있다. H1 이 H2 로 information 을 보낸다고 가정하고 network layer 의 역할을 생각해보자. H1 의 network layer 는 H1 의 transport layer 를 통해 segments 를 받고, 각각의 segment 를 datagram 으로 캡슐화 시킨 후, 가까운 router 인 R1 으로 datagrams 를 보낸다. receiving host 인 H2 에서는, network layer 가 가까운 router 인 R2 를 통해 datagrams 를 받고, transport-layer segments 를 추출한 후, segments 를 H2 의 transport layer 로 보낸다.
Forwarding and Routing
network layer 의 주요한 역할은 packets 을 sending host 에서 receiving host 로 이동시키는 것이다. 그렇게 하기 위해서는 fowarding 과 routing 이라는 network-layer functions 가 필요하다.
Forwarding : packet 이 router 의 input link 에 도착하면, router 는 적절한 output link 로 packet 을 옮겨준다. forwarding 은 packet 을 input link interface 에서 output link interface 로 옮기는 router-local action 이다. 매우 작은 timescales 를 가지므로, 보통 하드웨어에서 구현된다.
Routing : network layer 는 packet 이 sender 에서 receiver 로 갈 수 있도록, route 또는 path 를 결정해야한다. 이러한 paths 를 계산하는 알고리즘을 routing algorithms 이라고 한다. routing 은 end-to-end paths 를 결정하는 network-wide process 이다. forwarding 보다 더 많은 timescales 를 가지므로, 보통 소프트웨어에서 구현된다.
newtwork router 의 중요한 요소는 forwarding table 이다. router 는 도착한 packet 의 header 의 하나 이상의 value of fields 를 관찰하고 이 header values 를 forwarding table 의 index 로 사용한다.
Data Plane and Control Plane
network layer 는 상호작용하는 두 부분인 data plane 과 control plane 로 분리할 수 있다.
Data plane 에서는 어떻게 router 의 input link 로 들어온 datagram 이 router 의 output link 중 하나로 나가는지 결정하는per-router function 과 forwarding function 에 대해서 다룬다.
Control plane 에서는 어떻게 datagram 이 source host 에서 destionation host 까지 router 들 사이로 라우팅 되는지 제어하는 network-wide logic 과 OSPF 와 BGP 같은 routing algorithm 에 대해서 다룬다. 전통적으로 routing algorithm 과 fowarding function 은 함께 router 안에서 monolithically 하게 구현되어 왔다. SDN(Software-defined networking) 은 control plane functions 를 분리된 서비스(보통 remote controller) 로 구현하여 data plane 과 control plane 을 분리시켰다.
참조
Computer Networking _ A Top Down Approach, 7th, converted