Network Layer
Network layer에는 우리가 흔히 너무나 잘 알고 있는 프로토콜인 Internet Protocol, 즉 IP가 존재한다.
그리고 다음과 같은 기본적인 역할을 한다.
- sending host로부터 receiving host까지 segment(데이터 단위)를 전달
- sending side에서는 segment를 Transport Layer로부터 받아서 IP 헤더를 붙여서 Datagram으로 만듬
- receiving side에서는 전달 받은 Datagram에서 IP 헤더를 제거한 후 Transport Layer로 올려줌
- Network Layer는 모든 host, router들에 구현되어 있음 (Transport Layer는 End Host에만 존재)
- 패킷이 전달될 때 router를 거치게 되는데, 이 때 항상 Network Layer까지 올라가서 IP 헤더를 검사, 그리고 필요한 처리를 한 후 다음 router로 전달
Function of Network Layer
모든 router에는 data plane과 control plane이 있으며 각각의 라우팅 알고리즘은 서로 상호 작용한다.
Data plane
- local, per-router function
- router의 input port로 들어온 datagram이 어떻게 output port로 forward 되는지를 결정
- Forwaridng function

Control plane
- network-wide logic
datagram이 출발 호스트로부터 목적지 호스트까지의 길을 라우터들 사이에서 어떤 경로를 통해 갈 것인지를 결정
- two control-plane approaches
- 전통적으로는 라우팅 알고리즘이 라우터 구현 -> 라우터끼리 메시지를 주고 받아서 경로를 결정
- 최근에는 software-defined networking(SDN)을 사용하여 서버에서 경로를 계산하고, 라우터들은 서버의 지시를 따라 데이터를 forwarding 해 주는 방식을 사용
- CA는 서버와의 통신을 위해 존재
